В WordPress дубли чаще всего появляются не из-за одной ошибки, а из-за набора мелких настроек: архивы тегов, страницы автора, пагинация, параметры сортировки, версии с www и без него, HTTP/HTTPS, а иногда и одинаковые записи в нескольких таксономиях. В итоге поисковик видит несколько URL с одним и тем же содержимым, а сайт теряет качество индексации.
Ниже — рабочая схема: как найти источник дублей, что закрывать от индексации, что оставлять, и как проверить, что после правок ничего не сломалось.
Как понять, что у вас именно проблема дублей
Симптомы обычно похожи: в поиске всплывают не те страницы, в отчётах Search Console растёт число «Просканировано, но не проиндексировано», а в выдаче одна и та же статья может открываться по разным адресам. На небольшом сайте это заметно по странным сниппетам и лишним страницам архива, на крупном — по раздутию индекса и просадке важных URL.
Что проверить в первую очередь
- Открывается ли одна и та же запись по нескольким адресам: с
wwwи без, сhttpиhttps, со слешем и без. - Есть ли у записей архивы по категориям, тегам, авторам и датам, которые повторяют один и тот же контент.
- Не индексируются ли страницы поиска, пагинация, служебные страницы и URL с параметрами.
- Совпадает ли
canonicalс реальным основным адресом страницы.
Если у вас установлен SEO-плагин, сначала посмотрите, не создаёт ли он лишние архивы автоматически. Если плагина нет, часть настроек придётся закрывать кодом или через robots.txt, но это не всегда лучший путь: запрет в robots не убирает URL из индекса, он только ограничивает обход.
Какие дубли в WordPress встречаются чаще всего
Самые типичные источники — это не «битые» страницы, а штатные механизмы WordPress. Они полезны для навигации, но не всегда нужны в индексе.
| Источник дубля | Что происходит | Что обычно делать |
|---|---|---|
| Теги | Одна запись попадает в несколько теговых архивов | Закрыть теги от индексации или оставить только если они реально собирают трафик |
| Архивы автора | Повторяют ленту записей одного автора | Оставить для крупных редакций или закрыть для небольших сайтов |
| Пагинация | Страницы /page/2/, /page/3/ и т. д. дублируют список записей | Обычно не индексировать, но не ломать навигацию |
| Параметры URL | ?utm=, ?replytocom=, сортировка, фильтры | Нормализовать canonical и по возможности не плодить индексируемые версии |
Пошаговое решение: от диагностики к исправлению
Шаг 1. Найдите все варианты одного URL
Начните с главной и нескольких типовых записей. Проверьте, какой адрес отдаёт сервер и какой указан в <link rel="canonical">. Если canonical указывает не на тот URL, поисковик может выбрать не ту версию страницы.
<?php
// Пример: вывод canonical вручную для проверки в шаблоне.
echo '<link rel="canonical" href="' . esc_url( get_permalink() ) . '" />';
Этот код не нужен в боевом шаблоне, если canonical уже выводит SEO-плагин. Он полезен только как временная проверка, чтобы понять, какой адрес WordPress считает основным.
Шаг 2. Закройте от индексации служебные архивы
Если сайт небольшой или контент не строится вокруг авторских страниц и тегов, проще убрать их из индекса. Это не значит удалить сам раздел: пользователи смогут им пользоваться, а поисковик перестанет считать его отдельной посадочной страницей.
<?php
add_action( 'wp_head', function () {
if ( is_tag() || is_author() || is_date() || is_search() ) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1 );
Такой подход рабочий, но в реальном проекте лучше делать это через SEO-плагин или тему, где уже есть управление мета-тегами. Код выше уместен только если у вас нет готового инструмента и вы понимаете, где именно он подключается.
Шаг 3. Уберите дубли от параметров и пагинации
Параметры ?replytocom=, UTM-метки и сортировки часто создают десятки адресов одной и той же страницы. Для пагинации важно не запрещать её технически, а не давать ей конкурировать с основной страницей.
Если у вас есть кастомные шаблоны, проверьте, не генерируют ли они ссылки с параметрами в меню, фильтрах и кнопках «поделиться». Иногда дубли создаёт не WordPress, а тема или плагин комментариев.
Шаг 4. Нормализуйте редиректы
Сайт должен открываться в одной канонической версии: либо https, либо http — но на практике почти всегда нужен https; либо с www, либо без него. Это уже задача веб-сервера или хостинга, а не WordPress. Если оставить обе версии доступными, поисковик будет видеть два адреса одной и той же страницы.
Для проверки откройте несколько URL вручную и убедитесь, что все альтернативы отдают 301 на один основной адрес. Если редиректов нет, исправляйте на уровне nginx/apache или через панель хостинга, а не в шаблоне.
Когда лучше использовать плагин, а когда — код
Если задача ограничивается SEO-настройками, удобнее использовать плагин: там проще управлять архивами, canonical и мета-тегами без правки темы. Если же проблема в кастомной логике темы или плагина, без кода не обойтись.
| Подход | Плюсы | Минусы |
|---|---|---|
| SEO-плагин | Быстро, безопаснее для редактора, меньше ручной работы | Зависимость от интерфейса и настроек плагина |
| Код в теме/плагине | Точный контроль над поведением | Нужно тестировать после обновлений |
robots.txt | Просто закрыть обход | Не решает проблему дубля как таковую |
Если нужен инструмент для чистки технических дублей и лишних элементов WordPress, можно посмотреть Clearfy Pro. Но даже с плагином важно понимать, какие именно URL вы закрываете и зачем.
Как проверить, что решение сработало
После изменений не ограничивайтесь визуальной проверкой. Нужны технические признаки, что сайт действительно стал чище для индексации.
- Откройте несколько старых дублей и убедитесь, что они редиректят на основной URL или отдают
noindex, если это задумано. - Проверьте исходный код страницы: canonical должен вести на единственную основную версию.
- В Search Console посмотрите, уменьшается ли число страниц с параметрами и служебных архивов.
- Проверьте, не исчезли ли из индекса важные страницы из-за слишком агрессивного
noindex.
Если у вас есть доступ к командной строке, можно быстро проверить редиректы через curl:
curl -I https://example.com/page/2/
В ответе должен быть понятный статус: либо 301 на основную версию, либо 200 для страницы, которую вы сознательно оставили доступной. Если видите цепочку из нескольких редиректов, её стоит сократить.
Частые ошибки и как их исправить
Закрыли страницу в robots.txt и решили, что вопрос закрыт
Это частая ошибка. Если URL уже известен поисковику, запрет на обход не гарантирует его исчезновение из индекса. Для дублей чаще нужен canonical, редирект или noindex, а не только robots.
Поставили noindex на всё подряд
Так легко убрать из индекса не только теги и архивы, но и полезные посадочные страницы. Особенно часто это случается после массовой настройки SEO-плагина без проверки шаблонов архивов.
Оставили несколько версий сайта доступными
Если www и без www открываются отдельно, поисковик может воспринимать их как разные документы. То же самое касается HTTP и HTTPS. Здесь нужен один основной вариант и жёсткий 301-редирект со всех альтернатив.
Сломали навигацию, закрыв пагинацию
Пагинация нужна пользователю и поисковому роботу для обхода архива. Её не стоит удалять из HTML или делать недоступной. Обычно достаточно не давать ей конкурировать с основной страницей архива в индексе.
Практические советы по безопасности и производительности
Чем меньше лишних архивов и параметров генерирует сайт, тем проще его сканировать и тем меньше мусора попадает в логи и кеш. Это не только про SEO, но и про производительность:
- не плодите бесконечные архивы тегов, если они не дают трафик;
- не создавайте индексируемые страницы фильтров без необходимости;
- проверяйте, не генерирует ли тема отдельные шаблоны для одинакового контента;
- после правок очистите кеш страницы и, если есть, объектный кеш.
Если вы используете плагин для кеширования, после изменений в canonical, noindex или редиректах обязательно сбросьте кеш, иначе проверка покажет старую версию страницы и вы потратите время на ложные выводы.
Для сайтов, где техническая чистка и SEO-настройки нужны регулярно, удобнее держать их в одном инструменте, а не разносить по нескольким плагинам и кускам кода. Но принцип остаётся прежним: сначала находите источник дубля, потом выбираете способ устранения, и только после этого меняете настройки массово.