Canonical Pointing to a Redirect, 404, or Noindexed Page
A canonical only works if its target is a clean, indexable 200 URL. Pointing at redirects, errors, or noindexed pages wastes the signal.
One is a directive. One is a hint. Confusing them is one of the most common technical-SEO mistakes.
A 301 redirect is a server-level instruction that moves both users and search engine bots from one URL to another, permanently. When a browser or crawler requests the old URL, the server responds with a 301 status code and sends them straight to the new one — the old URL becomes inaccessible as a destination in its own right. Google treats a 301 redirect as a near-authoritative directive: it consolidates ranking signals onto the target URL and, in Google's own description, treats it as a strong signal that the target of the redirect should become canonical.
A canonical tag works differently in a way that matters a great deal in practice: it does not move anyone. Both the duplicate URL and the preferred URL remain live and accessible to users and bots alike. The canonical tag only communicates a preference about which version should be indexed and credited with ranking signals — and Google evaluates that preference as a hint, not an instruction it is bound to follow. Google can, and sometimes does, select a different canonical than the one declared.
The distinction in one sentence: a 301 redirect physically eliminates access to a URL and is largely obeyed; a canonical tag leaves a URL fully accessible and only requests, without guaranteeing, how it should be treated in the index.
A 301 redirect is the right tool whenever a URL should genuinely stop existing as a destination — when nobody, human or bot, should land on the old address again. Common situations:
In every one of these cases, the underlying goal is that users should never see the old URL again. A 301 delivers that outcome directly; nothing about it is optional or advisory on Google's side once the redirect is in place and consistently returned.
A canonical tag is the right tool precisely when the opposite condition holds: both URLs need to keep working, and only the indexing and signal-consolidation behavior needs to be controlled. Typical scenarios:
?sort=price, ?color=blue, or ?utm_source=newsletter — all of which need to remain functional for users following those specific links.The common thread is accessibility: in each case, someone has a legitimate reason to land on the non-preferred URL, so redirecting it away would break something. The canonical tag lets that access remain intact while still telling Google which version deserves to be indexed and credited.
The reason this choice matters beyond convenience is signal strength. Google explicitly describes a 301 redirect as a strong signal that the redirect's target should become canonical — and because a 301 also removes the old URL from being independently servable, there is little practical room for Google to do otherwise. A canonical tag, by contrast, is also described by Google as a strong signal, but it is only one input among several the algorithm weighs, alongside sitemap inclusion (a weak signal), HTTPS preference, internal linking patterns, and general content quality. Google can and does override a declared canonical when other signals point elsewhere.
This is why a canonical tag is not a reliable substitute for a redirect when a URL genuinely needs to stop being served: declaring a canonical does nothing to prevent users or bots from continuing to access the non-preferred URL, and Google's own selection may not even match the declaration. Conversely, a 301 redirect is not a substitute for a canonical when both URLs must remain live: a redirect physically removes access to the source URL, which breaks any legitimate use case — a tracking link, a print view, a category-specific product path — that depended on that URL continuing to resolve on its own.
Three mistakes account for most of the confusion between these two mechanisms:
A short set of questions resolves most cases:
They serve different purposes and are not typically combined on the same URL pair. If a URL is 301-redirected, it is no longer served at all, so a canonical tag on it is moot. Where the two intersect is in avoiding chains — a canonical tag should always point to a URL's final destination, never to a URL that itself 301-redirects elsewhere, since that creates a muddled signal Google may disregard.
Not necessarily. A canonical tag affects indexing and signal consolidation, not crawling access. Google may continue to crawl the non-preferred URL periodically to confirm the canonical relationship still holds, which is different from a 301 redirect, where the old URL is no longer independently servable at all.
No. A full site or domain migration is exactly the scenario Google describes redirects as a strong signal for, and it requires every user and every bot to land on the new URLs — something only a 301 redirect accomplishes. A canonical tag would leave the old domain's URLs live and accessible, which defeats the purpose of a migration.
Because they are fundamentally different types of signals. A 301 redirect physically removes the old URL from being independently servable, leaving Google little alternative but to follow it. A canonical tag leaves the URL fully accessible and is evaluated as one hint among several — sitemap inclusion, HTTPS, internal linking, content quality — any of which can lead Google to select a different canonical than the one declared.
Reverse the redirect so the URL resolves normally again, then evaluate whether a canonical tag better fits the underlying goal — for example, if the intent was only to consolidate indexing signals while keeping the URL browsable, a self-referencing or cross-referencing canonical tag accomplishes that without removing user access.
A canonical only works if its target is a clean, indexable 200 URL. Pointing at redirects, errors, or noindexed pages wastes the signal.
Pointing a canonical to a URL on another domain, the content-syndication technique Google now de-emphasizes in favor of noindex.
A canonical tag that points a page at its own URL, the recommended baseline that removes ambiguity from parameter and variant URLs.