Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелких настроек: архивы тегов, страницы авторов, пагинация, параметры в URL, версии с www и без, http и https, а иногда еще и дубли от темы или плагина. В итоге поисковик видит несколько адресов с одинаковым или почти одинаковым содержимым и начинает выбирать канонический URL сам. Это уже риск: часть веса уходит не туда, а в индексе остаются лишние страницы.
Ниже — рабочий сценарий: как быстро найти источник дублей, что править в WordPress, а что лучше закрывать через noindex или редирект.
Как понять, что в WordPress есть дубли
Симптомы обычно видны не только в SEO-отчетах. Если в поиске всплывают странные URL с параметрами, страницы пагинации конкурируют с основными, а в индексе есть и /category/, и записи из этой категории, стоит проверить сайт на дубли.
Что смотреть в первую очередь
- одинаковые страницы доступны по разным адресам: с
wwwи без, сhttpиhttps; - архивы категорий, тегов, авторов и дат индексируются без необходимости;
- страницы с параметрами вроде
?replytocom=,?utm_,?amp,?orderby=создают отдельные URL; - у записей и страниц есть дубли через вложенные пути, если тема или плагин генерирует альтернативные шаблоны;
- в
<head>отсутствует или неверно указан canonical.
Быстрая диагностика без сложных инструментов
Начните с проверки ответов сервера и канонических ссылок. Для этого удобно использовать curl или любой HTTP-клиент. Важно не просто открыть страницу в браузере, а посмотреть заголовки и HTML.
curl -I https://example.com/sample-post/
curl -I https://www.example.com/sample-post/
curl -I http://example.com/sample-post/Если все три варианта отдают 200 OK без редиректа на один основной адрес, это уже источник дублей. Дальше откройте HTML страницы и проверьте canonical:
curl -s https://example.com/sample-post/ | grep -i canonicalCanonical должен указывать на единственный основной URL, а не на текущую вариацию с параметром или на неверную версию домена.
Какие дубли WordPress можно убрать редиректом, а какие — закрыть от индексации
Не все дубли лечатся одинаково. Если у страницы есть один правильный адрес, а остальные варианты должны исчезнуть, нужен 301-редирект. Если же это технический архив, который нужен пользователю, но не должен конкурировать в поиске, чаще подходит noindex и корректный canonical.
| Сценарий | Что делать | Компромисс |
|---|---|---|
| http / https, www / без www | 301-редирект на один вариант | Без компромиссов, это базовая нормализация |
| Параметры сортировки, UTM, replytocom | Canonical + при необходимости очистка ссылок | Редиректить не всегда безопасно, если параметр влияет на поведение |
| Архивы тегов, авторов, дат | noindex или отключение индексации | Зависит от структуры сайта и темы |
| Пагинация архивов | Оставить доступной, но проверить canonical и мета-robots | Не закрывать бездумно, если страницы реально нужны |
Пошаговое решение: как убрать дубли в WordPress
1. Зафиксируйте основной домен и схему
Сначала выберите один вариант адреса: https://example.com или https://www.example.com. После этого настройте редирект на уровне сервера или через конфигурацию хостинга. В WordPress это не стоит делать только плагином, если есть доступ к серверу: серверный редирект надежнее и быстрее.
В самом WordPress проверьте адреса в Настройки → Общие: WordPress Address (URL) и Site Address (URL) должны совпадать с выбранной схемой.
2. Уберите технические архивы из индекса
Если сайт не использует архивы авторов, дат или тегов как отдельные точки входа, их лучше закрыть от индексации. Делать это можно через SEO-плагин или кодом. Если нужен быстрый и предсказуемый контроль, вот пример для темы или мини-плагина: он добавляет noindex на архивы авторов и дат.
add_action( 'wp_head', function () {
if ( is_author() || is_date() ) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1 );Это не заменяет полноценную SEO-настройку, но помогает убрать лишние архивы из поиска. Для тегов решение зависит от структуры сайта: если теги реально используются как навигация, их можно оставить, но проверить уникальность контента и canonical.
3. Нормализуйте параметры URL
Параметры вроде ?replytocom= часто создают дубли комментариев. Если они не нужны для SEO, лучше не допускать их индексации. Для UTM-меток и других маркетинговых параметров обычно достаточно корректного canonical на чистый URL.
Если тема или плагин генерирует ссылки с параметрами, проверьте, не можно ли отключить эту генерацию в настройках. Если нет — canonical должен указывать на базовую страницу без параметров.
4. Проверьте canonical в теме
В WordPress canonical обычно выводится через wp_head(). Если в теме этот вызов убран или сломан, поисковик может не получить подсказку о главной версии страницы. Проверьте, что в шаблоне header.php есть:
<?php wp_head(); ?>Если canonical отсутствует или дублируется, ищите конфликт между SEO-плагином и темой. Частая ситуация: тема вручную выводит canonical, а SEO-плагин делает то же самое. В результате в HTML два одинаковых или противоречивых тега.
5. Закройте лишние архивы и страницы вложений
Страницы вложений — частый источник мусорных URL. Если медиа-страница не несет самостоятельной ценности, лучше редиректить ее на сам файл или на родительскую запись. Многие SEO-плагины умеют это делать штатно. Если нет, можно настроить редирект на уровне кода, но только если вы понимаете структуру медиа на сайте.
Также проверьте, не индексируются ли страницы поиска по сайту, результаты фильтров и сортировок. Для большинства контентных сайтов это технический шум, а не полезные посадочные страницы.
Пример кода: убрать дубли от параметров и вложений
Ниже пример, который помогает нормализовать URL вложений и не плодить отдельные страницы для медиа. Это не универсальный рецепт для всех сайтов, но для типового блога или корпоративного проекта часто подходит.
add_action( 'template_redirect', function () {
if ( is_attachment() ) {
$parent = wp_get_post_parent_id( get_queried_object_id() );
if ( $parent ) {
wp_redirect( get_permalink( $parent ), 301 );
exit;
}
wp_redirect( home_url( '/' ), 301 );
exit;
}
} );Если у вас есть страницы с параметрами, которые не должны жить отдельно, лучше сначала проверить, не ломают ли они функциональность. Например, параметры сортировки в каталоге могут быть полезны пользователю, но не нужны в индексе. В таком случае редирект не всегда уместен — canonical и noindex безопаснее.
Как проверить, что решение сработало
После изменений не ограничивайтесь визуальной проверкой. Нужно убедиться, что основной URL отвечает 200 OK, а все альтернативы дают 301 на канонический адрес.
- проверьте
curl -Iдля http/https и www/без www; - откройте HTML и убедитесь, что canonical один и ведет на правильный URL;
- посмотрите мета-robots на архивных страницах и убедитесь, что там есть нужный режим;
- проверьте внутренние ссылки: они должны вести сразу на канонический адрес, а не на редирект;
- в Search Console отправьте на переобход несколько ключевых страниц и посмотрите, как меняется выбранный канонический URL.
Если после правок в индексе все еще остаются старые адреса, это не всегда ошибка. Поисковику нужно время, чтобы переобойти сайт и обновить данные. Но если новые URL продолжают появляться, значит источник дублей не устранен.
Частые ошибки и как их исправить
Два canonical в одном документе
Обычно это конфликт темы и SEO-плагина. Оставьте только один источник canonical. Если плагин уже управляет SEO-метками, уберите ручной вывод из шаблона.
Редирект на главную вместо релевантной страницы
Так часто ломают вложения и старые URL. Если есть родительская запись или близкая по смыслу страница, редирект должен вести туда, а не на главную без контекста.
Закрыли от индексации то, что нужно для навигации
Например, теги или пагинацию архивов. В результате сайт теряет внутреннюю структуру. Перед закрытием проверьте, как эти страницы используются в меню, хлебных крошках и перелинковке.
Оставили доступными параметры сортировки и фильтрации
Если такие URL попадают в индекс, поисковик может считать их отдельными страницами. Решение зависит от задачи: либо canonical на базовую страницу, либо noindex, либо отключение индексации на уровне SEO-плагина.
Практические советы по безопасности и производительности
Чем больше редиректов и правил обработки URL, тем внимательнее нужно относиться к производительности. Не стоит собирать сложную логику дублей в нескольких плагинах одновременно. Лучше один понятный источник правил: сервер, SEO-плагин или код в теме/мини-плагине.
Если вы часто чистите дубли, технические архивы и лишние метки, удобно держать это в одном инструменте. Например, Clearfy Pro от WPShop закрывает часть типовых задач по чистке сайта, удалению дублей и SEO-настройкам; смотреть имеет смысл только если вам нужен именно набор таких функций, а не еще один тяжелый комбайн: https://wpshop.ru/plugins/clearfy.
И еще один практический момент: после изменений очистите кеш страницы и, если используется CDN, проверьте, что старые версии HTML не отдаются из кеша. Иначе вы будете смотреть на уже исправленный код в админке, а поисковик и пользователи — на старую версию.
Мини-чек-лист перед публикацией правок
- выбран один основной вариант домена и схемы;
- все альтернативные адреса отдают 301;
- canonical указывает на чистый URL без параметров;
- лишние архивы закрыты или отключены от индексации;
- страницы вложений редиректят на родительский контент или отключены;
- внутренние ссылки ведут сразу на канонические адреса;
- кеш и CDN очищены после изменений;
- проверка в Search Console запущена повторно.
Если собрать это в одну цепочку, дубли перестают быть абстрактной SEO-проблемой и превращаются в набор конкретных URL, которые можно найти, нормализовать и проверить вручную. Именно так WordPress-сайт становится предсказуемым для поисковика, а не набором похожих страниц с разными адресами.