Canonical check for your whole site

Find every page whose canonical tag is missing or points somewhere else, catch canonicals that name http or a staging host, and see where Google ignored your canonical and picked its own URL.

You sign in with Google and pick the property. The check only runs on sites your Google account owns or is verified for in Search Console.

Free for the 7-day trial, no credit card needed. After the trial you need a paid plan, from €17 a month, because there is no free plan for the web app.

See an example report first

How it works

  1. 1

    Sign in with Google

    Connect Search Console with read-only access for the crawl. To compare with the canonical Google selected, URL Inspection also needs full access, which you can enable later.

  2. 2

    Pick your property

    The check runs only on properties your Google account owns or is verified for in Search Console. With one property, this step is skipped.

  3. 3

    Run the check

    The app opens the report with the URL you typed. Filter on the canonical category to see every page whose canonical is missing or points elsewhere.

Example report: a canonical issue check for example.com

Fictional data for example.com. The first rows come from the crawl, with the severities the app gives them. The rows marked Google come from URL Inspection, which reports the canonical Google selected next to the one the page declares, and carry no severity of their own. Filter by severity or category to narrow the list.

Example report for example.com

Fictional data, shown so you can try the report without signing in.

Example data
120
Pages checked
2
Missing canonical
4
Canonical points elsewhere
3
URL Inspection findings

Showing 14 of 14 findings

