Canonical tag: 23 of 28 homepages declare one, and three of them name a page we were routed to
A canonical tag survey across 30 homepages: 23 of 28 declare one, none contradicts the URL we were served, and three name a locale page our exit country sent us to.

FIELD TEST · 2026-08-19 · 30 sites · single snapshot
Sample and method: the same 30 sites used in our robots.txt, sitemap, homepage structure and request chain surveys. One homepage request each, browser user agent, redirects followed, 2026-08-19, from an exit in Japan. Two sites refused us, so counts are out of 28.
Twenty-three of 28 homepages ship a canonical tag, and every one of the 23 names the exact address we were served. Not one contradiction in the sample. The five with none are nextjs.org, supabase.com, reddit, Hacker News and wikipedia.org. The interesting part is not the agreement — it is what the agreeing URL turned out to be for three of them.
How we measured it
Fixed before the crawl, unchanged afterwards.
- Request
https://<host>/once with a desktop browser user agent, following redirects, and record the final URL. - Read every
<link rel="canonical">inside the delivered<head>and record thehrefand how many there were. - Compare the canonical to the final URL, ignoring a trailing slash.
No rendering, no JavaScript execution. A canonical injected on the client would not be counted, which is a real limit on any site that does it that way.
Twenty-three declare one, five do not
The split is not random. The five without a canonical tag are the two developer-platform sites, the two community sites and the Wikipedia portal — none of them a page whose duplicates you would expect to be a problem.
| Group | Count | Sites |
|---|---|---|
| Canonical present, matches served URL | 23 | The rest of the sample |
| Canonical present, contradicts served URL | 0 | — |
| No canonical at all | 5 | nextjs.org, supabase.com, reddit, Hacker News, wikipedia.org |
| Homepage refused the request | 2 | stackoverflow.com (403), medium.com (403) |
Google recommends the self-referential case explicitly: "We recommend adding this same self-referential rel="canonical" link element to the canonical page itself as well." Twenty-three sites are doing that. The absence on the other five is not a defect; Google treats the annotation as a strong signal, not a requirement, and picks a canonical either way. All Google wording quoted here was read on 2026-08-19 on the canonicalization documentation at developers.google.com.
For three sites, the canonical is a locale URL we were routed to
This is the finding worth carrying away. Our requests exit in Japan. Three of the 23 canonicals are therefore not what a US visitor would see.
| Site | Requested | Canonical we read |
|---|---|---|
| stripe.com | https://stripe.com/ | https://stripe.com/en-jp |
| slack.com | https://slack.com/ | https://slack.com/intl/ja-jp |
| developer.mozilla.org | https://developer.mozilla.org/ | https://developer.mozilla.org/en-US/ |
In each case the site redirected us first and then declared the page we landed on as canonical. That is correct behaviour for that page. It is also the whole problem, because a crawler exits from a fixed location and does not try again from somewhere else. Whatever it is routed to becomes, as far as it can tell, the address of your homepage.
Google's canonicalization documentation covers the multi-language case and points at a different mechanism for it: "for canonicalization purposes Google prefers URLs that are part of hreflang clusters." It also warns that the annotation itself will not carry language information — "rel="canonical" annotations with hreflang, lang, media, and type attributes are not used for canonicalization." So the language routing has to be declared by hreflang, not implied by where the visitor happened to come from.
A canonical computed after a geographic redirect describes the page you were sent to, not the page you asked for.
Trailing slashes split almost down the middle
Twelve of the 23 canonicals end in a slash and 11 do not. Both groups match the URL their own site actually served, so both are internally consistent, and there is no convention here to copy.
One host change also showed up: we requested the apex figma.com and were served https://www.figma.com/, which is what the canonical says too. That is consolidation working exactly as intended, and it is the one case in the sample where the canonical is doing visible work rather than restating the obvious.
The BBC ships the same canonical twice
Two <link rel="canonical"> elements, identical href, both carrying the same framework attribute. It looks like a duplicated head entry rather than a disagreement, and because both point at the same address there is nothing here for a search engine to resolve.
We do not know what Google does when a page ships two canonical elements with different targets. Its canonicalization documentation does not address the case, and we did not construct a test for it. Worth knowing that the documentation is silent, rather than assuming a rule exists.
What to do about your own canonical tag
Two habits worth keeping, two worth dropping.
- Build the canonical from the request that is being served, not from a stored field. Every failure mode here starts with a template that remembers an old value.
- Use an absolute URL. Google supports relative paths and says plainly that "they can cause problems in the long run".
- Do not let geographic routing decide your canonical. Declare language versions with hreflang and let the canonical describe the page.
- Do not ship two canonical elements on one page, even identical ones. There is no documented behaviour to rely on.
Fetch your own homepage from outside your office network before you conclude anything, because the version you see logged in from your own country is not necessarily the version a crawler is handed. Checking whether crawlers can reach and read your pages at all is what the AI crawler accessibility checker is for.
What to lock down before you change an address on purpose, and which five things a rewrite quietly breaks, is in does changing a URL affect SEO. How many of these same sites declare their language versions properly is in the hreflang survey.
Common questions
How did you measure this?
One homepage request per site on 2026-08-19, desktop browser user agent, redirects followed, exit in Japan. We read the canonical from the delivered HTML head and compared it to the final URL, ignoring a trailing slash. No rendering.
Do I need a canonical tag on my homepage?
Not strictly. Google recommends a self-referential one and treats it as a strong signal, and five sites in this sample ship none at all. It matters most where duplicate addresses genuinely exist.
Should the canonical include a trailing slash?
It should match the address you actually serve. In this sample 12 of 23 include one and 11 do not, and both groups agree with their own site.
Does a canonical tag fix duplicate content?
It tells search engines which address you prefer. It does not remove the other address, and it is a signal rather than an instruction, so two live pages competing for one purpose remains a decision you have to make.
Would a crawler exiting from the US have read the same canonicals?
For at least three of these sites, no. We cannot tell you what it would have read instead, because we only ran the crawl from one place.


