Canonical Tag Checker
Find the canonical URL any page declares, see whether Google can use it, and catch the canonical mistakes that keep the right page out of search. Check one URL or up to 10 at once. Free, no signup.
What the canonical checker shows
Enter a URL and the checker fetches the page the way a crawler does, without running JavaScript, then reports:
- The canonical URL the page declares, resolved to a full address, and whether it names the page itself or another URL.
- Where each canonical sits: in the HTML head, in the HTTP Link header, or outside the head, where Google ignores it.
- How the canonical URL answers: its status code, any redirect, a noindex, a robots.txt block, and the canonical it declares in turn.
- Conflicts: several canonicals that disagree, a noindex next to a canonical, pages that point at each other, a paginated page that names page 1, and an og:url that differs.
- The redirect before it: when the URL you typed redirects, the checker follows it and reads the canonical on the final page, which is the one Google indexes.
What is a canonical tag?
A canonical tag tells search engines which URL is the main version of a page. The same content often lives at several addresses: with and without www, over HTTP and HTTPS, with a trailing slash, with sorting, filter or tracking parameters. Without a canonical, Google groups those duplicates and picks one itself, which may not be the one you link to or want in results. The tag goes in the page's head:
<link rel="canonical" href="https://example.com/page" />For files that have no head, such as PDFs, the server can send the same signal as an HTTP header: Link: <https://example.com/page>; rel="canonical". The checker reads both.
Canonical mistakes the checker catches
Most canonical problems are not missing tags but tags that send mixed signals. These are the ones that most often make Google ignore your choice:
| Problem | What Google does | Fix |
|---|---|---|
| No canonical at all | Picks one version itself | Add a self-referencing canonical |
| Two canonicals that disagree | Ignores both | Keep one, in the head or the header |
| Canonical in the body | Ignores it | Move it into the head, above any img or div |
| Canonical to a redirect | Weak, mixed signal | Point straight at the final URL |
| Canonical to a 404 or noindex page | Ignores it, may index neither | Point at a live, indexable page |
| Page 2 names page 1 | Can miss items on later pages | Give each page its own canonical |
| HTTP canonical on an HTTPS site | Mixed signal | Use the HTTPS URL everywhere |
A canonical that ends up in the body is easy to miss: the tag is in your template's head, but an image, a div or a script that writes markup sits above it, and the browser closes the head early. Everything after that point counts as body. Move the canonical, and the meta robots tag, near the top of the head.
How to set a canonical URL
- WordPress: Yoast SEO and Rank Math add a self-referencing canonical to every page and let you set a custom one in each post's advanced settings.
- Shopify: themes print the canonical with
canonical_urlin theme.liquid. Check that collection and filtered URLs name the product or collection you want indexed. - Next.js: set
alternates.canonicalin each page's metadata. - Any site: use absolute HTTPS URLs, one canonical per page, the same URL your internal links and sitemap use.
Run the page through the checker again after the change, then ask Google to recrawl it. To trace the redirects around a canonical, use the redirect checker; for a noindex or a robots.txt block, the noindex checker shows every directive.
A canonical picks the URL. Indexing still has to happen
A correct canonical tells Google which URL to keep, but Google still has to crawl and index that URL. If the canonical page is not showing up, check that it is on Google with the Google index checker, and find out what holds it back with the why is my page not indexed checker.
IndexMachine gets those pages in on autopilot. It runs Google's own Request Indexing in your Search Console for every page Google hasn't indexed, with your full daily quota on every site, and sends every new URL to Bing, Yandex, Seznam and Naver through unlimited IndexNow. No link farms. Of 1,841 pages IndexMachine requested, 1,418 (77%) were on Google, typically by our first check about 3 days after the request. Sign up free to see which of your pages Google hasn't indexed, or compare plans on the pricing page.
FAQ
What is a canonical URL?
The canonical URL is the one version of a page you want search engines to index when the same content is reachable at several addresses, such as with and without www, with tracking parameters or with a trailing slash. You declare it with a rel=canonical link in the page's head or an HTTP Link header, and Google uses it as a strong hint.
How do I check the canonical URL of a page?
Paste the URL into the checker above. It reads the canonical from the HTML head and the HTTP headers, flags tags Google ignores, and tests the URL the canonical names. To see the canonical Google actually chose, open URL Inspection in Search Console and compare the user-declared canonical with the Google-selected one.
Should every page have a self-referencing canonical?
Yes. A canonical that names the page's own clean URL costs nothing and protects it: when someone links with tracking parameters, or the page is reachable over HTTP or with www, Google is told which version to keep. Most SEO plugins and frameworks add one by default, so check that it names the right URL.
Does Google always follow the canonical tag?
No. A canonical is a strong hint, not a command. Google weighs it with redirects, internal links, sitemaps and HTTPS, and picks another URL when the signals disagree or the canonical points to a page that redirects, errors or has a noindex. Clean, consistent signals make Google follow your choice.
Can a canonical tag point to another domain?
Yes. A cross-domain canonical is the right setup when the same article is published on several sites and you want the original to rank. If it points to another domain by mistake, for example after copying a template, the page will not rank on its own, so the checker flags every canonical that leaves the domain.
Canonical, 301 redirect or noindex: which one should I use?
Use a 301 redirect when the old URL should not be visited at all, a canonical when both URLs must keep working for visitors, such as filtered or tracked versions, and a noindex when a page should never appear in search. Do not combine a noindex with a canonical to another page: Google asks for one clear signal.
Elevate your digital presence
Getting your pages indexed by Google is the first crucial step in your search engine optimization journey.
Fix indexing issues. Let the SEO magic begin.
Free account. Import may take a while for big sites, Google rate-limits Search Console.
See pricing