Ch 21 — Diagnosis: the master workflow¶
Part VII — Measurement & diagnosis · The Technical SEO Reference
Playbook coupling:
seo-checklist.mdPhase 7 (lines 202–216) already carries the operational sequence — real? → update overlap? → impressions-vs-clicks split → segment → route by cause. This chapter is that sequence's engine room: Google's debugging-search-traffic-drops doc in full, the drop-shape taxonomy, the "currently not indexed" playbook (deferred here from Ch 7), and the master symptom index compiled from every chapter — the book's dispatch table. The playbook stays the runbook; run it, and come here when a step needs mechanics.
Diagnosis before treatment. The most expensive mistake in SEO is fixing the wrong cause — shipping content rewrites for what was a robots.txt regression, or "recovering" from a core update that was actually seasonality. The discipline is: establish the drop is real, establish its shape, establish its layer (tracking → display → ranking → indexing → crawling → infrastructure), and only then open the matching chapter.
21.1 Google's cause taxonomy — the official list¶
🟢 From Debugging drops in Google Search traffic (2025-12-10, fetched live). The named causes:
- Algorithmic update — "Google is always improving how it assesses content and updating its search ranking and serving algorithms accordingly." → playbook Phase 7 step 5; quality track (Phase 3); spam updates → Ch 18 §18.5.
- Technical issues — "errors that can prevent Google from crawling, indexing, or serving your pages to users. For example, server availability, robots.txt fetching, 'page not found'" → Chs 2–4, 6–9.
- Security issues — "Google may alert users before they reach your site" → Ch 17.
- Spam issues — "your content might rank lower in results or not appear" → Ch 18.
- Seasonality and changing interests — "changes in user behavior will change the demand for certain queries."
- Site moves and migrations — "ranking fluctuations while Google recrawls and reindexes" → Ch 16.
21.2 Reading the drop's shape¶
🟢 The doc's own pattern language, extended (⚪) into the working taxonomy:
| Shape | Google's framing | Likely layer |
|---|---|---|
| Cliff (step function, one day) | "Large drop from an algorithmic update, site-wide security or spam issue" | Update (check dashboard dates), manual action (check GSC), or a release — ⚠️ correlate with your own deploy log first (→ Ch 20 §20.3); self-inflicted cliffs outnumber Google-inflicted ones |
| Slide (weeks-long decay) | "Technical issue across your site, changing interests" | Progressive deindexing (crawl failures compounding → Ch 2), quality reassessment, or competitor gains |
| Wave (repeating curve) | "Seasonality" | Demand — verify with YoY, not period-over-period |
| Notch (drop + recovery) | — | Outage, temporary 5xx throttling (→ Ch 16 §16.9), or a reverted release |
| Migration signature | "ranking fluctuations while Google recrawls" | Expected settling (→ Ch 16 §16.10); escalate only against the crossover benchmarks |
21.3 The method — establishing "real" and localizing it¶
🟢 The doc's procedure (matching playbook Phase 7 steps 1–4): 1. Context window: "Choose the Date filter… and select Last 16 months"; compare "last 3 months to previous period" and "last 3 months year over year." 2. Dashboard overlap: "We post about notable improvements to our systems on our list of ranking updates page; check it" — the Search Status Dashboard ranking-updates list. ⚠️ During a rollout: observe, don't panic-ship (playbook line 214: wait a full week after rollout completes). 3. Split impressions vs clicks (playbook mental model #4): impressions steady + clicks down = display layer → Ch 13 §13.6's audit order. Both down = ranking/indexing → continue. 4. Segment: 🟢 "Choose the Search type filter" (web vs Images vs Video vs News — ⚠️ and separate Discover entirely, its swings explain many mysteries → Ch 14 §14.16); then queries, URLs, countries, devices, search appearances. ⚪ The playbook adds branded/non-branded via the Branded queries filter — a collapse confined to branded queries is an entity/identity problem (see the May 2026 bk8mypro case), not a content problem. 5. ⚠️ Before all of the above: tracking sanity (analytics tag intact? GSC property scope unchanged? → Ch 19 §19.1's property-scope trap).
21.4 The "currently not indexed" playbook (deferred from Ch 7)¶
The two Page-indexing statuses that dominate large-site diagnosis:
- Discovered – currently not indexed: Google knows the URL, hasn't crawled it. 🟢 The official wording is already a crawl-economics statement: "Typically, Google wanted to crawl the URL but this was expected to overload the site; therefore Google rescheduled the crawl" (Page indexing report help, verified live; full taxonomy → Ch 7 §7.12). At scale it's a crawl-economics verdict: demand didn't justify the fetch. Work: infinite-space audit (→ Ch 10 §10.9), crawl-budget levers for genuinely large sites (→ Ch 2 §2.5), internal-link prominence for the URLs that matter (→ Ch 10 §10.4), sitemap segmentation to measure per-section (→ Ch 9).
- Crawled – currently not indexed: fetched, then declined. 🟢 Officially normal in moderation: "It may or may not be indexed in the future; no need to resubmit this URL for crawling" (same help page). The quality-adjacent one. Work: sample the URLs — thin/templated/near-duplicate content clusters (→ Ch 8: is Google folding them into canonicals instead? different fix), soft-404 shells (→ Ch 6 §6.6), rendered-content emptiness (→ Ch 6 §6.14). ⚠️ At portfolio scale, a rising Crawled-not-indexed share on a section is an early quality signal that precedes ranking losses — prune or improve before the core update does it for you (playbook line 215's deletion-as-last-resort discipline applies).
- ⚪ Index-bloat method: inventory indexable URLs by template class; for each class ask what query it earns; classes with no answer get noindex/consolidation/404 by the Ch 7 §7.7 decision tree. Measured via path-scoped properties (→ Ch 19 §19.1) and sitemap segmentation.
21.5 The master symptom index¶
Compiled from every chapter's closing table — the book's dispatch surface. Organized by what you observe first.
Traffic / SERP observations | Symptom | First hypothesis | Go to | |---|---|---| | Cliff-drop on a known update date, no GSC entries | Algorithmic (core → quality; spam update → policies) | §21.1, Ch 18 §18.5, playbook Phase 3 | | Cliff-drop + Manual Actions entry | Manual action — scope + reconsideration | Ch 18 §18.2–18.4 | | Cliff-drop hours after a deploy | Release regression (noindex/robots/canonical) | Ch 20 §20.2 | | Impressions steady, clicks down | Display layer: title rewrite, snippet change, date regression, lost favicon, SERP furniture/AIO | Ch 13 §13.6 | | Branded queries collapsed, generic fine | Entity/identity conflict | Ch 13 §13.4, playbook Phase 0 | | Old domain still ranking after migration | Alternate names — documented, normal | Ch 16 §16.2 | | Wrong country's URL ranking | hreflang ignored (reciprocity/codes/head validity) | Ch 11 §11.13 | | Traffic from languages you never localized | Translated results, not a bug | Ch 11 §11.12 | | Discover traffic vanished, Search stable | Discover volatility, image-preview settings, date/byline regression | Ch 14 §14.16, Ch 13 §13.3 | | "This site may be hacked" label | Security Issues category work | Ch 17 §17.5–17.9 |
Indexing observations | Symptom | First hypothesis | Go to | |---|---|---| | Pages vanish within days, sitewide | 5xx/DNS-level failures, robots.txt 5xx, WAF blocking | Ch 2, Ch 3, Ch 4 | | Discovered–not indexed ballooning | Infinite URL space / crawl economics | §21.4, Ch 10 §10.9 | | Crawled–not indexed rising on a section | Quality/duplication verdict forming | §21.4, Ch 8 | | Indexed-though-blocked (robots.txt) | Crawl-block ≠ index-block | Ch 3, Ch 7 §7.7 | | Wrong canonical chosen | Signal conflict (redirects/canonicals/hreflang/HTTPS conditions) | Ch 8, Ch 17 §17.1 | | JS content missing from index | Render skips, byte budget, WRS contract | Ch 6 | | Spam pages indexed under your domain | Hack (URL injection) or dangling-CNAME takeover | Ch 17 §17.7/§17.10 | | Staging/dev URLs indexed | Missing noindex discipline | Ch 7 §7.10, Ch 16 §16.5 | | Images/videos not indexed | src-only discovery / watch-page + thumbnail gates | Ch 14 §14.1/§14.10 | | Removed content resurfacing after ~6 months | Removals-tool expiry mistaken for permanent | Ch 7 §7.8, Ch 14 §14.9 |
Crawl observations | Symptom | First hypothesis | Go to | |---|---|---| | Crawl rate collapsed | 5xx/429 throttling, hosting move dip, WAF challenge pages | Ch 16 §16.9/§16.5, Ch 4 | | Crawl dominated by parameter URLs | Facet overcrawl | Ch 10 §10.8 | | "Googlebot" abusing the site | Verify before concluding — usually an impostor | Ch 5 §5.4, Ch 20 §20.1 | | New content discovered slowly | Internal-link depth, sitemap lastmod trust, mobile-version link gaps | Ch 10, Ch 9, Ch 15 §15.7 | | Metadata frozen for weeks | Long-running 503s; WRS 30-day cache for JS-driven tags | Ch 16 §16.9, Ch 6 §6.4 |
Display/data observations | Symptom | First hypothesis | Go to | |---|---|---| | Google rewriting titles | Title-defect triggers + substituted source | Ch 13 §13.1 | | Wrong date shown | Visible-vs-structured mismatch, unlabeled dates | Ch 13 §13.3 | | Rich results gone on one feature | Deprecation graveyard first, then markup | Ch 12 §12.5 | | GSC numbers don't reconcile between reports | Each report's counting rule (items/groups/samples/anonymized) | Ch 19 §19.3 | | CWV pass in lab, fail in field (or reverse) | Lab≠field systematics | Ch 15 §15.4 |
21.6 Case discipline¶
⚪ House rules, earned in this project's own history (reviews/96m-vs-maxim88-2026-08-03.md):
1. Before diagnosing any collapse: establish the site was live. Wayback answers in 30 seconds; it once explained a two-year "ranking mystery" (the site was a parked page).
2. Agent/tool findings are leads, not evidence — reproduce load-bearing claims against the live source before they enter a report.
3. One layer at a time, in order: tracking → display → ranking → indexing → crawling → infrastructure. Every skipped layer is a place the real cause hides.
4. Write the timeline first: deploys, update rollouts, migrations, seasonal baseline — most "mysteries" die on a one-page chronology.
Sources¶
Fetched live 2026-08-04 by the drafter; re-verified live 2026-08-04 by the V2 auditor: - Debugging drops in Google Search traffic (2025-12-10) — all §21.1–21.3 quotes verified verbatim, incl. the sketch captions (the doc's fourth caption, "Reporting glitch ¯\_(ツ)_/¯", maps to §21.3 step 5's tracking-sanity check) - Page indexing report help — V2 correction: the "may or may not be indexed… no need to resubmit" sentence belongs to Crawled – currently not indexed, not Discovered; §21.4 fixed accordingly Compiled: symptom tables from Chs 2–20 (each row's evidence lives in its home chapter); playbook Phase 7 (lines 202–216)