Run a full scan — every category, one report
Canonical Tag Checker
Extract and analyze the <link rel="canonical"> HTML tag or HTTP Headers to prevent SEO duplicate content penalties.
Our Canonical URL Checker inspects the rel=canonical tag on any page and reports whether it is present, valid and self-consistent. Canonical tags are how you tell search engines which URL is the real one when the same content is reachable several ways.
What is a Canonical URL?
A canonical URL declares which address is the authoritative version of a page. It is published as a link element in the head — rel="canonical" — or as an HTTP Link header.
It exists because the same content is usually reachable through many URLs. With and without www, HTTP and HTTPS, with trailing slash and without, with tracking parameters appended, through category paths and through search results. Search engines see each as a separate URL and must decide which to index.
Left to guess, they consolidate signals imperfectly and may choose a URL you did not intend. A canonical tag makes the decision explicit, consolidating ranking signals from every variant onto the single URL you nominate.
It exists because the same content is usually reachable through many URLs. With and without www, HTTP and HTTPS, with trailing slash and without, with tracking parameters appended, through category paths and through search results. Search engines see each as a separate URL and must decide which to index.
Left to guess, they consolidate signals imperfectly and may choose a URL you did not intend. A canonical tag makes the decision explicit, consolidating ranking signals from every variant onto the single URL you nominate.
- Declares which URL is the authoritative version of a page
- Published as a link element in the head or an HTTP Link header
- Consolidates ranking signals from duplicate URLs
- Necessary because tracking parameters create endless variants
- A hint to search engines, not a directive they must obey
Why Canonical URLs Matter
Duplicate URLs split ranking signals. When ten inbound links point at four different variants of the same page, each variant accumulates a fraction of the authority rather than one URL accumulating all of it. Nothing appears broken; the page simply ranks lower than it should.
Crawl budget is the second cost. A crawler that spends its allocation fetching parameter variants of pages it has already seen has less left for genuinely new content. On large sites this measurably delays indexing of new pages.
Mistakes here are expensive precisely because they are silent. A canonical tag pointing at the wrong URL can deindex a page entirely, and nothing in the page itself looks wrong.
Crawl budget is the second cost. A crawler that spends its allocation fetching parameter variants of pages it has already seen has less left for genuinely new content. On large sites this measurably delays indexing of new pages.
Mistakes here are expensive precisely because they are silent. A canonical tag pointing at the wrong URL can deindex a page entirely, and nothing in the page itself looks wrong.
- Duplicate URLs split ranking signals across variants
- Parameter variants waste crawl budget on already-seen content
- A wrong canonical can remove a page from the index entirely
- Errors are invisible to users and to ordinary testing
- Tracking parameters generate unlimited duplicates automatically
How This Canonical Checker Works
The tool fetches the page and extracts the canonical declaration from both the markup and the headers.
- Validates the URL input against format and SSRF safety checks
- Fetches the page and parses the head section
- Extracts the rel=canonical link element and any HTTP Link header
- Compares the declared canonical against the requested URL
- Flags missing, duplicate, relative and cross-domain canonicals
How to Use the Canonical Checker
- Enter the page URL you want to inspect
- Run the check to extract the canonical declaration
- Confirm exactly one canonical is present
- Check whether it matches the URL you requested
- Test parameter and www variants to confirm they all point at the same canonical
Understanding Your Canonical Results
The check reports what the page declares and how it compares to the requested URL:
| Field / Value | Meaning |
|---|---|
Self-referencing |
The canonical matches the requested URL. The correct and expected result for a primary page, and it protects against parameter variants being indexed separately. |
Points elsewhere |
The page nominates a different URL as authoritative. Correct for a parameter variant or a duplicate, but a serious error if this is meant to be the primary page. |
Missing |
No canonical declared. Search engines must infer which variant to index, and their choice may not match your intent. |
Multiple canonicals |
More than one declaration, often because a CMS and a plugin both add one. Search engines typically ignore all of them, leaving the page effectively uncanonicalised. |
Relative URL |
A path rather than a full URL. Technically permitted but fragile, since it resolves against the current page and breaks under some proxy and CDN configurations. |
Cross-domain |
Points at a different domain. Legitimate for syndicated content, but a critical error when set accidentally, since it tells search engines the other domain owns your content. |
Common Problems & How to Fix Them
Best Practices
- Add a self-referencing canonical to every indexable page
- Use absolute URLs including the protocol, not relative paths
- Match your canonical convention to your redirect rules exactly
- Point parameter variants at the clean URL without parameters
- Ensure exactly one canonical declaration per page
- Include the canonical in the head, not injected later by script
- Re-check canonicals after any CMS, theme or plugin change
Security Recommendations
- Never build a canonical URL from unvalidated user input, since an injected canonical can hand your ranking signals to an attacker domain
- Watch for unexpected cross-domain canonicals, which can indicate a compromised template or a malicious plugin
- Ensure canonicals are emitted server-side rather than by client script, as crawlers may not execute it and it is easier to tamper with
- Audit canonicals after any third-party plugin installation, which is a common route for injected tags
- Confirm the canonical matches your HSTS and HTTPS policy so the insecure variant is never nominated
- Monitor for canonical changes as part of change detection on critical pages