Contrarian SEO

AI is about to wreck your SEO. Not by writing badly - by writing too much.

Every "AI SEO" tool has one move: publish more. More posts, more pages, more thin content rotting in your sitemap until Google quietly stops trusting your whole domain. This daily agent does the opposite - it keeps your site lean, indexed and clean, every morning, on autopilot.

Built on two MCP servers: GSC Wizard + Screaming Frog

The uncomfortable truth

A clean 40-page site outranks a bloated 400-page content farm.

Pruning weak pages and strengthening strong ones is the most underrated ranking lever there is. Almost nobody automates it, because "delete pages" does not sell a content subscription. This agent does.

Video

Watch the daily agent in action

A full morning run - fresh crawl, indexing check, internal-link moves and pruning - condensed into a few minutes.

What it does every morning

No dashboard staring. No CSV archaeology. You wake up to one prioritised brief that pushes what works, fixes what slips, and removes what's dead.

Indexing status

What got crawled, what got dropped, what's stuck in "Discovered - currently not indexed". Caught the morning it happens, not months later.

Push harder with internal links

Finds page-2 and not-yet-indexed pages with real impressions, then names the exact strong pages that should link to them - with anchor text.

Shift links when indexed

The moment a page indexes or hits page 1, it re-points that internal link equity to whatever's next in the queue. Nothing sits idle.

Update deindexed content

Flags pages that fell out of the index and diagnoses why - thin, soft 404, canonical conflict or decay - then recommends rewrite, redirect or delete.

External link targets

Sets weekly outreach goals from the pages that actually move the needle - commercial intent, close to ranking, worth the backlink.

Update decaying content

Catches the slow bleed early and refreshes pages with the exact queries that are slipping - before they fall off page 1.

Remove non-performing content

Surfaces pages with near-zero clicks, impressions and internal links over 90 days - then prunes or consolidates so your crawl budget goes where it counts.

Two MCPs, one clean site

The GSC Wizard MCP tells you what Google actually does with your pages. The Screaming Frog MCP gives you the live crawl. Together they tell you which page needs a push - and exactly which pages should link to it.

The job GSC Wizard MCP Screaming Frog MCP
Is it indexed / chosen canonical Indexing tracker + bulk URL inspection -
Rankings, decay, page-2 wins Decay detection + opportunity scoring -
Internal inlinks per URL - Live crawl + inlinks export
Orphan pages (zero internal links) Impressions confirm it matters Crawl vs sitemap diff
Redirect chains, broken links, status codes - Crawl reports
Declared canonical vs Google-chosen Google-chosen canonical Declared canonical on-page

The Screaming Frog MCP ships natively in SEO Spider v24 and runs against the desktop app on your machine. The GSC Wizard MCP is hosted - connect mcp.gscwizard.com and sign in.

Copy & run

The daily agent prompt

Drop this into Claude Code (or a scheduled local session) with both MCPs connected. Swap in your domain. It returns one prioritised brief, ranked by traffic at risk.

daily-seo-agent.prompt
You are my daily SEO maintenance agent for [your-site.com].
Your job is NOT to create content. It is to keep the site lean, indexed
and clean. Pruning and strengthening what exists is the default; adding
pages is a last resort.

You have two data sources - use both, never guess:
- GSC Wizard MCP = what Google actually does (indexing, rankings, decay).
- Screaming Frog MCP = the live crawl (internal link graph, redirects,
  status codes, canonicals, orphans).

STEP 0 - FRESH CRAWL
- Use the Screaming Frog MCP to start a crawl of [your-site.com] (respect
  robots, follow internal links only). Wait for completion, check progress.
- Export: internal inlinks per URL, status codes, redirect chains,
  canonical tags, indexability, and the list of all crawled URLs.

STEP 1 - INDEXING STATUS (GSC and SF)
- GSC: get_indexing_tracker. Flag anything newly in "Discovered - not
  indexed", "Crawled - not indexed", or dropped from the index.
- GSC: bulk_inspect_urls on at-risk URLs to confirm status AND the
  Google-chosen canonical.
- SF cross-check: for each stuck URL, pull its current internal inlink
  count and crawl depth. Low inlinks / deep pages are your prime suspects.

STEP 2 - PUSH BORDERLINE PAGES HARDER (the core move)
- GSC: score_opportunities + get_ranking_changes -> pages on page 2 or
  "Discovered - not indexed" that have real impressions.
- SF: for each, read current inlinks. Then find 2-3 STRONG, already-indexed
  source pages (high inlinks, topically related) that do NOT yet link to it.
- Output exact source URL -> target URL pairs with suggested anchor text.

STEP 3 - DAILY INTERNAL-LINK HEALTH CHECK (SF)
- From the crawl, flag: broken internal links (4xx/5xx), redirect chains
  and loops, links pointing at non-canonical or non-indexable URLs, and any
  ORPHAN pages (present in GSC or sitemap but zero internal inlinks).
- Orphans that earn impressions in GSC = top priority to link in.
- Output as dev tickets, ranked by traffic at risk (GSC clicks).