SeverityCategoryIssuePageDetails
CriticalIndexabilityNoindex directive/blog/archivePage is noindex but still earns impressions in Search
MediumCanonicalMissing canonical tag/blog/seo-basicsMissing canonical tag
MediumCanonicalMissing canonical tag/docs/setupMissing canonical tag
MediumCanonicalCanonical points elsewhere/pricingCanonical points to another URL (https://staging.example.com/pricing)
MediumCanonicalCanonical points elsewhere/en/aboutCanonical points to another URL (http://www.example.com/en/about)
MediumCanonicalCanonical points elsewhere/products/blue-widget?color=navyCanonical points to another URL (https://www.example.com/products/blue-widget)
LowCanonicalCanonical points elsewhere/blog/page/2Canonical points to another URL (https://www.example.com/blog)
MediumSitemapNon-indexable page in sitemap/blog/page/2Non-indexable page is listed in the XML sitemap
MediumSitemapNon-indexable page in sitemap/pricingNon-indexable page is listed in the XML sitemap
LowTechnicalPage redirects/servicesPage redirects to https://www.example.com/services/
LowSitemapIndexable page missing from sitemap/guides/canonical-tagsIndexable page is not in the XML sitemap
GoogleURL InspectionGoogle-selected canonical differs/shoes/runningDeclared: https://www.example.com/shoes/running. Google selected: https://www.example.com/running-shoes. Google selected a different canonical from the one the page declares.
GoogleURL InspectionGoogle-selected canonical differs/en/aboutDeclared: http://www.example.com/en/about. Google selected: https://www.example.com/en/about. Google selected a different canonical from the one the page declares.
GoogleURL InspectionNo declared canonical/blog/seo-basicsDeclared: (none). Google selected: https://www.example.com/blog/seo-basics/. The page declares no canonical, so Google picked one on its own.
The All button shows every row; the severity buttons hide the URL Inspection rows, which have no severity. In the app each page row also shows its canonical as "Self-referencing" or the URL it points to, and the URL Inspection export has a Canonical Match column.

Canonical tag test: what the crawl reads

For every page, the crawl fetches the HTML your server returns and reads the first <link rel="canonical"> in it, resolving a relative or protocol-relative href against the page. It then compares the canonical with the URL the page finally resolved to, after any redirects, ignoring a fragment and a trailing slash.

  • Self-referencing: the canonical names the page itself. Nothing to fix.
  • Missing canonical tag: medium. Google then picks a canonical on its own.
  • Canonical points elsewhere: the page tells Google to index another URL, so the report counts it as not indexable. Medium when it earns impressions, low otherwise.

A canonical on http while the site runs on https, or on a staging host, counts as pointing elsewhere, which is how the most expensive canonical mistakes surface.

Canonical URL check against your sitemap, redirects and noindex

A canonical never works alone. The same report checks the signals that should agree with it: a page that points its canonical elsewhere but sits in your XML sitemap is flagged as a non-indexable page in the sitemap, an indexable page missing from the sitemap is flagged too, a URL that redirects is listed with where it lands, and a noindex on a page that still earns impressions is critical. When the canonical, the sitemap, the redirects and your internal links all name the same URL, Google is far more likely to follow your choice.

How Google picks the canonical

When Google finds several URLs with the same or very similar content, it groups them and chooses one as the canonical, the version it indexes and shows in results. Your rel="canonical" is a strong hint in that choice, not an order. Google also weighs redirects, sitemap entries, internal links, https over http and which version other pages link to.

That is why the declared canonical and the Google-selected canonical can differ. Google's URL Inspection reports both for a URL: the user-declared canonical and the Google-selected canonical. In GSC Wizard's URL Inspection report the two sit side by side, a notice appears when Google selected a different canonical from the one the page declares, and the CSV export has a Canonical Match column. Where they differ, the usual fixes are to point internal links and the sitemap at the URL you want, redirect the duplicate, or accept Google's choice and update your canonical to match.

Why this canonical checker needs your Search Console

A public canonical checker can read one page's tag, but it cannot tell you which URL Google chose, because only the site owner can ask Google that. Signing in with the Google account that owns the property gives you both halves: the crawl checks the tags across up to 1,000 pages, and URL Inspection tells you what Google did with them. URL Inspection counts against a daily limit of 2,000 inspections per property, the same ceiling Google sets.

Canonical checker FAQ

Is this canonical checker free?

The example report on this page is free and needs no account. Checking the canonicals of your own site is free for the 7-day trial, with no credit card needed. After the trial you need a paid plan, from €17 a month, because there is no free plan for the web app.

What is the difference between the user-declared and the Google-selected canonical?

The user-declared canonical is the URL your page asks Google to index, through a rel="canonical" link, an HTTP header or your sitemap. The Google-selected canonical is the URL Google actually chose after comparing the duplicates it found. They usually match. When they do not, Google indexes and ranks its own choice, and URL Inspection in Search Console is where you see both.

Does the canonical tag test read canonicals in HTTP headers?

The crawl reads the first rel="canonical" link in the HTML of each page and resolves relative URLs against the page. A canonical sent only in an HTTP Link header is not read by the crawl, so such a page can show as missing a canonical. URL Inspection does report Google's view of it, because the user-declared canonical Google returns includes header canonicals.

Why does a correct canonical show up as an issue?

A page whose canonical points to another URL is reported as "Canonical points elsewhere", because it will not be indexed under its own address. On a parameter URL or a print version that is exactly what you want, and the severity is low when the page earns no impressions. It is raised to medium when the page earns impressions under its own URL, because Google is then showing a page you told it to drop.

What access does the canonical check need?

The crawl needs read-only Search Console access, which cannot change anything in your account. Google's URL Inspection API refuses read-only access, so to see the Google-selected canonical you enable full access for that Google account on the Account page. GSC Wizard uses it to read inspection results.

Can I check canonicals on any website?

No, only on sites you own or are verified for in Search Console. There is no public crawl endpoint, and URL Inspection only works for properties your Google account has access to.

More free tools

Run a canonical check on your own site

Sign in with Google, pick your property and see which canonicals are missing, which point elsewhere and which Google overruled.

Check canonicals

Free for the 7-day trial, no credit card needed. After the trial you need a paid plan, from €17 a month, because there is no free plan for the web app.

Search Console tips in your inbox

Practical GSC and GA4 workflows, product updates and SEO experiments. No spam, unsubscribe anytime.