Опытный SEO-специалист должен знать в каких случаях и для чего используется 302-редирект, и самое главное, чем он отличается от других типов переадресации. В этой статье разберем все нюансы этого вопроса, а также научимся настраивать данный тип перенаправления разными способами.
Как работает 302-редирект?
302-редирект работает по принципу перенаправления посетителей или краулеров поисковых систем с текущего URL-адреса на другой. Другими словами, в момент загрузки страницы, от сервера приходит ответ о переадресации с указанием нового URL-адреса, будь то 301 или 302-редиректы.
Для чего используется 302-редирект?
Главная цель 302-редиректа – создать временную переадресацию текущей страницы на новый адрес. Понадобиться подобное может в следующих случаях:
- На странице ведется техническая работа и посещение ее пользователями или ботами нежелательны. К примеру, документ обновляется поэтапно, в течении нескольких дней.
- Временное перенаправление трафика с одного домена на другой.
- Документ часто подвергается корректировкам и требуется показывать последнюю его версию. К примеру, при организации страниц акций в интернет-магазине, когда появляется временное предложение, а страницу предыдущего (как правило, уже проиндексированную и имеющую определенный траст) удалять не требуется.
- Техническое обслуживание сайта. В этом случае, посетителю выводится экран-заглушка, при этом остальные страницы не исключаются из поискового индекса.
- Аналогичным образом, хостинг-провайдеры могут временно закрывать определенные страницы на клиентских сайтах.
Нет времени разбираться?
SEO-продвижение под ключ
Проанализируем конкурентов, подберем запросы с низкой конкуренцией, проведем поисковую оптимизацию сайта, организуем внешнюю ссылочную массу, проработаем карточки компании на онлайн картах, проведем базовую UX-аналитику сайта. Над каждым проектом работает от 6 до 10 специалистов. Собственные разработчики для доработки сайта при необходимости. От вас — сайт, от нас — позиции в Яндекс/Google и трафик.
Ваш сайт:
Как отмечалось выше, 302-редирект подходит для страниц, адрес которых поменялся временно (как правило, на срок не более 7-10 суток). Это говорит о том, что URL старой страницы остается в индексе поисковых систем. Поэтому, если документ «переехал» на постоянной основе, следует использовать исключительно 301-редирект, либо могут возникнуть сложности с SEO-продвижением.
Некоторые интернет-магазины настраивают 302-редирект с товаров, которых нет в наличии. Не рекомендуется этого делать, лучше предложить потенциальному покупателю аналогичные товары, оставив при этом его на исходном URL-адресе.
Также не следует использовать 302-редирект при смене структуры сайта или при установке SSL-сертификата. Это действительно может создать проблему, т.к. со старого ресурса не будет передаваться весь накопленный траст, а старые страницы не будут исключены из индекса поисковых систем.
301 или 302-редиректы, в чем разница?
Главное отличие:
- 301-редирект – постоянное перенаправление на новую страницу.
- 302-редирект – временное перенаправление.
Что касается влияния на SEO, то тут тоже имеются существенные различия:
- В отличии от 301-редиректа, при 302 не передается ссылочный «вес» старой страницы на новый URL-адрес.
- При 301 перенаправлении, из поискового индекса удаляется адрес старой страницы и добавляется новый. При 302 – оба адреса находятся в индексе (если новая страница успела попасть в индекс, но в любом случае, старый адрес не исключается из него) и сохраняется «авторитет» исходной страницы.
- Если говорить про возможность склейки доменов, то 301 позволяет это сделать, а 302 – нет.
Советуем не настраивать 302-редирект на более чем 7-10 суток, иначе могут последовать санкции со стороны поисковых систем.
Способы настройки 302-редиректа
Настройка 302-редиректа схожа с настройкой других типов перенаправления – синтаксис и команды те же, отличается лишь код ответа сервера.
Привлекли 35.000.000 людей на 185 сайтов
Мы точно знаем, как увеличить онлайн–продажи
Применяем лучшие практики digital–продвижения как из вашей тематики, так и из смежных областей бизнеса. Именно это сделает вас на голову выше конкурентов и принесёт лиды и продажи.
Ваш сайт:
Прописываем 302-редирект в htaccess
Данный вид настройки доступен только на серверах Apache. Находим в корне сайта файл .htaccess и вносим в него следующие данные:
RewriteEngine on Redirect 302 /old-url https://site.ru/new-url
Как видно из синтаксиса, указывается код ответа (302), далее URL-адрес исходной страницы и после – новой с указанием протокола соединения и доменного имени.
Этот пример подходит, если требуется настроить переадресацию с одной страницы на другую. Если же необходимо создать перенаправления внутри всего ресурса, то следует использовать более сложный вариант:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.site.ru [NC] RewriteRule ^(.*)$ https://site /$1 [R=302,L]
Для закрытия от пользователей и поисковых ботов определенного документа, используется следующий код:
RewriteEngine on RewriteCond %{REQUEST_URI} !/cat.html$ RewriteCond %{REMOTE_ADDR} !^123.123.123.123 RewriteRule $ /cat.html [R=302, L]
С помощью php
Если по каким-то причинам предыдущий метод не подходит, то настроить 302-редирект можно с помощью php-кода. В этом случае перенаправление происходит на самом сервере, а не в браузере пользователя.
Настройка редиректа производится через установку специального заголовка Location и функции header(), которая позволяет отправлять HTTP-заголовок в браузер. Главное замечание – данная функция на странице должна быть вызвана раньше других, и располагаться вначале документа (даже пробел перед этой конструкцией приведет к ее неработоспособности). Если этим правилом пренебречь, то редирект не сработает.
Преимущество данного метода настройки переадресации заключается в том, что синтаксис довольно-таки прост:
<?php header('Location: https://site.ru/primer.html'); exit; ?>
Чтобы настроить сам редирект, данный фрагмент кода необходимо вставить на страницу (в ее php код), с которой будет осуществляться перенаправление в самое начало документа. В примере кода требуется лишь заменить URL-адрес конечной страницы, на которую будет происходить переадресация с указанием полного пути.
Если редиректов планируется много, то рекомендуется создать файл, содержащий все необходимые правила.
С помощью JavaScript
Это менее распространенный способ настройки 302-редиректа по той причине, что в случае, если JavaScript в браузере у посетителя отключен (а так бывает в большинстве случаев), то перенаправление не сработает.
Также, наблюдается небольшая задержка, вызванная тем, что первоначально загружается исходная HTML-страница в виде белого экрана, и только после срабатывает редирект.
Для реализации этого способа, необходимо оформить нижеприведенный код в тег <body> или <head> страницы, с которой требуется сделать перенаправление:
<script type=”text/JavaScript”> document.location = ‘https://site.ru/primer.html’; </script>
Как исправить 302 редирект на 301?
Чтобы не было проблем, необходимо отличать эти два вида редиректов, понимать, в каких случаях применяется тот или иной. Иногда случаются ситуации, что некоторые CMS или их плагины, вместо 301-редиректа, проставляют 302. Это может создать ряд трудностей для владельца ресурса, поэтому важно отслеживать этот момент.
Способы исправления 302-редиректа на 301 отличаются в зависимости от того, каким методом реализована переадресация. К примеру, если это было сделано в файле .htaccess, то достаточно просто изменить код ответа сервера с 302 на 301:
RewriteEngine on Redirect 301 /old-url https://site.ru/new-url
Если говорить про php-способ, то в примере выше был использован заголовок Location, по умолчанию он передает редирект 302. Если требуется прописать 301, то используем следующий код (предварительно удалив от 302-редиректа):
<?php header("HTTP/1.1 301 Moved Permanently"); header("Location: https://site.ru/primer.html"); exit(); ?>
Как проверить что все настроено верно?
Проверить код ответа сервера и работоспособность настроенных редиректов можно несколькими способами.
С помощью Яндекс.Вебмастер
Панель Вебмастера позволяет проверять коды ответов сервера. Чтобы попасть в этот инструмент, переходим: «Инструменты – Проверка ответов сервера». Вбиваем нужный URL-адрес и получаем код ответа.
Проверка ответа сервера с помощью Яндекс.Вебмастера
Как видно на примере, у страницы корректно сработал 302-редирект.
Проверка вручную
Если требуется проверить одну или несколько страниц, то можно воспользоваться ручным способом. Достаточно зайти на страницу, с которой должен быть осуществлен редирект, если все настроено корректно, то сработает перенаправление.
Единственный его недостаток – не получится понять какой тип редиректа сработал.
С помощью сервиса bertal.ru
Данный сервис позволяет получать информацию из HTTP-заголовков документов. Принцип работы с ним достаточно прост: копируем и вставляем в строку URL-адрес интересуемой страницы, нажимаем «Проверить» и получаем код ответа сервера.
Проверяем код ответа сервера с помощью сервиса bertal.ru
Screaming Frog SEO
Если на сайте настроено множество редиректов и их требуется найти, ручные способы для этого малопригодны. В этом случае, рекомендуется использовать специализированный софт, например, Screaming Frog SEO.
Первоначально, сайт необходимо просканировать, вбив его URL-адрес в программу и запустив краулер.
Получение данных через Screaming Frog SEO
Далее переходим к поиску страниц с 302-редиректом (или любым другим кодом ответа), настроив предварительно фильтр по соответствующему столбцу:
Настройка фильтра для поиска страниц с 302-редиректом
И получаем список интересующих документов.
Используя 302-редирект, необходимо быть предельно внимательным, если применять его бездумно, то можно лишь усложнить SEO-продвижение ресурса.
Редиректы – это просто. Их используют для автоматического перенаправления пользователей с одного URL-адреса на другой. Но это, если смотреть на редиректы глазами тех, кто не утруждает себя вопросами поисковой оптимизации. С точки зрения SEO все сложнее. Редиректы напрямую соотносятся с продвижением в поиске и могут привести к множеству проблем, которые ухудшат представление сайта в Google и Яндексе. При этом от 301-редиректов никуда не деться: для каждого оптимизатора рано или поздно наступает момент, когда его настройка на сайте становится обязательной. Разбираем главные SEO-вопросы по этой теме в нашем FAQ.
Что такое 301-редирект
Это код ответа сервера, сообщающий, что исходная ссылка получила новый URL-адрес. Другими словами, код 301 указывает браузеру, что неактуальная страница (или весь сайт) окончательно перемещены в новое место. Перейдя по ссылке, с настроенным редиректом, или введя ее в браузерную строку – пользователь автоматически перенаправится на другой URL-адрес.
Почему 301-редирект так важен для SEO?
Каждая страница сайта имеет свой поисковый рейтинг, который определяет ее ранжирование, т. е. позиции в выдаче и количество трафика из поиска. Перенаправление через 301-редирект позволяет исключить из поискового индекса неактуальный URL и перенаправить поисковый вес со старой страницы на новую. Таким образом, актуальная версия URL-адреса сохранит в выдаче позиции прежней страницы и тот же объем поискового трафика. Если не заморачиваться с редиректом и просто создать новую страницу, ее рейтинг в Google и Яндексе придется прокачивать с нуля.
Резюмируя: 301-редиректы – это в первую очередь о сохранении SEO-потенциала сайта при замене старых URL-адресов, а не о простом автоматическом перенаправлении для удобства пользователей (хотя это тоже бывает важно).
Когда используют 301-редирект
Мы описали общую логику работы редиректов. Теперь – когда их используют на практике.
✓ Навсегда меняют URL-страницы
Это может быть актуально при смене CMS или переезде на самописный сайт; при изменении структуры ресурса или просто массовом обновлении URL-адресов, например, при переходе на систему ЧПУ.
✓ Переезд на новый домен
Бренд поменял название, возникла необходимость в смене доменной зоны или просто захотелось более звучный нейминг.
✓ Установка сертификата безопасности SSL
Переход с HTTP на защищенный протокол HTTPS влечет фактическое изменение адреса сайта и всех его страниц. Все запросы к старым версиям URL должны быть корректно перенаправлены на версии с HTTPS.
✓ Склейка страниц без WWW и WWW-версий
Страницы с одинаковым содержимым, но разной структурой URL-адреса (с WWW и без WWW) воспринимаются поисковыми роботами как дублированный контент. Это серьезная проблема для SEO, и ее решают через объединение двух страниц посредством 301-редиректа.
✓ Редиректы с безслешевых версий URL на слешевые
URL страниц по умолчанию имеют слеши в конце. Если мы убираем слеш, нужно настроить соответствующее перенаправление (/blog/statia/ →301→ /blog/statia). Не сделав это, поисковая система распознает безслешевый урл как абсолютно другой документ с тем же самым содержанием, что и страница со слешем. А как мы знаем, дубли – это очень плохо для SEO.
✓ Склейка двух и более страниц с похожим содержимым
В этом случае речь идет не о фактических дублях, а просто о похожих страницах. Например, такое делают, когда хотят аккумулировать трафик с двух-трех слабых или неактуальных статей на один качественный материал.
Это лишь самые распространенные сценарии использования 301-редиректа, о которых знает каждый опытный сеошник. Ниже мы еще поговорим и о менее очевидных примерах использования переадресации для увеличения поискового трафика на сайт.
Чем 301-редирект отличается от 302?
Существует несколько видов редиректов. Для нужд SEO применяют главным образом два: 301 и 302. Здесь все просто: если контент перенаправляют на новый URL навсегда – ставят 301 редирект. Для временного перемещения используют возможности 302 редиректа.
Выше мы рассмотрели типичные ситуации под 301-перенаправление. Теперь – коротко, когда используют 302 редирект.
✓ Перенаправление пользователей на актуальную для них версию сайта (с учетом ГЕО или языка).
✓ Проведение A/B-тестирования и получение обратной связи о новой (тестируемой) странице без ущерба для позиций старой.
✓ Временное перенаправление аудитории, например, на страницу с акционным предложением.
Это лишь часть примеров, которые помогают понять логику использования 302-редиректа — его ставят, когда планируют через какое-то время восстановить старую версию страницы.
Что происходит с индексацией страниц и ссылочными сигналами при 301 и 302 редиректах
Обычный пользователь не заметит разницы при перенаправлении через 301 и 302-редиректы, но для поисковиков эти отличия принципиальны. Алгоритмы по-разному обрабатывают 301-е и 302-перенаправления. Речь идет о вопросах индексирования страниц и перераспределении между ними ссылочных сигналов. Эти особенности в обработке 301 и 302 редиректов нужно знать, чтобы не навредить позициям страниц в поиске.
Индексация
Когда происходит перенаправление с одного URL-адреса на другой, в поисковом индексе остается лишь один документ.
✓ При 301-редиректе в индекс попадает новая (конечная) страница, на которую стоит перенаправление.
✓ При 302-редиректе в индексе остается первоначальный URL, с которого стоит перенаправление.
Касательно индексации страниц с 302-редиректом есть ряд нюансов. Поисковая система какое-то время воспринимает старые версии страниц как основные, но со временем начинает учитывать 302-редирект как постоянный. По крайней мере, так работает Google. Обычно это занимает несколько недель или месяцев, после чего страница, на которую стоит 302-редирект, залетает в индекс , а старая версия – удаляется. В исключительных случаях Google сразу индексирует 302-редиректы как 301.
Ссылочные сигналы
С точки зрения SEO-оптимизации куда важнее вопрос, что происходит с перераспределением ссылочного веса между страницами, связанными 301 и 302 редиректами.
В Google редиректы раньше «съедали» приблизительно 15-20% PageRank (цифры очень условные) при каждом перенаправлении. То есть, если вы делали перенаправление со старой страницы, например, с PageRank 50, то новый URL получал только 40 PR.
С 2016 Google прекратил официальное обновление PageRank (хотя сам принцип определения «ценности» страниц в том или ином виде продолжает работать и сейчас), и в этом же году Google пересмотрел свою позицию касательно обработки редиректов.
Таким образом, сейчас при использовании редиректов происходит полная консолидация всех сигналов — ссылочный вес между страницами перераспределяется без потерь.
Но здесь очень важно понять один момент: разные типы редиректов отличаются направлением передачи ссылочных сигналов.
✓ Для 301-редиректов ссылочные переносятся «вперед»
(то есть, вес от всех ссылок, проставленных на старую страницу, перетекает на новый URL)
✓ Для 302-редиректов ссылочный вес перераспределяется «назад»
(эффект от всех ссылок на новый URL-адрес будет усиливать рейтинг старой версии страницы)
Важно!
Для эффективного перераспределения ссылочных сигналов большое значение имеет релевантность двух страниц. Если редиректить URL сайта на тематически НЕблизкую страницу, то последняя не только не получит ссылочных сигналов, но и, вероятнее всего, будет учитываться как ложная ошибка (soft 404). Поэтому и 301, и 302 редиректы всегда должны связывать максимально релевантные документы.
Что происходит с позициями сайта после массового обновления URL
Массовое проставление редиректов – распространенная практика в SEO, к которой прибегают при любых доменных переездах или комплексном обновлении URL, например, при переходе на систему ЧПУ. Многих беспокоит, что в этом случае будет происходить с позициями и трафиком. По собственному опыту можем сказать, что изменения будут, но временные, и если вы все настроили правильно, о них не стоит переживать. После массового обновления URL сайт штормит в среднем одну-три недели, после чего позиции и трафик восстанавливаются до прежних показателей. Очень важно все делать комплексно, т. е. проставлять сразу все редиректы, а не делать перенаправления поэтапно. После этого 301-редиректы желательно массово не снимать на протяжении нескольких лет.
Как настроить 301-редирект
Существует несколько способов сделать 301-редирект, но самый общепризнанный метод — редактирование .htaccess (файла дополнительной конфигурации веб-сервера Apache).
Этот файл находится в корневой папке сайта:
Естественно, этот способ актуален исключительно для Apache-серверов. Но вряд ли здесь возникнут какие-либо проблемы: почти половина всех сайтов (46%) работает на этом ПО, так что, вероятнее всего, – и ваш тоже.
Мы не будем пытаться объяснять на пальцах сугубо практические вещи — лучше посмотрите, как настраивать редиректы с помощью файлов .htaccess в этом видео.
WP-плагины для автоматической настройки редиректов
Настроить редиректы на сайте можно и другими способами: посредством HTML и PHP или через специальные скрипты. Но это для тех, кто ориентируется на уровне кода (или готов с этим разобраться). Для всех остальных, у кого сайт работает на CMS, оптимальным решением будет использование плагинов. Возможно, этот способ не такой надежный, как другие варианты; в дополнение к этому, плагины – это всегда лишние нагрузки и источник потенциальных уязвимостей. Тем не менее никто не будет спорить, что это самый простой способ создания редиректов.
Популярные WP-плагины для настройки редиректов
Redirection – топовый WP-плагин для комплексной работы с редиректами. Помимо настройки перенаправлений (как простых редиректов, так и на основе разных условий), плагин умеет собирать статистику переадресаций, мониторить 404-ошибки, поддерживать регулярные выражения. Имеет русскоязычную версию. Систематически обновляется. Бесплатный.
Safe Redirect Manager — еще один популярный редирект-плагин для WP. По части дополнительных функций уступает вышеописанному варианту, но выигрывает с т. з. ресурсоемкости. Не имеет русскоязычной версии. Постоянно обновляется.
Quick Page – простой и нетребовательный в плане ресурсов плагин. Позволяет создавать быстрые 301-редиректы и перенаправления с тонкими настройками. Нет русской локализации. Бесплатный.
Как проверить редиректы на сайте
Для поиска редиректов и связанных с ними технических проблем используют SEO-анализаторы, онлайн-чекеры или браузерные расширения. Специальный SEO-софт – более продвинутый вариант; онлайн-сервисы и расширения – простые, но тоже рабочие инструменты для поиска редиректов.
Чем найти редиректы онлайн (бесплатно):
Webmasta
Быстро обрабатывает запросы в пакетном режиме, умеет находить цепочки редиректов, имеет русскоязычный интерфейс.
Redirectdetective
Чекер показывает перенаправления по заданному URL и не рассчитан на массовую проверку адресов, но хорошо подходит для детального анализа конкретной страницы. Например, он умеет показывать, на каком этапе в цепочке перенаправлений подхватываются cookies.
Httpstatus
Быстро проверяет коды состояний, http-заголовки и находит цепочки переадресаций. Есть удобные функции фильтрации и выгрузки результатов. Обрабатывает до 100 URL за одну проверку.
Браузерные расширения для проверки редиректов
- Link Redirect Trace (Chrome);
- Redirect Path (Chrome);
- Live HTTP Header (Mozilla Firefox, Chrome).
Многофункциональный SEO-софт
Это самые удобные и надежные инструменты для проверки редиректов. За использование таких программ придется платить. Но есть исключения. Например, популярный сервис Ahrefs позволяет бесплатно использовать часть функционала для своих сайтов. Речь идет об инструментах, входящих в пакеты Site Explorer и Site Audit. Чтобы получить к ним доступ, достаточно подтвердить владение сайтом. После этого в вашем распоряжении будет набор мощных инструментов для мониторинга проблем с редиректами (и не только). Как это работает.
Переходим на вкладку Site Audit:
↓
Сканируем ресурс или выбираем дату последнего обхода:
↓
Переходим к отчету Redirects:
Здесь доступны данные по всем редиректам и актуальным проблемам, о которых мы будем говорить далее.
Также здесь можно посмотреть детали по каждому редиректу (↓)
Какие проблемы могут быть связаны с 301-редиректами?
Некорректно настроенные редиректы могут повлечь проблемы с поисковой оптимизацией. Часто они долгое время остаются незамеченными и становятся неприятной неожиданностью после проведения технического аудита. Чтобы избежать таких ситуаций, узнаем врага в лицо и рассмотрим типичные ошибки переадресации.
Некорректные перенаправления с HTTP-версии на HTTPS
Все проекты должны использовать защищенный протокол HTTPS. Лишний раз напоминать эту избитую истину уже даже как-то неловко. Но наличием подписанного сертификата все не ограничивается. Если вы переехали на защищенную версию сайта, важно удостовериться, что переадресация между старыми HTTP- и новыми HTTPS-версиями работает правильно. Самый простой способ это сделать – проверить вручную.
Перейдите на домашнюю страницу – в адресной строке должен отображаться протокол https и иконка с замком. При изменении адреса сайта на HTTP и последующем вводе, браузер должен автоматически перенаправлять на защищенную HTTPS-версию.
Сразу скажем, это весьма топорный вариант проверки. Он может не показать, когда редирект с HTTP на HTTPS срабатывает не на всех страницах сайтах, например, на поддоменах. Еще один вариант проблемы – обратное перенаправление (HTTPS → HTTP). Получить более полную картину о состоянии настроенных редиректов помогает пакетное сканирование всех страниц сайта.
В Ahrefs некорректные перенаправления с HTTPS на HTTP можно увидеть в отдельном отчете:
Цепочки редиректов
Цепочками редиректов называют перенаправления не в один, а в два и более шага. Другими словами, когда между начальной и конечной страницами присутствует одна или несколько промежуточных переадресаций.
Формально поисковые системы умею обрабатывать такие связки редиректов. Например, для краулеров Google максимально допустимое количество редиректов в цепочке — до пяти URL. Но на практике от такого сложного синтаксиса нужно отказываться. В большом количестве подобные цепочки вызывают проблемы с индексацией, замедляют работу сайта и делают его неудобным для пользователей. В комплексе все эти факторы могут оказывать негативное влияние на SEO.
Вебмастера в курсе, что переадресацию логичнее настраивать прямо на конечный URL. Тем не менее зачастую цепочки переходов возникают непреднамеренно. Причиной может стать некорректная настройка файла .htaccess, особенности или неправильные установки CMS, а также заражение сайта вредоносными скриптами. В большинстве таких случаев генерация цепочек оказывается массовой, что с большей вероятностью может привести к пессимизации SEO. Помимо этого, многоуровневые перенаправления нередко становятся причиной возникновения циклических редиректов – это уже более серьезная уязвимость, о которой мы будем говорить ниже.
Находить цепочки редиректов умеет большая часть инструментов. Например, так их определяет вышеупомянутый онлайн-чекер Httpstatus:
А вот так связки переадресаций отображаются в Ahrefs:
В отчете Redirect chain доступны детали по всем URL в цепочке, включая конечную страницу переадресации
Как исправить цепочки редиректов
- Перенастроить редирект. Это самый очевидный способ: нужно убрать все промежуточные звенья и настроить редирект напрямую, между двумя страницами.
- Заменить внутренние ссылки. Если вы не хотите связываться с перенастройкой редиректов, можно пойти обходным путем и отредактировать на сайте внутренние ссылки, которые ведут на перенаправленные страницы. Так, несмотря на фактическое сохранение цепочки, поисковые роботы уже не будут тратить ресурсы на неэффективные обходы многоуровневых ссылок, а пользователи – выжидать долгого перехода после нажатия на линк.
Посмотреть все внутренние ссылки, которые стоят на цепочку перенаправлений, можно в столбце No. of href inlinks.
Далее нужно выгрузить список указанных страниц, и заменить на них внутренние ссылки, так чтобы они вели на целевой URL (конечный в цепочке редиректов).
Важно!
Исправление цепочек редиректов – это второстепенная задача. Если проблема носит массовый характер куда важнее попытаться понять, почему возникают такие перенаправления. В противном случае проблема, скорее всего, будет повторяться.
Циклические перенаправления
Циклические редиректы – это частный случай цепочек переадресаций, но они доставляют несопоставимо больше проблем для сайта.
Представим себе цепочку редиректов, в которой дублируется конечный URL-адрес:
При таком синтаксисе, попадая на последнюю страницу, цикл перенаправлений будет повторяться сначала:
В результате возникнет бесконечный цикл переадресаций, в ответ на что, подгруженный браузер будет выдавать ошибку ERR_TOO_MANY_REDIRECTS. В итоге пользователь вместо страницы будет видеть такое сообщение:
Обычно все онлайн-чекеры умеют распознавать циклические редиректы и определяют их как ошибку.
В Ahrefs такие ошибки называются Redirect loop и отображены в соответствующем отчете.
Чтобы устранить циклическую переадресацию, нужно исправить конечный (дублирующийся) URL в цепочке редиректов. А еще лучше – убрать всю связку, в которой больше двух элементов, о чем говорилось выше.
Захламленность карты сайта страницами с 301-кодами
Файл sitemap – это список XML-документов, которые указывают поисковым системам необходимые ориентиры для эффективной индексации. Поскольку страниц с кодом состояния 301 технически больше нет, поисковым системам не нужно рекомендовать их к обработке. В противном случае роботы могут продолжать совершать по ним обход, впустую расходуя краулинговый бюджет (лимиты индексирования). Помимо этого, Google использует данные sitemap как один из факторов при выборе канонических URL.
Такую проблему нельзя назвать серьезной, но большое количество технического мусора в sitemap, действительно, может ухудшать сканирование и приводить к тому, что важные страницы сайта долгое время будут оставаться незаметными в поиске. В целом, такого рода проблемы актуальны по большей части для крупных сайтов, от 10 000 страниц и выше. Но и относительно небольшим ресурсам, навести порядок в sitemap никогда не будет лишним.
Вот как это можно сделать:
- Выгружаем список всех URL из карты сайта.
- Прогоняем список через один из описанных выше онлайн-чекеров.
- Отфильтровываем URL с кодами состояния 301.
С Ahrefs все еще проще. Ошибки переадресации в карте сайта можно посмотреть в отдельном отчете (если они присутствуют).
Редиректы на 404-страницы
Еще одна потенциальная проблема для SEO – битые редиректы, т. е. переадресации, ведущие на несуществующие страницы (которые возвращают ответ HTTP с кодом 4XX или 5XX). В отличие от примеров выше, эта проблема чаще возникает не из-за неправильных настроек или заражений вирусами, а по естественным причинам, например, когда старые страницы удалены или перенесены в другие разделы. Таким образом, появление 404-страниц – естественный процесс, но запускать эту проблему не нужно.
Очевидно, что вместе с 404-страницей перестают работать и редиректы. Мы уже выяснили, что это плохо, как с точки зрения пользовательского опыта, так и с т. з. сканирования поисковыми роботами. Битые редиректы нужно периодически искать и исправлять, особенно на крупных и часто обновляемых сайтах, например, если это интернет-магазин.
В Ahrefs опцию пакетного сканирования на битые редиректы можно найти в том же инструменте Site Audit (отчет Internal pages → вкладка Broken redirect).
Как исправить битые редиректы?
Если страница была удалена непреднамеренно или непродуманно, ее можно восстановить. Как правило, это оправдано только в том случае, если на нее стояли обратные ссылки. На практике мало кто заморачивается с восстановлением и предпочитает просто деактивировать все внутренние ссылки, ведущие на битый редирект.
Использование 302-редиректов и Meta Refresh для постоянных переадресаций
Выше мы уже объяснили, почему не нужно использовать 302-редиректы в качестве постоянных перенаправлений. Из-за этого актуальная страница может не попасть в индекс + все ссылочные сигналы будут работать не в ее пользу.
В теории поисковые системы умеют распознавать ситуации, когда 302-редирект находится не на своем месте, и через какое-то время начинают обрабатывать его как 301. Но здесь лучше полагаться на себя, и лишний раз перепроверить, не стоят ли временные (302) редиректы на постоянно перемещенных страницах.
Иногда вместо 301-редиректа может быть использован метатег Meta Refresh, через который браузер получает команду перенаправлять пользователей на другой URL. Настройка перенаправлений Meta Refresh – нежелательная практика, от которой рекомендует отказаться сам Google.
Поэтому, если на сайте стоят такие переадресации, их нужно или убрать, или заменить на 301-редиректы.
Переходы из поиска на страницы с кодом 301
При создании 301-редиректа в индекс попадает конечная версия страницы, а предыдущая – удаляется. Соответственно, URL с кодом состояния HTTP 301 не должны получать трафик из поиска. Если это происходит, такие страницы будут отображены в отчете 3XX page receives organic traffic.
Рассматривать это именно как проблему уместно не всегда. Возможно, поисковые роботы еще не сделали обход сайта и не заменили версии страниц в индексе. Тем не менее если таких документов много, нелишним будет ускорить этот процесс, отправив соответствующие URL на переобход в вебмастерках. Также нужно убрать страницы с 301-кодами из Sitemap, о чем говорилось выше, и повторить отправку файлов.
Практические сценарии использования 301-редиректов для усиления SEO
После технического аудита, проведенного по описанным выше пунктам, на сайте не должно остаться серьезных проблем, связанных с 301-редиректами. Теперь будем говорить о том, как использовать эти перенаправлений для оптимизации SEO и увеличения трафика на сайт.
Склейка тематически близких страниц
Часто встречаются ситуации, когда на сайте есть несколько похожих страниц. Каждая из них присутствует в индексе (нет критичной каннибализации), ранжируется по запросам, имеет обратные ссылки и приносит свою долю трафика. Обычно это касается статей в блоге. В этом случае можно попробовать объединить несколько похожих страниц в одну при помощи 301-редиректа. Таким образом есть шанс консолидировать все SEO-факторы (позиции, ссылочные и пр.), и превратить две-три страницы со средними показателями в одну, которая будет работать намного лучше. Обычно это дает больше эффекта, чем стандартная актуализация.
Какой контент объединять?
Для начала отметим, что лучше НЕ проводить таких экспериментов с топовыми страницами, которые имеют высокие позиции и дают много трафика. Оптимальные кандидаты для объединения – тематически близкие страницы (фактор релевантности очень важен) с низкой и средней посещаемостью. Даже если что-то и пойдет не так, пессимизация этих статей вряд ли сильно отразится на KPI сайта.
В дополнение к этому склейка двух и более страниц – одно из классических решений при каннибализации запросов. Более того, такие статьи – это первоочередные кандидаты для объединения через 301-редирект. Больше о том, что такое каннибализация и как ее находить на сайте – читайте в отдельном материале.
Как склеивать похожие статьи?
Здесь действуют по ситуации. Например, когда есть две релевантные публикации, одна из которых откровенно слабая по трафику и поведенческим (но на нее есть обратные ссылки), ее имеет смысл перенаправить на более сильную статью, поставив 301-редирект.
Если обе публикации имеют слабые SEO-метрики или их содержание устарело, целесообразно написать новый материал (под актуализированный кластер семантики) и поставить на него перенаправления с двух старых статей. В этом случае, весь ссылочный капитал старого контента консолидируется и будет работать на продвижение актуального материала. В дополнение к этому переписанная статья улучшит поведенческие метрики за счет свежего содержания.
Перенаправление 404-страниц с обратными ссылками
Мы уже знаем, код ответа HTTP 404 сообщает, что запрашиваемой страницы не существует: она удалена, перемещена или в ее URL внесены изменения. В целом, когда битые документы присутствуют в умеренном количестве, в этом нет ничего критичного. А если вдобавок их остроумно задизайнить – это еще и развеселит пользователей (и улучшит поведенческие).
Тем не менее есть ситуации, когда 404-страница может стать проблемой для SEO. Во-первых, когда они массово залетают в индекс. Во-вторых, если речь идет о пропавших страницах, на которые стояли сильные обратные ссылки. Например, такое обычно бывает с интернет-магазинами. Они систематически удаляют карточки или целые разделы с товарами, на которые пользователи могли писать отзывы или обзоры на сторонних ресурсах. Поскольку 404-х страниц фактически не существует, любые ссылочные сигналы, которые сайт получает через них, являются бесполезными. Даже если не рассматривать такую ситуацию как ошибку, все равно – это грубый недочет SEO-оптимизации. Как его исправить?
Используем уже упомянутые отчеты Ahrefs. Открываем Site Audit → Internal pages и смотрим список всех ошибок 404 page.
Разворачивает детальный отчет по всем 404-страницам, найденным при сканировании.
Нажимаем на кнопку Manage columns и добавляем метрику No. of dofollow backlinks – она покажет все dofollow-ссылки, которые есть у 404-страниц. Если список 404 page большой, сортируем столбец в порядке убывания.
В инструменте Site Explorer (он тоже бесплатный для подтвержденных сайтов) можно посмотреть, где именно стоят внешние ссылки на битые страницы, а также оценить общую трастовость донора. Это поможет понять, будут ли полезными данные бэклинки для вашего сайта или нет.
Если ссылка хорошая, целесообразно поступить следующим образом (на выбор):
1. Перенаправить через 301-редирект 404-страницу на другой релевантный (!) документ на вашем сайте.
2. Воссоздать удаленную страницу с прежним содержимым по указанному URL-адресу. Можно использовать и другое наполнение, но главное, чтобы оно оставалось релевантным прежней версии.
Логика этих действий, думаем, понятна: ссылочные сигналы, передающиеся через трастовые бэклинки, не будут уходить в никуда. Но если восстановленное содержимое нерелевантно прежней версии 404-страницы, поисковые системы будут учитывать редирект как ложную ошибку (soft 404) и никакого положительного эффекта от такой переадресации для SEO не будет.
HTTP 302 codes are a valuable way to redirect website users to a different URL temporarily. However, if your website is delivering 302 redirects in error, it’s a sign that something’s wrong.
Don’t worry — you can fix this problem — but you’ll need to do some troubleshooting.
The first step is to understand precisely what HTTP 302 codes are, how they work, and why they occur. Once you know that, you can figure out what’s gone wrong and how to make it right.
In this post, we’ll tell you everything you need to know about HTTP 302 errors. Then we’ll share five troubleshooting tips to help you fix them.
Let’s get started!
Check Out Our Video Guide to The 302 HTTP Status Code
What Are HTTP 302 Status Codes?
302 codes are a specific type of HTTP status code. These codes are like “notes” that a server delivers to your browser.
Whenever you click on a link or navigate to a URL, your browser requests the webserver for the same. In return, the server sends back the relevant resource (e.g. the page you’re trying to access) along with an HTTP header. The HTTP status codes are inside that header.
Typically, you can’t see these status codes anywhere on the web page. You’ll only usually see them when an error occurs, or if you’ve installed a browser extension that makes them visible:
3xx status codes (301, 302, etc.) are a class of status codes called “redirection codes.” They’re returned whenever the server sends back a new resource instead of the requested resource.
In other words, they’re shown when the website page you intended to access redirects you to a different page.
The critical difference between code 301 and code 302 is that the former is used for permanent redirects, whereas the latter is for temporary redirects.
The 301 redirects also pass “link juice,” whereas 302s don’t. That has a significant impact on Search Engine Optimization (SEO).
Uh oh… you’ve just seen an HTTP 302 code pop up. 😬 Now what? 🤷♀️ Start with this thorough guide ⤵Click to Tweet
How 302 Redirects Work
When you set up a 302 redirect for a page on your website that’s temporarily unavailable, and a user visits that page, your webserver will respond to the visitor’s browser with a special Location header. This header will indicate the new URL that the browser should redirect the user to instead.
For example, imagine that a user types blog.example.com into their browser URL bar, but the website is configured to redirect it to blogging.example.com.
The server response will include both the 302 status code and the Location: blogging.example.com header. This setting tells the user’s browser to redirect this request to the new URL instead.
Of course, all of this happens automatically and behind the scenes. The user shouldn’t be able to see any of this play out. Instead, their browser should automatically take them to the new resource.
Why HTTP 302 Errors Happen
If something is misconfigured on your website, it might cause 302 codes to be issued in error. If this happens, you may run into problems such as:
- A page on your website that redirects your visitors elsewhere when it shouldn’t
- A page on your website that redirects your visitors to the wrong resource
- The ERR_TOO_MANY_REDIRECTS error (also known as a “redirect loop”)
The last of these issues is the only one that will display an actual error page. If you’re using the Chrome browser, a redirect loop error page will look something like this:
On Mozilla Firefox, it looks like this:
All of the above problems are caused by some misconfiguration. It may be a plugin conflict, incorrect URL settings, or a misconfigured .htaccess file.
How to Fix the HTTP 302 Error (5 Methods)
Next, we’ll walk you through five troubleshooting methods that can help you figure out what’s causing the problem and fix it.
Before we get started, make sure to perform a complete backup of your website first. That way, if anything goes wrong, you can always revert to the previous version. You can use a WordPress plugin to do this.
1. Determine Whether the Redirects Are Valid
302 responses are usually not errors. Temporarily redirecting users to a different page can be a valid configuration and isn’t usually something that requires fixing.
It’s only an error if your website is responding with 302 codes that it shouldn’t be issuing, or if it’s causing a redirect loop. Therefore, the first step is to double-check which URLs are generating the HTTP 302 codes and determine whether the redirect is appropriate or not.
To do so, you can navigate to the pages on your website you suspect of issuing the 302 error and see for yourself if they behave as expected. If a temporarily unavailable page redirects to the correct resource, it’s appropriately configured.
However, if a page redirects you to the wrong resource or your browser reports a redirect loop by bringing up an ERR_TOO_MANY_REDIRECTS error page, it’s a sign that one (or more) of your redirects isn’t configured quite right.
2. Check Your Plugins
One of the most common causes of 302 errors and redirect loops is plugins.
Some WordPress redirect manager plugins and SEO tools like Yoast SEO manage your website redirects for you and enable you to set up redirect rules:
If these rules are misconfigured, or if two plugins conflict, it can cause unexpected issues. Therefore, you’ll need to check each relevant tool that’s installed on your site.
For example, if you’re using the popular 301 Redirects WordPress plugin, you can check the configuration by navigating to Settings > 301 Redirects. Under Redirect Rules, you’ll see a list of all the redirect rules you’ve set up:
Check all the 302 redirects listed here, and make sure they’re all correct.
You’ll also want to ensure that you haven’t set up anything in a way that could cause a redirect loop. For example, if Page-A is set to redirect to Page-B, but Page-B is also set to redirect to Page-A, this will cause an error.
If you have multiple redirect manager plugins and you’re not sure which one is causing the issue, you can try deactivating them one by one from the WordPress Plugins page (be sure to make a backup first):
After deactivating each plugin, try revisiting the problem URL to see if the 302 error persists.
If the problem is suddenly fixed, you’ll know which plugin was causing the issue, and you can then choose to troubleshoot further or remove it from your site.
3. Ensure That Your WordPress URL Settings Are Configured Correctly
Another common cause of the HTTP 302 error is a misconfiguration in the WordPress URL settings.
To check this, navigate to Settings > General in your WordPress dashboard. Here, you should see a WordPress Address (URL) field and a Site Address (URL) field:
In most cases, the URLs in both of these fields should match. Make sure they’re both the same, including the “www” portion (or lack thereof) before the domain name.
If they don’t match, update the settings, then check the URL of the page issuing the HTTP 302 error to see if it’s fixed.
4. Check Your Server Configuration
A misconfigured server can also sometimes cause 302 redirect errors. Therefore, the next step is to check your server configuration.
If your host uses the Apache webserver, you can do this by checking your.htaccess file.
First, connect to your site’s server via a control dashboard like cPanel or an FTP client. Then navigate to the root directory of your site — the same place as the wp-admin and wp-content folders — and find the .htaccess file:
If you aren’t finding the .htaccess file here (and you’re sure on an Apache server), you may need to tell FileZilla to show hidden files before it’ll appear in the file list.
Next, open the file in your favorite text editor. It should look something like this:
Now, we’re going to look for RewriteXXX
directives (the highlighted elements above). Without getting too technical, RewriteCond
and RewriteRule
directives are used to perform redirections from one URL to another.
The RewriteCond
directive specifies the URL you want to redirect the visitor away from, while the RewriteRule directive specifies the URL you want to redirect them to. Here’s an example:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^website.com$
RewriteRule ^(.*)$ http://www.temporary-website.com/$1 [R=302]
The flag at the end, “[R=302]”, tells the browser that this is a temporary 302 redirect.
If you notice any RewriteXXX combinations similar to the above in your .htaccess file that shouldn’t be there, you can comment them out, save the changes, and reload the problem web page to see if it resolves the issue.
Just make sure to download and save a spare copy of your .htaccess file before you make any changes in case something goes wrong.
5. Speak to Your Web Host
If you’ve tried all of the above methods and you’re still having trouble, the next step is to speak to your web host.
Troubleshooting a 302 code error beyond this point requires a lot of technical know-how. Therefore, unless you’re a professional developer, it’s probably best to get help from an expert.
At Kinsta, we take support seriously. Our team of experts is always on-hand to help you resolve issues like this whenever they arise:
We’re available 24/7. All you have to do is log in to your MyKinsta account and contact us via live chat to connect with a support engineer who can help in real-time.
Don’t let HTTP 302 codes slow your roll. 🙅♀️ Learn how to resolve them with these 5 troubleshooting tips 💥Click to Tweet
Summary
HTTP 302 status codes are a completely normal way to redirect your website visitors. However, they should only be used when the resource page is temporarily unavailable.
Suppose your website is issuing 302 codes in error or causing redirect loops. In that case, it’s vital to fix this problem as soon as possible, or it may negatively impact your SEO and conversions.
You can follow these five steps to fix HTTP 302 errors on your website:
- Determine whether the redirects are appropriate or not by examining the URLs that are issuing the 302 redirects.
- Check your plugins to make sure any redirect settings are valid.
- Ensure that your WordPress URL settings are configured correctly.
- Check your server configuration by looking for incorrect
RewriteXXX
directives in your .htaccess file (Apache servers only). - Speak to your web host for further technical support if the problem persists.
Do you have any questions left about the HTTP 302 error? Let us know in the comments section.
Get all your applications, databases and WordPress sites online and under one roof. Our feature-packed, high-performance cloud platform includes:
- Easy setup and management in the MyKinsta dashboard
- 24/7 expert support
- The best Google Cloud Platform hardware and network, powered by Kubernetes for maximum scalability
- An enterprise-level Cloudflare integration for speed and security
- Global audience reach with up to 35 data centers and 275 PoPs worldwide
Test it yourself with $20 off your first month of Application Hosting or Database Hosting. Explore our plans or talk to sales to find your best fit.
HTTP 302 codes are a valuable way to redirect website users to a different URL temporarily. However, if your website is delivering 302 redirects in error, it’s a sign that something’s wrong.
Don’t worry — you can fix this problem — but you’ll need to do some troubleshooting.
The first step is to understand precisely what HTTP 302 codes are, how they work, and why they occur. Once you know that, you can figure out what’s gone wrong and how to make it right.
In this post, we’ll tell you everything you need to know about HTTP 302 errors. Then we’ll share five troubleshooting tips to help you fix them.
Let’s get started!
Check Out Our Video Guide to The 302 HTTP Status Code
What Are HTTP 302 Status Codes?
302 codes are a specific type of HTTP status code. These codes are like “notes” that a server delivers to your browser.
Whenever you click on a link or navigate to a URL, your browser requests the webserver for the same. In return, the server sends back the relevant resource (e.g. the page you’re trying to access) along with an HTTP header. The HTTP status codes are inside that header.
Typically, you can’t see these status codes anywhere on the web page. You’ll only usually see them when an error occurs, or if you’ve installed a browser extension that makes them visible:
3xx status codes (301, 302, etc.) are a class of status codes called “redirection codes.” They’re returned whenever the server sends back a new resource instead of the requested resource.
In other words, they’re shown when the website page you intended to access redirects you to a different page.
The critical difference between code 301 and code 302 is that the former is used for permanent redirects, whereas the latter is for temporary redirects.
The 301 redirects also pass “link juice,” whereas 302s don’t. That has a significant impact on Search Engine Optimization (SEO).
Uh oh… you’ve just seen an HTTP 302 code pop up. 😬 Now what? 🤷♀️ Start with this thorough guide ⤵Click to Tweet
How 302 Redirects Work
When you set up a 302 redirect for a page on your website that’s temporarily unavailable, and a user visits that page, your webserver will respond to the visitor’s browser with a special Location header. This header will indicate the new URL that the browser should redirect the user to instead.
For example, imagine that a user types blog.example.com into their browser URL bar, but the website is configured to redirect it to blogging.example.com.
The server response will include both the 302 status code and the Location: blogging.example.com header. This setting tells the user’s browser to redirect this request to the new URL instead.
Of course, all of this happens automatically and behind the scenes. The user shouldn’t be able to see any of this play out. Instead, their browser should automatically take them to the new resource.
Why HTTP 302 Errors Happen
If something is misconfigured on your website, it might cause 302 codes to be issued in error. If this happens, you may run into problems such as:
- A page on your website that redirects your visitors elsewhere when it shouldn’t
- A page on your website that redirects your visitors to the wrong resource
- The ERR_TOO_MANY_REDIRECTS error (also known as a “redirect loop”)
The last of these issues is the only one that will display an actual error page. If you’re using the Chrome browser, a redirect loop error page will look something like this:
On Mozilla Firefox, it looks like this:
All of the above problems are caused by some misconfiguration. It may be a plugin conflict, incorrect URL settings, or a misconfigured .htaccess file.
How to Fix the HTTP 302 Error (5 Methods)
Next, we’ll walk you through five troubleshooting methods that can help you figure out what’s causing the problem and fix it.
Before we get started, make sure to perform a complete backup of your website first. That way, if anything goes wrong, you can always revert to the previous version. You can use a WordPress plugin to do this.
1. Determine Whether the Redirects Are Valid
302 responses are usually not errors. Temporarily redirecting users to a different page can be a valid configuration and isn’t usually something that requires fixing.
It’s only an error if your website is responding with 302 codes that it shouldn’t be issuing, or if it’s causing a redirect loop. Therefore, the first step is to double-check which URLs are generating the HTTP 302 codes and determine whether the redirect is appropriate or not.
To do so, you can navigate to the pages on your website you suspect of issuing the 302 error and see for yourself if they behave as expected. If a temporarily unavailable page redirects to the correct resource, it’s appropriately configured.
However, if a page redirects you to the wrong resource or your browser reports a redirect loop by bringing up an ERR_TOO_MANY_REDIRECTS error page, it’s a sign that one (or more) of your redirects isn’t configured quite right.
2. Check Your Plugins
One of the most common causes of 302 errors and redirect loops is plugins.
Some WordPress redirect manager plugins and SEO tools like Yoast SEO manage your website redirects for you and enable you to set up redirect rules:
If these rules are misconfigured, or if two plugins conflict, it can cause unexpected issues. Therefore, you’ll need to check each relevant tool that’s installed on your site.
For example, if you’re using the popular 301 Redirects WordPress plugin, you can check the configuration by navigating to Settings > 301 Redirects. Under Redirect Rules, you’ll see a list of all the redirect rules you’ve set up:
Check all the 302 redirects listed here, and make sure they’re all correct.
You’ll also want to ensure that you haven’t set up anything in a way that could cause a redirect loop. For example, if Page-A is set to redirect to Page-B, but Page-B is also set to redirect to Page-A, this will cause an error.
If you have multiple redirect manager plugins and you’re not sure which one is causing the issue, you can try deactivating them one by one from the WordPress Plugins page (be sure to make a backup first):
After deactivating each plugin, try revisiting the problem URL to see if the 302 error persists.
If the problem is suddenly fixed, you’ll know which plugin was causing the issue, and you can then choose to troubleshoot further or remove it from your site.
3. Ensure That Your WordPress URL Settings Are Configured Correctly
Another common cause of the HTTP 302 error is a misconfiguration in the WordPress URL settings.
To check this, navigate to Settings > General in your WordPress dashboard. Here, you should see a WordPress Address (URL) field and a Site Address (URL) field:
In most cases, the URLs in both of these fields should match. Make sure they’re both the same, including the “www” portion (or lack thereof) before the domain name.
If they don’t match, update the settings, then check the URL of the page issuing the HTTP 302 error to see if it’s fixed.
4. Check Your Server Configuration
A misconfigured server can also sometimes cause 302 redirect errors. Therefore, the next step is to check your server configuration.
If your host uses the Apache webserver, you can do this by checking your.htaccess file.
First, connect to your site’s server via a control dashboard like cPanel or an FTP client. Then navigate to the root directory of your site — the same place as the wp-admin and wp-content folders — and find the .htaccess file:
If you aren’t finding the .htaccess file here (and you’re sure on an Apache server), you may need to tell FileZilla to show hidden files before it’ll appear in the file list.
Next, open the file in your favorite text editor. It should look something like this:
Now, we’re going to look for RewriteXXX
directives (the highlighted elements above). Without getting too technical, RewriteCond
and RewriteRule
directives are used to perform redirections from one URL to another.
The RewriteCond
directive specifies the URL you want to redirect the visitor away from, while the RewriteRule directive specifies the URL you want to redirect them to. Here’s an example:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^website.com$
RewriteRule ^(.*)$ http://www.temporary-website.com/$1 [R=302]
The flag at the end, “[R=302]”, tells the browser that this is a temporary 302 redirect.
If you notice any RewriteXXX combinations similar to the above in your .htaccess file that shouldn’t be there, you can comment them out, save the changes, and reload the problem web page to see if it resolves the issue.
Just make sure to download and save a spare copy of your .htaccess file before you make any changes in case something goes wrong.
5. Speak to Your Web Host
If you’ve tried all of the above methods and you’re still having trouble, the next step is to speak to your web host.
Troubleshooting a 302 code error beyond this point requires a lot of technical know-how. Therefore, unless you’re a professional developer, it’s probably best to get help from an expert.
At Kinsta, we take support seriously. Our team of experts is always on-hand to help you resolve issues like this whenever they arise:
We’re available 24/7. All you have to do is log in to your MyKinsta account and contact us via live chat to connect with a support engineer who can help in real-time.
Don’t let HTTP 302 codes slow your roll. 🙅♀️ Learn how to resolve them with these 5 troubleshooting tips 💥Click to Tweet
Summary
HTTP 302 status codes are a completely normal way to redirect your website visitors. However, they should only be used when the resource page is temporarily unavailable.
Suppose your website is issuing 302 codes in error or causing redirect loops. In that case, it’s vital to fix this problem as soon as possible, or it may negatively impact your SEO and conversions.
You can follow these five steps to fix HTTP 302 errors on your website:
- Determine whether the redirects are appropriate or not by examining the URLs that are issuing the 302 redirects.
- Check your plugins to make sure any redirect settings are valid.
- Ensure that your WordPress URL settings are configured correctly.
- Check your server configuration by looking for incorrect
RewriteXXX
directives in your .htaccess file (Apache servers only). - Speak to your web host for further technical support if the problem persists.
Do you have any questions left about the HTTP 302 error? Let us know in the comments section.
Get all your applications, databases and WordPress sites online and under one roof. Our feature-packed, high-performance cloud platform includes:
- Easy setup and management in the MyKinsta dashboard
- 24/7 expert support
- The best Google Cloud Platform hardware and network, powered by Kubernetes for maximum scalability
- An enterprise-level Cloudflare integration for speed and security
- Global audience reach with up to 35 data centers and 275 PoPs worldwide
Test it yourself with $20 off your first month of Application Hosting or Database Hosting. Explore our plans or talk to sales to find your best fit.
4. Как настроить 301 редирект
4.1. C помощью файла .htaccess (для веб-сервера Apache)
Как найти файл .htaccess?
Как правило, файл размещен в корневой директории сайта:
Чтобы попасть в корневую папку сайта, вы можете использовать несколько способов:
- Файловый менеджер хостинга;
- Подключиться через FTP клиент;
- Использовать SSH доступ.
После нахождений файла достаточно нажать на него правкой кнопкой:
И выбрать редактиврование.
Важно:
Рекомендация: если вы впервые проводите изменения файла, сохраните исходную версию файла. Неправильная настройка файла может нарушить работоспособность сайта. Часто, такие манипуляции заканчиваются обращением к программисту.
Итак, мы уже нашли файл, открыли его. Теперь мы можем настроить 301 редирект .htaccess. Мы подготовили 14 примеров наиболее частого использования 301 редиректа.
Практические примеры:
– Переадресация с одной статической страницы на другую
Если вам необходимо установить редирект с одной страницы на другую – используйте данный код:
Пример простого 301 редиректа:
Redirect 301 /page1 http://www.yousite.com/page2
*страницу, на которую идет переадресация должна быть указана через полный URL адрес.
Или:
RewriteRule ^page1 /page2/$1 [R=301,L]
Если вы обнаружили битую ссылку на своем сайте – вы можете перенаправить пользователя на другую страницу с помощью установки 301 редиректа.
Полезный материал по теме: Проверка битых ссылок: 8 способов для поиска
– С без WWW на WWW / с WWW на без WWW
с WWW на без WWW:
Вариант 1
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.yousite.com$ [NC]
RewriteRule ^(.*)$ http://yousite.com/$1 [R=301,L]
Вариант 2
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Вариант 3
RewriteEngine on
RewriteCond %{HTTP_HOST} !^yousite.com$ [NC]
RewriteRule ^(.*)$ http://yousite.com/$1 [R=301,L]
Для HTTPS-версии:
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://yousite.com/$1 [R=301,L]
без WWW на WWW:
Вариант 1
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yousite.com$ [NC]
RewriteRule ^(.*)$ http://www.yousite.com/$1 [R=301,L]
Вариант 2
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
– С http на https /с https на http
с http на https:
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
с https на http:
Redirect HTTPS to HTTP
RewriteCond %{HTTP:X-Forwarded-Proto} =https
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
– Редирект с одного домена на другой
Если вы решили изменить домен сайта и вам необходимо установить 301 редирект со старого на новый домен, воспользуйтесь кодом:
RewriteCond %{HTTP_HOST} ^old-yousite.com$ [NC]
RewriteRule ^(.*)$ http://www.new-yousite.com/$1 [R=301,L]
– Редирект на поддомен
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(.+).yousite.com$
RewriteRule (.*) http://yousite.com/$1?region=%1 [L,R=301,QSA]
– Постраничный редирект
Наиболее частый случай использования 301 редиректа – это смена домена сайта. Если вы проводите переезд сайта на новый домен – вам обязательно нужно настроить постраничный 301 редирект, давайте разберемся, как это сделать.
Постраничное перенаправление настривается также, как и редиректы с WWW на без WWW.
Вариант 1.
Используйте готовый код:
RewriteCond %{HTTP_HOST} ^oldyousite.com
RewriteRule ^(.*)$ http://newyousite.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.oldyousite.com
RewriteRule ^(.*)$ http://newyousite.ru/$1 [R=301,L]
Вариант 2.
Сгенерируйте код для вставки через этот сервис:
Введите адрес старого и нового домена и выберете 2 опции, которые отображены на скриншоте. После чего скопируйте код и добавьте его в файл .htaccess и сохраните изменения.
– Перенаправление со страницы /index.php на главную страницу
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://yousite.com/ [R=301,L]
– Редирект на главную
Бывает, что есть необходимость разместить редирект со всех страниц одного домена на главную страницу другого домена, используйте данный код:
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://yousite.com/ [L,R=301]
– Редирект на страницу 404 ошибки
Если необходимо установить редирект с 404 ошибки на конкретную предустановленную страницу, настройке данный код:
ErrorDocument 404 /404.html
Полезная информация по теме: Ошибка 404: что означает, как найти и настроить
– Редирект со страниц без / на страницу со / и наоборот
Со страниц без / на страницы с /:
Обратите особое внимание на этот редирект для избежания появления дубликатов страниц (поисковая система воспринимает 1 страницу со слешем в конце URL-адреса, и без слеша – как 2 отдельные страницы), чтобы этого избежать, используйте редирект:
Пример:
- yousite.com/page1/
- yousite.com/page1
Удаление слеша в конце URL-a:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
Добавление слеша в конце URL-a:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
Также вы можете воспользоваться данным сервисом для генерации нужного кода:
– Редирект на мобильную версию сайта
Если ваш сайт работает на CMS, скорее всего у вас не будет необходимости вручную настраивать данный редирект, если же ваш сайт самописный – он будет полезен.
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} "text/vnd.wap.wml|application/vnd.wap.xhtml+xml" [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^ http://m.yousite.com%{REQUEST_URI} [R,L]
– Изменение расширения файла c .php на .html
Часто, такая необходимость возникает при изменение системы управления контентом (CMS), в таком случае, используйте следующий редирект:
RedirectMatch 301 (.*).php$ http://www.yousite.com$1.html
Или наоборот:
RedirectMatch 301 (.*).html$ http://www.yousite.com$1.php
Если же вам нужно убрать, а не заменить расширение, к примеру .html из url (для удаления .php нужно заменить $1.html на $1.php):
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.html [L]
– Массовый редирект для категории
Если категория была переименовала, но в ней были тысячи товаров (или публикаций) – используем код ниже, чтобы не прописывать перенаправление для каждой страницы отдельно:
RewriteRule ^(.*)/old-category/(.*)$ $1/new-category/$2 [R=301,L]
Если категория идет сразу после имени сайт (yousite.ru/category/), в таком случае используем:
RewriteRule old-category /(.*) / old-category /$1 [R=301,L]
– Редирект для URL с параметрами
К примеру, вам нужно установить редирект с http://yousite.com/page.php?sort=size. Параметр здесь «sort=articles». Код будет следующим:
RewriteCond %{QUERY_STRING} sort=size
RewriteRule .* http://yousite.com/page.php? [R=301,L]
4.2. С помощью PHP-условия в файле index.php
Если ваш сайт разработан на PHP (как правило, это самописные сайты, которые состоят из набора .php страниц ) – вам нужно воспользоваться этой инструкцией.
Для переадресации со старого URL-адреса на новый, вам необходимо добавить код с редиректом в самый верх файла нужной страницы. PHP переадресация на страницу выполняется с помощью кода:
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://yousite.com/test.html");
exit();
Если же у вас достаточно много редиректов, которые необходимо проставить, оптимальнее создать отдельный файл, который будет содержать в себе все правила, его можно назвать php-redirect.php (файл, который будет содержать все PHP редиректы сайта):
if($_SERVER['REQUEST_URI'] == '/old-url-1/'){
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://yousite.com/new-url-1/");
exit();
}
if($_SERVER['REQUEST_URI'] == '/old-url-2/'){
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://yousite.com/new-url-2/");
exit();
}
Файл не имеет ограничений по количеству правил. При этом, синтаксис условий может быть также организован разными способами. После составления такого файла, вам необходимо подключить его к сайту.
Также пример редиректа, когда вам необходимо поставить перенаправление с одной страницы домена А, на аналогичную страницу домена Б:
$ref=$_SERVER["QUERY_STRING"];
if ($ref!="") $ref="?".$ref;
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://yousite.com/".$ref);
exit();
Настраиваем мобильный редирект через PHP
<?
$detect = new Mobile_Detect;
if ( $detect->isMobile() ) {// код}
if ( $detect->isTablet() ) {// код}
if ( $detect->isiOS() ) {// код}
if ( $detect->isAndroidOS() ) {// код}
?>
4.3. С помощью функционала CMS
У каждой системы управления есть свои небольшие особенности настройки редиректов. Давайте разберемся как сделать переадресацию на разных CMS:
– Настройка 301 редиректа в WordPress
Вариант 1 (рекомендуемый). Используйте плагин Redirection
Вариант 2. Управление редиректами можно осуществить вручную с помощью файла .htaccess
– Настройка 301 редиректа в Битрикс
Управление редиректами в системе управления контентом Битрикс выполняется с помощью файла .htaccess
Доступ к которому вы можете получить через файловый менеджер внутри системы:
– Настройка 301 редиректа в OpenCart
Управление редиректами в системе управления контентом OpenCart выполняется с помощью файла .htaccess
Тем не менее, важно учитывать, что 301 редирект через .htaccess в ОпенКарт имеет другую конструкцию:
RewriteCond %{QUERY_STRING} ^_route_=адрес_старой_страницы.html$
RewriteRule ^(.*)$ http://ваш_домен.ru/новой_страницы/? [R=301,L]
– Настройка 301 редиректа в для MODX
Управление редиректами в системе управления контентом ModX выполняется с помощью файла .htaccess
Доступ к которому вы можете получить через файловый менеджер внутри системы:
– Настройка 301 редиректа в Joomla
Вы можете настроить 301 редирект в CMS Joomla с помощью специальных плагинов: ReDJ, aiRedirectWww, Simple Redirect или JRedirects.
Также управлять редиректами можно через файл .htaccess или другие системные файлы (в зависимости от вида сервера, на котором размещен ваш сайт).
4.4. С помощью функционала платформы
– Настройка 301 редиректа в WIX
Детальная инструкция по настройке редиректов на платформе WIX тут.
Для настройки редиректа вам необходимо перейти в Настройки – SEO – Настроить переадресацию.
– Настройка 301 редиректа в UCOZ
Детальная инструкция по настройке редиректов на платформе Юкоз тут.
В настройках платформы есть функционал настройки 301 редиректов внутри сайта (но, для бесплатной версии сайта – это 5 редиректов максимум).
Как поставить переадресацию на другой сайт?
Редирект страницы на страницу другого сайта можно установить только через HTML перенаправление:
Зайдите в панель управления – Дизайн – Управление дизайном. Выбрать – Статьи – Страница материалов и комментариев
<?іf($ENTRY_URI$=='
http://my-old-site.ucoz.org/publ/domashnie_zhivotnye/12-1-0-5
')?>
<metа http-eqіv='Rеfresh' content='0; URI=http://my-new-site.ru/blog/domashnie_zhivotnye.html'>
<?endif?>
– Настройка 301 редиректа в Тильда
Воспользуйтесь встроенным функционалом системы. Зайдите в «Настройки сайта» → «SEO» → «редиректы страниц (code 301)» → редактировать.
4.5. C помощью файла nginx.conf (для веб-сервера Nginx)
Если у вашего сайта веб-сервер Nginx, вам необходимо настривать 301 редиректы через файл nginx.conf.
Необходимо изменить начало блока http в файле nginx.conf.
Пример настройки редиректа с WWW на без WWW
server {
server_name ~^(?=www.);
if ( $host ~* "http://www.(.*)«) {
set $unwww $1;
}
rewrite ^ $scheme://$unwww$request_uri permanent;
}
Пример настройки редиректа без WWW домен c WWW
server {
server_name ~^(?!www.);
rewrite ^ http://www.$host$request_uri permanent;
}
Редирект — это перенаправление или переадресация, благодаря редиректу можно перенаправлять посетителя на нужный адрес внутри сайта. Например, вы сохранили страницу в закладки, но за это время она поменяла свой адрес, однако, вебмастер настроил переадресацию (301 редирект) со старой страницы на новую.
Редирект может быть настроен и так, что посетитель видит в адресной строке именно тот адрес, который ввел, а вот содержимое — другой страницы, на которую идет переадресация.
Мы расскажем, какие бывают редиректы, для чего используются, чем отличаются, как их настроить и не «сломать» сайт.
Как работает редирект
- В настройках сайта указывается адрес страницы (донора), с которой посетитель должен перенаправляться , например, www.kokoc.com, и страницы (акцептора), на которую он должен попасть, например, kokoc.com.
- Посетитель вводит в адресную строку браузера адрес www.kokoc.com.
- Браузер обращается к серверу сайта, запрашивая страницу www.kokoc.com.
- Сервер обрабатывает запрос, последовательно применяя все правила, которые прописаны в его настройках.
- Посетителю в браузере загружается контент страницы kokoc.com.
Чаще всего правила прописываются не для отдельных страниц, а для целых групп. Например, правило может гласить, что со всех страниц сайта с WWW должна идти переадресация на страницы без WWW, как в нашем случае.
На каком-то шаге он обнаруживает инструкцию «со страницы с WWW нужно переадресовать посетителя на страницу без WWW» и отправляет в ответ браузеру страницу с адресом kokoc.com. Если правило было прописано на самом начальном этапе обработки запроса — до загрузки контента первой страницы — переадресация пройдет максимально быстро и незаметно для пользователя.
В каких случаях нужны редиректы
Редирект можно сравнить с переадресацией на телефоне. Во многих компаниях настраивают автоматическое перенаправление на другого сотрудника, если номер, на который вы звоните, сейчас занят, недоступен или долго не отвечает.
Редирект на сайте используется почти для таких же целей:
- добавляют или не добавляют перед доменом префикс WWW — рудимент, оставшийся еще с эпохи зарождения интернета;
- ставят или не ставят в конце слеш (/);
- пишут адрес заглавными буквами или строчными;
- указывают или не указывают расширения .html, .htm, .php и т. д.
Эти варианты называют зеркалами. Важно сделать, чтобы при любом таком написании пользователь попал на одну и ту же страницу сайта, но не на 404.
Как бы не запутаться в зеркалах!
Кроме того, поисковые системы не понимают, что зеркала — это вариации адреса одной и той же страницы. Например, для Google и «Яндекса» это 4 разных URL:
- www.kokoc.com
- kokoc.com
- www.kokoc.com/
- kokoc.com/
Они будут индексироваться отдельно, в результате возникнет дублирование контента.
Редирект решает проблему перенаправления пользователя и дублей контента для ПС. Страницы принудительно склеиваются: все побочные варианты написания перенаправляются на один URL — тот, что мы будем считать основным.
Перенаправление с HTTP на HTTPS или обратно
После внедрения защищенного протокола HTTPS возник еще один вариант зеркала. URL на HTTP и на HTTPS также воспринимаются поисковыми системами как разные.
С HTTP на HTTPS тоже нужен редирект
Переезд на другой домен
Вам нужно направить на новый домен клиентов, которые вводят старый адрес, сохранить трафик из поисковых систем, переходы по ссылкам на различных ресурсах. Кроме того, так сохраняются наработки поисковой оптимизации — при редиректе будет передаваться ссылочный вес и авторитет старых страниц.
Смена CMS сайта
У нового движка может быть другой алгоритм формирования URL страницы. К примеру, если на старом сайте адрес страницы товара имел вид site.ru/catalog/tovar, то на новом это site.ru/product/tovar. Нужно настраивать редирект всех таких страниц, чтобы не потерять позиции в поисковых системах и трафик.
Переадресация на мобильную версию
Если для адаптации сайта под мобильные вы выбрали вариант с отдельной мобильной версией, то нужно перенаправлять всех посетителей с мобильных устройств на нее. Например, основной адрес вашего сайта — site.ru, а мобильной версии — m.site.ru. Благодаря настройке редиректа сервер будет определять устройство посетителя, и если он использует смартфон или планшет — перенаправлять его на адрес с префиксом m.
Появление поддоменов
При расширении сайта часто принимается решение вынести отдельные каталоги товаров или услуг на поддомены. Например, вы сделали для бытовой техники поддомен bt.your-site.ru, а значит, понадобится редирект всех старых адресов раздела your-site.ru/bt на адреса bt.your-site.ru.
Удаление страниц
Страницы с услугами, которые больше не предоставляются, или с дублированным контентом часто удаляют с сайта. Но у них могут быть обратные ссылки с других ресурсов, неплохие позиции в поисковой выдаче. Чтобы не потерять все это, настраивается редирект на подходящие по смыслу URL.
К примеру, у вас были страницы двух отдельных услуг: подготовки рекламных объявлений для PPC (site.ru/uslugi/kreativy) и комплексного запуска рекламных кампаний (site.ru/uslugi/reklama-ppc). Вы некоторое время активно продвигали обе услуги: покупали ссылки, создавали посты со ссылками на эти страницы в соцсетях и т. д. Но позже пришли к выводу, что подготовка объявлений как отдельная услуга не оправдывает себя, и стали предоставлять ее только в рамках комплексного запуска.
Хороший выход — удалить (скрыть) страницу о подготовке объявлений и поставить с нее редирект на страницу комплексного запуска. Конечно, позаботившись, чтобы на странице-акцепторе была информация, что подготовка рекламных объявлений входит в комплексную услугу. Так вы не потеряете ссылочный вес страницы и посетителей.
Изменение структуры сайта
Часто при кардинальном пересмотре структуры категории товаров и другие страницы меняют свои адреса. Опять-таки, требуется переадресация, чтобы не потерять посетителей и ссылочный вес старых URL.
Например, на вашем сайте в корне каталога был небольшой раздел «IP-камеры» с парой десятков товаров (site.ru/catalog/ip-camery). Постепенно вы расширили ассортимент продаж и решили создать целый раздел «Видеонаблюдение», а уже в нем подразделы с камерами, регистраторами и т. п. Странице с IP-камерами пришлось сменить адрес на site.ru/catalog/videonabludenie/ip-camery. Что делать, чтобы не потерять ее позиции в ПС, посещаемость, ссылочный вес? Конечно же поставить редирект с site.ru/catalog/ip-camery на site.ru/catalog/videonabludenie/ip-camery.
Перенаправление с устаревших страниц
Если определенная модель товара больше не выпускается, можно перенаправлять посетителей с ее адреса на страницу аналогичного товара, даже не удаляя первую.
Например, был некий популярный товар X. По каким-то причинам производитель снимает его с производства, и выпускает товар Y — с небольшими доработками, немного другим дизайном, но все равно это почти полный аналог X. Здесь два варианта решения:
- Написать на странице товара X, что он снят с производства, но имеется аналог — и дать ссылку. Неплохо, но есть риск, что покупатель не увидит ссылку, не захочет по ней переходить и т. д.
- Поставить редирект со страницы товара X на страницу товара Y и где-то на первом экране заметным образом указать, что это — улучшенная версия X. Рискованно только в том случае, если дизайн товара поменяли кардинально. Посетитель увидит не то фото, которое ожидал, может решить, что попал не туда, и сразу уйдет со страницы.
Классификация редиректов: отличия и применение
Все редиректы можно классифицировать по двум признакам:
- По типу переадресации. Каждому редиректу присваивается определенный тип — 301, 302, 307 и т. д. Он одновременно означает и код протокола HTTP, который будет выдаваться в ответ на запрос адреса страницы-донора, и статус этой страницы для поисковых систем.
- По способу реализации редиректа. Переадресацию можно настроить с помощью панели управления сайтом, директив файла .htaccess, PHP-скриптов, JavaScript и так далее.
Разберем отличия и применение каждого подвида.
Типы редиректов
300 «Множественный выбор» (Multiple Choices)
Используется редко. Применимо в случае, если запрошенной страницы/ контента не существует, но есть несколько похожих. Браузеру или пользователю на выбор предоставляется несколько ссылок, и он может перейти на любую.
301 «Перемещена навсегда» (Moved Permanently)
Используется чаще всего. 301 редирект означает, что страница со старым адресом уже не существует и вместо нее всегда нужно показывать другую страницу. ПС удалит из индекса страницу-донор и передаст ее ссылочный вес на страницу-акцептор.
302 «Перемещена временно» (Moved Temporarily)
Используется иногда. Подходит для случаев, когда на какой-то странице или разделе сайта ведутся технические работы. Можно на это время перенаправлять пользователей на копию старой версии страницы. Для поисковой системы это сигнал, что удалять страницу-донор из индекса не нужно, она еще «вернется», и не нужно индексировать страницу-акцептор. Впрочем, если 302 редирект будет стоять долго, поисковый бот вполне может расценить, что это на самом деле постоянное перемещение, и проведет соответствующие изменения в индексе.
303 «Смотри другое» (See Other)
Используется редко. В отличие от 301 или 302 редиректа этот код ответа не говорит, что «страница перемещена». Он говорит: «то, что ты хочешь, есть на другой странице, посмотри ее». На практике в основном, встречаются два варианта его использования:
- Для временной переадресации со страницы товара, которого нет в наличии, на страницу аналогичного доступного товара. В отличие от ситуации со снятой с производства моделью целесообразность редиректа здесь довольно спорна. Возможно, посетитель хочет именно этот товар и был бы согласен подождать, пока он появится на складе. Корректнее и уважительнее по отношению к нему будет указать на странице, что товара нет в наличии, примерные сроки поставки и ссылку на аналог.
- При перезагрузке на страницах с формами заказа или онлайн-оплат. Благодаря тому, что эта переадресация поддерживает только метод GET, после перезагрузки не будет создан еще один заказ, или проведена еще одна оплата.
304 «Не модифицировано» (Not Modified)
Используется редко и поддерживается не всеми браузерами. Применяется в случаях, когда на странице есть заголовки If-Modified-Since и Last-Modified. Если со времени последнего посещения на странице ничего не менялось, сервер советует браузеру, чтобы тот брал страницу из кеша. А для поисковых ботов это сигнал, что можно не переобходить страницу. В результате экономится краулинговый бюджет.
305 «Используй прокси» (Use Proxy)
Применяется очень редко. В ответ на запрос браузера сервер выдает адрес прокси-сервера. Подключиться к запрашиваемому ресурсу можно только через него. Используется для обеспечения анонимности, сжатия данных при передаче.
306 — зарезервировано
Этот вид применялся раньше, но был отменен за ненадобностью. Сейчас он в статусе «зарезервирован» и не используется. Если в будущем появится необходимость в отдельном коде переадресации, вполне можно использовать 306.
307 «Временная переадресация» (Temporary Redirect)
Аналогичен 302-му, но с небольшими отличиями:
- 307 редирект более новый и точный. Создан для HTTP 1.1.;
- более корректно, чем 302 редирект, обрабатывает переадресацию запросов с методом POST;
- поддерживается не всеми браузерами, поэтому в большинстве случае лучше использовать переадресацию 302 типа.
308 «Перемещено навсегда» (Permanent Redirect)
Аналог 301-го редиректа. Отличается тем, что сохраняет POST-метод обработки запроса, не меняя его на GET. Редиректы 301 и 308 обрабатываются Google-ботом одинаково.
Способы реализации редиректов
Все реализации редиректов можно разделить на 2 группы:
- Серверные. Переадресации с помощью правил .htaccess, панели управления хостингом, PHP-скриптов — это примеры серверных реализаций. Такие редиректы происходят очень быстро, практически моментально, так как выполняются еще на этапе обработки запроса сервером.
- Браузерные. JavaScript, HTML, Meta-refresh — это браузерные редиректы. Они гораздо медленнее серверных, так как срабатывают уже после загрузки страницы или ее части в браузере.
Стандартные переадресации — с HTTP на HTTPS, со старого адреса на новый и т. д. —чаще всего реализуются с помощью серверных редиректов. Они надежные, быстрые и незаметные. Браузерные редиректы в этих случаях использовать крайне не рекомендуется: помимо медленного срабатывания, они могут не поддерживаться браузерами (тот же JavaScript может быть отключен).
Разберем подробнее.
Настройки редиректа с помощью панели управления хостингом
Большинство популярных панелей управления позволяют добавить в настройках правила типовых редиректов: с адреса, начинающегося на WWW на адрес без WWW, с HTTP на HTTPS и подобные. Что-то более точное в панели можно настроить, но уже через .htaccess — просто открывать и редактировать его вы можете и из панели управления хостингом.
Редирект через .htaccess
.htaccess — это специальный конфигурационный файл, который расположен в корневой папке сайта. Настройка редиректа с помощью прописанных в нем правил встречается чаще всего. Это переадресация серверного типа, она работает очень быстро и практически незаметна для пользователя.
Важный момент: файл .htaccess существует только у сайтов под управлением веб-сервера Apache, но их — большинство.
Чтобы проверить, под Apache ваш сайт или нет, можно воспользоваться инструментом от Netcraft. Смотрите в разделе Hosting History, в колонке Web Server.
Kokoc.com — под управлением Apache
Редирект на серверах Ngnix
Если ваш сайт работает не под Apache, а под Ngnix, здесь все настраивается совершенно по-другому. Есть основной файл конфигурации для всех доменов на сервере — ngnix.conf, а есть отдельные файлы для виртуальных хостов, т. е. отдельных доменов.
Для редактирования правил используется терминал. Синтаксис переадресаций для Ngnix отличается от синтаксиса в .htaccess. Но есть специальные сервисы, например, Winginx, которые помогают преобразовать правила из .htaccess в правила конфигурации Ngnix.
Плагины CMS
Для того чтобы администратору сайта не приходилось вникать в особенности программирования на PHP или синтаксис директив в .htaccess, разработчики CMS и энтузиасты создали множество специальных плагинов:
- OpenCart: Менеджер 301 редиректов, Менеджер редиректов для OpenCart 3.0.
- Битрикс: Редиректы для SEO, Простой редирект страниц.
- Joomla: Domainredirect.
Чтобы настроить в них редирект, вам потребуется только указать адреса страниц-доноров и акцепторов, или маску для их определения, а также основные параметры редиректа: постоянный, временный и т. п. Многие плагины имеют дополнительные преимущества: например, отслеживают изменение URL страницы-акцептора и соответственно меняют правило переадресации.
Особенно широкий выбор дополнений, конечно, в WordPress. Есть узкоспециализированные плагины, например, только для переадресаций на HTTPS (Easy HTTPS Redirection).
Простой плагин только для одной функции
Есть многофункциональные: популярный плагин Redirection позволяет настраивать практически любые варианты редиректов.
Свыше 2 миллионов установок
А в арсенале Rank Math SEO не только настройка перенаправлений, но и большое количество других инструментов для оптимизации сайта.
В названии не просто так написано «лучший» — это действительно мегаполезное многофункциональное дополнение с хорошими отзывами
PHP-редирект
Переадресация этого типа также относится к серверным, хотя и работает чуть медленнее той, что сделана через .htaccess. Правила прописываются обычно в индексном файле сайта (index.php).
Редирект через PHP оптимален в тех случаях, когда у вас много правил для отдельных страниц или групп страниц. Файл .htaccess может сильно нагружать сервер, из-за множества директив.
JavaScript-редирект
Это уже переадресация браузерного типа. Редирект произойдет только когда страница-донор будет загружена в браузере. JavaScript-редирект оптимально подходит для нескольких ситуаций:
- Переадресация нужна с задержкой. Вы хотите, чтобы пользователь ознакомился с содержанием страницы-донора, прочел надпись «Сейчас мы автоматически перенаправим вас на …» и только после этого произошел редирект.
Переадресация с задержкой
Типовой случай: вы переехали на другой домен и при этом сменили дизайн. Если просто перенаправлять пользователя со старого на новый сайт без объяснений, он может не понять, что происходит, решить, что столкнулся с действием вируса и закрыть страницу. А вот если написать на старом домене: «Мы переехали! Сейчас вы будете перенаправлены на наш новый сайт» — поведенческие показатели будут лучше.
- Переадресация нужна после определенного действия пользователя на странице, например, нажатия на ссылку или кнопку. Пример использования — запрос подтверждения у пользователя при переходе по внешней ссылке.
Подтверждение перехода по ссылке на сайте text.ru
- Нужна вторая переадресация после 301 редиректа. После оформления заказа вы направили посетителя на страницу благодарности. А позже, после того как пользователь с ней ознакомится, хотите перенаправить его на главную страницу, в личный кабинет, или на страницу акций. Второй подряд 301 редирект может неблагоприятно сказаться на SEO-показателях. А вот JavaScript здесь будет уместен, тем более, что в нем легко выставить тайминг.
Однако нужно учитывать, что у многих посетителей в настройках безопасности браузеров JavaScript отключен. В этом случае переадресация не произойдет.
HTML-редирект или meta-refresh
Браузерный тип переадресации. Представляет собой метатег, в котором обычно указывается время задержки и страница, на которую перенаправляется пользователь.
Пример кода тега meta refresh с задержкой перенаправления 2 секунды
У meta-refresh плохая репутация среди поисковых систем, так как этот метод довольно часто использовался для перенаправления на дорвеи. Кроме того, у meta-refresh есть и другие недостатки:
- поддерживается не всеми браузерами;
- приводит к ошибкам сканирования. Поисковый робот не сканирует страницу, на которой расположен метатег refresh, а сразу переходит к той, на которую ведет переадресация;
- может определяться Google и «Яндексом» как спам, с соответствующими санкциями;
- Google-бот может игнорировать страницы с этим метатегом и не индексировать их.
W3C (World Wide Web Consortium) не рекомендует использовать этот атрибут.
Однако в некоторых случаях использование такого редиректа может быть целесообразным, например, для:
- перенаправления посетителя после оформления заказа на страницу благодарности;
- «подстраховки» переадресаций, реализованных на JavaScript — если браузер посетителя не поддерживает скрипты;
- перенаправления посетителя на страницу со ссылками для загрузки корректных браузеров — если в его браузере ваш сайт будет отображаться и работать с ошибками.
Rel=«canonical»: редирект для поисковых систем
Строго говоря, это не переадресация, а атрибут для поисковых систем. Но так как для поискового робота она работает почти как редирект, мы решили упомянуть и ее.
Тег rel=«canonical» сообщает краулеру, что страница, на которой он находится, не важна, не нужно ее индексировать и показывать в поиске. Зато есть аналогичная каноническая, оригинальная страница (в теге указывается ссылка) и нужно проиндексировать ее.
Как работает rel=«canonical». Источник: https://ahrefs.com
Атрибут rel=«canonical» используется для исправления проблемы с дублированным контентом, как и 301 редирект. В каких случаях какой метод лучше использовать — обсудим далее.
В каких случаях применять 301 редирект, а в каких — rel=«canonical»
Ситуация | 301 редирект | rel=«canonical» |
страница удалена или уже неактуальна | + | — |
смена домена | + | — |
страница навсегда перемещена | + | — |
дублированный контент с точки зрения поисковых систем, но не пользователя (одинаковые описания товаров для разных цветов, размеров и т. п.) | — | + |
дублированный контент с точки зрения пользователя (статьи на одну и ту же тему) | + | — |
по сути одна и та же страница, но с разными url (сортировки товара в каталогах, страницы пагинации) | — | + |
у вас есть сайты с похожим контентом. в индексе нужно оставить только один, но для пользователей вы хотите сохранить доступными все. это поддерживается только google, у яндекса канонический адрес не учитывается, если в его качестве указан url в другом домене или поддомене. | — | + |
Примеры применения 301 редиректа и rel=«canonical»
Основное отличие ситуаций, в которых лучше использовать тег rel=«canonical», а не 301-й редирект, — вы хотите оставить страницу-донор доступной для пользователя.
Основное отличие ситуаций, в которых лучше использовать тег rel=«canonical», а не 301-й редирект, — вы хотите оставить страницу-донор доступной для пользователя.
Также атрибут rel=«canonical» можно применять в том случае, когда 301 переадресацию по каким-то причинам сделать очень сложно или невозможно.
Какой тип редиректа выбрать
Чаще всего правильным решением будет поставить 301 редирект. С точки зрения SEO в большинстве случаев это самая правильная переадресация:
- Вес и авторитет страницы-донора передается на страницу-акцептор.
- Сохраняется значение ссылок, что когда-то были проставлены на удаляемую из индекса страницу.
- Сохраняются позиции в поисковой выдаче.
- Не теряется трафик из органического поиска, переходы по закладкам в браузерах, ссылкам на сторонних ресурсах, из социальных сетей и т. п.
Оптимальная реализация редиректа — через файл .htaccess:
- перенаправление моментальное;
- информации по этому методу в сети много, можно настроить переадресацию своими силами;
- если не захотите сами, привлечь программиста для настройки также будет несложно, выбор специалистов с таким опытом большой.
Дальше мы будем говорить именно о настройке 301 редиректа через .htaccess как о самом оптимальном и распространенном методе.
Настройка редиректа в файле .htaccess
Где найти файл .htaccess и как его редактировать
Конфигурационный файл обычно расположен в корневой папке сайта. Его можно найти двумя способами:
- через встроенный файловый менеджер на панели управления хостингом.
- через панель управления вашей CMS. В некоторых движках есть возможность открывать и редактировать файлы сайта прямо из админки. Например, в Битрикс.
при помощи FTP-клиента. Это самый распространенный способ.
Для работы с FTP чаще используется Filezilla — простой и бесплатный FTP-клиент. Если вы и дальше планируете вносить изменения на сайт самостоятельно, установите эту программу, она еще не раз пригодится
Интерфейс Filezilla и файл .htaccess
Файл можно править прямо на сервере: в Filezilla нажмите на него правой кнопкой мыши и выберите «Просмотр/Правка». Но для многих новичков удобнее скачать файл на компьютер.
Открыть и редактировать .htaccess можно с помощью простого текстового редактора — стандартного «Блокнота» в Windows. Но лучше использовать специализированные программы — например, бесплатный Notepad++.
Файл .htaccess может находиться не только в корневой папке, но и во вложенных. Иерархия простая: правила, прописанные в корневом файле, распространяются на весь сайт, а прописанные во вложенном — только на каталог. При этом правила в .htaccess каталога приоритетнее правил в «главном» файле.
Если вы не можете найти .htaccess, варианта три:
- Ваш сайт не под Apache. Как это проверить, мы писали выше;
- Файл называется по-другому. Очень редко встречается, но возможно. Актуальное название можно уточнить у хостинг-провайдера: это может быть, например, .config, .htaccess.http, access.conf.
- Файл еще не создан. Это самый распространенный случай. Нужно создать файл .htaccess и позже вписать в него директивы переадресаций.
Сделать новый файл .htaccess просто:
- Создайте пустой текстовый файл с расширением .txt.
- Переименуйте его, убрав имя и добавив расширение .htaccess. Файл готов.
- Если вы работаете на macOS, файл без имени не будет виден. Тогда присвойте любое имя, а переименуете уже после загрузки на сервер.
Сделайте резервную копию файла
Перед началом редактирования обязательно сделайте резервную копию файла .htaccess. С ее помощью проще всего будет отменить все изменения, если что-то пойдет не так.
Котик плохого не посоветует
Чтобы создать резервную копию, файл можно скачать на компьютер и запомнить, где вы его положили. Или сделать копию прямо на сервере и переименовать ее, например в .htaccess-backup.
Внедряйте правила по одному и проверяйте после каждого изменения
Если вам нужно настроить несколько редиректов и для каждого будет отдельное правило в .htaccess — запускайте их по одному. Прописали правило, проверили — все ли в порядке, и только потом запускаете следующее. В противном случае, если возникнет ошибка, будет сложно определить, какая именно директива ее вызывает.
Для работы с командами в .htaccess их надо разъяснить. Редиректы в .htaccess чаще всего прописываются с использованием модуля mod_rewrite. В этом случае в примерах кода вы увидите команды RewriteEngine On, RewriteCond, RewriteRule (см. ниже).
Также редирект можно настроить с помощью директив Redirect либо RedirectMatch — команд из модуля mod_alias. Это стоит знать, чтобы не «смешивать» директивы и условия из разных модулей.
Правила из mod_alias используются для простых перенаправлений: к примеру, один URL переадресуется на другой. Модуль mod_rewrite позволяет делать более сложные вещи, создавать сложные маски и условия для URL и переадресаций.
Комментарии
Строки в .htaccess, которые начинаются со знака решетки (#), не считываются и не выполняются сервером. Поэтому в таких можно оставлять комментарии к правилам — что здесь и для чего вы делали.
Также с помощью этого знака можно отключать правила, которые пока не нужны или некорректны. Просто поставьте в начале каждой строки правила знак # — и оно перестанет работать.
Флаги
В конце директивы RewriteRule указываются флаги. Чаще всего это два флага — [L,R=301]:
- L означает команду серверу прекратить преобразования после этой строки.
- R=301 — обозначение редиректа и его тип.
Что должно быть в начале файла
Перед правилами по переадресации нужно указать три директивы:
- RewriteEngine On. Включает механизм преобразований модуля mod_rewrite.
- Options +FollowSymLinks. Часто требуется для корректной работы модуля.
- RewriteBase. Это базовая часть URL, которая будет дописана в начале всех адресов, получившихся после преобразований по директивам .htaccess. Чаще всего в RewriteBase указывается только слеш (/). В этом случае подразумевается, что все URL начинаются от корня сайта.
Лучше всего указать эти директивы в начале файла .htaccess, тогда перед правилами их уже не нужно повторять.
Кириллические адреса
В .htaccess нельзя использовать кириллические имена сайтов. Необходимо преобразовать их в формат punycode. Можно воспользоваться любым whois-сервисом — в нем будет указан адрес сайта в этом формате.
Название кириллического домена в формате punycode будет выглядеть примерно так
Добавьте блок IfModule
Если на вашем сервере не установлен модуль для редиректа, например mod_rewrite, то директивы для него в .htaccess могут вызывать ошибки. Сайт будет работать некорректно.
Окружите фрагмент кода с правилами для mod_rewrite условием IfModule — это поможет избежать проблем.
Например, вы хотите добавить вот такую переадресацию:
RewriteCond %{HTTP_HOST} ^www.domain.ru$ [NC]
RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]
Чтобы избежать ошибок, сделайте так:
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} ^www.domain.ru$ [NC]
RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]
</IfModule >
Сервер, увидев условие (If), проверит, установлен ли модуль mod_rewrite. Если нет — директивы внутри условия выполняться не будут.
Порядок правил имеет значение
Директивы в .htaccess выполняются в том же порядке, в котором расположены. Если два правила пересекаются или противоречат — сработает то, что выше. Поэтому располагайте директивы от частных к общим, от страниц с высоким уровнем вложенности — к страницам с низким.
Например, вы хотите перенаправлять URL вида site.ru/articles/…. на URL вида site.ru/blog/… Но при этом у вас есть страница site.ru/articles/faq, которую вам нужно перенаправить на URL site.ru/faq.
Если вы расположите вторую (частную) переадресацию в файле .htaccess ниже первой (более общей), то при получении запроса на страницу site.ru/articles/faq сервер дойдет до правила «перенаправляем все site.ru/articles/… на site.ru/blog/…» и выполнит его. Клиент попадет на страницу site.ru/blog/faq. Правильная переадресация не будет выполнена, так как она расположена ниже.
Почему нужно пробовать разные варианты
Допустим, вы нашли под свою задачу подходящий фрагмент кода с правилом, добавили его в .htaccess, но переадресация не заработала или вообще все сломалось. Ничего страшного, это нормально: сервер Apache, как и всякое ПО, постоянно обновляется. У вас может быть установлена более новая или более старая версия, чем та, для которой подходит этот код.
Попробуйте вариант с другим синтаксисом. Проще говоря, вам нужен код, в котором команды и условия написаны немного по-другому.
Совсем продвинутый вариант — узнать, какая у вас установлена версия Apache, найти по ней официальную справку и посмотреть, как должны выглядеть директивы. Другой вопрос, стоит ли тратить на это ваше время.
Используйте генераторы .htaccess
Чтобы не искать код директивы для вашей задачи, правило для .htaccess можно сгенерировать в специальных сервисах. В интернете их хватает, и они работают примерно одинаково:
- отмечаете, какой редирект вам нужен: обычно предлагается на выбор несколько типовых. Также можно указать страницы-доноры и акцепторы для 301 редиректа;
- указываете дополнительные параметры редиректа, например, включение опции FollowSymLinks;
- получаете готовый код и вставляете его в конфигурационный файл.
Некоторые генераторы, например, IKSWEB, предоставляют несколько вариантов кода — для разных версий Apache. также вы можете использовать:
- Htaccess.ru
- Aleydasolis.com
- Htaccessredirect.net
Возможности Htaccess.ru
Как настроить 301 редирект в .htaccess
Далее приведем один или несколько вариантов кода для правил. В части из них будут указаны условные адреса сайтов и страниц — вам нужно будет заменить их на ваши.
Редирект сайта с WWW — на без WWW
Первый вариант:
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Второй вариант:
RewriteCond %{HTTP_HOST} ^www..your-site.com$ [NC]
RewriteRule ^(.*)$ http://your-site.com/$1 [R=301,L]
Редирект сайта без WWW на URL с WWW:
Первый вариант:
RewriteCond %{HTTP_HOST} !^www..* [NC]
RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301]
Второй вариант:
RewriteCond %{HTTP_HOST} ^your-site.com [NC]
RewriteRule ^(.*)$ http://www.your-site.com/$1 [L,R=301,NC]
Редирект на HTTPS с HTTP
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Второй вариант:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Третий вариант:
RewriteCond %{HTTPS} =on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Четвертый вариант:
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Редирект с страницы со слешем на URL без слеша, и наоборот
На URL без слеша
Первый вариант:
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} ![^/]$
RewriteRule ^(.*)/$ /$1 [R=301,L]
Второй вариант:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
На URL со слешем
Первый вариант:
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*[^/])$ /$1/ [R=301,L]
Второй вариант:
RewriteCond %{REQUEST_URI} /+[^.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
Заменяем два последовательных редиректа на один
Цепочки следующих друг за другом переадресаций нежелательны. Дальше в статье мы разберем, почему. Такие перенаправления лучше объединять в одно правило.
Пример переадресации с URL с WWW сразу на адрес с протоколом HTTPS и без префикса WWW, минуя промежуточный редирект (с HTTP на HTTPS):
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Или второй вариант:
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteCond %{HTTP:PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]
301 редирект одной страницы
Проще всего воспользоваться директивой Redirect. Попробуйте один из вариантов:
Redirect 301 /old-page /new-page
или
Redirect 301 /old-page/ https://your-site.com/new-page
Можно перенаправить и с помощью модуля mod_rewrite:
RewriteCond %{REQUEST_URI} ^/old-page/$
RewriteRule ^.*$ http://your-site.com/new-page/? [R=301,L]
Переадресация папки
Первый вариант:
RewriteRule ^(.*)/old-catalog/(.*)$ $1/new-catalog/$2 [R=301,L]
Второй вариант:
RewriteRule ^old-catalog /new-catalog/$1 [R=301,L]
Редирект с одного домена на другой
Первый вариант:
RewriteCond %{HTTP_HOST} ^old-your-site.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.old-your-site.com [NC]
RewriteRule ^(.*)$ https://new-your-site.com/$1 [L,R=301,NC]
Второй вариант:
RewriteCond %{HTTP_HOST} ^www.old-your-site.com$ [NC]
RewriteRule ^(.*)$ http://new-your-site.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^old-your-site.com$ [NC]
RewriteRule ^(.*)$ http://new-your-site.com/$1 [L,R=301]
Как проверить, правильно ли сделана переадресация
- Если для проверки вы открываете сайт в браузере, предварительно очищайте кеш. Иначе можно увидеть увидеть кешированную страницу, а не реальное положение вещей.
- Еще лучше проверять статусы страниц с помощью специальных сервисов:
- Чекер от Websiteplanet.com
- Проверка редиректов Prcy-info.ru
- Redirect-checker.org
- После настройки переадресации получили ошибку 500? Первое, что нужно сделать — проверить ваш код на опечатки, например, в адресе страницы, командах. Это самая распространенная причина.
- Если сайт большой и вы сделали массовую переадресацию десятков, сотен страниц — для проверки можно использовать Screaming Frog SEO Spider. Он покажет статус ответа сервера по каждой странице и еще массу полезной информации.
Как работает кеш в браузере
Можно воспользоваться сервисом проверки ошибок в .htacces . Но если вы сделали опечатку в адресе страницы переадресации, сторонний сервис этого не обнаружит, нужно смотреть самому.
Типичные ошибки переадресаций
Редирект вместо каноникализации
Если вы сделаете 301 редирект там, где нужен тег rel=canonical, то можете ухудшить юзабилити сайта. Это, в свою очередь, скажется на позициях в ПС и продажах. О том, когда нужно выбирать канонизацию, а когда — редирект, мы подробно написали выше.
Редирект robots.txt
Иногда при смене домена сайта настраивают массовую переадресацию всех страниц и файлов, в том числе файла robots.txt. Но, для того, чтобы в поисковых системах склейка доменов прошла быстрее, robots.txt на старом домене нужно оставить доступным для сканирования, не переадресовывать.
Страница-акцептор нерелевантна донору
Основное преимущество 301 редиректа для SEO — передача веса и авторитета старой страницы на новую. Однако если поставить редирект на страницу, нерелевантную донору, — с другой информацией, совершенно другим товаром — то поисковые системы сочтут это неправильным. Вес будет передаваться не полностью. В некоторых случаях поисковая система вообще не станет считать это редиректом.
Например, Google в Search Console может указать по таким переадресациям ложную 404 ошибку. Для него ситуация выглядит так: страница не существует, правильного редиректа на 404 не сделано, а 301 редирект «не считается», так как ведет на нерелевантную страницу.
Цепочки переадресаций
Нередко возникают ситуации, когда страница редиректится несколько раз.
Например, вы удалили страницу A и поставили 301 переадресацию на страницу B. Позже удалили B и поставили редирект на страницу C. В итоге пользователь, который хочет попасть на страницу A, сначала перенаправляется на страницу B, а потом — на C.
Робот не понимает, зачем вы так делаете
В идеале редирект на странице A нужно исправить, поставив его сразу на страницу C.
А здесь робот доволен — редирект сделан правильно
Чем плохи цепочки редиректов:
- они замедляют открытие конечной страницы, ухудшают поведенческие показатели сайта и Core Web Vitals;
- поисковые роботы могут обработать не более 5-ти редиректов;
- повышается риск возникновения циклических переадресаций, а они ведут к недоступности страницы.
Обнаружить множественные переадресации можно с помощью специальных сервисов:
- Redirect Detective
- Инструмент от Otzyvmarketing.ru
- Расширение для Google Chrome — Redirect Path, и т. п.
Цепочки редиректов можно увидеть также в отчете Screaming Frog SEO Spider — он показывает число перенаправлений.
Циклические редиректы
Условный пример: вы настроили редирект со страницы A на страницу B, оттуда на страницу C. Но на странице C уже есть редирект на страницу A. Получается замкнутый круг переадресаций. Все URL в цепочке становятся недоступными для пользователей и поисковых систем.
Так и сломаться можно
На практике циклические переадресации часто возникают при путанице в правилах массового редиректа: страниц со слешем и без, с WWW и без и тому подобных.
Обнаружить циклические редиректы можно при помощи тех же сервисов, которые определяют цепочки переадресаций.
Страницы с кодом 301 остались в карте сайта
URL, с которых проставлен 301 редирект, нужно удалять из sitemap.xml. В противном случае поисковый робот будет тратить краулинговый бюджет на попытки сканирования этих страниц.
Редирект ведет на 404 страницу
Актуальность переадресаций на сайте необходимо регулярно проверять. Особенно после кардинальных реструктуризаций, удаления неактуальных страниц и т. д. Часто бывает, что поставили редирект, а через какое-то время URL-акцептор удалили, или же он стал недоступен из-за технических ошибок. В итоге переадресация ведет в никуда, на битую ссылку.
А сколько на вашем сайте таких дорог?
«Я все попробовал, но ничего не работает»
К сожалению, новичкам не всегда удается разобраться в настройке редиректов в .htaccess. На работоспособность изменений могут влиять:
- другие, ранее настроенные переадресации. В том числе, не в .htaccess, а в PHP;
- версия Apache-сервера;
- директивы, которые прописал хостер в главном конфигурационном файле Apache и т. д.
В этом случае лучший выход — поручить настроить переадресации программисту или веб-мастеру. Но рекомендуем выбирать проверенного, опытного специалиста. И в любом случае перед внесением изменений сделать резервную копию файлов, которые будут редактироваться.
В техническом задании на настройку редиректов опишите все нюансы задачи, например:
- Нужна постоянная переадресация или временная?
- Только одной страницы или нескольких? Есть ли общие фрагменты в URL этих страниц?
- Нужно ли предусмотреть исключения — страницы, которые не должны подчиняться общему правилу?
Если знакомых проверенных специалистов нет, а давать доступ к файлам сайта незнакомым фрилансерам вы боитесь (не без оснований), обратитесь в агентство с хорошей репутацией. К примеру, можно заказать техническую поддержку сайта. Если поручить все специфические вопросы специалистам, синтаксис .htaccess можно будет выбросить из головы, как страшный сон, и заняться непосредственно бизнесом: продажами, рекламой.
Бонус: как с помощью 301 редиректа увеличить посещаемость сайта
До этого мы рассматривали ситуации, когда переадресация применяется как вынужденная мера для устранения ошибок: после удаления или переезда страниц, для «склеивания» появившегося дублированного контента и т. п.
Однако 301 редирект можно использовать и как полноценный инструмент оптимизации.
Способ первый: объединяем статьи
Допустим у вас в блоге есть 2 статьи на похожую тематику, или освещающие один и тот же вопрос, но с разных точек зрения. Можно объединить их: написать одну большую статью, в которой будет информация из обеих. И поставить 301 редирект со старых статей на новый URL.
Или разместить большую статью на одном из двух этих старых URL, если он подходит, а со второго поставить 301 редирект.
В итоге:
- ссылочный вес и авторитет объединяемых страниц перейдет на новую;
- поведенческие показатели вырастут — ведь объединенная статья полнее и лучше предыдущих;
- profit! — вы получаете прирост трафика и позиций в поиске.
Для объединения, конечно же, нецелесообразно брать страницы, что и так дают отличный трафик и находятся в топе. Подойдут статьи, которые:
- показываются по одним и тем же ключевым словам (каннибализация);
- существенно отстают по трафику от конкурентов;
- немного устарели и их нужно обновить.
Брать ли для объединения статьи почти с полным отсутствием трафика, обратных ссылок и нулевыми позициями — спорный вопрос. Вы можете написать прекрасную новую статью, и она начнет хорошо ранжироваться, но вряд ли на это положительно повлияют редиректы с «пустых» старых статей.
Способ второй: склейка сайтов
Иногда оптимизаторы используют слияние сайтов с той же целью — получать больше трафика и передать ссылочный вес одного ресурса на второй.
Это не значит, что вы можете взять два совершенно разных сайта и поставить 301 редирект с одного на второй. Даже если вы взяли подходящие по тематике сайты — переадресацию нельзя делать массово и бездумно.
Примерная стратегия:
- Купить сайт, похожий на ваш по тематике.
- Выбрать на нем страницы с хорошим ссылочным весом и трафиком, актуальной темой.
- Сделать страницы с таким же контентом на своем сайте. В идеале дополнить и расширить его. Если у вас уже есть релевантные страницы — использовать их.
- Поставить 301 редирект с каждого такого URL купленного сайта на ваши страницы.
- Те URL купленного сайта, у которых слабые показатели ранжирования и посещаемости, можно направить на уже существующие релевантные страницы вашего сайта. Или удалить.
- Остальные страницы можно удалить, или в крайнем случае — сделать 301 редирект на вашу главную.
Все это затевается конечно же, ради пунктов 2-4, поэтому при покупке сайта для слияния нужно тщательно проверять качество контента, качество обратных ссылок и позиции по запросам.
10 главных мыслей статьи
- В большинстве случаев оптимален 301 редирект. 302 и другие временные типы переадресаций настраивайте только если страница будет недоступна временно.
- Лучше всего настраивать переадресации через файл .htaccess.
- Если вы хотите, чтобы страница осталась доступна пользователям, но не индексировалась поисковой системой — используйте тег rel=«canonical», а не редирект.
- Перед изменениями обязательно сделайте резервную копию .htaccess.
- Располагайте директивы в .htaccess от частных к общим, используйте блок Ifmodule.
- Внедряйте и проверяйте редиректы по одному. Проверяйте, очистив кэш браузера или специальными сервисами.
- Избегайте цепочек переадресаций и циклических редиректов.
- Страница-донор и страница-акцептор долдны быть релевантны другу другу, иначе поисковые системы будут считать такой редирект ошибкой.
- Есть много готовых правил редиректов для разных случаев, часть из которых мы приводим в статье.
- 301 редирект можно использовать для склейки не очень эффективных страниц и сайтов и повышения роста трафика на страницу и позиций.
Настройка 301 редиректа в файле .htaccess, что такое 301 Permanent Redirect и код состояния HTTP 301, и другое.
Команда NewPoint продолжает просвещать своих дорогих клиентов и подписчиков, и сегодня мы хотели бы поднять важную и сложную тему редиректа. Мы могли бы дать Вам готовый код, но толка от этого было бы мало. Лучше мы разложим все по полочкам, раскроем все нюансы, чтобы Вы потом смогли ориентироваться в техническом смысле предложенного кода и выбирать подходящий вариант, исходя из условий.
Итак, если Вам надоело оставаться в неведении, приготовьтесь узнавать много нового.
Что такое 301 Permanent Redirect и код состояния HTTP 301?
Редирект — это перенаправление с одной страницы на другую. Переходя по ссылке на страницу с редиректом, пользователь может даже не узнать, что его отправили на другую площадку. Делается это для того, чтобы актуализировать ссылку: подменить ресурс более актуальным. Например, заменить http-страницу на ее https-версию.
Редирект может происходить как на стороне сервера, так и через браузер. С сервером работают крайне редко, так как данный метод может замедлять загрузку страниц. А вот браузерный редирект считается более предпочтительным вариантом.
Permanent Redirect 301 или код состояния 301 — одна из популярных разновидностей редиректа. Она позволяет настроить сервер так, чтобы в ответ на запрос браузера он выдавал сообщение о том, что сайт «переехал», причём на постоянной основе. Браузер понимает, что страница больше не доступна по текущему адресу и совершает переход по новому. При этом старый URL становится недействительным, а его вес перемещается на новый адрес.
Разница между 301 и 302 редиректом
Класс редиректов 3хх достаточно широкий, но наиболее известны из них 301 и 302. Их очень легко спутать, однако для поисковых роботов эти коды имеют принципиальную разницу.
301 Moved Permanently — постоянный редирект. Эта комбинация сигнализирует роботу о том, что старый ресурс окончательно перемещен на новую площадку, а значит старый домен можно удалить из базы. Используется данный редирект для «переезда» на новый домен, для подключения новой CMS и для склейки идентичных страниц.
302 Temporary Redirect — временный редирект. Он говорит о временном перемещении сайта или отдельных его страниц. Как правило, используется, когда на основной площадке проводятся технические работы.
Последствия для поисковой выдачи также неоднозначные:
- При 301 редиректе в поисковой выдаче отображается новый URL, старый игнорируется.
Однако на эту смену требуется время, Google рекомендует сохранять статус страницы в течение года, чтобы не «сбить» выдачу. - При 302 редиректе поисковая система хранит старый URL в течение полугода, в это время выдавая новую ссылку. По прошествии полугода редирект получает статус постоянного.
Поисковые системы с подозрением относятся к 302 коду, так как нередко вебмастера упускают сроки, а затем пытаются вернуть настройки. Да и злоупотребление данным редиректом при черном SEO добавило негативного отношения. Поэтому, если Вам дорога репутация ресурса и его положение в выдаче, лучше не рисковать и пользоваться 301 редиректом в .htaccess.
Правила настройки Redirect, RewriteRule и RewriteCond
Существует несколько директив, с помощью которых совершается перенаправление пользователя.
Директива Redirect в htaccess
Синтаксис:
Redirect [status] /oldpage http://newpage
Стандартное перенаправление, которое используется чаще всего. В скобках вместо status необходимо указать код редиректа: 301 или 302. Страница «oldpage» должна быть прописана
в формате без указания полного адреса сайта, но с указанием полного относительного адреса URL начиная со слэша «/», то есть нужно указать именно корень сайта.
Адрес «newpage» прописывается полностью, то есть с названием домена и протокола http
или https.
Пример:
Redirect 301 /oldpage.php https://htaccess.ru/newpage.php
Пример:
Redirect 301 /oldpage.php https://htaccess.ru/newpage.php
Директива RewriteRule
Синтаксис:
RewriteRule Шаблон Подстановка [коды]
Директива RewriteRule диктует правила перехода на новую платформу. Если проводится внешний редирект, URL меняется в строке браузера — «[R=301,L]». При внутреннем редиректе URL не меняется — «[R=301]» или «[L]».
Директива RewriteCond
Синтаксис:
RewriteCond Сравниваемая_Строка Условие
Директива RewriteCond задает условия, при которых будут выполняться правила RewriteRule. Такими условиями могут стать браузер, IP-адрес, заголовок и т.д.
Для чего используется перенаправление?
Редирект активно используется вебмастерами, так как полезен в различных обстоятельствах:
- При переезде сайта на новый домен. Чтобы не потерять трафик, направляющийся на старую страницу, создается перенаправление.
- Установка SSL-сертификата. Позволяет перенаправить пользователь со страниц с http на адрес с префиксом.
- Смена URL страницы. Это событие может быть связано со сменой CMS или с SEO-оптимизацией.
- Перенос разделов на субдомены.
- Для концентрации трафика с разных доменных зон в одной. Вебмастер покупает домены example.com, example.ru, example.net, example.org и example.biz и на четырех последних сайтах настраивает редирект на example.com.
- Для показа мобильным пользователям специальной версии.
Способы настроить редирект 301
В зависимости от площадок, с которой перенаправляется, и на которую направляется поток трафика, используется различный синтаксис редиректа.
С одной страницы на другую
Данный редирект раз и навсегда изменит URL страницы и позволит избавиться от дублей
и устаревших материалов.
Синтаксис:
Redirect 301 /oldpage/ http://site.ru/newpage/
Более подробный синтаксис того же редиректа:
RewriteCond %{REQUEST_URI} ^/oldpage/$
RewriteRule ^.*$
http://site.ru/newpage/? [R=30
После сохранения такого кода будет осуществляться постоянная переадресация со старой страницы на новую, раздел старой страницы будет удален из поиска, а новой странице передастся весь ее вес.
Склейка зеркал сайта (www / без www)
Подобная работа проводится в том случае, когда под один сайт приобретается сразу несколько доменов, различающихся лишь наличием или отсутствием тройного W.
301 редирект с ресурса с www на платформу без www, при котором главным зеркалом считается домен без www, осуществляется при помощи следующей комбинации:
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
Обратный редирект, при котором главным зеркалом считается домен с www, можно реализовать через код:
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=30
Таким образом обе страницы связываются, и трафик не разделяется.
С http на https
Чтобы в поиск не попадали дубли, а пользователи не заходили на страницы с разными протоколами, прописывается данный редирект. Его итогом будет добавление ко всем URL протокола https. Провести подобную работу можно на разных уровнях.
Для всего сайта
Чтобы полностью перенаправить сайт, необходимо в файле .htaccess добавить следующие строки:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
При ряде обстоятельств такая комбинация может не сработать. В таком случае просто замените ее следующим кодом:
RewriteCond %{HTTPS} =on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Если же и после этого изменения остается циклическое перенаправление, введите:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Редирект — дело сложное, поэтому и третий код не панацея. Если он не сработал, введите:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} =/page.php
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
Это должно помочь и все пользователи и поисковые системы будут перенаправляться на домен
с протоколом https, но SEO-данные при этом останутся неизменными.
Постранично
Если Вам необходимо перенести весь сайт, кроме одной страницы, используйте постраничный редирект. Он прописывается следующим образом:
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} !^/page.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
После этого все страницы, кроме указанной, будут перенаправлены.
Для одной страницы
Если же, наоборот, необходимо перенаправить единственную страницу, добавьте 4 строчки кода:
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} =/page.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
С https на http
Чтобы провернуть обратный редирект и лишить всех страниц SSL-сертификата, используйте следующую комбинацию синтаксиса:
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
Это должно связать страницы доменов и дать им протокол http.
С 404 Not Found
Чтобы перенаправлять пользователей с несуществующих страниц на главную или любую другую страницу, также можно использовать редирект. Однако, поисковые системы не любят обилие связок и считают необходимым указывать ошибку 404, поэтому работать нужно с осторожностью.
Синтаксис:
ErrorDocument 404 http://www.site.com/301.html
В итоге все обращения к 404 страницам будут завершаться на главной странице сайта.
Итогом данного редиректа будет являться перенаправление всех обращений к страницам 404 на главную страницу сайта.
Со страниц со слешем на без слеша
Чтобы привести URL к единому формату и исключить все дубли в поиске, желательно провести редирект для сайтов без слэша.
Синтаксис:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
В итоге слэш просто удалится.
Со страниц без слеша на слеш
Можно провернуть и обратную операцию. Для этого пропишите:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
Результат — добавленный слэш на страницах без него.
Один (а не два последовательных!) 301 редирект на без www и с слешем на конце адреса страницы
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} ![^/]$
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]
Один (а не два последовательных!) 301 редирект на c www и со слешем на конце адреса страницы
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} ![^/]$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]
Один (а не два последовательных!) 301 редирект на c www и без слеша на конце адреса страницы
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} /$
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)/$ http://www.%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} /$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)/$ http://www.%1/$1 [L,R=301]
Один (а не два последовательных!) 301 редирект на без www и без слеша на конце адреса страницы
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} /$
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)/$ http://%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} /$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)/$ http://%1/$1 [L,R=301]
Только адреса site.ru/index.php на основное зеркало site.ru
Чтобы перенести сайт без GET-параметров, пропишите в файле:
RewriteCond %{REQUEST_URI} /index.php
RewriteCond %{QUERY_STRING} ^z
RewriteRule ^(.*)$ http://site.ru/? [R=301,L]
Всех адресов с index.php и GET параметрами на страницы только с GET параметрами
Проводится при помощи команды:
RewriteCond %{REQUEST_URI} /index.php
RewriteRule ^(.*)$ http://site.ru/ [R=301,L]
Итог: index.php в url будет вырезан.
Для index.php, index.html или index.htm
Провести массовую склейку на любой CMS, например, Joomla, можно при помощи кода:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.(php|html|htm) HTTP/
RewriteRule ^(.*)index.(php|html|htm)$ http://site.ru/$1 [R=301,L]
Url с GET параметрами на статический
Есть 2 варианта переноса сайта с динамическим-URL на статический:
1 вариант — простой адрес с GET параметром:
RewriteCond %{QUERY_STRING} ^id=229
RewriteRule ^.*$ /supermodel/? [R=301,L]
2 вариант — со страницы и GET параметром:
RewriteCond %{REQUEST_URI} /test/
RewriteCond %{QUERY_STRING} ^id=229
RewriteRule ^.*$ /supermodel/? [R=301,L]
Каждая страница одного домена на такой же адрес другого url
Подобная операция совершается при помощи кода:
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://site.ru/$1 [L,R=301]
Редирект для PHP
PHP— это сервероориентированный язык, поэтому такой вид редиректа будет проводиться
на уровне сервера, а не браузера, что обеспечивает высокую скорость работы. При этом каждой страничке, на которую будет производиться редирект, присваивается свой уникальный REFERER, а это значит, что скрыть страницу-источник не получится.
Чтобы редирект сработал, его чтение должно проводиться в первую очередь — до того, как
на экран будет выведен первый символ. Поэтому ставить пробел перед <? нельзя.
Код редиректа на примере файла index.php:
<?php
header («Location: https://stokrat.org/», TRUE, 302);
?>
или
<?php
header («Location: https://stokrat.org/», TRUE, 301);
?>
Если Вы подключаете 302 редирект, выбираете первый вариант; если 301 — второй.
Дело в том, что через PHP, как правило, настраивают именно временное перенаправление.
Редирект 301 в разных панелях управления хостингом
Мы разберем две наиболее популярные панели — Cpanel и ISPmanager.
Чтобы настроить редирект в Cpanel, перейдите в блок «Домены» => «Перенаправления». Появится окно настройки, где нужно выбрать:
- тип — постоянный 301;
- https://www — выбрать старый домен сайта;
- перенаправляет на — адрес нового домена;
- поставить галочку напротив «Перенаправлять только с www».
Сохраните настройки и перенаправление готово.
Через ISPmanager можно править файлы nginx.config или .htaccess, но вся работа уже сделана
за Вас. К примеру, для настройки редиректа https/http достаточно просто убрать галочку с соответствующего пункта в разделе «WWW-домены».
Особенности редиректа для популярных CMS
CMS-системы облегчают процесс настройки редиректа вплоть до пары кликов.
Опишем особенности взаимодействия с различными платформами.
WordPress
Чтобы перенаправить страницу, Вам нужно скачать плагины из панели управления. Зайдите
в «Плагины» -> «Добавить новый». Из доступных выберите необходимый и скачайте.
OpenCart
Чтобы совершить редирект через OpenCart достаточно зайти в «Менеджер 301 редиректов»
и выбрать необходимый вариант перенаправления.
Битрикс
В Битриксе Вам нужно обратиться к модулю «Редирект мастер», но за него придется доплатить.
В оплаченном меню стоит выбрать свой вид редиректа и активировать его.
Joomla
Найти компонент, отвечающий за редирект в Joomla, можно в меню «Компоненты» — > «Перенаправление». Здесь Вы увидите все имеющиеся редиректы и сможете создать новый, заполнить все поля и сохранить настройки. После этого редирект активируется.
Настройка кириллических доменов .РФ
Для доменов в зоне РФ действуют все те же правила, но только все кириллические символы необходимо заменить на альтернативный код на латинице. В частности, сама зона .рф преобразуется в .xn--p1ai.
Далее представлены синтаксисы для доменов в зоне РФ.
301 редирект с одного домена на другой
RewriteCond %{HTTP_HOST} ^xn-....xn--p1ai$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
Редирект на папки со слешем на конце
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.site.ru/$1/ [L,R=301]
Редирект на папку без слеша — убираем слеш на конце
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ http://www.site.ru/$1 [R=301,L]
Переадресация с домена в папку другого сайта
RewriteCond %{HTTP_HOST} ^si-te.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/si-te/ [R=301,L]
Редирект со всех страниц кроме определенной папки
Кроме папки администратора bitrix #
RewriteRule ^bitrix/ /bitrix/admin/ [L,R=301]
RewriteRule ^(.*)$ http://www.newsite.ru/new/ [L,R=301]
Переадресация всех файлов папки на конкретный файл
RewriteRule ^dir(.*)$ /new-file.php [L,R=301]
Переадресация файлов папки на другой файл с исключением
RewriteRule ^dir/no-file.html /no-file-new.html [L,R=301]
RewriteRule ^dir(.*)$ /all.php [L,R=301]
Редирект замены расширений файлов – с html на php
RedirectMatch 301 (.*).html$ http://www.new-site.ru$1.php
Редирект с index.php на корень сайта
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://www.site.ru/ [R=301,L]
Редирект всех индексных страниц на корень
RewriteRule ^(.*)index.php$ http://www.site.ru/$1 [R=301,L]
Переадресация с поддомена на основной домен
RewriteCond %{HTTP_HOST} ^test.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru%{REQUEST_URI} [R=301,NC,L,QSA]
Редирект страницы из различных директорий
RewriteRule [^abc]/unique-file.html /unique-file.html [R=301,L]
Создаем ЧПУ-копию динамических страниц
RewriteRule ^testovyi/test/?$ /studio/news/detail.php?ID=230354&PAGEN_2=11 [NC,L]
Код позволяет создать копию страницы с относительным адресом
/studio/news/detail.php?ID=230354&PAGEN_2=11 по адресу /testovyi/test/
Переадресация с https на http
RewriteCond %{HTTPS} "on"
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA]
Настройка ответа 403 для спама по REFERER
RewriteCond %{HTTP_REFERER} ref-spam-site.ru [NC,OR]
RewriteCond %{HTTP_REFERER} another-ref-spam.ru [NC]
RewriteRule .* - [F]
Обработка ошибки 404 в .htaccess
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.site.ru/dir/");
exit();
?>
Как узнать, что переадресация работает правильно
Узнать, корректен ли код 301 редиректа можно при помощи браузера. Введите в адресную строку URL страницы, с которой совершается переадресация. В идеале Вы должны увидеть ту страницу и тот URL, на которую был настроен редирект.
После того, как Вы настроили 301 редирект, его необходимо проверить на корректность работы. Для этого введите в адресной строке своего браузера URL страницы, с которой была сделана переадресация. Если Вы видите новую страницу, то есть, ту, на которую сделали редирект
— то все корректно работает.
Также можно заглянуть в Яндекс.Вебмастер, открыть раздел «Инструменты» — > «Проверка ответа сервера». В поле «Опрашиваемый URL» введите адрес старой страницы. Вы должны получить код статуса http — «301 Moved Permanently».
Что делать, если 301 редирект не работает?
Если проверка прошла неудачно и редирект не реализован проверьте ряд параметров:
Синтаксические ошибки
Любой лишний пробел, перенос строки или точка способны помешать работе команды. Копируйте код аккуратно, не добавляя комментариев, номеров строк и т.д.
Использование URL адреса с параметром
«Упрощенный» вариант редиректа в файле .htaccess вида: Redirect 301 “oldpage” “newpage”
— который может уместиться в одну строку, работает исключительно с URL без параметров.
Команда типа Redirect 301 /index.php?productID=1109 http://dh-agency.ru/for-seo/ работать не будет. Замените ее на Redirect 301 /index.php http://dh-agency.ru/category/for-seo-professionals/.
Некорректное расположение
PHP-код, отдающий заголовок, должен находиться над всеми последующими командами
и выводами.
Отключен модуль mod_rewrite
Модуль mod_rewrite должен быть подключен и активирован — без него редирект не заработает.
Заключение
В заключение, хотелось бы еще раз повторить — не стоит злоупотреблять редиректами, так как это может привести к пессимизации сайта. Откажитесь от постоянной переадресации, если:
- Вы переезжаете лишь на время — лучше используйте 302 или 3074 код;
- Вы сбегаете от банов, фильтров, штрафов и прочих проблем с доменом — при переезде
Вы захватите все проблемы с собой.
Если же причины переадресации обоснованы, смело прописывайте 301 код
— благо теперь Вы знаете, как это делается.
Общая оценка
/ 5. Всего проголосовало