REFERENCE · FOR MARKETERS, CONTENT LEADS AND AGENCIES

40 SEO Prompts for Claude & ChatGPT With Search Console Data

Forty copy-paste prompts for Claude and ChatGPT that run on live Google Search Console and Bing data, grouped by the job you are doing. Each one names the MCP tool it calls, so you know what it costs and why it works.

By GSC MCP Server teamUpdated 12 min read

How to use these SEO prompts for Claude and ChatGPT

SEO prompts for Claude and ChatGPT only give reliable answers when the assistant can read your real search data. Connect a Search Console MCP server once, then use prompts that name the property, the date range and the tool, and ask for a specific output. The 40 prompts below do exactly that, and each one is annotated with the GSC MCP Server tool it calls.

Generic prompt lists ask the model to reason about text you paste in. These run against live data through read-only tools, so the answers come with real clicks, impressions, CTR and positions. If you haven’t connected yet, follow the guide to connecting Search Console to Claude and ChatGPT. In Claude it is a custom connector, which Anthropic makes available on every plan, Free included (one custom connector on Free). In ChatGPT, remote MCP tools come through plugins, and availability depends on your plan and workspace.

Five habits make every prompt here work better:

  1. Name the property. Replace sc-domain:example.com with your own. Run list_search_properties once if you are not sure of the exact name.
  2. Set the range. The tools accept 7, 28 or 90 days, or exact start and end dates up to 366 days apart. Default ranges end three days ago, because Google’s data arrives two to three days late.
  3. Ask for the tool call. End with “show the tool and parameters you used” until you trust the setup.
  4. Keep limits sensible. Every tool takes limit from 1 to 1,000 (default 100). Smaller is faster and easier to read.
  5. Spot-check one number against Performance › Search results in Search Console before you share anything.

Health check prompts (1–6)

1. The 28-day health check

Try this prompt
Call compare_search_periods for sc-domain:example.com with range “28”, dimension “none” and provider “all”. Show clicks, impressions, CTR and average position (where the engine reports it) against the previous 28 days for Google and Bing separately, then tell me in two sentences whether anything needs attention.

One call, both engines, and the comparison you would otherwise build by hand. Run it every Monday.

#PromptTool
2Show daily clicks for the last 90 days and flag any day more than 30% below the average of the seven days before it.get_search_overview
3Compare the last 28 days with the same weeks last year (compareTo “previous_year”, dimension “none”). Judge the change on clicks only.compare_search_periods
4Give me the freshest numbers: dimension date, start and end dates covering the last seven days up to yesterday, dataState “all”. Remind me which days are still preliminary.query_search_analytics
5Break clicks down by device for the last 28 days and for the 28 days before, and show the change per device.query_search_analytics (×2)
6List every property I have connected, the account it belongs to, and whether that account is paused.list_search_properties

Quick-win prompts: low CTR and striking distance (7–13)

get_search_opportunities has two strategies. low_ctr returns queries with at least 100 impressions, CTR under 3% and a position of 20 or better. striking_distance returns queries with at least 50 impressions at average positions 8–20.

7. Rewrite titles for low-CTR queries

Try this prompt
Call get_search_opportunities with strategy “low_ctr”, range “90” and limit 25. Then make one query_search_analytics call with dimensions query and page (limit 300) to find the ranking page for each query. For the ten queries with the most impressions, suggest a title under 60 characters and a meta description under 155 characters that match the intent. Skip branded queries.

8. Striking distance, grouped by page

Try this prompt
Get striking distance queries for the last 90 days (limit 100). Map them to pages with one query_search_analytics call using dimensions query and page, then group by page. Rank pages by total impressions and tell me the three to improve first, with the queries each one should target.

Grouping by page is what turns a keyword list into a work plan. The striking distance playbook shows how to score and fix each page.

#PromptTool
9Pull my top 500 queries for 90 days and list the ones in positions 1–3 with CTR under 5%. What is taking the clicks?query_search_analytics
10List every query https://example.com/pricing ranks for in the last 90 days (filter page equals that URL), and say which ones the page doesn’t answer.query_search_analytics
11Find mobile-only striking distance queries: filter device equals MOBILE, range “28”, limit 300, then keep positions 8–20 with 100+ impressions.query_search_analytics
12Estimate extra monthly clicks if each striking distance query reached position 4 at the site’s own average CTR for positions 3–5, and rank pages by that estimate.get_search_opportunities
13Show low-CTR opportunities with provider “all” and list the queries that are weak in both Google and Bing.get_search_opportunities

Content and topic prompts (14–19)

14. Questions your audience is asking

Try this prompt
Run query_search_analytics for the last 90 days with dimensions query and page, limit 200, and a query filter using includingRegex ^(how|what|why|when|where|which|who|can|does|is|are)\b. Group the questions into topics. For each topic, say whether an existing page answers it well or whether it needs a new section.

