get_cannibalisation_report
Finds the queries where the project's connected Search Console property competes with itself: two or more of its own pages drawing impressions for the same query, splitting that query's clicks, click signals and ranking history across URLs. Read-only and FREE (no credits) — Search Console is first-party data and meters nothing. It does spend Google's per-property request quota, so it is rate limited per user. Requires Search Console to be connected for the project. Returns exactly ONE of four states, which are four different facts — branch on state before reading anything else: not_connected (nothing is bound; tell the user to connect a property), requires_reconnect (bound but the Google grant is revoked/expired; tell the user to reconnect), no_search_data (Search Console returned nothing for the window — an absence of data, NOT a clean bill of health), analysed (we looked; findings may legitimately be empty and coverage is the proof, including truncated when the property had more rows than one report can fetch). In each of the first three states nothing was measured at all, so never report any of them as 'no cannibalisation found'. Every per-page figure is Search Console's own for that (query, page) pair — ctr is a 0-1 fraction, position is a 1-based average, dates are Pacific Time and the last ~3 days are excluded for data lag. thresholds ships with each analysed report so you can say whether a threshold, rather than the absence of a problem, is why a query is missing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Finding order (default impressions). 'impressions' = most affected search demand first. 'position_spread' = smallest gap between the competing pages' average positions first, i.e. the pages Google rated most interchangeable. Both order by one measured quantity; there is deliberately no composite severity score. | |
| window | No | Analysis window (default last_28_days). Capped at three months on purpose — Search Console's longer ranges are NOT offered, because over a long window 'two pages received impressions' also describes a page migration, and calling that cannibalisation sends someone to consolidate pages that are already consolidated. The window end is backed off ~3 days for Search Console's data lag. | |
| projectId | Yes | Required. The MisarSEO project ID to scope this call to. Get one from list_projects. |