Wiki
Web / стек

Canonical URL — что это простыми словами

Canonical URL — <link rel="canonical"> в HTML, указывающий поисковику "главную" версию страницы при дубликатах (utm-параметры, http/https, www/не-www).

Canonical URL — механизм борьбы с дубликатами контента. В `<head>` страницы: `<link rel="canonical" href="https://site.com/product/42" />`. Даже если пользователь пришёл по `https://site.com/product/42?utm=facebook`, поисковик знает — считать одной страницей и индексировать canonical.

Проблема дубликатов: (1) UTM-метки (`?utm_source=fb`) — миллион вариантов одной страницы, (2) сортировки/фильтры (`?sort=price&color=red`) — 100 вариантов каталога, (3) www vs без-www vs http/https, (4) trailing slash (`/blog/` vs `/blog`), (5) пагинация (`/page/2` часто дублирует /page/1 по мета-описанию). Без canonical — Google размывает "вес" между всеми и рейтинг падает.

Правила: (1) canonical всегда абсолютный (не `/product/42`, а `https://site.com/product/42`), (2) сам на себя — если страница уникальна, всё равно ставьте `canonical` на себя же (защита от параметров), (3) не цепочки (A → B → C — Google идёт по одному хопу), (4) не через robots.txt — canonical читается ботом, значит бот должен иметь право индексации.

Next.js делает это через `metadata.alternates.canonical: '/wiki/kvm'`. У нас — на каждой landing и wiki-странице.

Частые вопросы

Canonical vs 301 redirect?
301 — жёсткое перенаправление пользователей и ботов. Canonical — оставляем несколько URL для UX (utm-tracking), но для SEO — одна страница.
Работает cross-domain?
Да. Например, синдицированная статья на medium.com может иметь canonical на ваш оригинальный блог.

Смотрите также