Canonical links and duplicate content
The same page is often reachable at several addresses. A canonical tag nominates the one that counts, so ranking signals consolidate instead of splitting.
What it is
A canonical link is a line in the head naming the preferred address for the current page. It's a strong hint to search engines rather than an absolute directive.
Duplicates arise more easily than people expect: with and without www, HTTP and HTTPS, with a trailing slash and without, and with tracking parameters appended by an advertising campaign or an email newsletter.
Why it matters
If four addresses serve one page, links to that page may be divided between them, and none ranks as well as the combined total would.
It also wastes crawl budget, which matters on larger sites, and can produce the wrong address in search results.
Where duplicates come from on small sites
On a typical small business site, duplicate addresses come from a few predictable places. The domain answers with and without www. Old HTTP addresses still work alongside HTTPS. Some platforms serve the same page with and without a trailing slash, or under /index.html. Advertising and email campaigns add tracking parameters, and online shops create filtered and sorted versions of each category.
Search Console shows when this is happening. Its page indexing report lists addresses marked as duplicates, and notes when Google has chosen a different canonical from the one you declared. That second message is worth reading closely: it usually means the signals disagree, such as a canonical pointing one way while internal links and the sitemap point another.
Canonical, redirect or noindex?
Each tool fits a different situation. A 301 redirect is right when an old address should simply stop existing, such as after a move to HTTPS or a page rename, because visitors are sent on as well as search engines. A canonical tag is right when both addresses need to keep working for visitors, such as a page with tracking parameters, but only one should be indexed.
A noindex tag is for pages that shouldn't appear in search at all, such as thank-you pages or internal search results. Don't combine noindex with a canonical pointing elsewhere, since the two instructions conflict. And make each page in a series, such as page two of a blog archive, canonical to itself rather than to page one, or the later pages and everything linked from them can drop out of the index.
Checking canonicals on your own site
The quickest check is to view the page source and search for 'canonical'. There should be exactly one canonical link, it should use the full https address, and for an ordinary page it should point at the page itself. Two canonical tags on one page, often one from the theme and one from a plugin, are usually ignored altogether.
Google Search Console's URL Inspection tool goes further. For any address it shows the canonical you declared and the canonical Google actually selected. When the two differ, Google has decided another address is the main one, usually because redirects, internal links or the sitemap point there instead. Fixing those other signals is normally what brings the two back into line.
One special case is content published on more than one website, such as an article a business also posts on an industry site. A canonical on the copy pointing at the original asks search engines to credit the original. It is only a hint, and the other site has to agree to add it, so it is worth asking for before the article goes up rather than after.
After any change to the site's structure, such as a move to HTTPS, a switch between www and the bare domain, or a new platform, check the canonicals on a handful of important pages again. Migrations are the moment when templates are most likely to keep pointing at the old addresses, and a canonical pointing at a redirect undoes much of the work the redirect was meant to do.
How to fix it
- Add a self-referencing canonical to every page pointing at its preferred absolute address.
- Pick one host and one protocol, then redirect the alternatives with 301 redirects.
- Use absolute addresses, including https and the domain, rather than relative paths.
- Make sure the canonical points at a page that actually returns a 200 response.
- Use the URL Inspection tool in Search Console to compare the canonical you declared with the one Google selected.
What good looks like
<link rel="canonical" href="https://example.com.au/emergency-plumbing">
Common mistakes
- Pointing every page's canonical at the home page, which tells search engines the rest of the site isn't worth indexing.
- Canonical tags that point at a redirect or a missing page.
- Mixing signals, such as a canonical that says one thing and a redirect that says another.
- Copying a template that hard-codes one page's canonical, so every page built from it claims to be that page.
Check your own site. ppclift checks this automatically on every page it audits. Run a free audit and see every check on one page, with no account required.
Doing this for a client? This is one of 15 checks. ppclift is SEO lead generation software that audits every local business in a suburb at once, so you can find SEO clients who already need this work. Free plan, no card.