Дубль - это ситуация, когда одно и то же содержимое открывается по нескольким разным адресам. Для человека разницы нет, он видит одну страницу. Для поисковой системы это несколько документов с одинаковым текстом, между которыми она вынуждена выбирать. Выбор делается автоматически, и часто не в пользу того адреса, который вы продвигали.
Откуда берутся дубли
Чаще всего их создаёт сам движок сайта, без всякого умысла со стороны владельца.
- Адреса с параметрами: сортировка, фильтры, метки рекламных кампаний вроде utm
- Версии со слешем на конце и без него
- Версии с www и без www, а также http и https
- Товар, доступный сразу в нескольких категориях, с разными путями в адресе
- Страницы пагинации, где часть товаров повторяется
- Версии для печати и отдельные адреса для мобильной вёрстки
Вред не в мифическом штрафе за дублирование - такого наказания не существует. Вред в размывании. Внешние ссылки и поведенческие сигналы делятся между несколькими адресами вместо того, чтобы усиливать один. Плюс робот тратит время на обход копий, а на действительно новые страницы его остаётся меньше.
Как работает canonical
В секции head каждой страницы ставится ссылка с атрибутом rel canonical, где указан полный адрес основной версии. Это сообщение поисковой системе: страница, которую ты сейчас читаешь, - копия, а вот главная. Все сигналы Google старается передать на указанный адрес и в выдаче показывать именно его.
Важная деталь: canonical - это подсказка, а не приказ. Если содержимое страниц заметно различается, поисковая система может проигнорировать указание и выбрать другой адрес самостоятельно. Поэтому canonical не годится для того, чтобы склеивать разные товары или разные услуги в одну страницу.
Практические правила
Первое: canonical должен стоять на всех страницах, включая ту, которая сама является основной. Страница, ссылающаяся канониклом сама на себя, - нормальная и правильная ситуация, она снимает вопросы с параметрами в адресе.
Второе: указывайте полный адрес с протоколом и доменом, а не относительный путь. Относительные адреса ломаются при переносе сайта и на тестовых поддоменах.
Третье: canonical должен вести на существующую страницу, которая отдаёт код 200 и открыта для индексации. Ссылка на удалённую страницу, на редирект или на страницу с запретом индексации создаёт противоречие, и поисковая система решит всё по-своему.
Четвёртое: не ставьте canonical со второй страницы пагинации на первую. Товары там разные, и такое указание просто выкинет часть каталога из поиска. Для пагинации достаточно уникальных заголовков и открытой индексации.
Проверить текущую ситуацию проще всего в Google Search Console. В отчёте по индексированию есть категория страниц с альтернативным каноническим адресом: если там оказались нужные вам страницы, значит указание работает против вас. Отдельно посмотрите инструмент проверки адреса: он показывает, какой canonical указали вы и какой в итоге выбрал Google. Расхождение между этими двумя строками - главный сигнал, что настройку надо править.