STEP 4 - SHIFT LINK EQUITY WHEN A PAGE INDEXES
- For any page that newly indexed or reached page 1 since the last run,
  use the SF link graph to identify which internal links were pushing it,
  and recommend re-pointing that equity to the next borderline page.

STEP 5 - UPDATE DEINDEXED CONTENT
- For deindexed pages, diagnose WHY using both sources (thin? soft 404 in
  SF? canonical conflict? decayed in GSC?). Recommend rewrite / redirect /
  delete - never a blind "request indexing".

STEP 6 - EXTERNAL LINK TARGETS
- Pick this week's 3 highest-leverage pages (commercial intent + close to
  ranking in GSC, healthy internal links in SF). Set backlink outreach goals.

STEP 7 - DECAYING CONTENT
- GSC: find_decaying_content / get_decay_overview. Recommend a refresh
  (not a rewrite) with the exact queries that are slipping.

STEP 8 - REMOVE DEAD WEIGHT
- Cross-reference: pages with ~0 clicks AND ~0 impressions over 90 days
  (GSC) that also have near-zero internal inlinks and no topical value (SF).
  Recommend prune (410) or consolidate, with the canonical target.
  Before pruning, confirm in SF that nothing important links to it.

OUTPUT FORMAT:
- Top 3 priorities first: exact action + URL(s) + which MCP flagged it.
- Then the full checklist (indexing / internal links / decay / pruning).
- A "broken and redirect" dev-ticket block from today's crawl.
- End with a one-line verdict: leaner or bloatier than yesterday?
- Do NOT propose new content unless both sources confirm a real gap.

Want it hands-off? Wrap it in a scheduled daily session. The GSC Wizard MCP pulls from Google over the API; the Screaming Frog crawl runs locally against the SEO Spider desktop app (v24+, paid licence) on the same machine.

Field notes

The 2 indexing landmines Google never warns you about

Both quietly kill pages with no error in your reports. The daily prompt checks for both before they show up in your traffic.

1

"Discovered - currently not indexed" is a quality verdict, not a technical bug

Everyone treats this status like a crawl glitch and "fixes" it by resubmitting the URL or the sitemap. It does nothing - Google already found the URL and chose not to spend crawl budget on it. It is a soft signal that your sitewide trust is too low to justify crawling more.

AI content tools make it dramatically worse: every thin page dilutes crawl budget, so more of your URLs slide into this bucket. The fix is counterintuitive - prune and consolidate to raise sitewide quality, then point internal links from your strongest indexed pages at the stuck URL. That is exactly what Step 2 of the prompt does with the Screaming Frog link graph.

2

"Submitting" a URL has almost nothing to do with getting it indexed

The Request Indexing button, the Indexing API and IndexNow only queue a crawl. They do not force indexing or improve your odds. People burn hours - and hit the 2,000 inspections per day URL Inspection quota - hammering "submit" on pages that were never going to index because the page is thin, duplicate, or has a canonical conflict.

The silent killer hiding inside this: canonical mismatches. You declare page A as canonical, but Google decides page B is the real one ("Duplicate, Google chose different canonical than user"). Your page quietly drops and no error ever appears. Step 1 catches it two ways - GSC reads the Google-chosen canonical, Screaming Frog reads your declared one, and when they disagree you have found a leak weeks before traffic shows it.

Bonus, now visible in the crawl: if every URL in your sitemap carries today's lastmod date, Google stops trusting lastmod entirely and crawls you less. Only update it when content genuinely changes. Screaming Frog also surfaces redirect chains and links to non-indexable URLs - both quietly waste crawl budget and starve borderline pages of the equity they need to index.

Frequently asked questions

Why would I want my SEO agent to publish less, not more?

A clean site beats a big site. Thin, AI-generated pages dilute crawl budget and erode sitewide trust, which pushes more of your URLs into "Discovered - currently not indexed". Pruning weak pages and strengthening strong ones is one of the most underrated ranking levers there is - and almost no tool automates it because "delete pages" does not sell a content subscription.

Which MCP servers does the daily agent use?

Two. The GSC Wizard MCP supplies what Google actually does with your pages - indexing status, rankings, decay and performance, straight from your Search Console data. The Screaming Frog MCP supplies the live crawl - internal link graph, redirect chains, status codes and canonical tags. Together they tell you which page needs a push and exactly which pages should link to it.

Does "requesting indexing" force Google to index a page?

No. The Request Indexing button, the Indexing API and IndexNow only queue a crawl - they do not force indexing or improve your odds. If a page is thin, duplicate or has a canonical conflict, Google still filters it out after crawling. Internal links and a leaner site move the needle; resubmitting does not.

Can I run this on a schedule?

Yes. The GSC Wizard MCP is hosted and queries your data over the API. The Screaming Frog MCP runs against the SEO Spider desktop app on your own machine, so the daily run happens as a local session you can schedule. The agent returns one prioritised brief each morning instead of a dashboard you have to read.

Lean site. Clear signals. Better rankings.

Stop feeding the content firehose. Connect the GSC Wizard MCP, point it at your real Search Console data, and let the daily agent keep your site clean.