Free — no email required

Five prompts that run your SEO from Search Console

Paste one URL into Claude and it can read your Search Console data. These are the five prompts I run on it — the CTR gaps, the pages fighting each other, the traffic quietly bleeding out, the questions you rank for and never answered, and the weekly report you used to build by hand.

Connect it first

Two minutes to connect. Read-only — Claude can see your data, not change it.

Step one

Connect Claude to your data. One URL, two minutes.

None of the prompts below work until this is done. It's a remote connector, so there's nothing to install — you paste an address and sign in.

The connector URL
https://mcp.portermetrics.com/mcp
1

Open the connectors menu in Claude

Settings → Connectors → Add custom connector. Works on Claude on the web and the desktop app.

2

Paste the one URL

Drop in https://mcp.portermetrics.com/mcp and hit Connect. Nothing to install, nothing to configure.

3

Sign in and pick your property

Claude opens Porter's login. Sign in with the Google account that has Search Console access, authorise the property you want Claude to read, and you're done.

4

Prove it works before you trust it

Run the warm-up prompt below. If a table of page-two URLs comes back, the connection is live and every prompt on this page will run.

The warm-up — does it actually work?

The one from the video. Run it first.

Using my Google Search Console data for [SITE URL], show me every page with an average position between 11 and 20 and more than 500 impressions in the last 7 days. Return one table: URL, top query, average position, impressions, clicks, CTR — sorted by impressions, highest first. Use only numbers that came back from Search Console. Don't estimate anything.

A table of pages sitting on page two comes back in about fifteen seconds. Those are the ones one or two tweaks away from page one — and that's where prompt 01 starts.

The five prompts

The bottleneck was never the data

It was seeing it. Each of these asks Search Console a question that used to take half an hour of exports and pivot tables, and hands back the decision instead of the spreadsheet. Replace every [BRACKETED] value before you run one.

Prompt 01

The CTR Gap

Finds pages that already rank well and still get ignored, then writes the replacement title and meta for each one.

Run it: MonthlyNeeds 28 days of history
ctr-gap.txt405 words

Using my Google Search Console data for [SITE URL], find every page where the ranking is already good and nobody is clicking.

Show the 5 steps and the rules

STEP 1 — Pull the data

Pull the last 28 days of query and page data for [SITE URL]. Keep only rows with more than [100] impressions so we aren't making decisions on noise.

STEP 2 — Compare every row to its expected CTR

Use this as the benchmark curve: position 1 = 28%, 2 = 15%, 3 = 11%, 4 = 8%, 5 = 7%, 6 = 5%, 7 = 4%, 8 = 3.5%, 9 = 3%, 10 = 2.5%. For each page, work out actual CTR minus expected CTR for its average position.

STEP 3 — Rank by lost clicks, not by percentage

For every underperformer calculate: impressions x (expected CTR - actual CTR). That is the number of clicks I should be getting and I'm not. Sort by it. A page missing 400 clicks matters more than a page missing 40% of 12.

STEP 4 — Tell me why, page by page

For the top 10, fetch the page and read the title tag and meta description as they stand today. For each one tell me what the title says now, which query it is actually being shown for, and the specific mismatch. The usual suspects: the intent of the query isn't in the title, the title truncates past 60 characters, no number or price or year where the competitors have one, brand name first when nobody is searching the brand, description missing or written by the CMS.

STEP 5 — Write the replacements

Give me a new title tag under 60 characters and a new meta description under 155 characters for each of the 10, written to earn the click for the query the page is actually ranking for. Not keyword stuffed — written for a person deciding between ten blue links.

Finish with one table: URL | Query | Position | Impressions | Actual CTR | Expected CTR | Clicks left on the table | New title | New description.

RULES

Use only numbers that came back from Search Console. Never estimate, round up, or fill in a figure you don't have.

If a page won't fetch, say so and write the rewrite from the query alone.

Don't recommend a rewrite for any page already beating its expected CTR. Tell me to leave it alone.

Prompt 02

The Cannibalisation Check

Finds the queries where your own pages are fighting each other, picks the winner, and tells you exactly what to do with the loser.

Run it: QuarterlyNeeds 3 months of history
cannibalisation.txt340 words

Using my Google Search Console data for [SITE URL], find every query where my own pages are competing with each other.

Show the 5 steps and the rules

