Skip to main content
Mythos

Ranking Opportunities Audit is a structured agent prompt that uses πŸ“GSC MCP to surface πŸ“striking distance queries, CTR ceiling problems, and brand-versus-non-brand opportunity classes for a verified site over a defined trailing window, with validation steps that account for GSC's known data inaccuracies (phantom pages, anonymized queries, noisy position averages on low-impression rows).

The audit identifies the highest-leverage ranking improvements available without commissioning new content. An agent invokes it inside a content creation loop, the GSC tools surface the data, and the output is a prioritized list of opportunities tagged by class with the current ranking page named so on-page changes can be scoped.

Three opportunity classes structure the analysis, all subject to a minimum-impressions floor of 100 over the window because GSC position averaging is noisy below that threshold. Striking distance covers queries in positions 4-20. CTR ceiling covers queries at position 3 or better but underperforming for that position (rough rule: position 1 expected β‰₯ 25%, position 2 β‰₯ 15%, position 3 β‰₯ 10%) β€” a title or snippet problem rather than a ranking problem. Brand-versus-non-brand separates queries containing the site's name from growth queries, since brand queries rank by name recognition rather than content quality and should be excluded from opportunity-finding.

The prompt below is designed for paste-into-Claude use. The agent calls gsc_top_queries, validates that each candidate ranking page actually exists on the live site (GSC reports phantom URLs that have been deleted, redirected, or never existed canonically), optionally drills into gsc_search_analytics for query-to-page mapping, and returns a ranked list of findings, each phrased as a hypothesis with the check that would confirm it. Replace the site URL and brand keyword for audits of other properties.

Audit ranking opportunities for `sc-domain:mythos.one` over the last 90 days. Use the gsc tools as follows:
1. `gsc_top_queries(days=90, limit=100)` for the full query landscape.
2. Identify three classes of opportunity from the results. All three require impressions β‰₯ 100 over the window β€” GSC position averaging is unreliable below that threshold:
   - **Striking distance**: position between 4 and 20. These are queries one well-placed update could move into the top 3.
   - **CTR ceiling**: position ≀ 3 with CTR below expected for that position (rough rule: pos 1 β‰₯ 25%, pos 2 β‰₯ 15%, pos 3 β‰₯ 10%). These are title/snippet problems, not ranking problems.
   - **Brand vs non-brand**: separate queries containing "mythos" from the rest. Non-brand queries are growth queries.
   Then screen for strategic value before anything reaches the list β€” a query can clear both floors and still be worthless. Ask whether the SERP is winnable (an AI Overview or an image/video pack that answers the query outright means the click is not available at any position) and whether the traffic serves what the site is actually for. Drop what fails, and say what you dropped and why.
3. For each candidate opportunity, run `gsc_search_analytics(dimensions=["query","page"], filters=[{"dimension":"query","operator":"equals","expression":"<the query>"}])` to find which page is currently ranking.
4. **Validate each ranking page is real before recommending action.** First, exclude obvious phantoms by URL structure (query strings, fragments, trailing-slash mismatches, alternate protocols/subdomains, path segments the site doesn't actually use) without any fetch β€” flag those as PHANTOM and move on. For the remainder, run concurrent HEAD requests to verify existence (e.g., `curl --head ... | xargs -P 10` in shell, or `httpx` with a thread pool in Python; 100 URLs completes in under 10 seconds). URLs returning 404 or redirecting away from themselves are PHANTOMS β€” exclude from the recommendation list. Do NOT load a sitemap into context for this check β€” at any meaningful site scale the sitemap is multi-megabyte and would consume 200K+ tokens. If a real page exists but isn't the canonical one for the query, mark as a query-to-page mismatch separately. Run this validation against the FINAL candidate set, not the first one β€” pages that surface later, during per-page aggregation rather than the initial query sweep, are exactly the ones that slip through unvalidated and reach the output as if they were real.
5. Output a prioritized list of 10 findings with: query, position, impressions, CTR, opportunity class, verified ranking page URL, and **a hypothesis plus the check that would confirm it β€” never a bare instruction.** GSC shows where a page underperforms; it cannot see why, and it cannot see authorial intent. Two pages splitting one query may be accidental duplication or deliberate hub-and-spoke architecture, and the ranking data looks identical either way. So write "X and Y split these queries β€” read both before consolidating; the Notes field usually states whether the split was deliberate" rather than "consolidate X into Y." Whoever executes a finding must read the underlying memo first; the audit sees rankings, not intent. Preface the output with a one-line note that GSC suppresses low-volume queries for privacy (typically 20-50% of total impression volume), so the visible list is incomplete by design and totals should not be claimed as exhaustive.
Skip the brand-dominant queries (e.g., "mythos", "mythos ai") in opportunity-finding β€” those rank by virtue of name, not content quality. Focus on queries where content/SEO work could change the result.

This is the first lens BotBrian runs when asked about SEO performance for a site already in πŸ“GSC MCP. The 90-day window catches drift; the three-class split prevents wasted optimization effort; the validation step keeps phantom URLs out of recommendations.

Contexts

Created with πŸ’œ by One Inc | Copyright 2026