В статье:
Зачем нужен 301 редирект
Редирект 301 — это код состояния, который означает, что ресурс переместили на новый URL навсегда. Его считают постоянным, поисковику важен только конечный URL. В отличие, к примеру, от 302 редиректа, когда робот периодически возвращается к проверке страницы-донора.
При 301 редиректе ссылочный профиль и авторитетность с неактуальной страницы переносится на новую.
301 применяют при переходе с HTTP на HTTPS, для перенаправления на домен с www или без, при переезде домена, удалении страницы с сайта, если пользователь еще может попасть на нее по ссылке на сторонних источниках, при переработке структуры, для борьбы с каннибализацией запросов и в других случаях.
Как настроить 301 редирект
Джон Мюллер предупреждает, что Google может не проиндексировать конечную страницу, если не соблюсти все правила. Нужно использовать канонический тег, внутренние ссылки и при необходимости тег hreflang для конечной страницы, а не той, с которой вы перенаправляете пользователя. Иначе Google получит неправильные сигналы и может не проиндексировать конечную страницу.
Настроить переадресацию можно через панель управления вашим хостингом или вручную средствами HTML, PHP, JavaScript.
У вас кириллический домен?
В шаблонах мы использовали «http://site.ru» для примера. Если у вас кириллический домен «сайт.рф», «сайт.рус» или другой, его нельзя использовать в таком формате. Переведите запись домена в формат Punycode с помощью любого конвертера, а потом уже вставляйте в код.
В настройках конкретного хостинга обычно подробно описано, как сделать редирект через панель управления. Для разных CMS есть специальные плагины для редиректов. Разберем способы для настройки вручную на примере редиректа на сайт с www или без него.
Редирект для Nginx
Для серверов под Nginx нужно использовать файл nginx.config, добавьте код в секцию server. Если вы настроили виртуальные хосты, для каждого хоста нужно редактировать файлы отдельно.
С домена с www на домен без www
server {#...
if($host~ * www\.(.*)) {
set $host_without_www $1;
rewrite ^ (.*) $ http: //$host_without_www$1 permanent;
}#...
}
С домена без www на домен с www
server {#...
if($host~ * ^ [ ^ .] + \.[ ^ .] + $) {
rewrite ^ (.*) $ $scheme: //www.$host$1 permanent;
}#...
}
После изменения nginx.config перезапустите nginx с помощью команды «service nginx restart». Проверить, все ли корректно заполнено, можно через команду «nginx -t».
Редирект для Apache
Если вы используете Apache, вам нужен файл .htaccess. Для доступа есть несколько вариантов:
- Используйте FTP и включите отображение скрытых файлов. Найдите .htaccess в каталоге public_html в папке с названием домена.
- Откройте панель управления хостингом, включите отображение скрытых файлов и найдите его через Диспетчер файлов.
Скачайте .htaccess, добавьте код редиректа и загрузите файл заново. Если файла .htaccess нет, его нужно создать.
На домен без www
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ <a href="https://site.ru/https://site.ru/$1" class="redactor-autoparser-object">https://site.ru/https://site.ru/$1</a> [R=301,L]
На домен с www
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site.ru
RewriteRule (.*) <a href="http://www.site.ru/http://www.site.ru/$1" class="redactor-autoparser-object">http://www.site.ru/http://www.site.ru/$1</a> [R=301,L]
Редирект через PHP
Действует на уровне сервера. Лучше использовать другой способ, потому что этот работает медленно. Через PHP перенаправление настраивают для сайтов, где редирект нужен на многих, но не на всех страницах.
Файл index.php расположен в корневой папке. Скачайте его и добавьте код или отредактируйте прямо в диспетчере файлов в панели управления хостингом.
На домен без www
На домен с www
Редирект через HTML
Редирект через HTML-код медленнее, он работает на стороне браузера. Код нужно добавить между тегами и страницы, с которой нужно перенаправить. В параметре content="" указывают задержку по времени.
На домен без www
<meta http-equiv="refresh" content="0; url=http://site.ru/">
На домен с www
<meta http-equiv="refresh" content="0; url=http://www.site.ru/">
Редирект через JavaScript
Редирект настраивают и с помощью JavaScript, он работает на стороне браузера, как и HTML. Это медленный способ и не сработает, если у пользователя в браузере отключен JavaScript. Его обычно настраивают для редиректов с задержкой, если такое требуется.
Код для редиректа нужно добавить между и в код первой исходной страницы.
На домен без www
<script type="text/javascript">
window.location.replace("http://site.ru/");
</script>
Для задержки:
<script type="text/javascript">
setTimeout(function() {
location = "http://site.ru";
}, 5000);</script>
На домен с www
<pre><script>
window.location.replace("http://www.site.ru/");
</script></pre>
Через cPanel
cPanel — это платная панель управления веб-хостингом. В ней тоже можно настроить редиректы, причем не используя вводы кодов. Во вкладке «Домены» есть раздел «Перенаправления», там нужно настроить редирект.
На домен без www
- В списке выберите нужный домен.
- В поле «Перенаправляет на» пропишите его с префиксом http://.
- Поставьте отметку у «Перенаправлять только с www»
На домен с www
- В списке выберите нужный домен.
- В поле «Перенаправляет на» пропишите его с префиксом http://www.
- Поставьте отметку у «Не перенаправлять www»
Создать код редиректа автоматически
Сгенерировать код для настройки редиректа можно и с помощью инструментов.
К примеру, с этим справится генератор 301 Redirect Code от RapidTables. Есть возможность выбора: сформировать код для вставки в .htaccess, а также PHP, HTML, JavaScript и другой. Комментарии со ссылкой на инструмент можно удалить.