STEP 1 — Pull the data

Pull the last 3 months of query and page data for [SITE URL]. Keep queries with more than [50] impressions.

STEP 2 — Flag the conflicts

Find every query where 2 or more of my URLs picked up impressions. For each one list every competing URL with its clicks, impressions and average position.

STEP 3 — Score how bad each conflict is

Rank the conflicts by total impressions on the query and by how close the URLs sit to each other. Two URLs both floating between position 8 and 14 for the same query is a real fight. One at position 4 and one at position 78 is not — drop those from the list.

STEP 4 — Pick a winner, sentence the loser

Fetch the competing pages. For each conflict tell me which URL should own the query and why: it already takes the clicks, it matches the intent better, or it is simply the stronger page. Then choose exactly one action for the loser:

Consolidate and 301 into the winner.

Keep it, but retarget it — new primary keyword, new title, new H1.

Keep it and internal-link it to the winner using the query as anchor text.

Leave it alone because the two pages genuinely serve different intents.

STEP 5 — Hand it back

One table: Query | Impressions | URLs in conflict | Winner | Loser action | Anchor text to use | Priority (high / medium / low).

RULES

Never recommend deleting a page that is still getting clicks. Consolidate or retarget instead.

Only use positions and impressions that came from Search Console.

If both URLs are already on page 1 for the query, mark it "leave it" — two listings beat one.

If the two pages target different cities or different services, that isn't cannibalisation. Say so and move on.

Prompt 03

The Decay Report

Shows what you're quietly losing, sorts it into ranking loss vs CTR loss vs falling demand, and gives you the refresh order.

Run it: QuarterlyNeeds 6 months of history
decay.txt349 words

Using my Google Search Console data for [SITE URL], show me what I am losing before it disappears completely.

Show the 5 steps and the rules

STEP 1 — Pull two windows

Pull page-level clicks and impressions for the last 3 months, and for the 3 months before that. If I don't have 6 months of history connected, tell me straight away rather than working with what's there.

STEP 2 — Work out the change

For every page calculate the click change and the percentage change between the two periods. Ignore any page under [50] clicks in the earlier period — small numbers swing wildly and will send me chasing nothing.

STEP 3 — Sort the losers into three buckets

Lost clicks, kept impressions. The ranking is still there — this is a CTR or SERP-feature problem.

Lost impressions and clicks together. Something outranked me. This is a ranking problem.

Lost impressions while position held steady. Demand dropped or the query changed. Not my fault, and not always fixable.

Say which bucket each page is in and which numbers put it there.

STEP 4 — Find out what changed

For the 10 biggest losses, pull the queries each page lost the most on. Search Google for those queries and tell me what is ranking now that wasn't before: a new competitor page, an AI Overview eating the click, a Reddit thread, a video pack, a Google feature that pushed the organic results down.

STEP 5 — Give me the refresh order

One table: URL | Clicks before | Clicks now | Change | Bucket | What changed in the SERP | The single fix | Effort (30 minutes / half a day / rebuild).

RULES

Only report declines the data supports.

Don't call something decay if it's seasonal. If I have 12+ months of history, check whether the same page dropped in the same window last year, and say so.

Never invent a competitor URL or a SERP change. If you can't verify what changed, write "unverified" and move on.

One fix per page. Not a list of options.

Prompt 04

The Query Gap

Pulls the questions you already get shown for and never answered, and tells you the exact section to add and where it goes.

Run it: MonthlyNeeds 3 months of history
query-gap.txt383 words

Using my Google Search Console data for [SITE URL], find the questions I am already being shown for and have never answered.

Show the 5 steps and the rules

STEP 1 — Pull the near misses

Pull the last 3 months of query data for [PAGE URL, or the whole site]. Keep every query with more than [30] impressions sitting at average position 4 to 20. Those are the queries Google already thinks I'm relevant for and I'm close enough to move.

STEP 2 — Group by page, then by intent

Group the queries by the page ranking for them. Then group them by intent, not by wording — "cost", "how much", "price near me" and "average price" are one intent, not four. Add the impressions across each group.

STEP 3 — Read what's actually on the page

For the top [5] pages, fetch each one and list its headings in order. For every query group, mark whether the page has a section that directly answers it: yes, sort of, or not at all.

STEP 4 — Tell me what to add

