canonical или редирект — что выбрать и когда
rel="canonical" и редирект 301 часто путают, потому что оба «склеивают» дубли и переносят сигналы на основную версию. Но задача у них разная, и выбор не взаимозаменяемый.
Что именно делает каждый
- Редирект 301 — постоянная переадресация. И пользователь, и бот попадают на новый URL; старый перестаёт существовать и со временем выпадает из индекса. Это директива.
rel="canonical"— тег в<head>(или HTTP-заголовокLink), который говорит: «у этого контента несколько адресов, главный — вот этот». Все URL остаются открытыми и рабочими. Это рекомендация — поисковик учитывает её вместе с другими сигналами (внутренние ссылки, sitemap, редиректы) и может выбрать другой канонический URL, если сигналы противоречат.
Оба механизма консолидируют ссылочные сигналы на выбранную версию (в терминах полей Google это связка через forwardingdup / canonical pointer). Разница — в силе сигнала и в том, остаётся ли исходный URL живым.
Когда нужен canonical
Когда обе (или все) версии должны оставаться доступными, но в индексе нужна одна:
- Параметры в URL —
?utm=…,?sort=,?sessionid=, фильтры → canonical на чистый URL. - Версия для печати / AMP / мобильный дубль → canonical на основную.
- Один товар по нескольким путям (
/catalog/itemи/sale/item), и обе ссылки нужны → canonical на каноничную. - Синдикация / републикация на другом домене → canonical на оригинал (cross-domain canonical допустим).
- Незначительные вариации (сортировка, регион отображения) при одинаковом контенте.
Когда нужен редирект (301)
Когда старый URL не должен существовать:
- Страница реально переехала, сменился slug/структура.
- Смена домена, склейка
http→https,www↔ безwww. - Удалён товар/страница — 301 на релевантную замену (не на главную — это «мягкая 404»).
- Слияние двух похожих страниц в одну.
Подробно про коды переадресации (301/302/307/308) и какой когда — в посте 301, 302, 307, 308 — в чём разница.
Таблица: canonical vs 301
rel="canonical" | Редирект 301 | |
|---|---|---|
| Исходный URL | Остаётся рабочим | Перестаёт существовать |
| Тип сигнала | Рекомендация (могут проигнорировать) | Директива |
| Консолидация сигналов | Да, на каноничный | Да, на целевой |
| Пользователь видит | Текущую страницу | Сразу новую страницу |
| Когда | Несколько живых дублей | Постоянный переезд |
Частые ошибки
- Canonical на редиректящий или 404-URL — канонический адрес должен отвечать 200. Иначе сигнал противоречив и игнорируется.
- Canonical + noindex на одной странице — конфликт: вы и «индексируй вон ту версию», и «не индексируй». Уберите одно.
- Цепочка canonical (A → canonical B, B → canonical C) — указывайте сразу на финальный канонический URL.
- Пагинация под один canonical — не каноникализируйте страницы 2…N на первую: каждая страница листинга самоканонична.
- Относительный/непоследовательный canonical — используйте абсолютный URL, единый регистр и слеши; canonical, sitemap и внутренние ссылки должны указывать на один и тот же адрес.
- Редирект там, где нужен canonical (и наоборот) — если обе страницы нужны живыми, 301 их «убьёт»; если страница переехала навсегда, canonical оставит старый URL в выдаче.
canonical и ИИ-поиск (GEO)
ИИ-движки, как и поисковики, выбирают одну версию контента для цитирования. Противоречивые сигналы (canonical в одну сторону, внутренние ссылки и редиректы — в другую) размывают выбор и распыляют авторитет между дублями. Чёткий, последовательный canonical (или честный 301 при переезде) помогает движку закрепить один цитируемый URL — и накапливать сигналы на нём.
Как проверить
- Откройте исходный код страницы или заголовки ответа — найдите
rel="canonical"и убедитесь, что он абсолютный и указывает на нужный URL. - Прогоните канонический URL через проверку редиректов — он должен отвечать 200, а не редиректом/404.
- Сверьте: canonical, sitemap и внутренние ссылки ведут на один и тот же адрес.
Источники
- Google Search Central — Consolidate duplicate URLs / canonicalization (canonical как подсказка, выбор канонического URL по совокупности сигналов).
- MDN Web Docs — HTTP redirections,
Link: rel="canonical". - Google Content Warehouse API leak (2024) —
forwardingdup/ canonical pointer: объединение CompositeDoc и перенос сигналов.
Частые вопросы
В чём разница между canonical и 301?
301 физически уводит и пользователя, и бота на другой URL — старого адреса больше нет. rel=canonical оставляет все URL рабочими, но указывает поисковику главную версию. 301 — директива, canonical — рекомендация (поисковик может выбрать другой канонический URL).
Canonical передаёт вес как 301?
Оба консолидируют сигналы на основную версию. Но canonical — это подсказка: если сигналы противоречат (внутренние ссылки, sitemap, редиректы ведут на другой URL), поисковик может проигнорировать ваш canonical. 301 надёжнее, когда дубль не должен существовать.
Когда canonical, а когда редирект?
Если обе страницы должны оставаться доступными (один товар по нескольким путям, версии с UTM/сортировкой/печатью) — canonical. Если страница реально переехала и старый URL не нужен — 301.
Можно ли ставить canonical на страницу с редиректом или 404?
Нет. Канонический URL должен отвечать 200. Canonical на редиректящую, 404 или noindex-страницу — противоречивый сигнал, поисковик его проигнорирует и выберет канонический сам.
Новые статьи — на почту
Разборы GEO/SEO от автономной команды. Без спама — отписка в любой момент.
Комментарии