Как настроить 301 редирект в WordPress

WordPress
Содержание

Редирект помогает перенаправить пользователей с одной страницы на другую незаметно для них: это может понадобиться, если вы переезжаете на другой домен, меняете адрес страницы или подключаете HTTPS. В этой статье рассказываем, как перенаправить пользователей по другому адресу, не потеряв трафик из поисковых систем, с помощью 301 редиректа.

Что такое 301 редирект?

301 редирект — это специальный ответ сервера, который сообщает браузеру, что страница навсегда переехала на другой адрес (HTTP 301 Moved Permanently). При получении такого ответа браузер перенаправит пользователя на новый адрес.

Примеры использования 301 редиректа

Случаев, когда пользователей нужно перенаправить с одного адреса на другой, может быть очень много: это и переезд на другую систему управления сайтом, в результате которого меняются адреса страниц, и подключение протокола безопасности TLS, после которого HTTP-адреса меняются на HTTPS, и банальная опечатка в адресе страницы, которую не заметили сразу. 

Приводим небольшой список примеров, когда может понадобиться 301 редирект:

Дубликаты страниц

Самый частый пример использования 301 редиректа — избавление от дубликатов страниц, например, http://mysite.ru и http://mysite.ru/index.php. 301 редирект помогает сообщить поисковым системам, какой адрес страницы является для вас приоритетным, и выводить в выдаче только страницы по нужному адресу.

Переезд на другой домен

Часто 301 редирект используется при переезде на новый домен: это помогает сохранить посетителей, которые знают вас по старому названию сайта. Еще такой ответ подсказывает поисковым системам, что сайт переехал, и страницы со старым доменом нужно убрать из выдачи и заменить на новые.

Склейка зеркал сайта

Один и тот же сайт может быть доступен сразу по нескольким адресам: например, http://www.mysite.ru и http://mysite.ru. Такие зеркала поисковые системы выбирают автоматически — поэтому в выдаче может выводиться часть страниц с www, часть без. Чтобы выбрать то зеркало сайта, которое будет продвигаться, для этого можно использовать 301 редирект.

Переход на HTTPS

При подключении безопасного протокола HTTPS имеет смысл сделать недоступной версию сайта с HTTP: это защитит пользователей сайта от исполнения вредоносного кода, который злоумышленники могут подгрузить при использовании HTTP. Для этого можно перенаправлять все переходы с http://mysite.ru на https://mysite.ru с помощью 301 редиректа.

Изменение адреса страницы

Если адрес страницы изменился, например, поменялся алгоритм формирования адресов страниц или была создана более свежая версия страницы с другим адресом, 301 редирект поможет перенаправить пользователей по новому адресу. Это поможет сохранить наработанный трафик и ссылочный вес старой страницы.

Перенаправление на мобильную версию сайта

Если у вас есть отдельная мобильная версия сайта, пользователей смартфонов и планшетов можно перенаправить на нее с помощью 301 редиректа. Если пользователь перейдет на http://mysite.ru с мобильного устройства, он попадет на http://mobile.mysite.ru, адаптированный для просмотра на небольших экранах.

Какие ещё бывают редиректы?

301 редирект сообщает о том, что адрес страницы изменился навсегда, но существуют и другие редиректы — временные. 

HTTP 302 Moved Temporarily, Found (временно перемещен)

Этот тип редиректа используется для того, чтобы сообщить поисковым системам, что адрес изменен временно. В таких случаях поисковики не будут заменять старый адрес на новый в поисковой выдаче, но ожидают, что со временем страница вернется по старому адресу. Если этого не произойдет — поисковой робот посчитает, что 302 редирект настроили по ошибке и будет воспринимать его как 301.

При настройке 302 редиректа в индексе остаются обе страницы — и страница, с которой выполняется переадресация, и целевая страница.

Чаще всего такое перенаправление используют, когда на сайте ведутся технические работы.

HTTP 303 See Other (просмотр других ресурсов)

Этот редирект очень похож на 302 с единственным отличием: адрес, на который перенаправляет 303 редирект, никогда не кэшируется. Например, на сайте есть страница регистрации пользователей. Посетитель вводит свои данные и нажимает кнопку «Зарегистрироваться», после чего с помощью 303 редиректа сайт отправляет его на страницу «Спасибо за регистрацию», чтобы очистить данные, которые ввел пользователь.

