Rewrite page titles and meta descriptions in bulk from a crawl
Draft new titles and meta descriptions for hundreds of pages from a crawl, with length checks, a keyword rule and a review before upload.
- Who it suits
- Freelance SEO, small agency content lead, ecommerce store owner
- Time saved
- About 3 to 5 hours per 200 pages compared with writing each by hand (estimate)
- Level
- Medium
- Updated
- Oct 13, 2026
Why this task
Many sites have titles copied from a template, missing descriptions, or the same text on dozens of pages. Fixing them one by one takes days, so it rarely happens. An agent can draft every row in one pass while a spreadsheet checks length and keyword use. A person still reads every change before anything goes live.
You are writing page titles and meta descriptions for [SITE NAME], a [BUSINESS TYPE] serving [AUDIENCE]. Input table columns: address, current title, current meta description, main heading, primary keyword. [PASTE ROWS] Brand and style rules: - Brand name: [BRAND NAME]. Place it at the end of the title as " | [BRAND NAME]" only when it fits the length range. - Tone: [TONE, e.g. plain and friendly]. - Never use these words: [BANNED WORDS]. For each row: 1. Write a new title of [TITLE MIN] to [TITLE MAX] characters, including spaces. 2. Write a new meta description of [DESC MIN] to [DESC MAX] characters, including spaces. 3. Keep the primary keyword, or a close natural form of it, in the title. Put it near the start when it reads well. 4. Use the keyword once at most in the description. Describe what the visitor will find on the page. 5. Make every title and description different from every other row in the batch. 6. Base claims only on the current title, description and main heading. Do not add prices, offers, ratings or guarantees that are not in the input. Return a table with columns: address, new title, title length, new description, description length, keyword kept (yes or no), notes. In notes, flag rows where the input looks wrong. Examples: a keyword that does not match the page, a blank heading, or two pages on the same topic. Do not skip or reorder rows. If you cannot write a row, leave the new fields blank and explain why in notes.
Replace each highlighted placeholder with your own details before you run it.
Steps
- Export address, current title, current meta description, main heading (H1) and status code from your crawler. Keep only pages that return a 200 status and are indexable.
- Add a primary keyword column. Fill it from your keyword map, or a keyword tool, one keyword per page.
- Write a short brand and style note: brand name, whether it goes at the end of the title, tone, and words you never use.
- Read Google's title link guidance (https://developers.google.com/search/docs/appearance/title-link). It says to avoid keyword stuffing and repeated boilerplate, and to describe each page with distinct text.
- Run the prompt in batches of 50 to 100 rows. Ask for the output as a table with the same row order and addresses.
- Add spreadsheet formulas that count characters in each new title and description. Flag any row outside your chosen ranges and any row where the keyword is missing.
- Have a reviewer read every row, accept or edit it, and mark it approved. Pay extra attention to product names, prices and claims.
- Upload only approved rows through your content management system (CMS) import or by hand. Keep the old values in the sheet so you can roll back.
- Recrawl a week later to confirm the new tags are live, then watch click through rate in Google Search Console.
What you get
A table with one row per address, showing new title and description, their character counts, and a yes or no for the keyword. Flagged rows carry a short note. After review, the sheet becomes the upload file, with the old values kept for rollback.
What can go wrong, and the check for each
Invented facts, such as a discount or rating that the page does not show.
CheckThe prompt limits claims to the input, and the reviewer checks every row that mentions a number, offer or award.
Keyword stuffing or near identical titles across many pages.
CheckA spreadsheet check for duplicate titles, plus the reviewer reading Google's title link guidance before sign off.
Expecting Google to always show the new text. Google's snippet guidance (https://developers.google.com/search/docs/appearance/snippet) says it only sometimes uses the meta description.
CheckJudge results on clicks over several weeks.
Character counts from the model can be wrong.
CheckRecount every row with a spreadsheet formula and ignore the model's own count.
A bad upload overwrites good tags across the site.
CheckUpload a small test batch first, keep the old values in the sheet, and recrawl to confirm.
Related playbooks
Classify search intent from results page notes and pick a page type
Label the search intent of each keyword from your own notes on the results page, then get a page type recommendation with the reasoning shown.
Cluster a keyword export into topic groups and map each to one page
Turn a raw keyword export into topic groups, give each group one target page, and flag groups where two of your pages compete.
Build a content brief from top page notes and real customer questions
Combine your notes on top ranking pages with questions from sales calls, reviews and tickets to brief a page that adds something new.