# canonical URL

*The address a page declares as its own*

A canonical URL is the address a page names as the real one for its content, so a search engine that reaches it by any other route indexes the named version instead. It is a strong hint, not an instruction, and Google can overrule it.

**Canonical:** https://spoko.space/glossary/canonical-url/  
**Language:** en  
**Category:** SEO and AI search  
**Also known as:** rel=canonical, canonical tag, canonical link  
**Published:** 2026-09-22  
**Glossary:** https://spoko.space/glossary/

---
## What it is {#what-it-is}

The same content is often reachable at several addresses: with and without a tracking parameter, with and without a trailing slash, at `/product/x` and at `/category/y/product/x`. A search engine that finds all of them has to decide which one to index, and left alone it decides for itself.

The canonical is the page saying which one it wants. Every page should declare one, and on most sites that is its own address — a self-canonical, which sounds redundant and is the thing that keeps parameter variants from splitting a page into five.

## Why it matters if you are paying for a website {#why-it-matters-if-you-are-paying-for-a-website}

Because duplicates dilute. Two addresses for one page means the links pointing at it are split between them and neither ranks as well as the single page would have. On a store with filters and sort parameters, that multiplies fast.

## Where this site has to get it right {#where-this-site-has-to-get-it-right}

Every page here ships a plain-Markdown twin at the same address with a `.md` suffix — `/blog/effective-website.md` next to `/blog/effective-website/`. Two URLs, one document, and the question of which is canonical is not academic: the mirrors exist to be read by models and by anyone who pastes a URL into one.

The answer is that the HTML page is canonical, the mirror says so in its own header, and the `.md` files go out with a noindex header so they never compete for the position the page already holds. The build checks that every mirror's `**Canonical:**` line points back at the page it mirrors, because a mirror that names the wrong page is worse than no mirror.

## What a canonical is not {#what-a-canonical-is-not}

It is not a redirect — visitors still reach the non-canonical address and see the page. It is not a `noindex` either, and it is not binding: if the signals disagree with it, Google picks its own and reports the choice in Search Console, which is the only place you will find out.

And it is not a fix for thin duplicate pages. Two near-identical pages with a canonical between them are still two near-identical pages; the canonical decides which one is indexed, not whether either deserves to be.

## Related terms {#related-terms}

- [hreflang](https://spoko.space/glossary/hreflang/): An hreflang annotation tells a search engine that two pages are the same document in different languages. It only works when both sides name each other and each one names itself — a one-sided set is discarded for the whole cluster. — Markdown: https://spoko.space/glossary/hreflang.md
- [structured data](https://spoko.space/glossary/structured-data/): Structured data is a block of machine-readable facts added to a page — what it is, who wrote it, what it costs — using the schema.org vocabulary, usually as JSON-LD. Search engines read it to understand the page and sometimes to decorate the result. — Markdown: https://spoko.space/glossary/structured-data.md
- [AEO](https://spoko.space/glossary/aeo/): AEO is the work of making a page usable as a source by systems that answer questions directly — AI assistants and AI overviews — rather than only listing links. The goal shifts from being clicked to being quoted correctly and attributed. — Markdown: https://spoko.space/glossary/aeo.md
- [Google Search Console](https://spoko.space/glossary/google-search-console/): Search Console is the free tool where Google reports what it knows about your site: which queries showed it, where it ranked, which pages are indexed and which are not, and what its crawler found wrong. It is the only first-party source for any of it. — Markdown: https://spoko.space/glossary/google-search-console.md

## Where I write about this {#related-posts}

- [SEO agency website](https://spoko.space/seo-agency-website/) — Markdown: https://spoko.space/seo-agency-website.md
  Showcase for a freelance SEO expert dedicated to improving online visibility and driving organic traffic for businesses.
- [Magento Open Source End of Support: A Complete Guide to the Decision You Need to Make in 2026](https://spoko.space/blog/magento-open-source-end-of-support/) — Markdown: https://spoko.space/blog/magento-open-source-end-of-support.md
  Adobe isn't shutting down Magento tomorrow — but for Open Source, extended support never existed. Real timeline, costs, regional integrations, migration plan, and the fourth option nobody talks about.

## See also {#see-also}

- [AI visibility audit](https://spoko.space/ai-search-audit/)

## Sources {#sources}

- [How to specify a canonical with rel="canonical"](https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls) — What the tag does, and the cases where Google picks a different URL anyway.
