Audit an exact URL variant
Check the parameterized, protocol, host, or path variant that is actually in question instead of assuming every version exposes the same canonical signals.
Free, no signup. Check the canonical Google can see, the HTTP Link header, and whether the chosen target is actually a clean, live URL.
Checks run from our server; we fetch the URL you enter and don't keep the results. The URL and its canonical target are fetched to build this report. The full URL is not stored; after a successful check, only its domain may be remembered in this browser. Anonymous run-level outcome counters may be used for aggregate research; URLs, domains, IPs, and identifiers are never included, and no statistic is released below 100 runs.
Illustrative example — fixed signals, not a live URL claim
Page checked: https://example.com/product?color=blue
This example assumes the canonical target returns a direct 200. If it redirected or failed, the same engine would add a high-risk finding instead of hiding that evidence.
+ saves the current site or page. Use ☆ beside any saved site, page, or list to favorite it. Recent check history appears below.
Target filled from your local choices.
Saved targets, named lists, and recent check summaries remain only in this browser.
This is a deterministic signal check, not a claim about Google’s indexed canonical.
Download this result as JSON, then import it after a later run of the exact same URL. The baseline stays in your files and is not uploaded.
The report checks the observable signals involved in CanonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. and estimates when conflicts may lead Google to select another URL.
One bounded server request collects the final URL, response headers, and HTML body. A deterministic parser reads canonical and hreflang links from the head plus canonical Link headers, resolves relative URLs, records duplicates and noindex, and then checks each unique canonical target through the status endpoint. The predictor maps those observed signals to explicit risk reasons and fixes.
The checker reads the server response and does not render JavaScript. It cannot compare page content across duplicate URLs, inspect all internal links or sitemap signals, access Search Console, or observe Google's selected canonical. A low-risk result only describes the evidence fetched in this run.
No. Google’s selected canonical is only observable through Search Console URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate "Test live URL" mode fetches the current version. for a verified property. This tool predicts override risk from observable HTTP and HTML signals.
No. It reads the server response. A canonical injected only after JavaScript runs is discouraged and should be verified in URL Inspection.
A self-referencing canonical is generally useful because it makes the preferred URL explicit and helps keep parameters or alternate URL forms from becoming ambiguous. It is still a hint, not a directive.
It can, but it creates a conflicting and inefficient signal path. Point the canonical directly to the final live 200 URL and align internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., redirects, and sitemap entries with it.
Google may choose another URL when content, redirects, internal links, sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others., protocol or host signals disagree, or when the declared target is unavailable. This checker tests several observable conflicts but cannot see Google’s full index-level evidence.
Upvote what you want most. New ideas can be submitted from the floating Feedback menu; requests appear here once approved, and the most-wanted rise to the top.
You won't be emailed about that request anymore.
Loading…
New requests are reviewed before they appear here.
Where this tool helps
Check the parameterized, protocol, host, or path variant that is actually in question instead of assuming every version exposes the same canonical signals.
Compare canonical links found in the server-rendered HTML head with canonical Link response headers and surface declarations that disagree.
Follow the canonical target through a bounded status check and catch redirects, errors, or an unreachable destination before treating the declaration as clean.
Turn observed noindex, hreflang, host, protocol, parameter, and target-response evidence into explicit high, medium, or low risk reasons without claiming Google's selected canonical.
Download a one-URL JSON baseline, keep it locally, and import it after a later run of the exact same URL to identify changed declarations, targets, or predictions.
Watch the full workflow
Hi. Canonicalization Checker helps you understand which page address a website says search engines should prefer. I’ll show you how to check one exact URL, read each warning, verify the destination, and compare a later result with a saved baseline.
A canonical is a hint that names the preferred address for a page when similar versions exist. This checker shows the canonical signals in the public server response and tests whether the preferred destination works. It cannot see which URL Google ultimately chose.
The common use cases are shown here. Check one exact URL version, compare canonical declarations from two places, test the preferred destination, understand conflicting signals, or compare today’s result with an earlier saved baseline.
Enter the exact address you are investigating. Keep anything after the question mark when it matters; those extra pieces are called URL parameters. The checker reads the server response and does not run JavaScript that changes the page later.
The fixed example shows a common cleanup pattern. A product URL with a color parameter points to the clean product URL, and that destination returns HTTP 200, meaning the page responded successfully. The low label describes this fictional example, not a live site.
For the walkthrough, I’m using a fictional product URL with color and campaign parameters. Its HTML names one preferred product address. An HTTP Link header, which is canonical information sent before the page body, names a slightly different plural address.
I’ll choose "Audit canonical." The checker reads the fictional page response, collects its canonical declarations, and checks the first declared destination. The report appears only after that evidence is available, so an unavailable check is not presented as a clean result.
Here’s the first important result. The HTML canonical ends in singular trail-runner. The HTTP Link-header canonical ends in plural trail-runners. Because they name different addresses, the tool shows "Signal conflict" instead of silently choosing one for you.
The report separates three findings. The two declarations disagree, so that is high risk. The first preferred destination redirects to another page, which is also high risk. Removing tracking parameters can still be a normal low-risk pattern when those parameters do not change the content.
High, medium, and low are rule-based consistency labels. They are not percentages, and they do not report what Google indexed. A low result only means the public signals checked in this run did not show a high or medium conflict.
Open "Why these verdicts and how to verify them" for the detailed evidence. Each finding keeps the checked page, both canonical declarations, noindex state, and final destination together. It also explains the fix and tells you to rerun the audit to verify the change.
A baseline is simply a saved reference result. Choose "Download baseline" to save this one-URL report as a JSON file. The file stays with you; the checker does not upload it or quietly store a copy on the site.
Now I’ll choose "Import baseline" and load an earlier clean fictional result for this exact URL. The checker finds five changed categories: canonical declarations, hreflang targets, signal conflicts, destination response, and the override-risk result.
The comparison shows when the baseline was created and lists all five changes. It only compares the exact same submitted URL. That protects you from treating a different parameter combination as though it were a newer result for this page.
The page defines each severity. High means a direct problem such as conflicting declarations, noindex, a failed destination, or a redirect. Medium means a meaningful consistency concern. Low means the observed signals agree or show a normal cleanup pattern; it is still not Google’s answer.
The checker works in two steps. First, it reads the final page address, response headers, and HTML. Then it extracts canonical, hreflang, duplicate, and noindex signals and checks each unique canonical destination before applying the risk rules.
The supporting checks cover missing or multiple canonicals, relative URLs, different hosts or protocols, parameters, noindex, and redirects. Hreflang links, which connect language or regional versions, are also checked for consistency with the canonical.
The checker does not run JavaScript, compare the actual content of duplicate pages, crawl every internal link or sitemap entry, sign in to Search Console, or see Google’s selected canonical. It reports only the public evidence collected in this run.
After you make the public signals agree, open URL Inspection in your verified Google Search Console property. That is where you can compare your declared canonical with the canonical Google selected. This public checker intentionally leaves that private answer to Google.
That’s the complete workflow. Make the canonical declarations agree, point them directly to the intended live page, and run the same URL again after your fix. Use Google Search Console when you need Google’s selected canonical. The checker is free at patrickstox.com slash tools slash canonical-checker.