When Google Merges Two URLs, Your Link Data Doesn't
A search engine that decides two URLs are the same resource consolidates them: one of them becomes the canonical, and signals for both are attributed to it. Your link index does no such thing. It reports link counts and page-level metrics per URL, exactly as crawled, because a link index is a record of the graph rather than a model of anyone’s canonicalisation decisions.
This is why a page can show a respectable page-level authority in your tool and behave, in search, like it has no links at all — its links have been credited elsewhere. And it’s why the reverse happens: a page with almost no links of its own outranks its better-linked sibling, because it’s the selected canonical and it received the sibling’s signals.
Two different objects
The distinction worth holding: your link tool’s unit is a URL. A search engine’s unit, for ranking purposes, is closer to a cluster of URLs with one selected representative.
Most of the time the cluster has one member and the two views agree. They diverge whenever:
- A tracking-parameter URL and a clean URL both exist, and links landed on the parameterised one.
httpandhttps, orwwwand non-www, variants both resolve.- A trailing-slash and non-slash form both return 200.
- Uppercase and lowercase paths both work.
- A syndicated copy carries a cross-domain canonical to the original.
- A search engine ignores your self-referencing canonical and picks a different URL.
In every one of those cases the link index will show you rows split across variants, and the search engine will have consolidated them. Neither is wrong. They’re answering different questions.
What this does to your numbers
Page-level metrics get split. A URL’s page-level authority is computed from links to that URL string. If half the inbound links point at the ?ref= variant, the clean URL’s score reflects only the other half. See Page-Level Authority Metrics for what those scores are built from.
Referring-domain counts get split too, and not in a way that adds up cleanly. One source domain linking to two variants is one referring domain to the cluster, but appears in each variant’s report — so summing the two variants double-counts it. What Counts as One Referring Domain covers why de-duplication has to happen at the domain level rather than the row level.
Search Console shows you the consolidated view, which is the one place your data reflects the cluster rather than the URL. Its links report attributes to canonical URLs, which is precisely why it disagrees with your link tool. That disagreement is usually read as a coverage difference between indexes; some of it is this, and Reading the Search Console Links Report is the place to look at both.
Attribution breaks quietly. If you’re trying to establish whether a link did anything, and the link points at a URL that isn’t the canonical, then the page you’re measuring and the page you’re crediting are different objects. How to Tell Whether a Link Did Anything already argues this is hard; a canonicalisation mismatch makes it unanswerable, because your before-and-after is measured on a URL that never held the signal.
Detecting the split
The check is mechanical and worth running before any page-level analysis.
1. Establish the canonical for the URL you care about. Search Console’s URL inspection reports both your declared canonical and the search-engine-selected one. If they differ, you have a cluster and you know its representative. Note that this is the only reliable source for the selected canonical — it’s not something a third-party index reports, because no third party is party to the decision.
2. Enumerate the variants. In your link tool, query the URL as a prefix rather than an exact match, and look for rows on the same path with different casing, trailing slashes, schemes, hosts and query strings. Anything that appears is a variant that has attracted at least one link.
3. Aggregate deliberately. Pull the referring domains for each variant, concatenate, and de-duplicate on registrable domain. That figure — not the sum of the per-variant counts — is the cluster’s referring-domain count, and it’s the number that corresponds to what a search engine consolidated.
4. Look at first-seen dates. If the variant links are old and the clean URL is new, someone changed the URL scheme at some point and the redirect (if there is one) is doing the work. If they’re recent, something is still emitting the variant — a share button, a feed, an email template. That’s a fixable source.
A caveat on the aggregation: it gives you the cluster’s link profile, which is what you want, but it is a number you computed rather than one a vendor reported. Label it that way in any report. Building a Link Report You Can Defend applies — a derived figure needs its derivation written down beside it.
What the numbers won’t tell you
Two limits worth stating plainly.
The consolidation is not a documented arithmetic. That a search engine consolidates signals onto the canonical is documented behaviour. How much of each variant’s signal survives, and whether consolidation is complete, is not published. Anyone offering a fraction is inventing it. So you can say “these links are credited to the canonical” and you cannot say “the canonical therefore has the sum of the two page-level scores.”
Your tool’s aggregate site-level metrics may already handle variants differently from its URL-level ones. Some indexes normalise scheme and www at the host level while keeping the raw URL in link rows, which means a host-level count and a sum of URL-level counts won’t reconcile even after your own de-duplication. If the two don’t tie out, that’s a scoping convention, not a bug — Why Two Tools Report Different Backlink Counts covers the same class of problem across vendors, and it applies within a single vendor too.
The practical upshot: before you conclude a page’s links underperformed, confirm that the page you measured is the page the signals were credited to. A meaningful share of “this link did nothing” findings are a URL-string mismatch, and the check takes about ten minutes.