Настройка 301 редиректа в файле .htaccess
Содержание:
- 302 Редирект — временное переселение
- Разница между 301 и 302 редиректом
- Как настроить 301 редирект
- Что такое 301 редирект для сайта
- Настройка 301 редиректа для SEO
- Наиболее популярные правила
- Что такое 301 редирект?
- 12 советов, которые помогут избежать ошибок при простановке редиректов
- Примеры использования 301 редиректа
- Настройка 301 редиректа
- Типы и настройка редиректов
- Важные советы по 301 редиректу
- Зачем настраивать редирект
- Как настроить 301 редирект
302 Редирект — временное переселение
Что такое 302 редирект и чем он отличается от 301? Исходя из названия, 302 Temporary redirect (временное перенаправлению) осмелюсь сказать, что этим редиректом мы можем временно перенаправлять робота и посетителей с одной страницы на другую. Сколько может длиться период временного перенаправления — это никем не указано, то есть догажываемся, что до момента, пока это перенаправление будет актуальным. Здесь хочеться уточнить, что после злоупотребления сеошниками временными перенаправлениями и введения санкций от поисковых систем к недобросовестным сайтам, крайне не рекомендуется делать 302 Redirect с одного домена на другой. То есть мы можем решать временные задачи только в пределах одного сайта.
Чем отличается 302 Редирект от 301?
Какая особенность 302 Редиректа? Сравнивая его с 301 можно сказать, что постоянное перенаправление полностью передает весь вес сайта, включая ТИЦ, PR и фильтры, а также дает роботам понять, что страница, с которой идет 301 Редирект больше не нуждается в индексации. То есть из поиска она выпадает и заменяется второй. 302 Редирект ничего подобного не передает странице, на которую делается перенаправление, разве что вторая страница быстрее индексируется. А это означает для робота, что обе страницы доступны и должны присутствовать в поиске.
Для каких нужд используют 302 Redirect? Чаще всего для перенаправления на обновленные данные, пока на «редирекнутой» странице не будет обновлена информация или для придания акцента и большего внимания новой странице. Например, вместо страницы категории для выбора можно переадресовать посетителя сначала на акцию, а по его желанию он может по заметной ссылке перейти снова на страницу категории. Команды для создания 302 Temporary redirect не привожу, так это будет уже совсем иная статья. Пользуемся с умом.
Разница между 301 и 302 редиректом
Класс редиректов 3хх достаточно широкий, но наиболее известны из них 301 и 302. Их очень легко спутать, однако для поисковых роботов эти коды имеют принципиальную разницу.
301 Moved Permanently — постоянный редирект. Эта комбинация сигнализирует роботу о том, что старый ресурс окончательно перемещен на новую площадку, а значит старый домен можно удалить из базы. Используется данный редирект для «переезда» на новый домен, для подключения новой CMS и для склейки идентичных страниц.
302 Temporary Redirect — временный редирект. Он говорит о временном перемещении сайта или отдельных его страниц. Как правило, используется, когда на основной площадке проводятся технические работы.
Последствия для поисковой выдачи также неоднозначные:
- При 301 редиректе в поисковой выдаче отображается новый URL, старый игнорируется. Однако на эту смену требуется время, Google рекомендует сохранять статус страницы в течение года, чтобы не «сбить» выдачу.
- При 302 редиректе поисковая система хранит старый URL в течение полугода, в это время выдавая новую ссылку. По прошествии полугода редирект получает статус постоянного.
Поисковые системы с подозрением относятся к 302 коду, так как нередко вебмастера упускают сроки, а затем пытаются вернуть настройки. Да и злоупотребление данным редиректом при черном SEO добавило негативного отношения. Поэтому, если Вам дорога репутация ресурса и его положение в выдаче, лучше не рисковать и пользоваться 301 редиректом в .htaccess.
Как настроить 301 редирект
Использование системных файлов
Одним из самых надежных способов конфигурации считается использование системных файлов, создаваемых в корне сайта. Поисковые системы работают просто: при индексации страницы они автоматически ищут определенные ключевые слова, выполняя указанные команды. Таким же образом работает перенаправление.
Чтобы организовать 301 редирект страницы, необходимо использовать файл с названием htaccess. Создайте его и добавьте в корень сайта. Напишите в нем следующий код:
RewriteEngine On
RewriteCond %{HTTP_HOST} original.bla
RewriteRule (.*) http://new.bla/$1
Где original.bla и new.bla ― старый и новый адрес страницы соответственно. Таким же образом стоит проводить 301 редирект на https. Можно использовать и сокращенную версию, но подобный код непонятен. В сокращенной легко запутаться даже профессионалу.
Как сделать редирект 301 при помощи хостинга
Еще один способ того, как сделать 301 редирект, ― это воспользоваться встроенным инструментарием используемого хостинга.
Для этого необходимо зайти в панель управления, найти вкладку с настройками хостинга. Измените тип хостинга на «Перенаправление» или просто добавьте такую возможность ― это зависит от типа используемого инструментария. В нужные поля введите старый и новый адрес.
Таким образом можно легко организовать 301 редирект на www.
Что такое 301 редирект для сайта
Что такое 301 редирект? Даже не так. Что такое Redirect? Это команда поисковому роботу перенаправлять посетителя на другую страницу, которая была перемещена в другое место. Цифра 301 — это код, который говорит об окончательном перемещении страницы в новую локацию. Ведь когда мы переходим на какую-то страницу и нам выдается ошибка, мы видим перед собой код этой ошибки и расшифровку. Например, код 404 говорит нам — Not Found, что означает — страница не найдена, а 505 ошибка сообщает, что ответ от сервера не был получен. Но если вышеописанные ошибки видны посетителю на открытой странице браузера, то шифры перенаправления видят только роботы, которые и направляют гостя по другой ссылке (если, конечно, редирект был настроен правильно). Вот как раз новую ссылку, меняющуюся в адресной строке браузера посетитель и заметит. То есть 301 редирект перебрасывает пользователя с одной страницы на другую, не останавливаясь на промежуточном адресе, доводя до конечного места локации контента.
Каким образом происходит процесс перемещения? С помощью кода в файлах на сервере с сайтом размещается специальный код, который роботы поисковых систем считывают и выполняют. В этом коде обязательно присутствуют константы: откуда переместить и куда. Причин для использования 301 редиректа на сайте может быть множество, рассмотрим основные из них в этой статье, ведь, возможно, что какой-то способ вам понабиться, и вы им воспользуетесь.
Настройка 301 редиректа для SEO
Правильно настроенные редиректы являются одним из важных факторов SEO оптимизации и продвижения сайта в поисковых системах. Рассмотрим основные варианты склеек, необходимых для нормального ранжирования ресурса с помощью файла .htaccess.
Как уже говорилось для поисковой системы версия с www и без, это разные сайты.
Первый вариант:
Второй вариант:
Перенаправление с site.ru на www.site.ru
Первый вариант:
Второй вариант:
У каждого ресурса должно быть выбрано основное зеркало, адрес которого и будет участвовать в поисковой выдачи. Для его выбора и используется эти перенаправления. Основным зеркалом может быть адрес как с www, так и без этого префикса.
И наоборот, с https на http
Данные редиректы нужно использовать для тех же целей, что и в предыдущем случае. При наличии на сайте SSL сертификата, который обеспечивает защищенный протокол https, будет логично настроить соответствующее перенаправление, так как для поиска это два разных сайта.
Наиболее популярные правила
Приведенные примеры работают для серверов функционирующих на APACHE, для NGINX настройки в файле .htaccess работать не будут. В примерах используется %{QUERY} — так обозначается часть URL, которая следует после знака вопроса. Правила для редиректа срабатывают только при условии соответствия правилу указанному в редиректе.
При настройке правила редиректов в файле .htaccess все правила необходимо указывать после указанных двух строк, либо просто добавьте их:
Options +FollowSymLinks RewriteEngine On
301 редирект для страниц имеющих Get-параметры в URL
Для наглядности примера допустим адрес страницы имеет вид http://mysite.ru/catalog/index.php?IBLOCK_ID=5&SECTION_ID=15. Следующее правило будет делать переадресацию:
RewriteCond %{QUERY} ^IBLOCK_ID=5&SECTION_ID=15$ RewriteRule ^catalog/index\.php$ /newcatalog/?
Иногда необходимо настроить редирект для изменяющихся Get-параметров, например в текущем примере динамическим параметром будет SECTION_ID:
RewriteCond %{QUERY} ^IBLOCK_ID=5&SECTION_ID=(.*)$ RewriteRule ^catalog/index\.php$ /newcatalog/?
Переадресация со страниц без значения Get-параметра
Например адрес страницы имеет вид — http://mysite.ru/?addon, тогда редирект будет следующим:
RewriteCond %{QUERY} ^addon$ RewriteRule ^$ /?
Переадресация одного адреса, без вложенных адресов
Например довольно часто необходимо настроить переадресацию со страницы раздела http:/site.ru/razdel/, однако прочие страницы в данном разделе должны работать без редиректа, например страница http://mysite.ru/razdel/section.php?SECTION_ID=1. Для этого нужно добавить всего один символ — $.
RewriteRule ^razdel/$ http://mysite.ru/new-razdel/
Что такое 301 редирект?
Редирект 301 — это способ перенаправления посетителей веб-сайта на действующий URL-адрес, когда тот адресс, который изначально запрашивался, был удален. Перенаправление должно указывать на наиболее релевантную или похожую действующую страницу на ту, которая больше не нужна, что обеспечивает лучшие поведенческие факторы.
Например, у вас была старая статья, в силу некоторых причин, вы решили удалить эту статью. В таком случае, вы наверное захотите, чтобы те посетители, которые решили зайти на ту страницу, перешли на другую страницу. Ведь перенаправление посетителя на новую страницу, релевантную старой, это более лучший вариант, нежели показывать посетителю страницу 404.
Например, у вас статья была по старому адресу https://moysite.ru/staraya-statya.html и вы пере направляете посетителей на https://moysayt.ru/novaya-statya.html. Для этого вы можете использовать 301й редирект.
Но ещё один большой плюс 301 редиректа, это его влияние на SEO. Предположим, на старую статью вели несколько внешний ссылок. Если вы просто удалите старую статью, то эти ссылки станут битыми.
Это может и не очень большой минус, но в любом случае, это нежелательно. С помощью 301 редиректа вы указываете поисковикам новый адрес старой страницы. В этом случае, поисковики не будут считать такие ссылки битыми и будут их учитывать в ранжировании сайтов.
12 советов, которые помогут избежать ошибок при простановке редиректов
- Не используйте иные статус-коды ответа сервера там, где нужен 301 редирект. Это правило касается и настройки https, и зеркал сайта с www и прочего.
Часто встречающаяся ошибка — настройка 302 (временного) редиректа, вместо 301. Роботы поисковых систем получают инструкцию, что страницы перемещены временно, хотя это не так. В дальнейшем поисковик может посчитать это обманом и пессимизировать ресурс.
Страница-акцептор редиректа обязательно должна быть релевантной странице донору и отвечать статус-кодом 200.
Донор не передаст вес нерелевантному акцептору с некорректным статус-кодом. Правильная настройка позволит поисковым системам быстро склеить страницы без потери трафика для ресурса.
Не используйте редиректы вместо rel=canonical.
В ряде случаев борьбы с дубликатами логичнее использовать rel=canonical. Например:
- на страницах пагинации, если CMS сайта не позволяет убрать текст основной страницы;
- для страниц, которым необходимо иметь разные версии: основная, для печати, отдельная мобильная;
- страницы с динамическими параметрами;
- когда одна страница опубликована в разных категориях, в результате чего получаются разные URL.
Не ставьте два, три и более редиректов подряд.
Это увеличивает нагрузку на сервер, замедляет процесс использования сайта и может привести к потере веса конечной страницы.
В файле .htaccess вначале используйте переадресации страниц с более высоким уровнем вложенности.
Пример:
- Сначала редирект с site.com/cat-1/subcat-1/ на site.com/cat-1/subcat-2/;
- Потом с site.com/cat-0/ на site.com/cat-0.
- И в последнюю очередь — глобальные правила (например, со страниц без слеша на слеш, или с www на без www).
Это поможет уменьшить количество потенциальных ошибок при обработке статус-кодов страниц.
Обязательно проверяйте результат своей работы. При настройке редиректов часто допускаются мелкие ошибки и опечатки, что в конечном итоге приводит к нарушению работоспособности сайта. Например, при возникновении циклического редиректа.
Проверять корректность настроек нужно со сбросом кэша, так как браузеры кэшируют редиректы.
Не перенаправляйте пользователя или робота поисковой системы на несуществующие ресурсы (404 код ответа). Регулярно проверяйте сайт на наличие «битых ссылок».
Не стоит использовать 301 редирект для перенаправления на шаблон оформления 404 страницы. Сразу правильно настраивайте статус-коды и обработку несуществующих урлов в частности.
Правильная настройка статус-кодов поможет роботам поисковых систем быстрее индексировать и переиндексировать страницы сайта, не добавляя в выдачу ненужные страницы.
Нельзя редиректить на дорвеи.
Здесь всё понятно. Это относится к серым методам оптимизации и пресекается поисковыми системами как спам.
Не создавайте переадресацию для страниц с несколькими URL, принадлежащих к разным каталогам.
В этом случае будет логично использовать rel=canonical.
Примеры использования 301 редиректа
Редирект с index.php на главную
Чтобы настроить его вам нужно прописать в вашем файле следующий код, который будет перенаправлять посетителей с адреса site.ru/index.php на site.ru:
RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP RewriteRule ^index\.php$ http://site.ru/
Если вам так же нужно сделать переадресацию с index.html, то просто в коде выше замените .php на .html
Склеиваем алиасы сайта
Если у вас несколько доменов и вы хотите все их перенаправлять на основной сайт, то используем:
RewriteCond %{HTTP_HOST} ^vash-sait.com$ RewriteCond %{HTTP_HOST} ^www.vash-sait.com$ RewriteCond %{REQUEST_URI} !^/robots.* RewriteRule ^(.*)$ http://vash-sait.ru/$1
Обратите внимание на первые 2 строки, там указано зеркало в зоне .com, если у вас иная или несколько зон, то добавляем правила
Редирект с www на без www
Этот способ я уже описывал ранее, но повторюсь. Для того, чтобы склеить зеркала и выбрать основным домен без www прописываем:
RewriteCond %{HTTP_HOST} ^www.site\.ru$ RewriteRule ^(.*)$ http://site.ru/$1
Редирект с домена без www на домен с www
Это действие противоположное предыдущему, только основное зеркало здесь www.site.ru:
RewriteCond %{HTTP_HOST} ^site\.ru$ RewriteRule ^(.*)$ http://www.site.ru/$1
301 редирект страниц со слэшем и без
Это еще один вид дублей, тут мы склеим страницы site.ru/category/ и site.ru/category, как видите, в конце второго урла не стоит слэша:
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule ^(.+)/$ /$1
Если вам нужно наоборот оставить слэш в конце урла, то вам нужен данный вариант:
RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ $1/
Если у вас по какой-то причине появились урлы типа site.ru/category//article.html, то юзаем код:
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ RewriteRule . %1/%2
где, «//» можно заменить на «—» или любые сдвоенные символы в урле.
Массовая замена категории
Бывает, что вы переименовали категорию, а за ней закреплены тысячи урлов. Чтобы не состарится во время написания тысяч одинаковых перенаправлений юзаем:
RewriteRule ^(.*)/old-category/(.*)$ $1/new-category/$2
Если у вас категория идет сразу после домена (типа site.ru/category/), то используем другой вариант:
RewriteRule old-category /(.*) / old-category /$1
Редирект на новую страницу
Самый простой редирект со страницы на страницу, для это просто пропишите так:
Redirect 301 /old-post.html http://new-site.ru/new-post.html
Где old-post.html — это ваша старая страница, а new-site.ru/new-post.html — это новая страница и она может быть на любом домене (включая ваш текущий домен).
Редирект для url с параметрами
Страницы с параметрами редиректятся сложнее, возьмем пример http://site.ru/page.php?sort=articles. Параметр здесь «sort=articles». Код будет следующим:
RewriteCond %{QUERY_STRING} sort=articles RewriteRule .* http://site.ru/page.php?
Работаем с расширениями
Убираем .html из url (для удаления .php не забудьте заменить $1.html на $1.php):
RewriteRule ^((+/)*+)$ /$1.html
Меняем .php на .html в урлах и наоборот (не забываем поменять местами в коде):
RedirectMatch 301 (.*)\.php$ http://www.site.com$1.html
Настройка 301 редиректа
Если используется любая другая платформа, или было принято решение изменить основной домен (например, убрать из адреса префикс www), то можно использовать код для редиректа через файл .htaccess, который располагается в корневой директории:
Расшифрую данный пример. В первой строке подключается директива RewriteEngine, отвечающая за работу преобразований на стороне сервера. Во второй строке указывается адрес ресурса с которого нужно настроить редирект. И, наконец, в последней (третьей) — адрес куда нужно перенаправить пользователей и поисковых роботов.
При том же изменении основного домена, возможна утрата ранее полученных seo-показателей, а также массовое выпадение страниц из индекса ПС, чтобы этого избежать как раз и используется редирект 301.
Но здесь подойдут не все методы, а только те, которые обрабатывают запрос на стороне сервера (.htaccess, PHP), мета-теги на HTML в этом случае не помогут, т.к. выполняют перенаправление уже после обработки запроса и загрузки страницы.
Типы и настройка редиректов
Типы редиректов принято разделять по тому, как они реализованы. Самый популярный у SEO-специалистов метод — серверный редирект, который настраивается в файле .htaccess (конфигурационный файл наиболее распространённого сервера Apache). Кроме того, для реализации перенаправлений можно использовать файл nginx.config, а также PHP, HTML, JavaScript.
Редиректы могут иметь разный HTTP-статус. По коду состояния HTTP поисковые системы и браузеры определяют, к какому виду относится редирект. Всего есть 9 видов таких редиректов, но на практике используются три статус-кода.
2.1. 301 Moved Permanently
301 редирект — это постоянный редирект, который демонстрирует, что документ перенесён на новый URL-адрес. 301 редирект лучший вариант для оптимизации сайта под поисковые системы. Он позволяет заменить адрес документа в выдаче со старого на новый без потери позиций и трафика.
Я собрал общие случаи использования 301 редиректа.
2.1.1. Редиректы www
Вот как настроить редирект из домена с www на домен без www:
RewriteCond %{HTTP_HOST} ^www\.bacon\.com$
RewriteRule ^(.*)$ http://bacon.com/$1
А вот так можно настроить редирект URL без www в URL с www:
RewriteCond %{HTTP_HOST} ^bacon\.com$
RewriteRule ^(.*)$ http://www.bacon.com/$1
2.1.2. Изменение расширения файла
Если вы перешли на другую платформу или CMS, и в этом процессе были изменены только URL-адреса, вы должны использовать следующую переадресацию.
RedirectMatch 301 (.*)\.php$ http://www.bacon.com$1.html
2.1.3. Редирект с разных доменов и поддоменов
Если вы купили несколько доменов в разных доменных зонах или перепроектировали новый сайт в поддомене, вы должны установить редирект со всех дополнительных доменов или поддоменов на основной домен:
RewriteCond%{HTTP_HOST}!^www\.site\.com.(.*)$
RewriteRule ^(.*)$ http://www.site.com. %1/$1
2.1.4. Слеши в конце URL-адреса
Вы должны помнить, что поисковые системы рассматривают URL-адреса с и без слеша (https://www.bacon.com/sandwich/ и https://www.bacon.com/sandwich) как два разных URL-адреса. Определите, какой из них более подходит для вашего сайта, и настройте следующие переадресации.
Чтобы удалить слеш в конце URL-адреса:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1
Чтобы добавить слеш в конце URL-адреса:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /$1/
2.1.5. Переключение с HTTP на HTTPS
Вам необходимо установить команду для 301 редиректа на HTTPS-версию сайта. Если у вас есть WordPress CMS с управлением хостингом cPanel, вы можете прочитать подробное руководство по переходу на HTTPS.
2.1.6. Управление битыми ссылками
Если вы навсегда удалили одну из своих страниц и создали новую, установите 301 редирект на главную или новую страницу и удалите все ссылки на эту страницу на своём сайте.
RewriteRule ^old/URL/path$ http://site.com/new/path
Подробнее читайте в посте о том, как найти битые ссылки.
2.2. 302 Found, 302 Moved Temporarily
302 редирект демонстрирует, что запрошенный ресурс временно перемещён. Данный вид редиректа может быть использован для страниц с краткосрочными акциями и распродажами конкретного товара. Не рекомендую использовать его для адресов, изменённых навсегда. Роботы поисковых систем индексируют только ту страницу, на которую установлен редирект, но в выдаче останется старый URL. Однако, если робот поисковой системы решит, что вы по ошибке настроили 302 редирект вместо 301, он заменит адрес в выдаче, как и в случае с 301 редиректом. И вернуть его обратно будет проблематично.
Вы можете прописать такую директиву в файле .htaccess, чтобы установить редирект:
Redirect 302 /old.html http://localhost/new.html
2.3. 307 Moved Temporarily
Временный редирект, который указывает, что документ временно доступен по другому URL. Отличие от 302: сохранение метода передачи запроса (GET, POST), который указывает поисковикам, что кешировать документ не стоит (если нет дополнительных указаний).
Вы можете установить 307 Moved Temporarily, когда контент перемещается только временно (например, при перепроектировании). Это позволяет поисковикам понять, что ваш сервер совместим с HTTP 1.1.
Кроме того, клиенты не должны автоматически переадресовывать запросы POST / PUT / DELETE. Кэширование должно выполняться только в том случае, если в ответе сервера есть заголовки Cache-Control или Expires.
Важные советы по 301 редиректу
Неправильно настроенные редиректы значительно снижают эффективность их использования.
- Не нужно использовать многоуровневые редиректы, когда одна страница ссылается на другую, та на следующую и т.д. Это увеличивает нагрузку на роботов поисковых систем, ваш сервер и значительно снижает эффективность перенаправления.
- Перенаправление не может быть зацикленным. Это значит, что документ не может ссылаться на адрес, который присвоен ему же.
- Правильно настроенный редирект — перенаправление, которое приводит пользователя на страницу, содержимое которой полностью соответствует его ожиданиям.
Зачем настраивать редирект
Есть несколько основных причин перенаправлять пользователя на другой URL. Давайте рассмотрим их подробнее.
Для указания главной версии сайта
Возможно, вы замечали, что адрес одних сайтов начинается с https, а других — с http. Также иногда в адресе указан префикс www, а иногда его нет. Выбор протокола и решение использования www перед основным доменом определяют главное зеркало ресурса. Это основная версия сайта, на которую перенаправляют всех пользователей, если они вводят в строку поиска альтернативный вариант URL-адреса.
В этом случае редирект необходим для избежания проблем с дублями контента. Что такое дубли страниц и почему это плохо, можно почитать в нашей статье.
Для решения проблемы дублей
Дубли страниц возникают не только из-за разных протоколов и префикса www в URL-адресе, но и по ряду других технических причин. Также иногда дублируется сам контент — страницы-копии обычно удаляют, а с них настраивают редирект.
Давайте рассмотрим еще несколько сценариев, когда для устранения технических дублей используют переадресацию.
Перенаправление при добавлении завершающего слеша
Когда вы вбиваете адрес страницы в строку поиска, то скорее всего не добавляете слеш в конце. Иногда браузер сам «дописывает» его к URL-адресу — происходит это благодаря редиректу. Как и в случае с протоколом и www, вебмастеру нужно определиться, будут ли на сайте использоваться завершающие слеши, чтобы избежать проблем с дублями.
Ниже мы адаптировали схему, которой аналитик Google Джон Мюллер поделился в своем аккаунте Twitter.
Как вы видите, иногда завершающие слеши приводят к дублированию, а иногда нет. Например, в варианте F и G можно легко получить дублированный контент.
Решить проблему можно двумя способами: использовать тег canonical либо установить перенаправление на нужный вам вариант страницы.
Перенаправление при использовании расширения файлов в URL
Иногда в конце адреса страницы указывается расширение файла, например, .html, .htm, .php, .aspx. Чтобы пользователь, вбивая в строку поиска URL вида https://site.com/page/, все равно попал на страницу https://site.com/page.html и чтобы избежать дублирования контента, используется перенаправление.
Перенаправление URL-адреса в нижний регистр
Один и тот же URL-адрес, прописанный в верхнем и нижнем регистре, — это две разные страницы. Правило хорошего тона — использовать в URL нижний регистр. Поэтому чтобы адрес вида https://site.com/PAGE/ был доступен только как https://site.com/page/, также применяется перенаправление. Естественно, редирект здесь нужен и для того, чтобы предотвратить проблемы с дублями.
Для сохранения ссылочного веса и трафика при смене URL
URL-адрес страницы может поменяться по разным причинам: после миграции на новую CMS, в ходе изменения структуры сайта или в процессе борьбы с дублированным контентом. В результате вы получите страницу с новым адресом, которая отвечает на тот же запрос пользователя, что и старая страница. Редирект позволяет не только перенаправить трафик на актуальную страницу, но и сохранить вес внешних ссылок, указывающих на старый адрес.
Например, вы использовали страницу https://site.com/festivals-2020/, но в конце года решили обновлять контент страницы и публиковать на ней все фестивали следующего года. Чтобы убрать из URL-а прошлый год, вы решаете создать новую страницу https://site.com/festivals/. Эта страница будет постоянно обновляться и содержать контент, который ранее публиковался на странице https://site.com/festivals-2020/. Чтобы избежать каннибализации, вы принимаете решение удалить старую страницу https://site.com/festivals-2020/ и перенаправить трафик и ссылочный вес на новую страницу https://site.com/festivals/.
При миграции на другой домен либо покупке другого сайта зачастую нужно перенаправлять ботов и всех пользователей старого сайта на новый. В таком случае, как вы уже догадались, также используется редирект.
Как настроить 301 редирект
Джон Мюллер предупреждает, что Google может не проиндексировать конечную страницу, если не соблюсти все правила. Нужно использовать канонический тег, внутренние ссылки и при необходимости тег hreflang для конечной страницы, а не той, с которой вы перенаправляете пользователя. Иначе Google получит неправильные сигналы и может не проиндексировать конечную страницу.
Настроить переадресацию можно через панель управления вашим хостингом или вручную средствами HTML, PHP, JavaScript.
В настройках конкретного хостинга обычно подробно описано, как сделать редирект через панель управления. Для разных 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$ RewriteRule ^(.*)$ <a href="https://site.ru/https://site.ru/$1" class="redactor-autoparser-object">https://site.ru/https://site.ru/$1</a>
На домен с 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>
Редирект через 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>
Для задержки:
На домен с www
<pre><script> window.location.replace("http://www.site.ru/"); </script></pre>
Через cPanel
cPanel — это платная панель управления веб-хостингом. В ней тоже можно настроить редиректы, причем не используя вводы кодов. Во вкладке «Домены» есть раздел «Перенаправления», там нужно настроить редирект.
На домен без www
- В списке выберите нужный домен.
- В поле «Перенаправляет на» пропишите его с префиксом http://.
- Поставьте отметку у «Перенаправлять только с www»
На домен с www
- В списке выберите нужный домен.
- В поле «Перенаправляет на» пропишите его с префиксом http://www.
-
Поставьте отметку у «Не перенаправлять www»