Дубли в WordPress редко появляются «сами по себе». Обычно их создают архивы, пагинация, параметры в URL, страницы с одинаковым контентом и некорректный canonical. Если сайт уже проиндексирован, простая правка мета-тега не всегда решает проблему: поисковик может продолжать держать в индексе старые адреса, а часть страниц — конкурировать друг с другом.
Ниже разберём типичный сценарий: на сайте есть несколько URL с одинаковым или почти одинаковым содержимым, а в Search Console растёт число страниц с пометкой «дубликат, выбранный канонический URL отличается от пользовательского». Это как раз тот случай, когда нужно не «добавить SEO-плагин», а последовательно проверить источник дублей и убрать его на уровне шаблона, настроек и индексации.
Какие дубли чаще всего появляются в WordPress
В WordPress дубли обычно возникают в нескольких местах. Самые частые источники: архивы рубрик и тегов, страницы пагинации, версии с параметрами сортировки или фильтрации, а также отдельные записи, доступные по нескольким адресам из-за настроек постоянных ссылок или шаблона темы.
Типовые сценарии
- одна и та же статья доступна по разным URL с UTM-параметрами или служебными параметрами;
- страница рубрики дублирует главную подборку записей почти дословно;
- архивы тегов и авторов индексируются, хотя не несут самостоятельной ценности;
- страницы пагинации повторяют заголовки и сниппеты без уникализации;
- canonical указывает не туда из-за темы, плагина или ручной правки шаблона.
Диагностика: где именно ломается каноникализация
Сначала нужно понять, это проблема индексации, шаблона или контента. Если просто закрыть всё от индексации, можно потерять полезные страницы. Поэтому проверяем по порядку.
Что смотреть в первую очередь
- отчёт «Страницы» в Google Search Console;
- исходный код проблемной страницы и тег
<link rel="canonical">; - наличие
noindexв мета-тегах или HTTP-заголовках; - дубли URL с параметрами, слешем на конце и без него;
- архивы рубрик, тегов, авторов и дат;
- страницы пагинации вида
/page/2/,/page/3/.
Если canonical на странице указывает на саму себя, но в индексе всё равно есть дубли, значит проблема не только в canonical. Часто поисковик видит несколько равнозначных URL и выбирает свой вариант, потому что на сайте нет чётких сигналов: часть архивов открыта, часть закрыта, а внутренние ссылки ведут на разные версии.
Пошаговое решение: что исправлять и в каком порядке
Лучше идти от источника дубля к его последствиям. Сначала убираем лишние URL из индекса, потом настраиваем canonical, затем проверяем шаблоны и внутренние ссылки.
1. Закрыть от индексации архивы, которые не нужны в поиске
Если теги, архивы авторов или даты не дают ценности пользователю, их обычно закрывают от индексации. Это можно сделать через SEO-плагин или кодом. Если используете плагин, проверьте, что он не только ставит noindex, но и не ломает canonical на других типах страниц.
Пример для темы или мини-плагина: отключить архивы авторов и дат, если они не нужны.
<?php
add_action('template_redirect', function () {
if (is_author() || is_date()) {
global $wp_query;
$wp_query->set_404();
status_header(404);
nocache_headers();
include get_query_template('404');
exit;
}
});Такой подход подходит не всегда. Если архивы уже в индексе и на них есть трафик, не стоит сразу отдавать 404. В этом случае сначала проверьте статистику и внешние ссылки на эти URL.
2. Настроить canonical для пагинации и архивов
Для страниц пагинации canonical обычно должен указывать на саму страницу пагинации, а не на первую страницу архива. Иначе поисковик может игнорировать вторую и последующие страницы.
Если вы выводите canonical вручную в шаблоне, делайте это аккуратно и только после проверки, что SEO-плагин не делает то же самое. Дублирующиеся canonical-теги — частая ошибка.
<?php
add_action('wp_head', function () {
if (is_paged()) {
$canonical = get_pagenum_link(get_query_var('paged'));
echo '<link rel="canonical" href="' . esc_url($canonical) . '" />' . "\n";
}
}, 1);Если canonical уже выводится плагином, не добавляйте второй вручную. Сначала найдите источник через просмотр исходного кода страницы.
3. Убрать параметры, которые создают мусорные URL
Параметры сортировки, фильтрации и трекинга часто создают десятки URL с одинаковым контентом. Для поисковика это отдельные страницы, если они доступны по ссылкам и не закрыты от индексации.
Практически полезный минимум:
- не ставить внутренние ссылки с UTM-параметрами;
- не индексировать служебные параметры, если они не нужны для поиска;
- для фильтров и сортировки использовать
noindex,followтолько там, где это оправдано; - не плодить отдельные шаблоны для каждой комбинации параметров.
4. Проверить шаблоны темы и SEO-плагин
Иногда дубли создаёт сама тема: в header.php вручную вставлен canonical, а SEO-плагин делает то же самое. Или тема выводит одинаковые title и description на архиве и на записи. В таком случае нужно оставить один источник правды.
| Подход | Когда подходит | Минус |
|---|---|---|
| SEO-плагин | Если нужно быстро закрыть архивы и управлять мета-тегами без кода | Легко получить конфликт с темой |
| Код в теме/мини-плагине | Если нужен точечный контроль над canonical и архивами | Требует тестирования после обновлений |
| Комбинированный вариант | Если часть настроек делает плагин, а часть — шаблон | Нужно чётко разделить зоны ответственности |
Как проверить, что дубли действительно ушли
После правок не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковик и браузер видят именно те сигналы, которые вы ожидаете.
- откройте проблемный URL и проверьте исходный код;
- сравните canonical у первой и второй страницы пагинации;
- проверьте ответ сервера для архивов, которые вы закрыли;
- в Search Console отправьте на переобход несколько ключевых URL;
- посмотрите, не появилось ли два canonical-тега на одной странице;
- проверьте, не остались ли внутренние ссылки на старые адреса.
Для быстрой проверки можно использовать curl:
curl -I https://example.com/category/news/page/2/
curl -s https://example.com/category/news/page/2/ | grep -i canonicalЕсли в ответе есть редирект на первую страницу архива, а в индексе нужна именно пагинация, это уже не вопрос canonical — это проблема маршрутизации или шаблона.
Частые ошибки и как их исправить
Два canonical на одной странице
Обычно это конфликт SEO-плагина и ручной вставки в теме. Оставьте только один источник. Если не уверены, временно отключите кастомный вывод и проверьте исходник.
Закрыли архивы, но оставили на них внутренние ссылки
Поисковик всё равно будет находить URL через меню, хлебные крошки и блоки похожих материалов. Если архив не нужен, уберите ссылки из шаблонов или замените их на более полезные страницы.
Поставили noindex, но не убрали причину дубля
noindex — это не лечение, а ограничение индексации. Если одна и та же запись доступна по нескольким адресам, лучше устранить саму множественность URL через редирект или корректную генерацию ссылок.
Сломали пагинацию редиректом на первую страницу
Так часто делают «для чистоты», но в итоге теряют часть архива. Если пагинация нужна пользователю и поиску, не редиректите её на первую страницу без анализа.
Практические советы по безопасности и производительности
Чистка дублей полезна не только для SEO. Чем меньше мусорных URL, тем меньше лишних обходов поисковыми роботами и меньше путаницы в аналитике. Но не стоит удалять всё подряд.
- сначала проверьте трафик на архивы и служебные страницы;
- не закрывайте от индексации страницы, которые реально приводят пользователей;
- не используйте плагины, которые массово меняют canonical без понятной логики;
- после правок очистите кеш страницы и объектный кеш, если он есть;
- если правите кодом, вынесите изменения в мини-плагин, а не в тему, чтобы не потерять их при обновлении.
Если нужен более широкий аудит дублей, каноникализации и технической чистки сайта, имеет смысл смотреть в сторону инструментов уровня Clearfy Pro: он не заменяет ручную проверку, но помогает убрать часть типовых SEO-ошибок и мусорных страниц. Ссылка: Clearfy Pro.
Главная мысль простая: сначала найдите, кто именно создаёт дубли, потом решайте, что закрывать, что редиректить, а что оставлять в индексе. В WordPress это почти всегда комбинация настроек темы, SEO-плагина и структуры URL, а не одна галочка в админке.