Зачем нужен 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
<!--?php header("Location: http://site.ru/", true, 301); exit(); ?-->
На домен с www
<!--?php header("Location: http://www.site.ru/", true, 301); exit(); ?-->
Редирект через 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: руководство по переносу сайта
Пишите свои замечания и отзывы о материале в комментариях к посту!