Keyword Density Checker
See which words and phrases dominate a page, with density figures and over-use warnings.
Build a canonical link tag from any URL, and see every variant it has to cover — scheme, www, trailing slash and query string.
Your result is ready — download it below:
Re-encoded without size gain Download links expire within 30 minutes.
No result to display for the current input.
Build a canonical link tag from any URL, and see every variant it has to cover — scheme, www, trailing slash and query string.
A canonical tag is one line of HTML, and the reason it goes wrong is almost never the line itself. It points at a redirect, it is relative instead of absolute, it disagrees with the sitemap, or the page it names is not indexable. This builder takes the URL, applies the decisions a canonical tag implies — scheme, host, www, trailing slash, query string — and hands back the tag together with every URL form a crawler can reach the same page by. Seeing those variants next to the tag is the point: a canonical tag only settles the question if they really do all serve the same content.
It is a hint about which of several URLs should be indexed, not a redirect. Visitors can still reach any of the others, and the tag does not stop them. That distinction matters more than it sounds: many people add a canonical tag expecting it to fix a redirect chain, when in fact a tag pointing at a redirecting URL is ignored, and the fix is to remove the extra hop so the target returns 200 directly.
It is also per page. One page gets one canonical tag, pointing at the URL you want indexed. Cross-page canonicals — where /page-a points at /page-b — are for genuine duplicates such as a print view or a paginated listing, and they consolidate ranking signals rather than redirecting anyone.
Most canonical problems are really disagreement about one of four things. Scheme: the same page on http and https is two URLs, and the tag should name the https one with the other redirected, not tagged. Host: example.com and www.example.com are separate URLs unless one redirects to the other, and the tag settles which is the real one. Trailing slash: /page and /page/ are different paths to most servers, which is why the tag needs to match whatever your routes actually do. Query string: parameters that select content belong in the canonical URL, and parameters that identify a campaign click do not.
Each of those is a dropdown here, so the tag reflects your decision rather than a guess. The output then lists the resulting variants so you can confirm the others really are the same page.
Four situations cause a canonical tag to have no effect, and all four are worth checking before you assume a bug. The target URL redirects, so the crawler never sees a tag on a 200 response. The target is blocked in robots.txt or marked noindex, so it cannot be selected as canonical. The tag is relative rather than absolute and the crawler cannot resolve it, or it is malformed, commonly a missing closing slash. Or the page has two canonical tags pointing at different URLs, which leaves the crawler to choose and produces exactly the inconsistency the tag was meant to remove.
There is also the hreflang interaction: if you have hreflang annotations, each needs its own self-referencing canonical, and they must agree with each other.
Ad platforms and analytics append parameters like utm_source and gclid to links they send, which means the same page gets indexed under dozens of URLs that differ only in a campaign identifier. Each is a distinct URL to a crawler, and together they dilute the signals for the page you actually want ranked. The tool lists the campaign parameters it finds so you can strip them from the canonical URL.
It reports them rather than removing them silently, because a query string is sometimes genuinely part of the page — a filtered product listing or a paginated view can depend on its parameters, and stripping those from the canonical tag would merge pages that are not the same.
Copy the tag into the <head> of the page it describes, not onto every page. It should be self-referencing: the canonical on /page points at /page. Use one per page, and if the page already has a tag, replace it rather than adding a second.
After deploying, confirm the target returns 200 and is indexable, and that the variants listed here resolve to the same content. If one of them returns something different, a canonical tag cannot reconcile that, and the real fix is at the routing or redirect layer.
No. It is an indexing hint, and anyone visiting the non-canonical URL still lands on the page. If you need visitors sent somewhere else, that is a redirect, and it is a separate piece of configuration.
It is a reasonable default on a small site, because it makes the intended URL explicit and the variants unambiguous. On a large site it adds a line of HTML to every page for little gain if the routing already settles the question, and the more valuable use of a canonical tag is on pages that are genuinely duplicated.
Absolute. Google has said a relative canonical is treated as a hint that may be ignored, and an absolute URL removes any question about what it is relative to. Always include the scheme and host.
Replace it rather than adding another. Two canonical tags pointing at different URLs leave the crawler to pick, which is the opposite of what a canonical tag is for. If a CMS or plugin adds its own, find out which one wins before adding yours.
Almost always because the URL it points at redirects, or is blocked by robots.txt, or is marked noindex. A crawler only sees the tag on a 200 response it is allowed to index, so if the target cannot be fetched or cannot be indexed the hint cannot be acted on. A malformed or relative tag and a second conflicting tag are the other causes.
Yes, with care. Every URL in an hreflang set needs its own self-referencing canonical, and the canonical tags across the set must agree with the hreflang declarations. Where they disagree, Google ignores both.
Yes, that is what cross-page canonical is for, and it is the right tool for a genuine duplicate: a print view, a paginated listing, or the same content reachable under two paths. It consolidates ranking signals onto the target. It is not a redirect, and it should not be used to hide thin content.
Strip the ones that identify a campaign, such as utm_source or gclid, and keep the ones that select content, such as a filter or a page number. The tool lists which of the parameters it recognises as campaign parameters so you can decide with the page in front of you rather than by a blanket rule.
Canonical Tag Builder writes the canonical link tag for a page and lists the URL forms a crawler can reach it by. Pick a URL, set the scheme, www, trailing slash and query string handling you want, and press Run.
See which words and phrases dominate a page, with density figures and over-use warnings.
Turn a title or headline into clean, lowercase URL slugs with your own separator and length limit.
Build a valid robots.txt with crawler groups, disallow rules, crawl delay and a sitemap line.
Paste your page source and see every title, description, Open Graph and robots tag checked at once.