SEO для малого бизнеса

Дубли страниц: как найти и закрыть от индексации

Технические дубли по UTM, фильтрам, сортировкам, www и без, http и https. Чек-лист проверки и шаги для WP, Битрикс, OpenCart.

обновлено 9 минут чтения 0 Дмитрий Акиндинов
Содержание
  1. Что такое дубль страницы
  2. Откуда берутся дубли
  3. Как найти все дубли на своём сайте
  4. Как закрывать дубли: rel canonical
  5. Как закрывать дубли: 301 редирект
  6. Как закрывать дубли: robots.txt и Clean-param
  7. Как закрывать дубли: meta robots
  8. Особенности для популярных движков
  9. План чистки на 1-2 недели
  10. Когда стоит делегировать
  11. Частые вопросы

Дубли ищут сравнением: если в индексе страниц в два-три раза больше, чем реальных материалов, они точно есть. Источники стандартные: параметры сортировки и фильтров, версии с www и без, слеш на конце, пагинация. Закрывают их каноническим адресом, редиректом или Clean-param.

Дубли страниц это одна из самых тихих и хронических проблем SEO. Сайт работает, контент пишется, ссылки растут, а позиции стоят. Открываете Вебмастер, в индексе 12000 страниц, хотя реальных продуктов и статей у вас 800. Остальные 11200 это дубли, которые ваш сайт сам создал, а Яндекс их послушно проиндексировал.

Каждый такой дубль размывает ссылочный вес, тратит crawl budget робота и иногда вытесняет в выдаче нужную каноничную страницу. Лечатся дубли в 90 процентах случаев технически за несколько дней. Разберу, где они берутся и как чистить.

Два одинаковых окна сайта рядом

Что такое дубль страницы

Дубль это страница с тем же или почти тем же содержимым, но с другим URL. Поисковик видит две копии и не знает, какую считать оригиналом, размазывает рейтинг между ними, или вообще выкидывает обе из индекса.

Дубли бывают двух типов:

Полные. Содержимое на 95+ процентов идентично. Например, /product и /product/, или /?utm_source=fb и без UTM.

Частичные. Совпадает большая часть, но есть отличия. Карточка товара со скидкой и без, страница категории с разными сортировками, страница автора и страница его статьи.

Полные дубли проще найти и закрыть. Частичные требуют разбора по существу.

Откуда берутся дубли

В порядке частоты на типичном сайте малого бизнеса.

1. Параметры URL: UTM, yclid, gclid, fbclid

Самая массовая причина. Каждая рекламная ссылка добавляет хвост: ?utm_source=yandex&utm_medium=cpc&utm_campaign=summer. Сайт отдаёт ту же страницу с другим URL, поисковик считает это дублем.

Лечение: rel canonical в HTML или Clean-param в robots.txt для Яндекса.

2. Слэш в конце или его отсутствие

/about и /about/ это две разные страницы для робота. Если ваш сайт отвечает 200 на оба, у вас дубли везде.

Лечение: один формат через 301-редирект. Я обычно выбираю слэш в конце, как принято в Astro и многих SSG. Через .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(.[^./]+)$
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ /$1/ [R=301,L]

3. www и без www

https://saitfix.ru/ и https://www.saitfix.ru/ могут отдавать одно и то же. Если оба варианта работают и не редиректятся, у вас дубль каждой страницы.

Лечение: основное зеркало (с www или без, по вашему выбору), все остальные через 301-редирект. В .htaccess:

RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

В Яндекс Вебмастере и Google Search Console добавляете оба варианта и указываете основной.

4. http и https

Если SSL вы поставили недавно, и старые ссылки на http не редиректят на https, у вас два сайта в индексе.

Лечение: 301 со всех http на https.

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

5. WordPress: replytocom, attachment_id

?replytocom=123 создаётся, когда посетитель отвечает на комментарий. Каждый ответ создаёт уникальный URL.

?attachment_id=456 это страница вложения. На большом сайте таких страниц могут быть сотни.

Лечение: закрыть в robots.txt и поставить canonical на каноничную версию. Yoast SEO и RankMath закрывают это автоматически, проверьте, что включено.

6. Пагинация и сортировки

/category/?orderby=price и /category/?orderby=name это разные URL с почти одинаковым контентом.