15. Pages losing ground year over year

Try this prompt
Call compare_search_periods with range “90”, compareTo “previous_year”, dimension “page” and limit 25. List the pages that lost the most clicks, judging on clicks only, and for each one show its current position and the queries that fell furthest.

Prompt 15 is the starting point for a content decay audit. The second half needs a follow-up query_search_analytics call per page, so run it on the top five first.

#PromptTool
16Find queries where two or more of my pages compete (minImpressions 50, range “90”). For the top ten, recommend which page should own the query.find_keyword_cannibalization
17For my top 30 pages by clicks, show what share of each page’s clicks comes from its single best query. Flag pages that depend on one query.get_search_pages, query_search_analytics
18Find comparison queries (includingRegex \b(vs|versus|alternatives?|best)\b) with their ranking pages. Are they landing on the right kind of page?query_search_analytics
19Which pages gained the most clicks in the last 28 days against the previous 28? What do they have in common?compare_search_periods

If prompt 16 returns real overlap, the keyword cannibalization guide explains when to merge, redirect or simply relink.

Technical SEO and indexing prompts (20–25)

inspect_url runs Google’s URL Inspection API: index verdict, coverage state, last crawl, robots.txt state, the canonical you declared and the one Google chose. It reports Google’s indexed copy, not the live page, and Google allows about 2,000 inspections per property per day. Developers can run these next to the code; see technical SEO in Cursor and VS Code.

20. Inspect a batch of URLs at once

Try this prompt
Use multicall to run inspect_url on these five URLs: [paste URLs]. For each, report the verdict, coverage state, last crawl time, and whether the Google-selected canonical matches the user-declared canonical. List the ones that need action first and say what to do.
#PromptTool
21Check my sitemaps in Google and Bing. Show errors, warnings, submitted URL counts and the last download date, and flag any sitemap Google hasn’t fetched in 14 days.list_sitemaps
22Inspect https://example.com/blog/new-post. Explain in plain English why it isn’t indexed and what I should do in the Search Console interface.inspect_url
23Take my top 9 pages by clicks and inspect them all in one multicall. Confirm each is indexed with my canonical.get_search_pages, multicall
24Inspect these URLs and compare each last crawl time with our release on 20 October. Which ones has Google not recrawled since?inspect_url
25Inspect these URLs and report robots.txt state and page fetch state. Is anything blocked or failing to fetch?inspect_url

The tools are read-only, so prompt 22 ends with advice, not an action. Requesting indexing still happens in Search Console under URL inspection › Request indexing.

Reporting prompts for clients and stakeholders (26–30)

26. The one-message weekly report

Try this prompt
Run one multicall with get_search_overview (range “7”), compare_search_periods (range “7”, dimension “page”, limit 5), get_search_queries (range “7”, limit 10) and get_search_opportunities (strategy “striking_distance”, limit 5). Write a one-page report: headline numbers with change, the five biggest winning and losing pages, the top ten queries, and three next actions.

That is four tool calls for a complete weekly update. Agencies can extend it into the monthly client reporting workflow.

#PromptTool
27Write a client summary under 200 words, no jargon, from the last 28 days against the previous 28 (dimension “query”, limit 10).compare_search_periods
28Break the last 90 days down by country (limit 20) and flag countries with high impressions but weak CTR.query_search_analytics
29Show clicks by device for the last 28 days and the same 28 days last year, as a two-column table.query_search_analytics (×2)
30Build a table of my top 20 landing pages for 1 July to 30 September 2026 with clicks, impressions, CTR and position, formatted for a slide.get_search_pages

Bing Webmaster Tools prompts (31–35)

Bing has its own audience and grounds Microsoft Copilot’s web answers, yet most prompt libraries ignore it (here is why Bing matters for ChatGPT and Copilot). Set provider to bing, or to all to see both engines together. Bing’s daily totals carry no average position, so compare positions at query or page level.

31. What Bing sends that Google doesn’t

Try this prompt
Run get_search_queries for provider “google” and again for provider “bing”, range “28”, limit 50 each. Which queries bring Bing clicks but not Google clicks, and where does Bing rank us noticeably better or worse?
#PromptTool
32Show Bing crawl stats for 28 days: pages crawled per day, crawl errors, 4xx and 5xx counts, pages in index and robots.txt blocks. Anything trending the wrong way?get_bing_crawl_stats
33List the sitemaps and feeds submitted to Bing and when each was last crawled.list_sitemaps
34Compare Bing clicks by page for the last 28 days against the previous 28 and list the biggest losers.compare_search_periods
35Find Bing low-CTR queries and suggest title changes that would not hurt the same page in Google.get_search_opportunities

