- Overview
- Diagnose drops
Diagnose traffic drops, decay and cannibalisation
When traffic changes, the first question is whether rankings, CTR or demand moved. These five tools answer it per page and per query.
The tools
Every tool that reads a property also takes site_url, so one connection covers every property your Google account can see. Ask for list_properties to get the exact strings: sc-domain:example.com and https://example.com/ are different properties with different data.
traffic_drops
Compares the current period with the one before it and labels each loss as a ranking loss, a CTR collapse or a demand decline, so you know whether to fix the page, the snippet, or nothing.
Ask: “Which pages lost the most traffic in the last 28 days, and why?”
| Parameter | Default | Note |
|---|---|---|
days | 28 | length of each period |
content_decay
One bad month is noise. This flags pages whose clicks fell in each of three consecutive 30-day periods.
Ask: “Which pages have lost clicks three months in a row?”
No parameters beyond the property (site_url).
cannibalization_check
Queries where more than one of your URLs collects impressions, with each URL's position and its share of the impressions. Two pages sharing a query is only a problem when they serve the same intent; the output shows you where to look.
Ask: “Am I cannibalising myself anywhere?”
| Parameter | Default | Note |
|---|---|---|
days | 28 | |
min_impressions | 50 | combined across the URLs |
check_alerts
Severity-rated alerts for position drops, CTR collapses, click losses and pages that disappeared from results, comparing the last week with the one before.
Ask: “Is there anything I should look at this week?”
| Parameter | Default | Note |
|---|---|---|
days | 7 | |
position_drop_threshold | 20 | positions |
ctr_drop_threshold | 50 | percent |
click_drop_threshold | 30 | percent |
ctr_vs_benchmark
Compares each page's CTR with a benchmark for its position and flags the ones well below it.
Ask: “Which pages underperform the usual CTR for where they rank?”
| Parameter | Default | Note |
|---|---|---|
days | 28 | |
min_impressions | 200 |
A real answer
From this hosted instance, run against the author's own site. Shown as it came back; rows are trimmed only where the caption says so.
cannibalization_check on the hosted instance, 13 October 2026; first 2 of 7 queries shown
{
"_meta": {
"source": "Google Search Console API (live data)",
"tool": "cannibalization_check",
"parameters": {
"days": 90,
"min_impressions": 10,
"site_url": "sc-domain:k-o.pro"
},
"note": "All numbers in this response come directly from the Google Search Console API. They are exact values, not estimates. Base your analysis only on this data. Do not invent or assume additional context."
},
"data": [
{
"query": "bulk redirect checker",
"totalImpressions": 98,
"pages": [
{
"page": "https://k-o.pro/bulk-redirect-checker/",
"clicks": 0,
"impressions": 21,
"position": 17.5
},
{
"page": "https://k-o.pro/bulk-redirect-checker",
"clicks": 0,
"impressions": 77,
"position": 77.1
}
]
},
{
"query": "url checker bulk",
"totalImpressions": 48,
"pages": [
{
"page": "https://k-o.pro/bulk-redirect-checker/",
"clicks": 0,
"impressions": 11,
"position": 83.9
},
{
"page": "https://k-o.pro/bulk-redirect-checker",
"clicks": 0,
"impressions": 37,
"position": 85.7
}
]
}
]
}
The competing pages are the same tool at two URLs that differ only by a trailing slash. For "bulk redirect checker" the slash version averages position 17.5 while the other averages 77.1 and takes most of the impressions: a canonicalisation fix, not a content one.
Connect it
Add https://gsc.k-o.pro/mcp to claude.ai or Claude
Desktop or to Claude Code, sign in with Google, and ask
any of the questions above.
About this page
Version 3.8.0 · page updated 13 October 2026 · changelog