Лечение: rel canonical с указанием на каноничную страницу без сортировки. На уровне robots.txt можно закрыть Disallow: /*?orderby= для Яндекса.

7. Фильтры (фасетная навигация)

/category/?filter_color=red&filter_size=m и десятки подобных комбинаций. На каталоге с десятью фильтрами по три значения это 1000+ URL.

Лечение зависит от стратегии. Если фильтры важны для SEO (есть запросы вроде красные ботинки 39 размер), генерируйте под них статические страницы и закрывайте остальные комбинации. Если фильтры не SEO, закрывайте все через robots.txt и canonical.

8. Index.html / index.php

/about/ и /about/index.html могут отдавать одно и то же.

Лечение: 301 редирект с /index.html на /:

RewriteCond %{THE_REQUEST} ^GET (.*)/index.(html?|php) HTTP
RewriteRule (.*)index.(html?|php)$ /$1 [R=301,L]

9. Заглавные и строчные буквы

/About и /about это разные URL для большинства серверов.

Лечение: всегда использовать строчные. Для исторических случаев 301 с заглавных на строчные.

10. Пагинация комментариев

WordPress даёт /post/comment-page-1/, /post/comment-page-2/. Каждая страница комментариев это отдельный URL.

Лечение: либо отключить пагинацию комментариев в настройках WP (Настройки > Обсуждения), либо поставить canonical на основной пост.

Как найти все дубли на своём сайте

Метод 1: Яндекс Вебмастер

Индексирование > Страницы в поиске > Исключённые страницы. Раздел Дубли показывает прямо найденные Яндексом. Просто и быстро.

Индексирование > Все страницы показывает общий список. Если страниц больше, чем вы ожидаете в 2-3 раза, у вас точно дубли.

Метод 2: Google Search Console

Indexing > Pages > Indexed. Видите общее число. Сравниваете с реальным числом контента (количество статей + товаров + страниц).

В разделе Not indexed ищете категории Duplicate, Google chose different canonical than user, Duplicate without user-selected canonical. Эти строки прямо говорят о дублях.

Метод 3: site:saitfix.ru в Яндексе и Google

Простой поиск site:saitfix.ru показывает примерное число проиндексированных страниц. Пролистайте, ищите URL с параметрами и replytocom, attachment_id, дубли по слэшу.

Метод 4: Screaming Frog SEO Spider

Бесплатный для маленьких сайтов до 500 URL, платный для больших. Прогоняет ваш сайт как поисковый бот, находит все ссылки и страницы. Показывает повторяющиеся title, description, h1 (часто это маркер дубля).

Метод 5: парсинг логов сервера

В access.log хостинга видны все запросы поисковых ботов. Через awk или скрипт вытаскиваете запросы Yandex/Googlebot, смотрите, какие URL они обходят. Если в списке много ?utm, ?orderby, ?attachment, у вас бот тратит бюджет на мусор.

Метод 6: специальные сервисы

Sitechecker, Serpstat, Ahrefs Site Audit. Платные, но дают подробный отчёт по дублям с рекомендациями.

Лупа над списком URL с зачёркиванием дублей

Как закрывать дубли: rel canonical

Главный инструмент против дублей это атрибут rel="canonical".

В HTML заголовка страницы добавляется:

<link rel="canonical" href="https://saitfix.ru/category/products/">

Это говорит поисковикам: основная версия по этому URL, остальные дубли. Поисковик объединяет рейтинг всех версий на канонической.

Где ставить canonical

В WordPress всё делает Yoast SEO или RankMath автоматически. На каждой странице ставится canonical на саму себя. Параметры URL и фильтры объединяются в каноничный URL без них.

В Битриксе встроенно у современных шаблонов, есть в админке настройка. Проверяйте через инспектор браузера на разных страницах.

В кастомных или старых сайтах добавляется руками в шаблон.

Типичные ошибки с canonical

Canonical на сайт целиком: <link rel="canonical" href="https://saitfix.ru/"> на каждой странице. Поисковик складывает весь сайт в одну страницу, теряете весь органический трафик. Исправляйте срочно.

Canonical на чужой сайт. Бывает, когда копировали HTML из чужой темы. Исправляйте.

Canonical на 404. Если canonical ведёт на несуществующую страницу, поисковик путается. Проверяйте, что canonical всегда ведёт на 200.

Canonical на http, когда сайт уже на https. Старая сайт-ловушка. Меняйте на правильную схему.

Canonical и noindex

Если страница не должна быть в индексе вообще, лучше <meta name="robots" content="noindex,follow">, чем canonical. Canonical говорит вот основная версия, а noindex говорит эту вообще не индексируй.

Не ставьте оба одновременно: получается противоречие, и поисковик выбирает на свой вкус.

Как закрывать дубли: 301 редирект

Если у дубля принципиально не должно быть отдельного URL, лучше 301-редирект, а не canonical.

Когда ставить 301: — Старые версии URL (после смены структуры). — www и без www. — http и https. — Слэш в конце или его отсутствие. — Заглавные буквы в URL. — index.html / index.php в конце URL.

301 это сильнее, чем canonical: страница физически становится недоступна по старому URL.

В .htaccess или через настройки CMS. Главное чтобы редирект был именно 301, а не 302 (временный).

Как закрывать дубли: robots.txt и Clean-param

Для Яндекса полезен Clean-param:

Clean-param: utm_source&utm_medium&utm_campaign&yclid&gclid&fbclid
Clean-param: replytocom&attachment_id&attachment
Clean-param: orderby&filter_*

Яндекс при индексации удаляет эти параметры и считает URL без них.

В robots.txt можно закрыть целые группы URL:

Disallow: /*?utm_*
Disallow: /*?orderby=
Disallow: /*?attachment_id=

Минус robots.txt: это инструкция к обходу. Страницу могут не обходить, но она всё равно может попасть в индекс по обратным ссылкам. Поэтому robots.txt + canonical/noindex в HTML это надёжнее.

Как закрывать дубли: meta robots

Для конкретных страниц самое надёжное это метатег:

<meta name="robots" content="noindex,follow">

noindex запрещает индексировать. follow разрешает переходить по ссылкам с этой страницы (важно, чтобы не обрывать передачу веса).

Когда использовать noindex: — Страницы поиска по сайту (/?s=...). — Страницы пагинации тегов и категорий, если они не уникальны. — Страницы авторов в коммерческом сайте. — Технические страницы (политика, условия) можно оставлять в индексе, но иногда выгоднее noindex.

Особенности для популярных движков

WordPress

Yoast SEO и RankMath по умолчанию ставят canonical, закрывают attachment_id, ставят noindex на страницы поиска. Проверяйте, что плагины активны и настроены.

В Yoast SEO Search Appearance > Search Console > Crawl Errors показывает дубли.

Битрикс

В стандартных компонентах canonical настраивается в Главный модуль > Настройки SEO. Для каталога важно проверить, что canonical для страниц фильтрации правильный.

OpenCart

В OpenCart есть проблема с дублями /index.php?route= и SEF-URL. Оба могут отдаваться одновременно. Лечение: настроить SEO Pack, который форсит SEF-URL и ставит canonical.

Tilda

Tilda обычно сама ставит canonical и закрывает мусор. Большие проблемы возникают редко.

Astro и SSG

В статических сайтах дубли по техническим причинам почти не возникают: каждая страница имеет один URL. Дубли могут появиться, если вы случайно создали два MDX-файла для одного контента. Решается чисткой.

Карта сайта с зачёркнутой страницей

План чистки на 1-2 недели

Реалистичный порядок действий.

День 1-2: аудит

  • Прогон сайта через Screaming Frog или Yandex Вебмастер.
  • Выписка типов дублей: какие именно URL дублируются.
  • Оценка масштаба: сколько лишних страниц, и какие категории дают больше всего.

День 3-4: технические правки

  • Включение rel canonical везде, где должно быть.
  • 301-редиректы для www, http, слэшей, регистра.
  • Обновление robots.txt с Clean-param и закрытиями.
  • Включение noindex на страницы поиска и тегов (если решили).

День 5-7: проверка и сабмит

  • Прогон сайта повторно через Screaming Frog.
  • Проверка через Yandex Вебмастер Анализ robots.txt.
  • Проверка через GSC URL Inspection нескольких URL.
  • Запуск переобхода через Yandex Вебмастер раздел Переобход.

Дальше: мониторинг

  • Через 2-4 недели смотрите снова. Количество страниц в индексе должно начать снижаться, мусор уходит.
  • Через 1-2 месяца общая картина стабилизируется. Если позиции по основным запросам растут, всё сделали правильно.

Когда стоит делегировать

Аудит дублей и постановка правил для типичного WordPress-сайта это 4-8 часов работы. Для крупного магазина с фасетной навигацией и большой историей до 20-30 часов.

Эта работа входит в часовую ставку или в любой из тарифов на /#pricing. Если у вас в индексе 5000-10000 страниц при реальных 500, и позиции стоят, опишите ситуацию через /#contact. Связанные материалы по SEO и индексации в /blog/category/seo/, там есть отдельные статьи про robots.txt, карту сайта и Search Console.

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

Как найти дубли страниц на сайте

Сравнить число страниц в индексе с числом реальных материалов. Дальше прогнать сайт краулером и посмотреть, какие адреса отдают одинаковый заголовок и текст. Вебмастер показывает дубли отдельным отчётом.

Откуда берутся дубли

Их плодят параметры сортировки и фильтров, версии с www и без, слеш на конце, пагинация, страницы печати и теги. Сайт создаёт дубли сам, а поисковик послушно их индексирует.

Чем закрывать дубли

Канонический адрес для однотипных вариантов одной страницы, 301 для адресов, которые переехали навсегда, Clean-param в robots.txt для параметров, которые не меняют содержимое. Мета-тег с запретом индексации для служебных страниц.

Сколько времени занимает чистка

Для обычного сайта на WordPress постановка правил 4-8 часов. Для магазина с фильтрами и длинной историей 20-30 часов. Результат в индексе виден через несколько недель.

Передайте техническую часть в надёжные руки.

Слежу за хостингом, бэкапами и обновлениями. Когда что-то пойдёт не так – звоните мне, не своему программисту, не в спортзал и не маме.

Короткие вопросы по теме

Все вопросы по теме "SEO для малого бизнеса"

Заявка

Обсудим задачу

Напишите имя и телефон, выберите удобный канал. Перезвоню или напишу в течение часа в рабочее время.

Куда удобнее ответить?