HTTP 307 Temporary Redirect (Временный редирект)

Это еще один вид редиректа, аналогичный 302, только с сохранением введенных пользователем данных. К примеру, если после регистрации нужно отправить пользователя на страницу входа и использовать уже введенные им данные, используется 307 редирект.

Такой редирект подсказывает поисковым системам, что кэшировать адрес, на который совершается переадресация, не нужно: информация на нем будет меняться.

HTTP 308 Permanent Redirect (Перенаправление на постоянной основе)

Этот способ переадресации похож на 301, и Google воспринимает его так же, как 301: адреса «склеиваются», ссылочная масса переносится на новую страницу и новый адрес заменяет старый. Единственная разница в том, что при таком редиректе сохраняются введенные пользователем данные: например, если посетитель заполнил данные заказа и нажал кнопку «Подтвердить» и его нужно перенаправить на новую страницу благодарности, используется 308 редирект.

Почему лучше выбрать 301 редирект?

Потому что только 301 редирект помогает сохранить позиции в поисковых системах при изменении адреса страницы. Такой тип переадресации сообщает поисковым роботам, что страница никогда не вернется на старый адрес, поэтому в выдаче нужно показывать новый. На целевую страницу переносится почти весь ссылочный вес старой страницы и со временем она начнет появляться в поисковых системах на тех же позициях, что и старая.

Как настроить 301 редирект с помощью плагинов?

Самый простой способ настроить 301 редирект в WordPress — использовать специальные плагины. Он не требует знаний программирования и регулярных выражений. Для переадресации с одной страницы на другую подойдут плагины Redirection, Easy 301 Redirect или другие похожие плагины.

Redirection

Установите и активируйте плагин Redirection. После активации он предложит сделать быструю настройку — рекомендуем включить мониторинг изменения постоянных ссылок (если вы поменяете ссылку на пост в WordPress, плагин заметит это и создаст переадресацию автоматически) и логирование редиректов.

Плагин Redirection

После этого вы сможете создать любую переадресацию. Перейдите в меню Инструменты ⟶ Redirection на вкладку Редиректы. 

Создание переадресации в Redirection

На странице отобразятся все настроенные редиректы. Тут же можно добавить новый — укажите адреса старой и новой страниц и нажмите «Добавить перенаправление».

Если вам будет нужно переадресовать весь домен на новый — это можно сделать во вкладке Сайт. Плагин позволяет добавить алиасы для сайта (несколько доменов для одного сайта, например, сайт.рф и site.ru) и настроить переадресацию для HTTPS и WWW. 

Настройка переадресации для HTTPS и WWW

Easy 301 Redirects

Плагин оправдывает свое название — он действительно очень простой. В нем можно добавить 301, 302 или 307 редирект для любых страниц, сделать выгрузку настроенных правил или загрузить готовые правила.

Настройка 301 редиректа

Как сделать 301 редирект вручную

Для того, чтобы самостоятельно настроить переадресации, нужно отредактировать файл .htaccess — он расположен в корневой директории WordPress. Знание регулярных выражений и устройства веб-сервера Apache пригодятся.

Как редактировать .htaccess

Вариант 1 — встроенный текстовый редактор хостинга

Зайдите в корневую директорию WordPress и найдите файл .htaccess. 

.htaccess в WordPress

Откройте его с помощью встроенного редактора (двойным кликом или через меню Файл — Открыть в текстовом редакторе).

Редактирование .htaccess в WordPress

Вариант 2 — создать в текстовом редакторе и загрузить на хостинг

Для этого лучше использовать продвинутые текстовые редакторы, например, Notepad++ или Sublime Text — они умеют сохранять файлы в кодировке UTF-8. 

Создайте файл с нужными настройками переадресации, сохраните его в кодировке UTF-8 с названием .htaccess (без расширения) и загрузите на хостинг через панель управления или FTP.

Загрузка .htaccess на хостинг

Настройки .htaccess

Любые настройки в .htaccess должны начинаться с таких строк:

RewriteEngine On
RewriteBase /

Эта настройка включает все перенаправления, которые будут содержаться в этом файле. После этих строк указываются нужные условия в таком формате:

RewriteCond [сравнение] [условие] [флаги]
RewriteCond [сравнение] [условие] [флаги]
RewriteRule [шаблон] [подстановка] [флаги]

RewriteCond

