Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелких настроек: архивы тегов, страницы автора, пагинация, параметры в URL, версии с www и без него, HTTP/HTTPS, а иногда и из-за темы, которая выводит один и тот же контент в нескольких местах. Если это не контролировать, поисковик начинает индексировать лишние адреса, а основной URL теряет вес.
Ниже — практический разбор: как найти источник дублей, что можно закрыть от индексации, где нужен canonical, а где лучше не трогать ничего вручную и ограничиться настройками SEO-плагина.
Как понять, что у вас именно дубли, а не обычная индексация
Сначала стоит проверить симптомы. Не каждый «лишний» URL — проблема. Например, пагинация рубрик или архивы автора могут быть нормальными страницами, если они реально нужны пользователю. Проблема начинается, когда в индексе есть несколько адресов с одинаковым или почти одинаковым контентом, а в поиске показывается не тот URL, который вы хотите видеть основным.
Что смотреть в первую очередь
- в Search Console — страницы с одинаковым заголовком и сниппетом;
- в отчёте по индексированию — URL с параметрами, дубли с разным регистром, версии со слешем и без;
- в исходном коде страницы — есть ли
rel="canonical"и указывает ли он на правильный адрес; - в теме и плагинах — не выводится ли один и тот же пост в архивах, на главной и в блоках «похожие материалы» без ограничения индексации.
Если у вас есть доступ к серверным логам или аналитике, полезно посмотреть, какие URL реально посещают боты. Иногда проблема не в том, что страница существует, а в том, что её слишком легко найти по внутренним ссылкам.
Какие дубли в WordPress встречаются чаще всего
В типовой установке WordPress источники дублей довольно предсказуемы. Это удобно: можно не гадать, а пройтись по списку и закрыть слабые места по порядку.
| Источник | Что происходит | Что делать |
|---|---|---|
| Архивы тегов и рубрик | Один и тот же пост доступен через несколько списков | Оставить нужные архивы, лишние закрыть от индексации |
| Страницы автора | Если автор один, архив повторяет ленту сайта | Закрыть архив автора или сделать его уникальным |
| Параметры URL | ?utm=, сортировки, фильтры, служебные параметры | Настроить canonical и не плодить внутренние ссылки с параметрами |
| HTTP/HTTPS, www/non-www | Один сайт доступен по нескольким адресам | Сделать 301-редирект на одну версию |
| Пагинация и архивы | Страницы 2, 3, 4 повторяют часть контента | Проверить canonical и мета-robots для архивов |
Пошаговое решение: что исправлять и в каком порядке
1. Сначала выберите один основной формат URL
Если сайт открывается и по https://site.ru, и по https://www.site.ru, и ещё по HTTP, поисковик видит несколько версий одного ресурса. Это не лечится мета-тегами. Нужен серверный редирект 301 на одну каноническую версию.
Для Apache это обычно делается в .htaccess. Пример ниже переводит всё на HTTPS и без www:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.ru$ [NC]
RewriteRule ^ https://example.ru%{REQUEST_URI} [L,R=301]
</IfModule>Если у вас Nginx, правило настраивается в конфиге сервера, а не в WordPress. Это важно: редирект должен срабатывать до загрузки CMS.
2. Проверьте canonical на страницах и архивах
WordPress и SEO-плагины обычно сами ставят canonical, но после кастомизации темы это легко сломать. Например, шаблон может выводить канонический URL на текущую страницу пагинации вместо основной записи, либо вообще дублировать тег дважды.
Если нужно явно задать canonical для записи, можно использовать фильтр wpseo_canonical в Yoast SEO или аналогичный механизм в другом плагине. Но если вы не уверены, лучше не подменять canonical вручную для всех страниц сразу. Ошибка здесь часто хуже самой проблемы.
Пример для случая, когда у вас есть отдельная служебная страница и вы хотите указать основной URL:
add_filter('wpseo_canonical', function ($canonical) {
if (is_page('print-version')) {
return home_url('/article-slug/');
}
return $canonical;
});Такой подход уместен только точечно. Не используйте его как универсальную замену нормальной архитектуре URL.
3. Закройте от индексации лишние архивы
Если сайт небольшой и архивы автора, тегов или дат не несут отдельной ценности, их можно закрыть от индексации через SEO-плагин. Это не удаляет страницы, а только говорит поисковику не учитывать их в выдаче.
Что обычно закрывают:
- архивы автора, если автор один;
- архивы дат, если они не нужны для навигации;
- пустые или почти пустые теги;
- страницы поиска по сайту;
- служебные страницы с параметрами.
Если вы используете Clearfy Pro, часть таких задач можно решить через настройки чистки сайта и SEO-опций без ручного кода. Но перед включением любой автоматической чистки проверьте, что плагин не отключает нужные вам архивы или хлебные крошки.
4. Уберите дубли, которые создаёт тема или плагин
Частая ситуация: один и тот же пост выводится в блоке на главной, в рубрике, в виджете и в отдельной подборке. Сам по себе повтор контента в списках не проблема, но если тема генерирует отдельные страницы под фильтры, сортировки или «похожие записи», это уже источник дублей.
Проверьте:
- не создаёт ли плагин отдельные URL для сортировки;
- нет ли у темы шаблонов для печати, AMP или мобильной версии с отдельным адресом;
- не дублируются ли мета-теги title и description на архивных страницах;
- не открыты ли в индексацию страницы вложений медиафайлов.
5. Отключите индексацию вложений, если они не нужны
Страницы вложений — один из самых частых источников мусора в индексе. По умолчанию WordPress может создавать отдельную страницу для изображения. Если у вас нет задачи продвигать такие страницы, лучше редиректить их на сам файл или на родительскую запись.
Простой вариант через код — редиректить attachment-страницы на файл вложения:
add_action('template_redirect', function () {
if (is_attachment()) {
$url = wp_get_attachment_url(get_queried_object_id());
if ($url) {
wp_redirect($url, 301);
exit;
}
}
});Это не универсальное решение для всех проектов, но для большинства контентных сайтов оно помогает убрать лишние страницы из индекса.
Когда лучше использовать плагин, а когда — код
Если задача типовая, SEO-плагин быстрее и безопаснее. Если проблема точечная и связана с темой или кастомной логикой, код даёт больше контроля. Ниже — короткое сравнение.
| Подход | Плюсы | Минусы |
|---|---|---|
| Плагин SEO | Быстро, меньше ручных ошибок, удобно для редактора | Не всегда закрывает нестандартные дубли |
| Код в теме/плагине | Точный контроль над canonical, редиректами и архивами | Нужна проверка после обновлений |
| Серверные правила | Редиректы работают до WordPress, меньше нагрузки | Ошибки в конфиге могут сломать доступ к сайту |
Проверка результата после внедрения
После правок не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковик и браузер видят именно то, что вы задумали.
- Откройте несколько вариантов URL: с
www, безwww, с HTTP и HTTPS. Должен открываться один основной адрес. - Посмотрите исходный код страницы и найдите
canonical. Он должен вести на основной URL, а не на параметрическую или пагинированную версию без необходимости. - Проверьте, что страницы, которые вы закрывали от индексации, действительно отдают нужные мета-robots или редирект.
- В Search Console отправьте на переобход важные страницы и проверьте отчёт по индексированию через несколько дней, а не сразу.
Если есть доступ к инструментам краулинга, прогоните сайт и сравните список URL до и после изменений. Это самый надёжный способ увидеть, не появились ли новые дубли из-за шаблона или плагина.
Частые ошибки и как их исправить
Ставят noindex вместо редиректа
Если у страницы есть явный дубль с другим адресом, noindex не решает проблему полностью. Поисковик всё равно может тратить ресурсы на обход дубля. Для разных версий одного и того же URL нужен 301-редирект.
Закрывают от индексации всё подряд
Иногда после установки SEO-плагина закрывают архивы, рубрики, теги и страницы автора одновременно. В итоге сайт теряет внутреннюю структуру и навигацию в поиске. Сначала определите, какие архивы реально полезны пользователю, и только потом отключайте лишнее.
Ломают canonical в шаблоне
Если в теме вручную вставлен canonical, он может конфликтовать с SEO-плагином. В результате на странице появляются два тега, а поисковик игнорирует оба или выбирает не тот. Проверьте шаблон <head> и уберите дублирующую генерацию.
Оставляют открытыми страницы вложений
Это особенно заметно на сайтах с большим количеством изображений. Если вложения не несут самостоятельной ценности, их лучше редиректить или закрывать от индексации через SEO-настройки.
Что проверить отдельно, если сайт на кастомной теме
У самописных тем дубли часто появляются не в настройках WordPress, а в шаблонах. Например, один и тот же контент может выводиться в single.php, в блоке на главной и в отдельном шаблоне страницы без нормального canonical. Ещё одна типичная ошибка — генерация одинаковых title на архиве и на записи.
Минимальный чек-лист для темы:
- нет ли повторного вывода
wp_head(); - не вставлен ли canonical вручную поверх SEO-плагина;
- не создают ли шаблоны отдельные URL для одной сущности;
- не дублируются ли хлебные крошки и заголовки в разных шаблонах;
- не открыты ли в индексацию служебные страницы, которые нужны только для интерфейса.
Если проблема связана не с контентом, а с технической чисткой сайта, иногда проще сначала привести в порядок SEO-слой и только потом трогать шаблоны. В проектах с большим количеством архивов и служебных страниц это экономит время на отладке.
Когда после правок дубли не исчезают, обычно причина в одном из трёх мест: серверный редирект не срабатывает, canonical указывает не туда, либо тема продолжает генерировать лишние URL. В таком случае лучше идти от URL к шаблону, а не наоборот: сначала проверить, какой адрес считается основным, затем — кто его переопределяет.