Free tool
Canonical tag generator
An address, or a list of them, into the rel="canonical" line for the head of the page and the header form for files without one. The tool tidies what browsers treat as the same address, names every change it made so you can disagree with one, and flags the three mistakes that quietly cost a page its place. Nothing is fetched or sent.
Canonicals are one line of the crawl and indexing work in our technical SEO.
The tags, and what changed
What the tool changes, what it keeps, and why it names both
Two addresses that differ only in the case of the host, or by a fragment after a hash, or by the parameters an email tool added to track a click, are the same page to a browser and should be one page to a search engine. So the tool lowercases the scheme and the host, drops the fragment, and removes the tracking parameters it recognises (the utm family, the click identifiers from Google, Facebook, Microsoft and TikTok, and the common mail and referral tags), and it prints each of those as a line under the tag, because a change you cannot see is a change you cannot disagree with.
It keeps the path's case, the trailing slash and the rest of the query string exactly as you typed them, because those are decisions about your own site that a tool has no business making: /Shoes/ and /shoes/ can be different pages, /about and /about/ can be too, and a page number in a query string is content while a source tag is noise. If you know no parameter on a page changes what it shows, the checkbox removes the whole query string and says so.
Three things are flagged rather than fixed. A relative address, because Google's own page on canonicalisation recommends absolute ones and a relative one resolves differently on every copy of the page. A canonical on a different host from the page it sits on, which is allowed and is also the commonest way a staging site or an old domain steals a page by accident. And an http canonical on an https page, which points the search engine at the copy you redirect away from. The same Google page is the source for the fact the whole tool rests on: the tag is a strong hint, and it is followed when the links, the sitemap and the redirects agree with it.
Where the line goes
The link element goes in the head of every copy of the page, including the canonical copy itself, which points at its own address; one per page, never two. Files that have no head, a PDF or an image served at more than one address, take the header form instead, sent by the server with the file. On WordPress and most shop platforms the element is written by the SEO plugin or the theme from the page's own address, so the tool's use there is checking what the plugin wrote against what you meant, and setting the exceptions: a filtered category pointing at the unfiltered one, a syndicated article pointing home.
The tags beside this one
A page in several languages carries hreflang lines beside the canonical, and each language version is its own canonical; the hreflang generator writes that set. The address the canonical names should be a clean one, which is the slug generator's job, and canonicals are the first thing to read after a move, which is why they are a step on the SEO migration checklist.
Questions about canonical tags
What is a canonical tag?
A line in the head of a page that names the address you want search engines to treat as the original when the same content is reachable at more than one. Google describes it as a strong hint rather than an order: it usually follows it, and it can choose a different address when the signals disagree, so the tag works best when the internal links, the sitemap and the redirects all point at the same address it names.
How do I generate a canonical tag?
Paste the address the page should be known by into the box above, one per line for a list. The tool writes the link element for the head of the page and the header form for files that have no head, such as PDFs, and lists what it changed on the way: the case of the host, a fragment, tracking parameters. Put the element in the head of every copy of the page, including the canonical one, which should point at itself.
Can you give an example of a canonical URL?
A product reachable at /shoes/?colour=red, /shoes/?sort=price and /shoes/ has one canonical address, /shoes/, and every version carries a link element pointing at the full https address of that page. The versions with a query string still exist and still work for visitors; the tag tells search engines which one to keep.
How do I check the canonical tags I already have?
View the source of the page and look for rel="canonical" in the head; there should be exactly one, it should be an absolute address, and on the page it names it should point at itself. Search Console's URL inspection shows the address Google actually chose next to the one you declared, and the two disagreeing is the finding worth chasing. This tool does not fetch pages, so it cannot check a live site for you.
Should the canonical include the trailing slash and the query string?
It should match the address you actually serve and link to, so the tool keeps both exactly as you typed them and tells you it did. If your site serves /about and /about/ as the same page, pick the one your links use and redirect the other. A query string that changes what the page shows, such as a page number, stays; one that only tracks where the visitor came from is removed, and the tool names which ones it removed.
Is anything I type here sent anywhere?
No. Everything happens in your browser. Nothing is fetched and nothing is sent, which you can confirm in your browser’s network tab.
Book a call with us
A 30-minute call in your working hours. Tell us what you sell and where, and we will tell you what we would do first and what it involves. Prefer email? Send your website through the form and the Passieon Team will reply within two working days.