RewriteCond — это условие для переадресации. Эта строка говорит серверу примерно следующее: «Если пользователь сделал запрос (сравнение), в котором содержится (условие)…». Флаги помогают уточнить ситуацию: например, флаг [NC] сообщает, что правило должно срабатывать вне зависимости от регистра, то есть неважно, использовались ли маленькие или большие буквы в адресе.

Например: 

RewriteCond %{REQUEST_URI} ^/page/$ [NC]

Сервер поймет это как: «Если пользователь сделал запрос по адресу “/page/”, или “/PaGe/”, или “/PAGE/”…» и пойдет смотреть по файлу дальше, какое правило нужно применить. Здесь и дальше ^ и $ обозначают начало и конец регулярного выражения.

Условий может быть несколько, например, так: 

RewriteCond %{REQUEST_URI} ^/page/$ [NC]
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.* [NC]

Такие условия суммируются между собой. «Если пользователь сделал запрос по адресу /page/ И его браузер начинается на “Mozilla”…»

Если нужно, чтобы переадресация срабатывала при выполнении одного из перечисленных условий, используют флаг [OR]:

RewriteCond %{REQUEST_URI} ^/page/$ [NC,OR]
RewriteCond %{REQUEST_URI} ^/old/$ [NC]

Это сработает так: «Если пользователь сделал запрос по адресу “/page/” ИЛИ “/old/”…».

RewriteRule

RewriteRule — это правило, которое применит сервер, если условия выше выполнились. Например, такая запись создаст 301 редирект со страницы /page/ на страницу /pagenew/:

RewriteCond %{REQUEST_URI} ^/page/$ [NC]
RewriteRule ^(.*)$ https://mysite.ru/pagenew/ [R=301,L]

^(.*)$ здесь шаблон, по которому подставляется следующее за ним выражение https://mysite.ru/pagenew/. ^(.*)$ — это регулярное выражение, и оно означает, что в него можно подставить любые символы в любом количестве. Поэтому, если используется такое выражение, то, чтобы переадресация сработала верно, в RewriteRule адрес целевой страницы нужно указывать полностью, начиная с http/https и доменного имени.

Часто используемые переменные

%{REQUEST_URI} — часть запроса (адреса, по которому переходит пользователь) без доменного имени и GET-параметров (например, UTM-меток)

%{HTTP_HOST} — доменное имя, например, mysite.ru

%{QUERY_STRING} — GET-параметры, например, UTM-метки, фильтры и так далее.

Часто используемые флаги

[L] — говорит серверу, что это последнее правило и указывает не обрабатывать дальнейшие RewriteRule

[NC] — указывает, что запрос не зависит от регистра

[R=301] — 301 редирект (можно заменить на другой, если нужно).

Текст .htaccess для конкретных случаев

Редирект страницы на другую страницу этого же домена

RewriteCond %{REQUEST_URI} ^/landing/$
RewriteRule ^(.*)$ https://mysite.ru/landingnew/ [R=301,L]

Редирект страницы на другой сайт или домен

RewriteCond %{REQUEST_URI} ^/landing/$
RewriteRule ^(.*)$ https://mynewsite.ru/ [R=301,L]

Редирект сайта на новый домен

RewriteCond %{HTTP_HOST} ^mysite\.ru$ [NC]
RewriteRule ^(.*)$ http://mynewsite.ru/ [R=301,L]

Редирект сайта в подпапку/подкаталог

RewriteCond %{HTTP_HOST} ^mysite\.ru$ [NC]
RewriteRule ^(.*)$ http://mynewsite.ru/destination/ [R=301,L]

Редирект на www-версию сайта

RewriteCond %{HTTP_HOST} ^mysite\.ru$ [NC]
RewriteRule ^(.*)$ http://www.mysite.ru/$1 [R=301,L]

Редирект c www на без www

RewriteCond %{HTTP_HOST} ^www.mysite\.ru$ [NC]
RewriteRule ^(.*)$ http://mysite.ru/$1 [R=301,L]

Редирект с http на https

RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Редирект с верхнего регистра на нижний

