При настройке домена для сайта на WordPress часто возникает необходимость сделать единую версию сайта — либо с www, либо без. Это важно для SEO, чтобы избежать дублирования контента и потери позиций в поисковых системах. В этой статье мы подробно рассмотрим, как сделать автоматический редирект с www на без www на WordPress, разберем варианты решения с помощью кода и плагинов.
Почему важен редирект с www на без www (или наоборот)
По умолчанию сайт доступен по двум адресам — с www и без. Например, https://www.example.com и https://example.com. Для поисковых систем это считается разными сайтами, что приводит к:
- Дублированию контента — негативно влияет на SEO.
- Рассеиванию ссылочного веса между двумя доменами.
- Потере аналитики из-за разных источников трафика.
Чтобы избежать этих проблем, нужно выбрать одну версию и перенаправлять с другой на нее автоматически.
Редирект с www на без www через файл .htaccess
Самый распространенный способ — использовать .htaccess на сервере Apache. Этот метод не зависит от WordPress и работает быстро.
Добавьте в начало файла .htaccess в корне сайта следующий код:
# Редирект с www на без www для WordPress
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]Объяснение:
RewriteEngine On— включает модуль перезаписи.RewriteCondпроверяет, что в запросе есть www в начале домена.RewriteRuleперенаправляет на адрес без www с сохранением протокола HTTPS и пути.
После внесения изменений сохраните файл и проверьте, что при заходе на https://www.example.com/ вы автоматически переходите на https://example.com/.
Редирект с www на без www через PHP в WordPress
Если у вас нет доступа к .htaccess или сервер не Apache, можно сделать редирект через код WordPress. Его нужно добавить в файл functions.php вашей темы или в отдельный плагин.
function wpreboot_redirect_www_to_non_www() {
if (strpos($_SERVER['HTTP_HOST'], 'www.') === 0) {
$non_www = 'https://' . substr($_SERVER['HTTP_HOST'], 4) . $_SERVER['REQUEST_URI'];
wp_redirect($non_www, 301);
exit();
}
}
add_action('template_redirect', 'wpreboot_redirect_www_to_non_www');Этот код проверяет, начинается ли хост с www., и если да — делает 301 редирект на адрес без www. Рекомендуется использовать этот метод только если вы не можете настроить сервер.
Использование плагинов для редиректа с www на без www
Если не хотите самостоятельно править файлы, можно использовать плагины для управления редиректами. Вот несколько популярных вариантов:
- Redirection — очень мощный и бесплатный плагин для создания редиректов. Позволяет легко настроить правило для удаления www.
- Yoast SEO — в премиум-версии есть функции управления каноническими URL, которые помогают избежать дублирования с www.
- Clearfy Pro — плагин оптимизации, в котором есть модуль управления редиректами и SEO-настройками, в том числе для домена.
Пример настройки редиректа в плагине Redirection:
- Установите и активируйте плагин Redirection.
- Перейдите в «Инструменты» → «Redirection».
- Добавьте новое перенаправление:
- Источник URL:
^/(регулярное выражение) - Условие: Хост начинается с www.example.com
- Целевой URL:
https://example.com/ - Тип перенаправления: 301
Это позволит перенаправлять все запросы с www на без www.
Проверка и отладка редиректа
После настройки редиректа важно проверить его корректность. Это можно сделать:
- С помощью онлайн-сервисов, например, httpstatus.io.
- Командой curl в терминале:
curl -I https://www.example.com— в ответе должен быть статус 301 и Location без www. - В браузере, открыв консоль разработчика — вкладка Network покажет редирект.
Если редирект не срабатывает, проверьте, нет ли конфликтов с другими правилами в .htaccess или настройках сервера.
Особенности работы с SSL и CDN
При использовании HTTPS важно, чтобы SSL-сертификат был действителен для обеих версий домена — с www и без. Иначе редирект не сработает корректно и пользователи увидят ошибку безопасности.
При использовании CDN (например, Cloudflare) редиректы лучше делать на уровне сервера или настроек CDN, чтобы уменьшить задержку.
Пример редиректа в Cloudflare
В панели Cloudflare можно настроить Page Rule с условием:
- Если URL начинается с
www.example.com/* - Перенаправлять на
https://example.com/$1с кодом 301
Это даст быстрый и надежный редирект без нагрузки на сервер.
Выводы и рекомендации
Для корректной работы сайта и SEO очень важно сделать единый адрес без дублирования с www. Лучший способ — настроить редирект на уровне сервера через .htaccess или конфигурацию веб-сервера.
Если это невозможно, можно использовать PHP-код в WordPress или плагины, например, Redirection.
Не забудьте проверить работу редиректа и SSL-сертификаты для обоих вариантов домена. В сочетании с правильными настройками SEO это поможет избежать проблем с индексацией и улучшить позиции сайта.
Для автоматизации управления перенаправлениями и оптимизации SEO можно использовать плагин Clearfy Pro, который предлагает расширенные возможности по управлению редиректами, очистке базы и ускорению WordPress.