Free SEO Tool · No Signup Required

Free Canonical Tag Checker

See which URL a page names as its canonical, whether that is the page itself or somewhere else, and whether the URL it names actually answers. One fetch, a plain verdict, and a tag to start from when there is none.

https://

Read-only. One fetch of the page from our server, plus one HEAD request when the canonical names another URL. Nothing is written to your site.

  • No signup, no email
  • Same result every run
  • Target status checked
  • Any public URL
  • Free, no daily cap
  • Reads the served HTML
What we checked

4 rows, one URL. One GET of the page as VerandBot/1.0, redirects followed, 12 second timeout, the served HTML only. We read the first <link rel="canonical">, compare its href with the URL the fetch landed on (case, a trailing slash and a #fragment ignored) and, when it names another absolute URL, send it one HEAD request.

How the verdict is read

No tag, or a named target that answers with an error, is a fail. A canonical that points to another URL is marked review, not fail: it is right on a tracking-parameter or duplicate URL and wrong on the page you want ranked, and only you know which this page is. A relative href is marked review too; Google supports it but recommends absolute URLs.

What it cannot see

Only the first canonical tag is read, so a second, conflicting one goes unreported. A canonical sent in an HTTP Link header, added by JavaScript or listed in a sitemap is not read. A relative href is not resolved or fetched. The HEAD follows redirects, so a target that redirects reads as the status of the page it lands on. Which URL Google actually chose is not visible from outside; Search Console shows that.

About this tool

How the Canonical Tag Checker reads your page.

One fetch, one tag, one comparison, and one more request only when the tag points away. The card is the tool in motion on an example page, looped, and each step lights up while the card is doing it.

01

One request for the page

The tool fetches the URL you typed as VerandBot, following redirects, giving up after twelve seconds. It keeps the served HTML and the address the redirects landed on, because that address is what the canonical is compared against.

02

The canonical link is read

It looks for the first <link> element whose rel is canonical and takes its href exactly as written. No JavaScript runs, so this is the tag a crawler sees on the first read.

03

Itself, or somewhere else?

The href is compared with the landed URL, ignoring letter case, a trailing slash and anything after #. A match is a self-referencing canonical. Anything else, a query string included, points elsewhere.

04

The target is asked to answer

When the canonical names another absolute URL, one HEAD request goes there and its status is reported. A tag that points at a missing page is the fail this step exists to catch, and the card offers a self-referencing tag to replace it.

Canonical tags, explained

What a canonical tag tells Google, and when it points at the wrong page.

One line in the head decides which of a page's many addresses collects its links and its rankings. Here is how the tag works, where it is only a suggestion, and the mistakes that hand your ranking to a copy.

What the tag is

A canonical tag is a link element in a page's <head> that names the preferred address for that page's content. Search engines use it when the same content, or nearly the same content, can be reached at more than one URL. Instead of treating each address as a separate page competing with the others, Google can fold them into one and show that one in results. The syntax is a single line:

<!-- inside <head>, on every version of the page -->
<link rel="canonical" href="https://yourdomain.com/services/estate-planning/">

Three details matter. The tag only counts in the <head>; Google's documentation says a canonical link is only accepted there, so a theme that prints it in the body has no canonical at all. The href should be a full, absolute URL with the scheme and host; Google supports relative paths but recommends absolute ones because relative paths cause problems over time. And for files with no HTML head, such as PDFs, the same instruction can be sent as an HTTP response header, Link: <https://yourdomain.com/guide.pdf>; rel="canonical". This checker reads the HTML tag only, so a header canonical will show as missing here.

Why one page ends up with many URLs

Most sites create duplicate addresses without meaning to. None of these is a problem on its own, and Google says some duplicate content on a site is normal and not a spam violation. The cost is that links, shares and ranking signals get split across addresses unless something tells Google which one is the real one.

  • Tracking parameters. A newsletter link adds ?utm_source=newsletter, and now the article exists at two addresses with identical content. One of the saved runs above is exactly this case on Willowdale Equity.
  • Trailing slashes. /blog and /blog/ are different URLs to a crawler. Most servers redirect one to the other; many serve both.
  • http and https, www and bare. Four possible hosts for every page. A site that has moved to https but still answers on http has a duplicate of every page it owns.
  • Sorting and filtering. Listing pages that take ?sort= or ?page= parameters can generate hundreds of addresses from one template.
  • Print and AMP versions, preview links from a CMS, and the same service page published once per office location.

The self-referencing canonical

A self-referencing canonical is a page whose canonical tag names its own address. It sounds redundant, and it is the most useful form of the tag. Every duplicate of the page, the parameter version, the trailing-slash version, the scraped copy that kept your markup, now carries a tag pointing back to the clean URL. Google's documentation recommends adding the same self-referential canonical to the canonical page itself, and most WordPress SEO plugins add one to every post by default. It is recommended practice rather than a requirement: a page with no canonical is not penalised, it just leaves the choice entirely to Google.

When this checker compares the tag with the page, it compares against the address the fetch landed on after redirects, ignoring letter case, a trailing slash and any #fragment. So https://yourdomain.com/about and https://yourdomain.com/about/ count as the same page. A query string does not get the same allowance: a URL carrying ?utm_source= whose tag names the clean address is reported as pointing elsewhere, which is exactly what it should be doing.

A canonical URL checker cannot see Google's choice

The tag is a request, not an order. Google's own wording is that indicating a canonical preference is a hint, not a rule, and that it may pick a different page than you did. Redirects are the strongest signal, the canonical tag comes next, and inclusion in a sitemap is the weakest. When those signals disagree, for example the sitemap lists one address and the tag names another, Google has less reason to follow any of them, and its documentation says not to specify different canonicals through different methods.

The only place to see what Google actually decided is Search Console. Open URL Inspection for the page and read two fields: User-declared canonical, which is the tag this checker reads, and Google-selected canonical, the page Google chose as the authoritative version. If they differ, Google has overridden you, usually because the content of the two pages is not as similar as the tag claims, because internal links and the sitemap point at the other version, or because the named target redirects or errors. No outside tool, this one included, can read the second field; it lives in your account.

Syndicated articles and content libraries

This is where the tag decides the most for regulated firms. Many financial advisors, CPAs and insurance agents publish articles from a vendor's pre-approved content library, and the same article appears word for word on hundreds of other firm sites. For a set of identical pages, search engines will generally show one. The canonical tag on your copy is part of how that one gets chosen.

  • Pointing at the vendor. If the platform that publishes the article inserts a canonical naming the vendor's own copy, that tag tells Google your page is a duplicate and the vendor's page is the original. Your copy is asking not to rank.
  • Pointing at itself. Your copy claims to be the original, along with every other firm that received the same article. It may still be folded into someone else's version, but at least it is not volunteering to be.
  • Missing. Google picks without any hint from you, and with hundreds of identical copies, your firm's is rarely the pick.

The practical step is short: if your articles come from a content library, check where the canonical points on two or three of them. If it names another domain, ask the vendor whether it can be changed, and treat the articles you want found as ones worth rewriting with your own experience, since an identical page has nothing to distinguish it whichever way the tag points. The same logic applies to a multi-office practice that publishes one disclosure or service page per location with only the city changed.

Canonical, noindex or redirect

Three tools solve overlapping problems, and mixing them up is common. A 301 redirect is for an address that should not exist any more: visitors and crawlers are sent to the new URL, and it is the strongest canonical signal there is. A canonical tag is for an address that must keep working for people, like a tracking link or a filtered listing, while search engines consolidate onto the clean version. A noindex tag removes a page from search results entirely. Google advises against using noindex to steer canonical selection within one site, because it blocks the page from Search completely rather than pointing its signals anywhere, and against using robots.txt for canonicalization at all. If a page carries both a noindex and a canonical to another URL, it is sending two different instructions; the Noindex Checker reads the other half.

Common mistakes

  • The staging domain in production. A site built on staging. or a preview host ships with every canonical still naming it. The pages look fine and quietly ask Google to rank an address that is password-protected or gone. The target status row on this card catches this when the staging host answers with an error.
  • A canonical that points at a 404 or a redirect. Pages move, templates keep the old address. A tag naming a missing page gives Google a hint it cannot follow.
  • Every page canonicalised to the homepage. A theme setting or a hard-coded tag in a shared header. Every page on the site now claims to be a duplicate of the home page.
  • http in the tag on an https site. The canonical names an address that redirects, which puts the redirect and the tag in disagreement about which URL is preferred.
  • Two canonical tags. Usually a theme and an SEO plugin each printing one. If they disagree, Google may disregard both. This checker reads the first one only, so view the page source and search for canonical if you suspect a second.
  • A canonical injected by JavaScript that differs from the served one. Google says a canonical added with JavaScript has to be injected properly; a served tag and a scripted tag that disagree are two conflicting signals.
  • Paginated series all pointing at page one. Page two of a blog archive is not a duplicate of page one. Each page in a series should normally carry its own self-referencing tag.

How to add one

On WordPress, an SEO plugin almost certainly adds a self-referencing canonical already; the plugin's settings for a post let you override it when a page really is a copy of another. On a static or custom-built site, put the tag in the shared head template and build the href from the page's own final URL, with the scheme, the host you actually serve and the trailing-slash style your server redirects to. Then run this checker on a few representative pages: the home page, a post, a listing page and a URL with a tracking parameter added. The first three should read self-referencing; the last should point to its clean version.

Why this one

Why choose Verand's Canonical Tag Checker?

Six things that are true of this tool, each one backed by a line in the code that runs it.

No signup, no email wall

The request carries a URL and nothing else. There is no account, no session and no database behind the tool, so there is nothing for us to keep about you.

The target is checked, not assumed

When the canonical names another URL, the tool sends it a HEAD request and prints the status it gets back, so a tag pointing at a missing page shows up as a fail.

Deterministic

The tag is found by a fixed pattern and compared by a fixed rule. No model reads the page, so the same page gives the same answer every time.

The product's own check

The missing-canonical rule is the one Verand's deep crawl runs on every page of every customer site on the 1st and 15th of each month. The self-reference and target rows are added for this page.

Names what it cannot see

A second canonical tag, an HTTP header canonical, a scripted one and Google's own choice are all out of reach, and the card says so beside the result rather than in a footnote.

$0, no daily cap

Each run is one page fetch and at most one HEAD request, so it is never metered. The one limit is a courtesy to the sites being fetched: 20 checks a minute per visitor.

Questions

Frequently Asked Questions About the Canonical Tag Checker

Missing tags that are there, self-references, and the cases the tag cannot settle alone.

Why do I get 'Missing canonical' when the page has one?

Almost always because the tag is not in the HTML the server sends. This checker reads the served page without running JavaScript, so a canonical added by a script after load, or one sent in an HTTP Link header instead of the HTML, reads as missing. Two other causes: the tag sits in the body rather than the head, which Google does not accept either, or the URL you checked redirects to a different page that has no tag. To confirm, view the page source (not the inspector, which shows the page after scripts run) and search for canonical.

What is a self-referencing canonical, and should every page have one?

It is a canonical tag that names the page's own URL. Google's documentation recommends putting one on the canonical page itself, so that every duplicate address, a tracking-parameter link or a trailing-slash variant, points back to the clean version. It is recommended practice rather than a requirement, and a page without one is not penalised; it simply leaves the choice to Google. This checker counts a tag as self-referencing when it matches the final URL ignoring case, a trailing slash and any fragment.

What happens if the canonical points to a different URL?

You are asking Google to treat this page as a copy and to rank the other URL instead. That is right for a tracking-parameter or filtered version of a page, and wrong for the page you want found. This checker marks it for review rather than failing it, sends the target one HEAD request, and fails it only if the target answers with an error such as a 404. If the target is fine and the page really is the original, change the tag to name the page itself.

Is a canonical tag a directive or a hint to Google?

A hint. Google says indicating a canonical preference is a hint, not a rule, and that it may choose a different page. Redirects are a stronger signal than the tag, and sitemap inclusion a weaker one. To see what Google decided, open URL Inspection in Search Console and compare the User-declared canonical with the Google-selected canonical. This checker can show you the first; only Search Console shows the second.

What if a page has two canonical tags?

If both name the same URL, nothing is lost. If they disagree, Google has two conflicting signals and may disregard them. The usual cause is a theme and an SEO plugin each printing a tag. This checker reads the first canonical in the HTML and does not report a second one, so if you suspect a duplicate, search the page source for canonical and remove whichever one your SEO plugin does not control.

Can a canonical be set in the HTTP header instead of the HTML?

Yes. Google accepts a Link response header with rel="canonical", and it is the only way to set one for files with no HTML head, such as PDFs. This checker reads the HTML tag only, so a page whose canonical is sent as a header shows as missing here. If you use both, make sure they name the same URL; two methods naming different canonicals is one of the things Google's documentation tells you not to do.

After the check

One address per page. Then make it the one worth citing.

A clean canonical makes sure your signals land on one URL. What earns them is the page itself. Verand writes articles from your own expertise and credentials, so Google and the AI assistants have something of yours to name. It then tracks where you rank and where ChatGPT, Gemini, Perplexity, Claude and Google's AI answers mention you, and gates every draft so a claim your regulator would not allow never publishes.

Verand

Content built to rank in Google and get cited by ChatGPTPerplexityGeminiClaude, with every claim checked before it goes live.

support@verand.ai

© 2026 Verand. All rights reserved. TermsPrivacyAI policyAccessibilitySecurity
Not legal advice. Compliance packs are researched from the regulators' own text and tested by Verand, not reviewed by a licensed attorney.