Regex and segmentation prompts (36–40)

query_search_analytics accepts up to ten filters on query, page, country, device or search appearance, including includingRegex and excludingRegex. Filters combine with AND, so use regex alternation (a|b) when you need OR. Patterns use RE2 syntax, which has no lookaheads or backreferences; Google’s filtering help page covers the rules, and our Search Console regex cheat sheet has tested patterns.

36. Branded vs non-branded performance

Try this prompt
Run query_search_analytics for the last 90 days with dimension query, limit 200 and a query filter excludingRegex \b(acme|akme|acmee|acmeapp)\b. Then run it again with includingRegex and the same pattern. Compare clicks, CTR and position for branded and non-branded queries.

Search Console’s own branded queries filter exists only in the interface, so through the API a brand regex is the way to split them. The branded vs non-branded guide covers misspellings and product names.

#PromptFilter or setting
37Show long-tail queries of five words or more for 90 days, with their pages.includingRegex ^(\S+\s+){4,}\S+$
38Compare the blog and docs sections: group pages by folder and total clicks, CTR and position for each.page includingRegex ^https://example\.com/(blog|docs)/
39Group the last 90 days by search appearance to see which result features I appear in, then show the top pages for the largest one.dimension searchAppearance
40Which pages earn clicks from Google Discover in the last 28 days, and what do they have in common?searchType “discover”, dimension page

Save your best prompts as a Claude skill or scheduled task

Once a prompt earns its place, stop retyping it. Three options, from lightest to most automated:

  • Claude skills. A skill is a folder of instructions Claude loads when a task calls for it. Skills are available on all Claude plans and need code execution turned on. Put your property name, house rules (“clicks only for year-over-year”, “limit 50”) and prompts 1, 7 and 26 in one skill.
  • Cowork scheduled tasks. On paid plans, scheduled tasks can run a prompt hourly, daily, weekly or on weekdays, with the same connected tools and skills as a normal Cowork task. They run remotely, so they keep going while your computer sleeps, unless the task needs local files or apps.
  • Claude Code. Save a prompt as .claude/skills/seo-weekly/SKILL.md in your repo and run it as /seo-weekly, or from cron with claude -p. The Claude Code SEO guide walks through it.

In ChatGPT, keep your house rules at the top of a project’s instructions so every conversation starts with the right property and limits.

Prompt hygiene: tool calls, row limits and checking the numbers

Know what each prompt costs

Every tool call counts against your plan, and a multicall counts each tool inside it. The Free plan’s 30 calls a month cover a weekly health check and report with room to spare; batch inspections are where the count climbs.

Prompt typeTypical tool calls
Health check (1), Bing crawl stats (32)1
Opportunities mapped to pages (7, 8)2
Weekly report in one multicall (26)4
Batch URL Inspection (20, 23)One per URL, plus any lookup

Check the numbers before you share them

  • Query tables won’t add up to totals. Google leaves anonymised queries out of query rows but keeps them in chart totals, and the API returns top rows, not every row. Google’s data discrepancies page lists the reasons, and our Search Console metrics guide explains each number.
  • Dates are in Pacific Time and the latest days are preliminary. Match both when you compare with the interface.
  • Ask for the call. If a number looks wrong, ask “which tool, which property and which dates did you use?” Most mismatches are a different property or range. The Search Analytics API reference documents every dimension and filter the tools pass through.

Ready to try them on your own site? Start free with one Google or Bing account and 30 tool calls a month.

Frequently asked questions

What are the best SEO prompts for Claude?

The best ones name the property, the date range and the tool to use, and ask for a specific output such as a table or a ranked list. A 28-day health check, low-CTR title rewrites, striking distance pages grouped by URL and a batch URL Inspection are the four most people reuse every week.

Do these prompts work in ChatGPT?

Yes, once the same MCP server is connected. In ChatGPT, remote MCP servers are added as plugins, and availability depends on your plan and workspace settings. The tool names and parameters are identical, so the prompts work unchanged.

Why does Claude give different numbers from Search Console?

Usually because the date range differs, the query table leaves out anonymised queries, or the data is aggregated by page instead of by property. Ask the assistant to show the exact tool call and dates, then compare with Performance › Search results set to the same dates in Pacific Time.

How many tool calls does a prompt use?

Most prompts here use one or two. A multicall counts every tool inside it, so a weekly report that bundles four tools uses four calls, and inspecting five URLs uses five. The Free plan includes 30 tool calls a month.

Can I schedule these prompts to run weekly?

Yes. In Claude, Cowork scheduled tasks on paid plans can run a saved prompt hourly, daily, weekly or on weekdays with access to your connectors. In Claude Code, save the prompt as a skill and run it from cron with claude -p.