Если в поиске и в индексе одновременно живут версии сайта с www и без него, WordPress обычно не виноват сам по себе. Проблема почти всегда в том, что сайт открывается по двум адресам, а сервер не заставляет все запросы уходить на один канонический вариант. В итоге поисковик видит дубли страниц, а вес и сигналы ранжирования распыляются между двумя доменами.
Решение здесь не в «очистке индекса» как таковой, а в том, чтобы выбрать один основной адрес и жёстко перенаправлять на него все остальные варианты: с www, без www, а при необходимости ещё и с http на https. Ниже — как это сделать без лишних рисков и как проверить, что всё настроено правильно.
Сначала выберите один основной вариант домена
Технически WordPress может работать и с www, и без него. Для поисковика это не «один и тот же адрес», а две разные версии хоста. Поэтому первый шаг — решить, какой вариант будет основным и останется в индексе.
Обычно выбирают один из двух сценариев:
- без
www— короткий и привычный вариант для большинства проектов; - с
www— тоже нормальный вариант, если так уже устроена инфраструктура или исторически использовался именно он.
Важно не то, какой вариант «лучше вообще», а то, чтобы он был один. После выбора все запросы к альтернативной версии должны отвечать редиректом 301 на основной адрес.
Проверьте настройки WordPress
В админке откройте Настройки → Общие и посмотрите два поля: Адрес WordPress (URL) и Адрес сайта (URL). В них должен быть указан один и тот же основной вариант домена.
Если вы хотите оставить версию без www, оба поля должны выглядеть примерно так:
https://example.com
Если нужен вариант с www, тогда так:
https://www.example.com
Здесь часто допускают ошибку: в WordPress меняют адрес сайта, но забывают про серверный редирект. Этого недостаточно. Без перенаправления поисковик всё равно сможет обходить обе версии, а часть ссылок и внутренних переходов будет вести на дубль.
Если после изменения адреса вас выбросило из админки или сайт начал открываться не так, как ожидалось, не паникуйте: это обычно означает, что редирект настроен неправильно или домен не совпадает с тем, что прописан в настройках. В таком случае сначала возвращают доступ через базовую конфигурацию сервера или файл wp-config.php, а уже потом доводят редирект до рабочего состояния.
Настройте 301-редирект на сервере
Это ключевой шаг. Именно сервер должен отправлять все запросы на одну версию домена. Тогда и пользователи, и поисковые роботы будут попадать на один адрес, а не на две параллельные копии сайта.
Способ настройки зависит от веб-сервера.
Если сайт работает на Apache
Обычно редирект добавляют в файл .htaccess в корне сайта. Перед правкой сделайте резервную копию файла: ошибка в синтаксисе может временно уронить сайт или вызвать 500 Internal Server Error.
Чтобы перенаправить всё с www на домен без www, используйте такой вариант:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]Если нужен обратный вариант — с без www на www — правило будет таким:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]Если сайт уже работает по https, оставляйте именно https:// в целевом адресе. Иначе можно случайно устроить лишний промежуточный редирект.
Если сайт работает на Nginx
На Nginx редирект обычно настраивают в конфигурации виртуального хоста. Если у вас обычный shared-хостинг, доступ к этому файлу может быть закрыт, и тогда настройку делает поддержка хостинга.
Для перенаправления с www на без www используют отдельный серверный блок:
server {
server_name www.example.com;
return 301 https://example.com$request_uri;
}Для обратного варианта:
server {
server_name example.com;
return 301 https://www.example.com$request_uri;
}Здесь важна конструкция $request_uri: она сохраняет путь и параметры, чтобы /category/page/?utm=1 не превращался в просто главную страницу.
Не забудьте про HTTPS, если он тоже даёт дубли
На практике дубли часто возникают не только между www и без www, но и между http и https. Если у сайта есть четыре доступных варианта, поисковик может увидеть сразу четыре версии одной и той же страницы.
Правильная схема должна быть одна: все варианты ведут на единственный канонический адрес. Например:
http://example.com→https://example.comhttp://www.example.com→https://example.comhttps://www.example.com→https://example.com
Если вы настраиваете редирект только между www и без www, но оставляете http открытым, часть дублей останется. Поэтому лучше сразу проверить всю цепочку адресов.
Проверьте канонический адрес внутри сайта
Редирект — это основа, но внутри WordPress тоже не должно быть путаницы. Проверьте, какой адрес используется в:
- настройках темы и шаблонов, если там вручную прописан домен;
- меню, кнопках и виджетах, если в них вставлены абсолютные ссылки;
- XML-картах сайта, если они генерируются плагином и содержат старый хост;
- канонических ссылках на страницах, если тема или SEO-плагин их переопределяет.
Если на сайте много внутренних абсолютных ссылок с неправильной версией домена, редирект всё равно сработает, но это лишняя нагрузка и лишний шаг для робота и пользователя. Лучше, чтобы новые ссылки сразу вели на основной адрес.
Если у вас есть доступ к базе данных и вы понимаете, что делаете, можно массово заменить старый хост на новый в контенте. Но это уже отдельная операция с риском задеть сериализованные данные, поэтому без опыта лучше не делать её вручную через SQL. Безопаснее использовать штатные инструменты миграции или специализированные плагины поиска и замены, которые учитывают структуру данных WordPress.
Как проверить, что дубли действительно убраны
После настройки не ограничивайтесь открытием главной страницы в браузере. Нужно проверить именно поведение редиректа.
Что стоит сделать:
- Откройте в браузере обе версии главной страницы: с
wwwи без него. - Убедитесь, что одна из них сразу перекидывает на основную версию.
- Проверьте несколько внутренних URL, а не только главную.
- Посмотрите, не остаётся ли отдельный редирект с
httpнаhttpsи потом ещё один — сwwwна безwww. Лучше, когда цепочка короче.
Если хотите проверить технически, а не «на глаз», используйте команду curl. Она покажет код ответа и конечный адрес:
curl -I https://www.example.com/page/В ответе должен быть 301 и заголовок Location с вашим основным доменом. Если вместо этого видите 200 OK на обеих версиях, редирект не работает. Если видите несколько последовательных 301, стоит сократить цепочку.
Ещё один практичный признак: в поисковой выдаче и в панели вебмастера со временем должна остаться только одна версия домена как основная. Но это не происходит мгновенно. После исправления серверной настройки поисковику нужно время, чтобы переобойти страницы и обновить индекс.
Что делать, если дубли уже попали в индекс
Если обе версии домена уже проиндексированы, не пытайтесь удалять одну из них вручную как «плохую». Правильный путь — оставить 301-редирект, убедиться, что внутренняя перелинковка и sitemap указывают на основной адрес, и дождаться переобхода.
Дополнительно проверьте, что:
- внешние ссылки, если вы можете на них влиять, ведут на основной домен;
- в sitemap указан только один хост;
- в robots.txt нет старых абсолютных ссылок на альтернативную версию;
- в настройках CDN или прокси не включено отдельное правило, которое возвращает сайт на другую версию домена.
Если сайт использует CDN, балансировщик или панель хостинга с собственными редиректами, конфликт может быть именно там. В таком случае WordPress настроен правильно, а дубль создаёт внешний слой между пользователем и сайтом.
Когда всё сделано верно, у сайта остаётся один основной адрес, а все остальные варианты безошибочно и быстро перенаправляются на него. Это и есть нормальная схема для WordPress: один домен в индексе, один адрес в ссылках, одна версия для пользователей и поисковиков.