Detail-rich AI-friendly Markdown · structured for AI citations
Detail-rich AI-friendly Markdown · structured for AI citations
Paste a page URL. See every rel=canonical tag and any canonical in the HTTP Link header, then read plain-English flags for conflicts, noindex, protocol and host mismatches, and targets that redirect or return an error. Free, no signup.
A rel="canonical" link is a strong hint about which URL should represent a set of duplicates. Google may still choose a different URL. Redirects are a stronger hint. Listing a URL in a sitemap is a weaker one. You do not have to send a canonical. If you do, Google's best practice is to put a self-referential link on the page you want indexed, in the head, with an absolute URL.
The link element is only accepted in the head. Annotations that also carry hreflang, lang, media, or type are not used for canonicalization. A fragment, the part after #, is not supported. Relative paths are supported and are not recommended, because they can resolve on a host you did not mean to expose.
Google supports the same hint in an HTTP Link header. That header is the method for a non-HTML file, such as a PDF. Choose the link element or the header. Using both is supported, and it is easier to get wrong when they name different URLs. Naming more than one rel="canonical" is worse: Google has said it will likely ignore all of them.
Do not add noindex to keep a URL out of the canonical set. noindex blocks that page from Search. rel="canonical" is the method Google recommends when two URLs on the same site show the same content and you want one of them indexed.
HTTP and HTTPS are different URLs, and Google prefers HTTPS unless a conflicting signal says otherwise. An HTTPS page that canonicalizes to HTTP is one of those conflicts. www and non-www are different hosts. A trailing slash is a different path. Pick one absolute URL, point rel="canonical" at it, and permanently redirect the other versions to it.
If the URL inside rel="canonical" itself redirects, Google processes that redirect. The destination of the redirect is the stronger signal, so write the final URL in the tag when that is the page you want kept, and make sure it is not an error page. The redirect checker lists every hop, status code, and Location header.
A canonical that points at a redirect is only as good as the URL at the end of the chain. The redirect checker lists every status code and Location header.