How does the metadata rewrite skill write titles and meta descriptions?
Some of your pages already show up in Google every day and still barely get clicked. This skill finds them in your Search Console data, reads what people searched before they scrolled past your result, and rewrites the title tag and meta description to match what they were after.
Every rewrite goes through MetaMonster's page check before you see it, so the length and keyword placement are right the first time. When a page needs it, the skill also writes a new H1 and an Open Graph title and description for social shares. You get your current copy next to the proposed copy, with the search data behind each change, and nothing goes live until you put it there.
On a MetaMonster plan, Claude can also save the copy you pick as drafts on each page in MetaMonster, ready to review and publish from there.
MetaMonster tools it uses
Works without a MetaMonster plan
- Search Console query What the skill uses it for: Finds pages with lots of impressions and few clicks, then pulls the searches behind each one Without a plan? Yes Up to 100 queries a day
- Quick page check What the skill uses it for: Reads the current title, meta description and H1, and checks length and keyword placement for the old and new versions Without a plan? Yes (page fetches are limited per day)
- Field drafts What the skill uses it for: Saves the copy you pick as drafts on the page in MetaMonster Without a plan? Plan needed
Install the skill
Every skill installs the same way. This one is metadata-rewrite.zip.
In Claude on the web or desktop
-
Download the skill's zip file and keep it zipped.
Download zip Download metadata-rewrite.zip -
Skills need file creation turned on. In Settings > Capabilities, turn on Create and edit files. On Team and Enterprise plans, an owner turns skills on for the organization.
-
Go to Customize > Skills, click +, then Create skill > Upload a skill, and pick the zip (
metadata-rewrite.zip). Turn the skill on.
-
Add MetaMonster from Claude's connector directory if you haven't yet. The first time a skill reads Search Console, MetaMonster gives you a link to connect it.
Ask for what you want in plain words, and Claude loads the skill when it fits.
In Claude Code
In Claude Code, skills you've uploaded in Claude load automatically when you sign in with the same account (v2.1.273 or later; run /skills to see them). You can also unzip the folder into ~/.claude/skills/.
In ChatGPT
In ChatGPT, copy the prompt from this page. If MetaMonster is connected in ChatGPT, ask it to pull your Search Console data first. Otherwise paste in your Search Console export.
Things to ask Claude
- Find my pages with the most impressions and the fewest clicks, and rewrite their titles and meta descriptions.
- Rewrite the title and meta description for my pricing page based on what people search for.
- Why does my blog post get impressions but no clicks?
The skill file
This is the SKILL.md inside metadata-rewrite.zip, word for word. Read it to see the steps Claude follows, or see its history on GitHub.
---
name: metadata-rewrite
description: Finds pages that get Google impressions but few clicks and rewrites their title tags, meta descriptions, H1s and Open Graph tags from the searches behind them. Uses the MetaMonster connector's Search Console and quick page check tools. Use when someone wants more clicks from Google, new titles or meta descriptions, a better CTR, or asks why a page gets impressions but no clicks.
---
# Metadata rewrite
You rewrite title tags and meta descriptions for pages that Google already shows but people don't click. Base every rewrite on the searches in the site's Search Console data, not on guesses.
## Before you start
- This skill needs the MetaMonster connector. If its tools aren't available, tell the user to add MetaMonster from Claude's connector directory, or offer to work from data they paste in: the URL, the current title and description, and the top queries with clicks, impressions and position.
- Call `list_search_console_properties`. If there's more than one property, ask which site. If none is connected, give the user the link the tool returns.
- Without a MetaMonster plan, Search Console queries are capped at 100 a day. This skill uses one query to find pages and about two more per page (its searches and its baseline), so work on 5 pages at a time unless the user asks for more.
- Pages that already rank in the top 3 for a search have the most to lose, since a change can cost them rankings and clicks. The first time one comes up, ask the user how to handle them: leave them alone, ask before each change (the default if they don't say), or treat them like any other page. Follow their answer for the rest of the session. If the site is in MetaMonster on a plan, check `get_site_guidance` for a saved answer first, and offer to save a new one as a preference with `update_site_guidance`.
## 1. Find the pages
If the user named a page, skip to step 2.
Call `query_search_console` with the property, `dimensions: ["page"]`, `days: 28`, `sort: "impressions"` and `limit: 50`. Keep pages with an average position of 10 or better whose CTR is well below the median CTR of the site's other pages in the same position range. Those pages rank but don't get picked. Handle pages in the top 3 the way the user chose (see Before you start). Show the user the top 5 with clicks, impressions, CTR and position, and ask which to work on. Default to all 5.
## 2. Read the searches behind each page
For each page, call `query_search_console` with `dimensions: ["query"]`, a page filter (`operator: "equals"` and the exact URL), `days: 28`, `sort: "impressions"` and `limit: 25`.
Note three things:
- the query with the most impressions, which becomes the working primary keyword
- what the top queries have in common: are people looking for a definition, a tool, a comparison, a price or a how-to?
- queries where the page ranks well but gets no clicks, because those are the ones the current title is losing
If the top queries don't match what the page is about, say so. A new title won't fix a page that ranks for the wrong thing.
## 3. Check the current page
Call `quick_check_page` with the page's `url` and the working primary keyword as `primary_keyword`. Record the current title, meta description and H1, and every check that fails. If the fetch comes back thin because the page builds its content with JavaScript, ask the user for the page's HTML or its current title and description.
## 4. Write the new copy
For each page, write:
- 2 title options
- 2 meta description options
- an H1, only if the quick check flagged it or it doesn't match the top searches
- an Open Graph title and description, if the user wants social copy or the page has none
Rules:
- Match what the top searches want. If people want a tool, say it's a tool. If they want a price or a number, put it in.
- Put the primary keyword near the start of the title when it reads naturally, and don't stuff in secondary keywords.
- Only promise what the page delivers. Read the page before you mention a feature, number, price or date, and never make one up.
- If the site ends its titles with the brand name, keep doing that.
- Write like a person, not an ad. Skip words like "ultimate", "comprehensive" and "unlock".
## 5. Check the new copy
Call `quick_check_page` again with the `url`, the `primary_keyword`, and your proposed `title` and `meta_description`, which override what's on the page. Fix anything that fails and check again. Only show the user versions that pass the length and keyword checks.
## 6. Show the results
For each page, show a table with the current and proposed title, meta description and H1 (if it changed), plus one line on why, citing the searches and numbers behind the change. Put the option you'd pick first.
Nothing is published. If the user has a MetaMonster plan and wants to keep going, offer to save the copy they pick as drafts on the page in MetaMonster with `set_field_draft`, where they can review it and publish it. Without a plan, they copy the new tags into their CMS themselves.
## 7. Set up a fair before and after
CTR moves from week to week on its own, so one period against the next won't show whether the new copy worked. Before the copy goes live, call `query_search_console` for each page with `dimensions: ["date"]`, the page filter and `days: 90`, and add the days up into weekly clicks and CTR. That's the page's normal range. Tell the user to count it as a real result only if CTR moves outside that range and stays there for 2 to 3 weeks, and even then not to credit the new title for it, since rankings and the results page change too.
Prompt for ChatGPT
Using ChatGPT? Paste this prompt. If MetaMonster is connected in ChatGPT, ask it to pull your Search Console data first. If not, paste your Search Console export where it says to.
I want new title tags and meta descriptions for pages on my site that show up in Google but don't get clicked.
Here's my Search Console data for the last 28 days. For each page I've included the URL, its current title and meta description, and its top searches with clicks, impressions, CTR and average position:
[paste here]
For each page:
1. Tell me what the top searches have in common: are people after a definition, a tool, a comparison, a price or a how-to? Flag it if the searches don't match what the page is about.
2. Use the search with the most impressions as the primary keyword.
3. Write 2 title options under 60 characters and 2 meta descriptions under 155 characters. Put the primary keyword near the start of the title when it reads naturally, match what the searchers want, and only promise what the page has. Skip words like "ultimate" and "comprehensive".
4. Show a table with the current and proposed copy, the character count of each, and one line on why.
If you can open the page, read it first so the copy matches what's on it. See MetaMonster for ChatGPT to connect it.