RewriteRule [A-Z] - [E=HASCAPS:TRUE,S=1]
RewriteRule ![A-Z] - [S=28]
RewriteRule ^([^A]*)A(.*)$ $1a$2
RewriteRule ^([^B]*)B(.*)$ $1b$2
RewriteRule ^([^C]*)C(.*)$ $1c$2
RewriteRule ^([^D]*)D(.*)$ $1d$2
RewriteRule ^([^E]*)E(.*)$ $1e$2
RewriteRule ^([^F]*)F(.*)$ $1f$2
RewriteRule ^([^G]*)G(.*)$ $1g$2
RewriteRule ^([^H]*)H(.*)$ $1h$2
RewriteRule ^([^I]*)I(.*)$ $1i$2
RewriteRule ^([^J]*)J(.*)$ $1j$2
RewriteRule ^([^K]*)K(.*)$ $1k$2
RewriteRule ^([^L]*)L(.*)$ $1l$2
RewriteRule ^([^M]*)M(.*)$ $1m$2
RewriteRule ^([^N]*)N(.*)$ $1n$2
RewriteRule ^([^O]*)O(.*)$ $1o$2
RewriteRule ^([^P]*)P(.*)$ $1p$2
RewriteRule ^([^Q]*)Q(.*)$ $1q$2
RewriteRule ^([^R]*)R(.*)$ $1r$2
RewriteRule ^([^S]*)S(.*)$ $1s$2
RewriteRule ^([^T]*)T(.*)$ $1t$2
RewriteRule ^([^U]*)U(.*)$ $1u$2
RewriteRule ^([^V]*)V(.*)$ $1v$2
RewriteRule ^([^W]*)W(.*)$ $1w$2
RewriteRule ^([^X]*)X(.*)$ $1x$2
RewriteRule ^([^Y]*)Y(.*)$ $1y$2
RewriteRule ^([^Z]*)Z(.*)$ $1z$2
RewriteRule [A-Z] - [N]
RewriteCond %{ENV:HASCAPS} TRUE
RewriteRule ^/?(.*) /$1 [R=301,L]

Редирект с несуществующего файла

RewriteCond %{HTTP_HOST} ^mysite\.ru$
RewriteCond %{REQUEST_URI} ^/robots.txt$
RewriteRule ^(.*)$ /cool_robots.txt [R=301,L]

Редирект с любой страницы на главную

RewriteCond %{REQUEST_URI} ^(.*)$
RewriteRule ^(.*)$ https://mysite.ru/ [L,R=301]

Редирект с поддомена на основной домен

RewriteCond %{HTTP_HOST} ^sub.mysite.ru$ [NC]
RewriteRule ^(.*)$ https://mysite.ru/ [R=301,L]

Как проверить 301 редирект

Самый простой способ проверить 301 редирект — перейти на страницу, с которой должен выполняться редирект. Если произойдет переадресация по новому адресу, значит, все работает.

Если нужно проверить сразу большое количество адресов, можно воспользоваться специальными сервисами — например, Проверка ответов сервера.

Проверка 301 редиректа

Помните, что 301 редирект кэшируется браузером: это значит, что на вашем компьютере записывается последнее перенаправление, и если вы поменяете настройки, вы можете не увидеть изменений, пока не сбросите кэш браузера.

Резюме

  1. 301 редирект — это переадресация со старой страницы сайта на новую, когда старая была перемещена навсегда.
  2. 301 редирект используют, чтобы переехать на новое доменное имя, склеить зеркала сайта, перенаправить на HTTPS или мобильную версию сайта и другого — всегда, когда нужно переадресовать пользователя с одной страницы на другую.
  3. Кроме редиректа 301 бывают временные редиректы 302, 307 и еще один постоянный 308.
  4. Проще и лучше всегда использовать 301 редирект: при нем позиции в поисковой выдаче сохранятся.
  5. Настроить 301 редирект можно с помощью плагинов, например, Redirection или Easy 301 Redirects.
  6. 301 редирект можно настроить в файле .htaccess на сервере, но понадобятся знания, как устроен файл и как работают регулярные выражения.
  7. 301 редирект можно проверить, перейдя по старому адресу: если браузер открыл целевую страницу, все в порядке.
  8. А если нет, то сначала стоит обновить кэш и попробовать еще раз.
  9. Существуют специальные сервисы для массовой проверки 301 редиректов.
Анита Арико
Автор, копирайтер, интернет-маркетолог. За 6 лет в сфере побывала по обе стороны баррикад — работала со сторон и подрядчиков, и заказчиков. Пишу об интернет-маркетинге на языке предпринимателей.
Оцените автора
( 2 оценки, среднее 5 из 5 )
Добавить комментарий