Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелочей: одинаковые записи доступны по разным адресам, архивы дублируют контент, а пагинация и параметры URL создают лишние версии страниц. Если это не контролировать, поисковик тратит обход на мусорные адреса, а нужные страницы получают меньше внимания.
Ниже разберём, как быстро найти источник дублей, что можно закрыть от индексации, а что лучше склеить редиректом или каноническим URL.
Когда проблема действительно в дублях
Сначала стоит отделить дубли от обычного падения трафика. Если в Search Console растёт число страниц с одинаковым заголовком, а в индексе появляются адреса с ?replytocom=, /page/2/, feed/ или версиями с www и без него, это уже не случайность. Ещё один типичный сигнал — одна и та же статья открывается по нескольким путям, например через архив рубрики, метки и прямую ссылку.
Что проверить в первую очередь
- одинаковые title и description у разных URL;
- наличие страниц пагинации в индексе;
- дубли с параметрами в адресе;
- доступность записи по нескольким структурам ссылок;
- архивы тегов, авторов и дат, если они не несут отдельной ценности;
- страницы вложений медиафайлов, если они индексируются отдельно.
Где WordPress чаще всего создаёт дубли
На практике источники почти всегда одни и те же. WordPress сам по себе не делает сайт плохим для индексации, но многие настройки и плагины создают лишние версии контента. Если тема или SEO-плагин не настроены аккуратно, одна запись может быть доступна через архив, через вложение, через пагинацию комментариев и через параметры сортировки.
| Источник дубля | Что делать | Риск |
|---|---|---|
| Архивы рубрик и меток | Оставить только полезные, остальные закрыть или удалить | Переиндексация и размывание релевантности |
| Страницы вложений | Редиректить на файл или родительскую запись | Тонкие страницы без ценности |
| Параметры URL | Нормализовать каноникал и редиректы | Множество одинаковых URL |
| Пагинация и сортировка | Проверить, не дублируют ли они основной контент | Лишние страницы в индексе |
Пошаговое решение: от поиска к исправлению
1. Найдите дубли через сайт и Search Console
Начните с простого поиска по сайту. Если у вас есть доступ к консоли поиска, откройте отчёт по страницам и посмотрите, какие URL индексируются неожиданно. Внутри сайта удобно искать одинаковые заголовки и похожие слаги. Для небольшого проекта этого уже достаточно, чтобы увидеть повторяющиеся сущности.
2. Проверьте канонический URL
Если одна и та же запись открывается по нескольким адресам, canonical должен указывать на основную версию. В WordPress это часто делает SEO-плагин, но лучше проверить вывод в HTML вручную. На странице должен быть один понятный rel="canonical", а не несколько конфликтующих вариантов.
3. Закройте или удалите ненужные архивы
Если архивы тегов, авторов или дат не дают пользователю ценности, их лучше не плодить. Для части архивов достаточно noindex, для части — полного удаления с редиректом на более полезную страницу. Важно не смешивать эти сценарии: закрыть от индексации и удалить с сайта — это разные действия.
4. Склейте дубли редиректом 301
Если у страницы есть несколько рабочих адресов, а один из них явно основной, используйте 301-редирект. Это особенно важно для версий с www/non-www, http/https и для старых URL после смены структуры постоянных ссылок.
<IfModule mod_rewrite.c>
RewriteEngine On
# Пример: принудительно переводим на HTTPS и без www
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
</IfModule>Этот фрагмент подходит только если сервер использует Apache и mod_rewrite включён. Перед внедрением проверьте, что редирект не создаёт цепочку и не ломает уже настроенные правила плагинов или хостинга.
5. Уберите дубли вложений
Страницы медиафайлов часто индексируются отдельно, хотя на них почти нет полезного контента. Если вложение не нужно как самостоятельная страница, безопаснее отправлять его на родительскую запись или сам файл. Для этого можно использовать фильтр WordPress:
<?php
add_filter( 'attachment_link', function( $link, $post_id ) {
$parent_id = wp_get_post_parent_id( $post_id );
if ( $parent_id ) {
return get_permalink( $parent_id );
}
return wp_get_attachment_url( $post_id );
}, 10, 2 );Это не универсальное решение для всех проектов, но оно показывает логику: не оставлять пустые страницы вложений без смысла.
Если нужен быстрый способ без кода
Когда проект уже живой и руками править всё долго, проще подключить SEO-плагин и проверить, умеет ли он управлять каноникалами, noindex для архивов и редиректами вложений. Но плагин не должен заменять анализ: если вы не понимаете, откуда берётся дубль, настройка только скрывает симптом.
Для сайтов, где нужно одновременно чистить дубли, технические страницы и мусорные архивы, иногда удобнее использовать набор инструментов вроде Clearfy Pro: он помогает отключать лишние элементы WordPress и управлять технической SEO-настройкой без разрозненных правок в коде. Но даже в этом случае сначала стоит проверить, что именно вы закрываете и не потеряете ли полезные страницы.
Как проверить, что решение сработало
После правок не ограничивайтесь визуальной проверкой. Откройте несколько проблемных URL и убедитесь, что:
- основной адрес отдаёт
200 OK; - дубли ведут на него через
301; - в исходном коде указан один canonical;
- ненужные архивы не попадают в индекс;
- страницы вложений больше не создают отдельные точки входа;
- в Search Console исчезают новые дубли, а старые постепенно выпадают из отчётов.
Для быстрой проверки удобно использовать curl -I:
curl -I https://example.com/old-url/
curl -I https://example.com/new-url/В первом случае вы должны увидеть 301 и Location на нужный адрес. Во втором — обычный 200 без лишних переадресаций.
Частые ошибки и как их исправить
Закрыли от индексации, но не убрали дубли
noindex не решает проблему полностью, если поисковик всё ещё тратит обход на десятки одинаковых URL. Для явных дублей лучше 301-редирект или удаление лишней версии.
Поставили canonical на несуществующую страницу
Такое бывает после смены структуры ссылок. Canonical должен вести на реально доступный URL с кодом ответа 200, иначе поисковик может проигнорировать подсказку.
Сделали редиректную цепочку
Если старый URL сначала ведёт на промежуточный адрес, а потом на конечный, это лишняя задержка и лишний риск ошибок. Склеивайте сразу в один шаг.
Удалили архивы, но оставили внутренние ссылки
После удаления тега или рубрики проверьте меню, блоки похожих записей и хлебные крошки. Иначе пользователь и бот будут попадать на 404.
Что стоит учесть для безопасности и производительности
Чем меньше мусорных URL, тем меньше лишней нагрузки на обход и тем проще поддерживать сайт. Это не даёт магического ускорения, но уменьшает количество бесполезных запросов к серверу и снижает риск того, что поисковик будет индексировать технические страницы вместо контента.
Если вы вносите правки через .htaccess или код темы, делайте это в дочерней теме или в отдельном must-use плагине. Так проще откатить изменения, если редирект сломает часть сайта. Перед массовой чисткой архивов и вложений обязательно сохраните резервную копию базы и файлов.
Если нужен контроль над техническими дублями, но не хочется собирать всё вручную, можно сочетать точечные правки в коде с SEO-инструментами и проверкой индексации в панели вебмастера. Главное — не лечить все дубли одним способом: где-то нужен canonical, где-то редирект, а где-то удаление страницы как класса.