301 Redirect Generator от Webworkshop предлагает сформировать код для редиректа со страницы на страницу, с домена на домен и с директории на директорию. Отдельно есть окно для перехода на домен с www. Для редиректов на домен есть только код для Apache .htaccess, для страниц есть возможность выбора.

Batch RewriteRule Generator позволяет настраивать редиректы для доменов или страниц пакетно: введите список URL-адресов с табуляцией или пробелами, можно скопировать пары из таблицы Excel, и генератор выдаст нужный код.

Почитать по теме: Как склеить домены для Яндекса и Google: руководство по переносу сайта
Последние изменения и рекомендации по настройке редиректа
- Рекомендация Google по длительности 301 редиректов. В декабре 2021 года Джон Мюллер из Google подтвердил, что 301 редиректы должны сохраняться на сайте минимум год. Это нужно для того, чтобы поисковые системы успели обработать изменения и перенести ссылочный вес на новый URL.
- Влияние 301 редиректов на SEO. Правильно настроенные 301 редиректы помогают сохранить до 90-99% SEO-веса, уменьшая потери в ранжировании. Но важно учитывать, что дублированный контент может негативно сказаться на SEO. Поэтому использование 301 редиректов помогает указать поисковикам, какую версию страницы считать канонической.
- Риски при использовании 302 редиректов. Хотя ранее считалось, что 302 редиректы не передают ссылочный вес, современные исследования показывают, что Google сохраняет накопленный PageRank при использовании 302 редиректов. Для постоянных изменений URL рекомендуется использовать 301 редирект, чтобы избежать путаницы и обеспечить правильную передачу ссылочного веса.
- Оптимизация скорости загрузки при использовании редиректов. Неправильно настроенные редиректы могут замедлить загрузку сайта. Избегайте лишних редиректов, используйте кэширование и оптимизируйте код редиректа.
- Безопасность при настройке редиректов. Неправильно сделанные редиректы могут повысить уязвимость сайта или привести к его поломке. Чтобы обеспечить безопасность, нужно ограничить права доступа к файлам конфигурации, регулярно создавать резервные копии и тестировать все изменения в безопасной среде.