seo-debug skill on the URL, keyword, or cluster: give it the observation
(what’s wrong, on what surface, since when, by how much) and the expectation (what should be true and
why), and Pi walks a structured diagnosis — observation, then 2-4 hypotheses, then evidence per
hypothesis, then a differential diagnosis, then one specific next action — and saves a report to its /memory/. It is
built to not default to “must be backlinks”: most issues are intent mismatches, technical breaks,
SOP misses, cannibalization, CTR regressions, or fresh-page jitter, and each hypothesis has to pass a
specific evidence gate before it survives into the diagnosis. You need GSC connected first
(see 2.1.3 Connect Google Search Console) — Pi debugs from data, not vibes.
🎬 Video planned: ask Pi to seo-debug a URL, read the hypothesis verdict table, pick the fix, re-check. See the shot-list.
What Pi actually does
The skill runs an investigation, not a checklist:- Capture observation + expectation. Without both, it chases the wrong issue. It pulls the real numbers from GSC (clicks / impressions / avg position, period over period) rather than trusting the description.
- Verify the data before debugging the world. Most “ranking dropped” tickets die here: was it actually published, is the slug what you think, is the rank data fresh, is the GSC “drop” real (it has a ~3-day lag)? If a data error explains it, that is the diagnosis.
- Form 2-4 hypotheses and commit a kill criterion for each — from a library of ten patterns (fresh-page jitter, intent mismatch, cannibalization, technical break, SOP miss, competitive shift / link gap, manual action, seasonal drift, CTR regression, random fluctuation). It does not test all ten — it picks the most plausible given page age and cluster.
- Gather evidence per hypothesis against an explicit pass/fail gate. Circumstantial evidence is rejected. “Multiple pages on the same topic exist” is not cannibalization; “two of your URLs share the same high-impression query in GSC” is. A comparable-DR competitor outranking you on page-level links is a valid link-gap finding; a DR-83-vs-DR-32 gap is a domain-authority moat, not an actionable link gap.
- Differential diagnosis. Only CONFIRMED hypotheses (those that passed a gate) enter the diagnosis; the rest are explicitly REJECTED or marked INCONCLUSIVE. “Nothing is wrong” (fresh-page jitter, seasonal noise) is a valid, honest diagnosis — it won’t manufacture an action item.
- One specific next action with an owner and how to verify the fix, plus a saved report to
/memory/debug-<subject>-<orgId>-<date>.mdso the diagnosis is replicable.
When each diagnosis sends you elsewhere
The skill hands off cleanly:- Intent mismatch or a domain-authority moat leads to SERP-cliff analysis to find a winnable sub-query, and routes any replacement keyword through keyword evaluation.
- SOP miss or technical break leads to the deployment/technical checklist in 2.5.2 Technical SEO audit; re-request indexing via 2.5.3 Index a URL + submit a sitemap.
- Confirmed comparable-DR link gap — and only then — leads to 2.5.4 Link-building kickoff.
Real prompt
Give Pi the surface, the symptom, and what you expected — the more concrete the numbers, the sharper the diagnosis:Prerequisite: 2.1.3 Connect GSC · Sibling how-tos: 2.8.2 Get cited by AI (fanout) · 2.8.3 Bring your own DataForSEO key · Sends you to: 2.2.5 Keyword eval vs SERP-cliff · 2.5.2 Technical SEO audit · 2.5.4 Link-building kickoff