Если в Search Console появляются странные дубли страниц, а в выдаче индексируются не те URL, проблема часто не в контенте, а в технической разметке: canonical указывает на один адрес, редирект ведёт на другой, а тема или SEO-плагин добавляют ещё один вариант. В WordPress это встречается после миграции, смены домена, установки нескольких SEO-расширений или при работе с архивами, пагинацией и параметрами фильтрации.
Ниже — разбор именно этой связки: как понять, где возникает дубль, как убрать лишние канонические URL и как не сломать индексацию при исправлении.
Когда проблема действительно в canonical и редиректах
Сначала стоит отделить технический дубль от обычной переиндексации. Если страница открывается по нескольким адресам, но в HTML есть один canonical, а сервер отдаёт цепочку редиректов, поисковик может выбрать не тот вариант. Особенно часто это заметно на:
- страницах с
wwwи безwww; - URL со слешем и без слеша;
- архивах рубрик и меток;
- страницах с параметрами
?utm_,?replytocom,?amp; - страницах пагинации и сортировки;
- сайтах, где одновременно работают тема и SEO-плагин с собственным выводом canonical.
Что проверить в первую очередь
Откройте проблемную страницу и посмотрите исходный код. В идеале должен быть один тег link rel="canonical". Если их два и более, это уже явный конфликт. Затем проверьте заголовки ответа и цепочку редиректов:
curl -I https://example.com/page/Если адрес сначала редиректит на http, потом на www, потом ещё на URL со слешем, это лишняя нагрузка и лишний риск для индексации. Нормальный сценарий — один редирект до финального канонического адреса.
Диагностика: где именно рождается дубль
У WordPress обычно три источника проблемы: серверные редиректы, тема оформления и SEO-плагин. Начинать лучше с самого простого — проверить, не дублирует ли сайт сам себя на уровне настроек.
Проверка настроек WordPress и сервера
Сверьте адреса в Настройки → Общие. Поля WordPress Address (URL) и Site Address (URL) должны быть согласованы с реальным финальным доменом. Если сайт работает на HTTPS, а в базе остались старые HTTP-адреса, canonical может указывать на устаревший вариант.
На уровне сервера проверьте, нет ли одновременно правил в .htaccess, конфигурации nginx и плагине редиректов. Частая ошибка — когда один слой принудительно добавляет www, а другой убирает его обратно.
Проверка темы и SEO-плагина
Если в теме есть собственный вывод canonical, а SEO-плагин тоже его добавляет, получится дубль. Это особенно заметно после установки шаблонов, где разработчик не отключил стандартный вывод WordPress. В исходнике страницы ищите повторяющиеся строки вида:
<link rel="canonical" href="https://example.com/page/" />Если таких строк две, нужно оставить только один источник. Обычно это делает SEO-плагин, а тему — отключают.
Пошаговое решение без потери индексации
Ниже рабочая последовательность, которая помогает не сломать уже проиндексированные страницы.
1. Приведите основной URL к одному стандарту
Выберите один вариант: с www или без него, со слешем или без него. Для WordPress это важно не из эстетики, а чтобы не плодить адреса. После выбора настройте серверный 301-редирект на финальный вариант.
Пример для .htaccess, если нужно убрать www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]Для nginx логика будет другой, но принцип тот же: один вход — один финальный URL.
2. Оставьте один источник canonical
Если используете SEO-плагин, проверьте, не выводит ли тема canonical вручную. В большинстве случаев правильнее оставить canonical на стороне плагина и убрать дубли из шаблона. Если тема подключает свой тег через wp_head, его можно отключить точечно.
remove_action('wp_head', 'rel_canonical');Этот код имеет смысл только если canonical уже корректно выводит SEO-плагин или вы добавляете его другим способом. Убирать оба источника сразу нельзя: тогда страница останется без canonical.
3. Не канонизируйте служебные страницы на главную
Иногда в шаблонах архивы, пагинация или страницы поиска ошибочно указывают canonical на главную. Это ломает смысл страниц и мешает индексации. Для архивов canonical должен указывать на саму страницу архива, а не на корень сайта. Для пагинации — на соответствующую страницу пагинации, а не на первую страницу архива.
Если у вас есть кастомная логика, проверьте фильтры SEO-плагина. В Yoast SEO, например, canonical можно изменить через фильтр wpseo_canonical, но делать это нужно только при чётком понимании сценария.
add_filter('wpseo_canonical', function ($canonical) {
if (is_search()) {
return false;
}
return $canonical;
});Здесь false отключает canonical для поиска, но такой подход стоит применять осторожно и только если вы действительно не хотите индексировать внутренний поиск.
4. Уберите параметрические дубли
Если страницы с параметрами ?utm_, ?replytocom или сортировкой создают отдельные URL, canonical должен вести на чистый адрес без параметров. Для этого обычно хватает стандартной логики SEO-плагина, но иногда нужно вручную запретить индексирование служебных параметров на уровне шаблона или сервера.
Если параметр не нужен для SEO, а нужен только для аналитики, не редиректите его агрессивно на сервере, иначе можно потерять данные кампаний. В таких случаях canonical — правильнее, чем 301.
Сравнение подходов: плагин, код или сервер
| Подход | Когда подходит | Плюс | Минус |
|---|---|---|---|
| SEO-плагин | Обычный сайт без сложной логики | Быстро и безопасно | Нужно следить за конфликтами с темой |
| Код в теме или mu-plugin | Есть нестандартные архивы, поиск, фильтры | Точный контроль | Требует проверки после обновлений |
| Серверный редирект | Нужно привести домен и протокол к одному виду | Работает до PHP | Ошибки в правилах ломают доступ к сайту |
Проверка результата после внедрения
После исправлений не ограничивайтесь открытием страницы в браузере. Проверьте три вещи: финальный URL, количество canonical и цепочку редиректов.
- В
curl -Iдолжен быть один финальный 200 или один 301 до него. - В исходнике страницы должен быть один
rel="canonical". - Canonical должен совпадать с тем URL, который вы считаете основным.
Дополнительно откройте страницу в Google Search Console и отправьте её на повторную проверку. Если проблема была массовой, проверьте несколько типов страниц: запись, рубрику, архив, пагинацию, поиск.
Частые ошибки и как их исправить
Два canonical в исходнике
Причина почти всегда в конфликте темы и SEO-плагина. Оставьте только один источник. Если не уверены, временно отключите вывод canonical в теме и проверьте исходник ещё раз.
Canonical указывает на несуществующий URL
Такое бывает после миграции домена или смены структуры ссылок. Проверьте, не остались ли старые адреса в шаблонах, базе или настройках плагина. Canonical должен вести на реально доступную страницу с кодом ответа 200.
Редиректная цепочка из нескольких шагов
Обычно это комбинация http → https → www → slash. Сведите всё к одному правилу на сервере и уберите дублирующие редиректы из плагинов.
Пагинация канонизируется на первую страницу
Это ломает индексацию второй и последующих страниц архива. Проверьте настройки SEO-плагина и шаблон архива. Для пагинации canonical должен быть самоссылочным, если нет особой причины делать иначе.
Безопасность и производительность: что не стоит делать
Не ставьте несколько SEO-плагинов одновременно ради «проверки». Они часто конфликтуют именно на canonical, Open Graph и robots-метках. Если нужен аудит, делайте его по очереди и фиксируйте изменения.
Не закрывайте проблему массовым noindex для всех архивов и параметров без анализа. Это может убрать из индекса полезные страницы и ухудшить внутреннюю перелинковку. Сначала исправьте источник дубля, потом решайте, что действительно не должно индексироваться.
Если сайт большой, после правок полезно сохранить список проблемных URL и проверить их повторно через несколько дней. Поисковые системы не обновляют всё мгновенно, и это нормально.
Для сайтов, где часто появляются дубли и служебные страницы, удобно использовать инструменты очистки SEO-разметки и дублей, например Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wpurok.ru&utm_medium=article&utm_campaign=kak-najti-i-ubrat-dubli-canonical-i-pereadresacii-v-wordpress. Но даже с плагином важно понимать, какой именно источник canonical у вас активен и кто отвечает за редиректы.
Если после правок canonical и редиректы стали согласованными, а в Search Console исчезли сообщения о дублировании, значит проблема решена не косметически, а на уровне структуры URL. Это и есть правильный результат для WordPress-сайта, который должен индексироваться предсказуемо.