Откуда берутся адресные дубли
Почти все они возникают не по злому умыслу, а из-за того, что сервер отвечает кодом 200 на любой вариант написания адреса.
| Источник | Пример пары адресов |
|---|---|
| Слэш в конце | /catalog/divany и /catalog/divany/ |
| www | site.ru и www.site.ru |
| Протокол | http:// и https:// |
| Регистр | /Catalog/ и /catalog/ |
| Индексный файл | / и /index.php |
| Параметры | /catalog/ и /catalog/?utm_source=vk |
| Пагинация | /catalog/ и /catalog/page-1/ |
| Товар в разных категориях | /divany/milano/ и /rasprodazha/milano/ |
Чем это мешает
- Внешние и внутренние ссылки распределяются между копиями вместо одной страницы.
- Робот тратит бюджет обхода на повторное скачивание одного и того же.
- В выдаче может закрепиться неудачная версия — с параметром или без слэша.
- Отчёты аналитики дробятся: трафик одной страницы разносится по нескольким строкам.
Как найти дубли
- Откройте главную страницу в четырёх вариантах: с www и без, по http и https. Три из четырёх должны отдавать 301.
- Добавьте и уберите слэш в конце произвольного адреса — один из вариантов обязан перенаправлять на другой.
- Наберите адрес с заглавной буквы — должен быть редирект или 404, но не рабочая копия.
- Допишите к адресу произвольный параметр
?test=1. Если страница открывается как обычная и не имеет canonical — это открытая дверь для бесконечных дублей. - Прогоните сайт краулером и отсортируйте страницы по совпадению заголовков и объёма текста.
- Проверьте отчёт «Страницы в поиске» в панели вебмастера — исключённые дубли там перечислены явно.
Быстрый тест на параметры. Откройте site.ru/catalog/?abc=123. Страница открылась, в коде нет тега canonical на чистый адрес — значит, любой рекламный или партнёрский хвост создаёт новую страницу для индексации.
Чем склеивать: три инструмента
301-редирект — когда одна версия адреса заведомо лишняя: www, http, лишний слэш, index.php, заглавные буквы. Настройка разобрана в отдельной инструкции по 301.
Канонический адрес — когда обе версии должны открываться: страница с параметрами сортировки, товар в нескольких категориях, версия для печати.
<link rel="canonical" href="https://site.ru/catalog/divany/">
Правила индексации — для служебных разделов, которые не нужны в поиске: корзина, сравнение, результаты внутреннего поиска, личный кабинет.
Что настроить один раз и забыть
- Одна версия домена: выберите с www или без и склейте вторую редиректом.
- Только https, http отдаёт 301.
- Единый формат слэша в конце адресов по всему сайту.
- Приведение адресов к нижнему регистру.
- Canonical на всех страницах, где возможны параметры.
- Внутренние ссылки ведут на канонический вариант напрямую, без цепочки редиректов.
Эти шесть пунктов закрывают подавляющее большинство адресных дублей. Оставшиеся почти всегда связаны со структурой каталога — о ней в материале про структуру URL интернет-магазина.
Готовые правила для типовых склеек
Большинство адресных дублей закрывается несколькими строками в .htaccess. Правила добавляются после RewriteEngine On и применяются сверху вниз.
# Только https
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
# Без www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
# Убираем index.php из адреса
RewriteCond %{THE_REQUEST} /index\.php[\s?] [NC]
RewriteRule ^(.*)index\.php$ /$1 [R=301,L]
# Всегда слэш в конце
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /$1/ [R=301,L]
Правила для регистра сложнее и зависят от сервера — надёжнее решать задачу на стороне приложения, приводя путь к нижнему регистру до маршрутизации. Общий разбор перенаправлений — в инструкции по 301-редиректу.
Как правильно ставить canonical
Канонический адрес — не универсальное лекарство, и ошибок с ним не меньше, чем с редиректами.
- Абсолютный адрес. Относительный путь в canonical работает не везде — пишите полный, с протоколом и доменом.
- Один тег на странице. Два разных canonical означают, что система проигнорирует оба.
- Каноническая страница отдаёт 200. Ссылка на редирект или на ошибку обесценивает тег.
- Canonical на самого себя. Для обычных страниц это нормальная практика, а не избыточность.
- Не путать с редиректом. Если вторая версия адреса не нужна пользователю вообще — нужен 301, а не canonical.
Что проверять регулярно
Адресные дубли появляются не только при запуске: их приносят новые модули, рекламные кампании и правки шаблона. Раз в квартал имеет смысл повторить короткий аудит:
- Четыре варианта главной страницы — три из них отдают 301.
- Произвольный адрес со слэшем и без — один перенаправляет на другой.
- Адрес с произвольным параметром — canonical указывает на чистый вариант.
- Отчёт «Страницы в поиске» — исключённых дублей не прибавилось.
- Внутренние ссылки не ведут через цепочки редиректов.
Пять проверок занимают меньше получаса и ловят почти все регрессии.
Частые вопросы
Слэш в конце адреса — нужен или нет?
Технически безразлично. Важно другое: выберите один формат для всего сайта, а второй перенаправляйте на него постоянным редиректом.
Штрафуют ли поисковые системы за дубли?
Отдельного штрафа нет. Проблема в другом: сигналы размываются между копиями, а робот тратит бюджет обхода на повторное скачивание одинакового содержимого.
Достаточно ли только canonical без редиректов?
Канонический адрес — рекомендация, а не команда. Там, где вторая версия адреса заведомо лишняя, надёжнее поставить 301-редирект.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.