Query mismatch & search intent drift

Keyword cannibalisation tracking already flags manually tracked keywords competing against each other. This goes further, sweeping every query in your synced Search Console data — not just the ones you're tracking — to catch landing-page mismatches and broader cannibalisation, and separately flags pages whose own top-query mix has meaningfully shifted over the last couple of months.

What's included

  • Every synced query checked against whether a better-matching page already exists on your site
  • Query-level cannibalisation across the full query set, not just tracked keywords
  • Search intent drift — a page's top queries compared month over month

Keyword cannibalisation tracking already flags manually tracked keywords competing against each other. This goes further, sweeping every query in your synced Search Console data — not just the ones you're tracking — to catch landing-page mismatches and broader cannibalisation, and separately flags pages whose own top-query mix has meaningfully shifted over the last couple of months.

SEO Web Data query to page mismatch table and search intent drift comparison for domain.com

How it works

For landing-page mismatch, every query in your most recent Search Console snapshot is scored against your own crawled pages using the same content-matching approach the internal linking recommender already uses — just applied to a raw query string instead of a page. When some other page on your site is a clearly stronger match than the one Google is actually sending clicks to, it's flagged — but only when that better-matching page is confirmed to exist in your latest crawl, never guessed at. Query-level cannibalisation groups those same rows by query text and flags any query earning meaningful impressions across two or more distinct pages — the general case, with no need to have manually tracked that keyword first. Both build on the existing keyword cannibalisation report, tracked keywords shown first and this broader sweep underneath.

Search intent drift compares a page's top queries by impressions between its two most recently stored monthly snapshots and measures the overlap between the two sets. A meaningful drop in overlap is shown as possible drift — both query sets are shown side by side so you can judge for yourself what changed, rather than the app asserting a cause. It needs at least two months of snapshot history to say anything at all; with less, it says so plainly rather than guessing.

Why it matters

Two pages quietly competing for the same query is one of the most common reasons a page underperforms even when the site as a whole looks healthy — and it's easy to miss when you're only watching a handful of tracked keywords. Catching a landing-page mismatch means you can consolidate or redirect before the wrong page cements itself as Google's pick. And a page whose query mix has drifted is often the earliest, quietest sign that its content no longer matches what people are actually searching for — worth knowing well before rankings or traffic visibly move.

Extends keyword cannibalisation and pairs well with content audit & gap analysis.

Frequently asked questions

How is this different from keyword cannibalisation?

Keyword cannibalisation tracks keywords you've manually added; this sweeps every query in your synced Search Console data automatically, so it catches cases you never thought to track.

What if the better-matching page isn't in my latest crawl?

It's excluded from that comparison rather than assumed — a mismatch is only ever flagged against a page that's confirmed to exist in your most recent crawl.

How much history does intent drift need?

At least two months of stored monthly query snapshots. With less than that it tells you plainly there isn't enough history yet, rather than showing a false read.

Does this claim a query is definitely miscategorised?

No — every result is shown as a comparison for you to judge, never as a stated fact about what Google "should" be doing.

Part of: Advanced SEO Insights — higher-level analysis over data this app already collects, built to answer "what should I actually do next" — never presented as more certain than the facts behind it.