SEO Traffic Diagnosis
Diagnose why organic traffic moved (down, flat, or unexpectedly up) using Ahrefs MCP combined with Search Console and analytics data. Stack-agnostic. Produces a root-cause diagnosis and an action plan.
When to use
- Organic traffic dropped sharply
- Organic traffic has been flat for months despite content investment
- After a known Google algorithm update
- After a migration, replatform, or domain change
- After a deploy that touched routing, redirects, or rendering
- When a competitor is visibly taking organic share
- When a single page dropped from a ranked position
- When stakeholders need an explanation, fast
When NOT to use
- Routine performance reporting (use
analytics-strategy)
- Pre-emptive content planning (use
seo-content-gap-audit)
- Backlink-only investigations (use
seo-backlink-audit)
- Technical issue triage outside of traffic concerns (use
seo-site-health-audit)
Required inputs
- Description of the symptom (what changed, when, magnitude)
- Date the change started (best estimate)
- Recent SEO history: deploys, migrations, content changes, link campaigns
- Access to Ahrefs MCP, Search Console, and analytics
- Confirmation the change is real (not a tracking artifact)
The framework: 5 layers of diagnosis
A traffic change has one or more root causes. Move through the layers in order. Stop when you have enough evidence.
Layer 1: Confirm the change is real
Before diagnosing, rule out:
- Tracking gaps (analytics outages, tag manager issues)
- Bot traffic changes
- Reporting comparison errors (different date ranges, wrong segment)
- Seasonality (compare year-over-year, not just month-over-month)
- Holiday or weekday effects
Cross-check Search Console clicks against analytics organic sessions. Significant divergence often points to a tracking issue, not a real traffic change.
Layer 2: Localize the change
Where is the change happening?
Segment by:
- Country and language
- Device (mobile, desktop, tablet)
- Page or section (homepage, blog, product, category)
- Query type (branded vs non-branded)
- Landing page
A change in one segment requires different diagnosis than a change everywhere.
| Pattern |
Likely cause |
| One country dropped |
Local algorithm update, hreflang issue, geo redirect issue |
| Mobile dropped, desktop flat |
Mobile usability or page speed regression |
| One section dropped |
Topical algorithm update or section-specific quality issue |
| Branded queries dropped |
Brand-level issue: site outage, reputation, manual action |
| Non-branded dropped |
Algorithmic ranking issue |
| Single page dropped |
Page-level issue: content, technical, or competitive |
| Sitewide dropped |
Sitewide issue: penalty, technical, migration, or algorithm |
Layer 3: Page-level analysis
For affected pages, audit:
- Position changes per ranked keyword (Ahrefs Rank Tracker history)
- SERP composition changes (more ads, AI overviews, featured snippets, video)
- Click-through rate changes
- Index status (Search Console coverage)
- Crawl errors and accessibility
- Recent content changes
- Internal link changes
- Backlink changes (lost links, redirect chains)
A page can lose traffic without losing rank if SERP composition changed.
Layer 4: Technical analysis
Did anything break technically?
Check:
- Robots.txt changes
- Canonical tag changes
- Meta robots changes (accidental noindex)
- Redirect chains and loops
- Render issues (especially for JS-heavy frameworks)
- Site speed regressions
- Hreflang errors
- Sitemap freshness
- HTTP status codes (4xx, 5xx spikes)
- Server log evidence of crawl behavior changes
Recent deploys are the prime suspect. Compare deploy dates to traffic change dates.
Layer 5: External analysis
If layers 1-4 do not explain the change, look outward.
- Algorithm update calendar (cross-reference timing)
- Competitor moves (new content, new SERP features they captured)
- Industry trend (declining search demand for the topic)
- Manual action (Search Console security and manual actions)
- Negative SEO (sudden link velocity changes)
External-factor diagnosis benefits from competitive context: did your traffic drop while competitors held steady (suggests an algorithm-specific issue), or did the entire vertical lose ground (suggests a user-behavior shift)? Similarweb shows competitor traffic trends; Ahrefs shows competitor SERP movement; pairing both surfaces whether the issue is yours alone or the category's.
Workflow
- Confirm the symptom. Get exact dates, magnitude, segment if known.
- Validate the data. Layer 1 checks. Rule out tracking and seasonality.
- Localize. Layer 2. Segment until the pattern is clear.
- Page-level dive. Layer 3 on the most affected pages.
- Technical check. Layer 4. Recent deploys, robots, canonicals, redirects.
- External check. Layer 5. Algorithm updates, competitors, industry.
- Build the hypothesis. State the cause as a single sentence.
- Validate the hypothesis. Find the evidence that confirms or refutes it. See
references/diagnosis-checklist.md.
- Action plan. Specific fixes mapped to specific evidence.
- Communicate. Write up the diagnosis. Stakeholders want clarity, not exhaustive analysis.
Failure patterns
- Jumping to algorithm update. "It must be the algorithm" is the lazy answer. Eliminate technical and page-level causes first.
- Solving the wrong problem. A drop diagnosed as "content quality" when the real cause was an accidental noindex on a deploy. Validate the hypothesis before fixing.
- No baseline for "normal." Without a baseline, every fluctuation looks alarming. Establish what normal noise looks like before reacting.
- Treating one page as the site. Site-wide and page-level diagnoses are different. Confirm scope first.
- Ignoring branded vs non-branded. A drop in branded queries means a brand-level problem. A drop in non-branded means an SEO problem. Different teams own them.
- Comparing wrong date ranges. Comparing 28 days to the previous 28 days during a holiday distorts the picture. Use year-over-year for seasonal businesses.
- Stopping at correlation. A deploy and a drop on the same day is a strong correlation, not proof. Find the mechanism.
- Single-source diagnosis. Ahrefs sees position. Search Console sees clicks and queries. Analytics sees behavior. Logs see crawl. Use them together.
- Premature reassurance. Telling stakeholders "it is just an algorithm update, will recover" without evidence sets up a worse conversation later.
Output format
A diagnosis document with:
- Summary. What changed, when, magnitude, root cause in one paragraph.
- The symptom. Charts and segment breakdowns.
- Layer-by-layer findings. What each layer ruled in or out.
- Root cause hypothesis. Single statement with evidence.
- Action plan. Ordered fixes with owners and timelines.
- Recovery forecast. Realistic expectations on timeline and ceiling.
- Monitoring plan. What to watch for confirmation of recovery.
Length: 4-10 pages. Stakeholders read this fast.
Reference files
references/diagnosis-checklist.md - Layer-by-layer diagnostic checklist with the specific data to pull at each layer and how to interpret each signal.
1---2name: seo-traffic-diagnosis3description: Diagnose organic traffic changes (drops, stalls, or unexpected wins) using Ahrefs MCP plus Search Console data. Use this skill when traffic suddenly dropped, has been flat despite investment, after an algorithm update, after a migration or deploy, or when a competitor seems to be taking share. Triggers on traffic dropped, traffic decline, traffic stalled, organic decline, lost rankings, why is traffic down, algorithm update, post-migration traffic loss, traffic diagnosis. Also triggers when stakeholders are panicking about analytics.4---5
6# SEO Traffic Diagnosis
7
8Diagnose why organic traffic moved (down, flat, or unexpectedly up) using Ahrefs MCP combined with Search Console and analytics data. Stack-agnostic. Produces a root-cause diagnosis and an action plan.
9
10---
11
12## When to use
13
14- Organic traffic dropped sharply
15- Organic traffic has been flat for months despite content investment
16- After a known Google algorithm update
17- After a migration, replatform, or domain change
18- After a deploy that touched routing, redirects, or rendering
19- When a competitor is visibly taking organic share
20- When a single page dropped from a ranked position
21- When stakeholders need an explanation, fast
22
23## When NOT to use
24
25- Routine performance reporting (use `analytics-strategy`)
26- Pre-emptive content planning (use `seo-content-gap-audit`)
27- Backlink-only investigations (use `seo-backlink-audit`)
28- Technical issue triage outside of traffic concerns (use `seo-site-health-audit`)
29
30---
31
32## Required inputs
33
34- Description of the symptom (what changed, when, magnitude)
35- Date the change started (best estimate)
36- Recent SEO history: deploys, migrations, content changes, link campaigns
37- Access to Ahrefs MCP, Search Console, and analytics
38- Confirmation the change is real (not a tracking artifact)
39
40---
41
42## The framework: 5 layers of diagnosis
43
44A traffic change has one or more root causes. Move through the layers in order. Stop when you have enough evidence.
45
46### Layer 1: Confirm the change is real
47
48Before diagnosing, rule out:
49
50- Tracking gaps (analytics outages, tag manager issues)
51- Bot traffic changes
52- Reporting comparison errors (different date ranges, wrong segment)
53- Seasonality (compare year-over-year, not just month-over-month)
54- Holiday or weekday effects
55
56Cross-check Search Console clicks against analytics organic sessions. Significant divergence often points to a tracking issue, not a real traffic change.
57
58### Layer 2: Localize the change
59
60Where is the change happening?
61
62Segment by:
63
64- Country and language
65- Device (mobile, desktop, tablet)
66- Page or section (homepage, blog, product, category)
67- Query type (branded vs non-branded)
68- Landing page
69
70A change in one segment requires different diagnosis than a change everywhere.
71
72| Pattern | Likely cause |
73| --- | --- |
74| One country dropped | Local algorithm update, hreflang issue, geo redirect issue |
75| Mobile dropped, desktop flat | Mobile usability or page speed regression |
76| One section dropped | Topical algorithm update or section-specific quality issue |
77| Branded queries dropped | Brand-level issue: site outage, reputation, manual action |
78| Non-branded dropped | Algorithmic ranking issue |
79| Single page dropped | Page-level issue: content, technical, or competitive |
80| Sitewide dropped | Sitewide issue: penalty, technical, migration, or algorithm |
81
82### Layer 3: Page-level analysis
83
84For affected pages, audit:
85
86- Position changes per ranked keyword (Ahrefs Rank Tracker history)
87- SERP composition changes (more ads, AI overviews, featured snippets, video)
88- Click-through rate changes
89- Index status (Search Console coverage)
90- Crawl errors and accessibility
91- Recent content changes
92- Internal link changes
93- Backlink changes (lost links, redirect chains)
94
95A page can lose traffic without losing rank if SERP composition changed.
96
97### Layer 4: Technical analysis
98
99Did anything break technically?
100
101Check:
102
103- Robots.txt changes
104- Canonical tag changes
105- Meta robots changes (accidental noindex)
106- Redirect chains and loops
107- Render issues (especially for JS-heavy frameworks)
108- Site speed regressions
109- Hreflang errors
110- Sitemap freshness
111- HTTP status codes (4xx, 5xx spikes)
112- Server log evidence of crawl behavior changes
113
114Recent deploys are the prime suspect. Compare deploy dates to traffic change dates.
115
116### Layer 5: External analysis
117
118If layers 1-4 do not explain the change, look outward.
119
120- Algorithm update calendar (cross-reference timing)
121- Competitor moves (new content, new SERP features they captured)
122- Industry trend (declining search demand for the topic)
123- Manual action (Search Console security and manual actions)
124- Negative SEO (sudden link velocity changes)
125
126External-factor diagnosis benefits from competitive context: did your traffic drop while competitors held steady (suggests an algorithm-specific issue), or did the entire vertical lose ground (suggests a user-behavior shift)? Similarweb shows competitor traffic trends; Ahrefs shows competitor SERP movement; pairing both surfaces whether the issue is yours alone or the category's.
127
128---
129
130## Workflow
131
1321. **Confirm the symptom.** Get exact dates, magnitude, segment if known.
1332. **Validate the data.** Layer 1 checks. Rule out tracking and seasonality.
1343. **Localize.** Layer 2. Segment until the pattern is clear.
1354. **Page-level dive.** Layer 3 on the most affected pages.
1365. **Technical check.** Layer 4. Recent deploys, robots, canonicals, redirects.
1376. **External check.** Layer 5. Algorithm updates, competitors, industry.
1387. **Build the hypothesis.** State the cause as a single sentence.
1398. **Validate the hypothesis.** Find the evidence that confirms or refutes it. See [`references/diagnosis-checklist.md`](references/diagnosis-checklist.md).
1409. **Action plan.** Specific fixes mapped to specific evidence.
14110. **Communicate.** Write up the diagnosis. Stakeholders want clarity, not exhaustive analysis.
142
143---
144
145## Failure patterns
146
147- **Jumping to algorithm update.** "It must be the algorithm" is the lazy answer. Eliminate technical and page-level causes first.
148- **Solving the wrong problem.** A drop diagnosed as "content quality" when the real cause was an accidental noindex on a deploy. Validate the hypothesis before fixing.
149- **No baseline for "normal."** Without a baseline, every fluctuation looks alarming. Establish what normal noise looks like before reacting.
150- **Treating one page as the site.** Site-wide and page-level diagnoses are different. Confirm scope first.
151- **Ignoring branded vs non-branded.** A drop in branded queries means a brand-level problem. A drop in non-branded means an SEO problem. Different teams own them.
152- **Comparing wrong date ranges.** Comparing 28 days to the previous 28 days during a holiday distorts the picture. Use year-over-year for seasonal businesses.
153- **Stopping at correlation.** A deploy and a drop on the same day is a strong correlation, not proof. Find the mechanism.
154- **Single-source diagnosis.** Ahrefs sees position. Search Console sees clicks and queries. Analytics sees behavior. Logs see crawl. Use them together.
155- **Premature reassurance.** Telling stakeholders "it is just an algorithm update, will recover" without evidence sets up a worse conversation later.
156
157---
158
159## Output format
160
161A diagnosis document with:
162
1631. **Summary.** What changed, when, magnitude, root cause in one paragraph.
1642. **The symptom.** Charts and segment breakdowns.
1653. **Layer-by-layer findings.** What each layer ruled in or out.
1664. **Root cause hypothesis.** Single statement with evidence.
1675. **Action plan.** Ordered fixes with owners and timelines.
1686. **Recovery forecast.** Realistic expectations on timeline and ceiling.
1697. **Monitoring plan.** What to watch for confirmation of recovery.
170
171Length: 4-10 pages. Stakeholders read this fast.
172
173---
174
175## Reference files
176
177- [`references/diagnosis-checklist.md`](references/diagnosis-checklist.md) - Layer-by-layer diagnostic checklist with the specific data to pull at each layer and how to interpret each signal.