Prompts to Try
On-Page SEO, Straight From Search Console Data
Result:
The reader can run a genuine SEO optimization pass on a real page, prioritized against the exact queries it already earns impressions for, using nothing but a free Search Console export and Claude, no separate SEO subscription or dashboard required.
Show page metadata
- Target question
- How do I optimize a page or blog post for SEO using my own Google Search Console data, without buying a separate SEO tool?
- Answer summary
- Export a page's Performance report from Google Search Console as a CSV: one row per query, with its clicks, impressions, click-through rate, and average position. Paste that alongside the page's existing copy into Claude, with a prompt that groups queries by opportunity, strong impressions with weak click-through rate, queries stuck just outside page one, and queries the page doesn't address at all, then rewrites the copy to close the gaps. Two prompt versions exist: one that only touches body copy, for platforms where the title tag and meta description aren't editable, and one that rewrites both, plus a voice-and-tone extension so the result doesn't read like generic SEO copy. No paid SEO tool is required, just a free Search Console account and Claude.
- Authority level
- secondary
- Audience
- practitioner, developer, bot
- Topics
- Google Search Console, on-page SEO, prompt engineering, click-through rate, content optimization
The same fields sitting in this page's target-question, answer-summary,authority-level, and audience meta tags and its JSON-LD — bot-facing metadata, made human-visible.
Problem
Paid SEO tools charge for something Google already gives away: a per-page breakdown of every search query that’s actually shown your content, how often people clicked it, and where it ranked. That data lives in Search Console’s Performance report the moment a page starts getting impressions. Most people never open it, and even when they do, a spreadsheet of forty queries and their click-through rates doesn’t turn itself into “change this sentence,” that translation step is the part a paid tool, or an SEO specialist, usually gets hired to do.
There’s a second wrinkle before you can even write the prompt: how much of the page can you actually change? On your own site or CMS, you can rewrite the title tag, the meta description, the headers, all of it. On a platform someone else administers, Medium, a company blog you don’t own, a guest post, LinkedIn, you’re often limited to the body copy itself; the metadata is locked or managed elsewhere. Optimizing for the second situation with advice meant for the first wastes effort suggesting changes nobody can actually make.
Pattern
One export, one prompt, in two flavors depending on how much of the page you control.
Get the data
- Open Search Console and select the property the page belongs to.
- Go to the Performance report, click ”+ New” → “Page”, paste the exact URL of the page you’re optimizing, and apply the filter. Everything below now describes just that one page, not your whole site.
- Stay on the Queries tab (it’s the default one after filtering). This is the table that matters: every search query that actually earned an impression for this page, plus its clicks, click-through rate, and average position.
- Widen the date range to at least the last three months. A single page’s query list on a 7- or 28-day window is often too thin to prioritize against.
- Click Export → CSV (or “Google Sheets” if you’d rather skim it there first) to download the table.
If the page is new or low-traffic, this table may be short, or a few very-low-volume queries may show blank click or position values, Search Console suppresses some rows for privacy at low volume. That’s normal; work with what’s there. This pattern gets more useful as a page accumulates weeks of real data, not less.
Grab the page’s existing copy
Copy the live text of the page (or the draft, if it isn’t published yet) into a plain text file. If you’re using the full-control flavor below, also grab the current title tag and meta description; your page’s source or your CMS’s SEO fields will show both.
Pick your flavor and run the prompt
Flavor A — you can only edit body copy (a platform like Medium, a locked-down CMS, a guest post, anywhere the SEO fields belong to someone else):
You're helping me optimize this page's copy for SEO. I can only edit the body copy on this
page, not the title tag or meta description, so don't suggest changes to either.
Here's the page's current copy:
[PASTE FULL PAGE COPY]
Here's a Search Console export of every query this exact page gets impressions for
(columns: Query, Clicks, Impressions, CTR, Position):
[PASTE CSV DATA]
1. Group the queries into: (a) high-impression queries with a weak click-through rate,
(b) "striking distance" queries around position 8-20 with real impressions, and
(c) queries with real apparent volume that the current copy doesn't address at all.
2. Tell me the 3-5 highest-opportunity queries overall and which group each falls into.
3. Rewrite the body copy to work those queries naturally into the opening paragraph,
subheadings, and supporting sentences, without changing any of the page's actual
claims or adding anything that isn't true.
4. If a query doesn't fit naturally anywhere, don't force it in; tell me which ones and why.
5. Match the existing tone and voice exactly. Don't let it drift toward generic SEO phrasing.
Return the full rewritten copy, then a short list of what changed and why.Flavor B — you control the whole page (your own site, or a CMS you administer):
You're helping me optimize this page for SEO. I have full control over the page: title tag,
meta description, headers, and body copy.
Here's the page's current copy:
[PASTE FULL PAGE COPY]
Current title tag: [PASTE CURRENT TITLE TAG]
Current meta description: [PASTE CURRENT META DESCRIPTION]
Here's a Search Console export of every query this exact page gets impressions for
(columns: Query, Clicks, Impressions, CTR, Position):
[PASTE CSV DATA]
1. Group the queries into: (a) high-impression queries with a weak click-through rate,
(b) "striking distance" queries around position 8-20 with real impressions, and
(c) queries with real apparent volume that the current copy doesn't address at all.
2. Tell me the 3-5 highest-opportunity queries overall and which group each falls into.
3. Write a new title tag (aim for 50-60 characters) and meta description (aim for
150-160 characters) that lead with the single highest-opportunity query, honestly
describe what the page delivers, and read like something a person would click, not a
keyword string stitched together.
4. Suggest specific header changes only where a heading can pick up an underused query
without becoming awkward; don't force every heading to change.
5. Rewrite the body copy to work the remaining high-opportunity queries in naturally,
without changing any of the page's actual claims.
6. If a query doesn't fit naturally anywhere, tell me which ones and why instead of
forcing it in.
Return: the new title tag, the new meta description, any header changes, and the full
rewritten body copy.Extension — keep it in your own voice. Paste this ahead of either prompt above if you want the rewrite to sound like you, not like generic SEO copy:
Before you rewrite anything: here's how this page should sound. [Paste 5-10 sentences of
copy you already like, or a full voice/style doc if you have one.]
Match that voice exactly in the rewrite. Where a query would only fit by sounding generic
or salesy, say so instead of forcing it in.If you already maintain a written voice doc, the voice-rules pattern for turning it into a standing prompt (or a Claude Skill) is the sturdier version of this step.
Read the export the way Claude should be prioritizing it
- High impressions, weak click-through rate, already on page one → the page is being seen and skipped. Usually a title/meta problem (Flavor B) or a weak opening line (Flavor A).
- Real impressions, position roughly 8-20 → “striking distance”: the page is already relevant enough to show up, just not developed enough to rank higher. A content-depth problem; add real coverage, don’t just sprinkle the keyword in.
- A query with real apparent demand that isn’t in the export at all, or shows near-zero impressions → the page genuinely doesn’t address it yet. That’s a gap, not a rewrite.
- High position and a healthy click-through rate already → leave it alone. Don’t “optimize” something that’s already working.
Real result
The payoff here isn’t a specific number, it’s what the reader can do without buying anything or learning a new dashboard: run the same optimization pass a paid SEO tool exists to sell, against data they already have free access to. Every input this pattern needs, which queries a page ranks for, how often it’s seen without being clicked, which ones sit just off page one, already lives in a Search Console account the moment a page starts earning impressions. This pattern turns that free export into a rewrite of the page’s own copy, in the page’s own voice, with no separate SEO subscription, no new login, and no agency in between.
Variations
- Which page first? Pull an unfiltered Performance export (skip the page filter in step 2) sorted by impressions to see which pages have the most untapped opportunity site-wide, then drill into those one at a time with the pattern above.
- Non-primary markets or devices. Search Console’s Performance report also filters by country and device. If a page serves more than one market, filter to the audience that actually matters before exporting, otherwise a large secondary-market query volume can crowd out the prioritization for your primary readers.
- A full voice doc instead of a few pasted examples. The voice-rules pattern covers turning a written vocabulary/style doc into a standing enforcement prompt (or a Claude Skill), the sturdier version of the tone extension above.
- Automating the export itself. This recipe works from a manual CSV download on purpose, it needs nothing beyond a Search Console account and Claude. A future recipe on this site will cover pulling Search Console data on a schedule into the traffic dashboard, the same repo-route pattern already used for PostHog traffic data.