301 редирект (постоянный редирект) — это код ответа сервера, который сообщает поисковым системам и браузерам, что страница или ресурс был перемещен на новый адрес. Это одно из ключевых средств в SEO, позволяющее сохранить текущие позиции сайта и избежать потери трафика при изменении URL-адресов или структурирования сайта.
В данной статье мы расскажем, что такое 301 редирект, как правильно его настроить, в каких случаях он используется, а также о других методах создания редиректов.

Что такое переадресация 301
Переадресация 301 — это стандартный способ перенаправления пользователей с одного URL на другой, который при этом передает поисковым системам всю «ценность» старой страницы на новую. Это значит, что поисковые системы переносят рейтинг страницы, а все входящие ссылки на старый URL теперь перенаправляются на новый.
Редирект 301 является постоянным перенаправлением. В отличие от редиректа 302, который используется для временных перемещений, редирект 301 говорит поисковым системам, что адрес изменен на постоянной основе. Это важно для SEO, так как сохранение ссылочного веса помогает поддерживать текущие позиции сайта в поисковой выдаче.
Альтернативные методы переадресации
Существует несколько типов редиректов, которые используются в разных ситуациях.
- Редирект 302 (временный): Используется, когда страница временно перемещена и поисковым системам не нужно передавать ссылочный вес.
- Редирект 307: Это временный редирект, который в основном используется с протоколом HTTPS.
- Метод JavaScript: Используется для перенаправлений на уровне клиентской стороны. Такой редирект не передает поисковым системам информацию о перемещении страницы, что может негативно сказаться на SEO.
Однако наиболее эффективным методом для сохранения ссылочного веса является использование 301 редиректа.
В каких случаях используется постоянный редирект 301
Постоянный редирект 301 используется в следующих ситуациях:
- Изменение URL страницы: Если структура URL на сайте изменяется (например, на более короткие или дружественные для пользователей адреса), нужно настроить редиректы с старых URL на новые.
- Перемещение на новый домен: Когда сайт переезжает на новый домен, необходимо настроить редиректы с прежних URL на новые.
- Удаление страницы: Когда страница больше не существует, важно настроить редирект на актуальную или более релевантную страницу, чтобы сохранить SEO-ценность.
- Миграция сайта на HTTPS: Когда сайт переходит с HTTP на HTTPS, важно настроить редирект для всех страниц.
- Склейка зеркал сайта: Когда сайт имеет несколько версий (например, с www и без www), необходимо настроить редирект для устранения дублирования контента.
Создание постоянной переадресации 301 через настройки и плагины CMS
Для настройки редиректов 301 можно использовать как встроенные функции CMS, так и сторонние плагины.
Настройка в популярных CMS
- WordPress: В WordPress можно использовать плагины, такие как Redirection или Yoast SEO, которые позволяют легко настроить 301 редирект для страниц.
- Joomla: В Joomla для настройки редиректов используется плагин ReDJ, который позволяет создавать редиректы на основе правил.
- Drupal: В Drupal есть модуль Redirect, который помогает управлять перенаправлениями на сайте.
Настройка 301 редирект в htaccess
Файл .htaccess — это конфигурационный файл на сервере, который используется для настройки редиректов, защиты от несанкционированного доступа и других серверных операций. Вот несколько примеров настройки 301 редиректов через .htaccess:
Склейка зеркал сайта www без www
Чтобы сделать сайт доступным только через один домен (например, без www), добавьте следующее в файл .htaccess:
apache
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
Редирект с http на https для всего сайта
Если ваш сайт переходит на безопасный протокол HTTPS, используйте следующий код:
apache
RewriteEngine OnRewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Постранично
Редирект для конкретной страницы осуществляется так:
apacheRedirect 301 /old-page.html http://example.com/new-page/
Для одной страницы
Чтобы перенаправить одну страницу на другую, укажите старый и новый URL:
apache
RewriteRule ^old-page$ https://example.com/new-page [L,R=301]
Редирект сайта с https на http
Если вы хотите вернуться на старый протокол HTTP:
apache
RewriteCond %{HTTPS} onRewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Изменение домена
Если ваш сайт переезжает на новый домен:
apache
RewriteEngine OnRewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC]
RewriteRule ^(.*)$ http://new-domain.com/$1 [L,R=301]
Редирект на страницу с другим URL без параметров
Для редиректа на страницу без параметров добавьте следующее:
apache
RewriteRule ^old-page$ https://example.com/new-page [L,R=301]
Редирект для URL с параметрами
Для редиректа с учетом параметров URL:
apache
RewriteCond %{QUERY_STRING} ^id=(.*)$RewriteRule ^old-page$ https://example.com/new-page?id=%1 [L,R=301]
Редирект с index.php на главную страницу
Если на сайте есть URL с index.php, вы можете перенаправить его на главную страницу:
apache
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ https://example.com/ [R=301,L]
Редирект со страниц с слешем на без слеша для всего сайта
Чтобы удалить слеш в конце URL:
apache
RewriteRule ^(.*)/$ https://example.com/$1 [L,R=301]
Редирект со страниц без слеша на слеш для всего сайта
Чтобы добавить слеш в конец URL:
apache
RewriteRule ^([^/]+)/$ https://example.com/$1/ [L,R=301]
301 редирект с 404 Not Found
Если страница не существует, можно настроить редирект на главную или другую страницу:
apache
RewriteCond %{REQUEST_URI} ^/nonexistent-page$
RewriteRule ^.*$ /404 [L,R=301]
Финальный вид файла htaccess
Пример финального файла .htaccess может выглядеть так:
apache
RewriteEngine OnRewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
Redirect 301 /old-page.html http://example.com/new-page/
Синтаксис для регулярных выражений в htaccess
В .htaccess можно использовать регулярные выражения для создания сложных редиректов. Например, для создания редиректа всех URL, содержащих цифры, можно использовать следующий синтаксис:
apache
RewriteCond %{REQUEST_URI} \d+
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
Другие способы создания переадресации 301
Редирект 301 можно настроить не только через .htaccess, но и с помощью различных технологий и серверов.
Через PHP
php header(«Location: http://example.com/new-page», true, 301);exit();
ASP редирект
Asp Response.Status = «301 Moved Permanently»Response.AddHeader «Location», http://example.com/new-page
ASP.NET редирект
csharp Response.Redirect(«http://example.com/new-page», true);
ColdFusion редирект
cfml <cfheader name=»Location» value=»http://example.com/new-page»><cfabort>
JSP Java редирект
Java response.sendRedirect(«http://example.com/new-page»);
CGI скрипт на PERL
Perl print «Location: http://example.com/new-page\n\n«;
Ruby on Rails
ruby redirect_to «http://example.com/new-page», status: :moved_permanently
Редирект в Nginx
nginx server { listen 80; server_name example.com; rewrite ^/old-page$ /new-page permanent;}
HTML редирект
html <meta http-equiv=»refresh» content=»0; url=http://example.com/new-page»>
Редирект 301 в панелях управления сервера
Cpanel
В панели Cpanel можно создать редирект через раздел Redirects. Здесь можно указать старый и новый URL, а также выбрать тип редиректа — 301.
ISPmanager
В ISPmanager настройка редиректов осуществляется через раздел Редиректы в меню настроек веб-сервера.
Автоматическое создание переадресации
Автоматическое создание редиректов обычно доступно через плагины или скрипты, которые могут помочь настроить массовые переадресации.
Проверка корректности настроек 301 редиректа
После настройки редиректов необходимо проверить, правильно ли работает перенаправление. Это можно сделать с помощью инструментов, таких как Screaming Frog SEO Spider, Google Search Console и других, которые помогут убедиться, что редиректы правильно настроены и не вызывают ошибок.
Заключение
Правильная настройка редиректов 301 — это важная часть SEO-оптимизации, которая помогает сохранить ссылочный вес, избегать потери трафика и обеспечивать хорошую пользовательскую работу. Правильное использование 301 редиректов поможет вашему сайту избежать ошибок и не потерять позиции в поисковой выдаче.