For every "not at all" and every "sort of", give me the exact heading to add, where it goes on the page (after which existing section), and two sentences on what it has to say to actually answer the query. If a query group is big enough to deserve its own page instead of a section, say so and tell me which existing page should link to it and with what anchor text.

STEP 5 — Hand it back

One table: Query group | Combined impressions | Current position | Page | Has a section? | What to add | Section or new page.

Rank the table by combined impressions multiplied by how close the position already is to page 1.

RULES

Work only from queries that came back from Search Console. Don't add keywords you think I should target — I have that list already.

Ignore queries that belong to a different service or a different city than the page is about. Those are new pages, not missing sections.

If a page already answers a query group properly and still ranks 11 to 20, don't send me to rewrite it. Say the section is fine and the page needs links or internal linking instead.

Prompt 05

The Monday Report

The weekly report you'd otherwise build by hand — movers, new and lost queries, and exactly three things to do this week.

Run it: WeeklyNeeds 14 days of history
monday-report.txt255 words

You are my SEO analyst. Using my Google Search Console data, write this week's report for [SITE URL].

Show the 5 steps and the rules

STEP 1 — Pull two weeks

Pull the last 7 days and the 7 days before that: clicks, impressions, average CTR and average position for the site as a whole.

STEP 2 — Open with the numbers

Five lines, plain English, no jargon: total clicks and the change, impressions and the change, CTR, average position, and the one number that moved most. Label every figure with the date range it came from.

STEP 3 — The movers

The 5 pages that gained the most clicks and the 5 that lost the most, with the query most responsible for each move. I want the biggest changes, not the biggest pages.

STEP 4 — New and lost queries

Queries that picked up impressions this week and had none last week. Queries that had impressions last week and none this week. If any of them are brand queries, list those first and flag them.

STEP 5 — Three actions

Exactly three things to do this week, ranked by the clicks at stake, each naming the page and the specific change. No "continue monitoring". No "keep publishing content".

FORMAT

Short paragraphs and small tables. Written so a business owner who has never done SEO understands every line. If something moved and the data doesn't explain why, write "cause unclear" instead of guessing.

[Repeat all of the above for every property I have connected, then put one combined summary at the top.]

Want the whole set in one paste?

All five, labelled and in order — keep them in a note and work down the list.

Before you run them

Four things worth knowing

Read these once and every prompt on this page behaves.

It's read-only

The connector exposes query methods and nothing else. Claude can read your Search Console data. It cannot change a setting, a property, or anything in your Google account.

Mind the history window

Porter's free plan keeps 30 days of history across 3 accounts, and every account starts on a 14-day unlimited trial. Prompts 02, 03 and 04 want 3–6 months, so run those during the trial or on a paid plan.

Fill the brackets first

Every [BRACKETED] value is yours to replace — the site URL, and the impression floors that decide what counts as signal. Leave them in and Claude will ask, which wastes a turn.

One property at a time

Run a prompt against a single property, act on it, then move to the next. Multi-property runs read impressively and hide the one number you were supposed to act on.

Claude reads the numbers. It still can't tell you which of your services actually makes money — so sanity-check the priority order against what you want more of.

Questions

The ones I always get

Is connecting Claude to Google Search Console safe?

Yes. The Porter MCP connector is read-only — it exposes query methods for pulling data and no write methods at all. Claude can read your Search Console reporting. It cannot edit properties, submit URLs, or change anything in your Google account.

Do I need a paid account?

No. Porter has a free plan covering up to 3 connected accounts with 30 days of history, and every new account starts with a 14-day unlimited trial. The 28-day and weekly prompts run on the free plan. The cannibalisation, decay and query-gap prompts want 3 to 6 months of history, so run those during the trial or on a paid plan.

Can I connect more than one website?

Yes. Authorise each Search Console property in Porter and Claude can query any of them, one at a time or in the same conversation. The weekly report prompt has a line at the end that repeats it across every property you have connected.

Does this replace an SEO agency?

It replaces the reporting layer — the thirty minutes of exports and pivot tables that used to sit between you and an answer. It doesn't write the pages, build the links, or make the calls. That's still the job.

Rather have it done for you?

These prompts tell you what to fix. Locafy does the fixing — getting local businesses found in Google Maps, AI Overviews, and AI search, done for you.

More free prompts: the Master Prompt for titles and metas, or Near-Miss SEO as a Claude skill.