Всем привет. В этой статье я расскажу вам, как сделать 301 редирект с одних страниц на другие.
И сделать это так, чтобы позиции сайта не просели, так чтобы это вообще никак негативно не отразилось на посещаемости.
Также расскажу, какие еще бывают редиректы, зачем они нужны, когда применяются.
Как видите, тема эта очень важная и интересная.
Кстати сейчас прохожу марафон по СЕО продвижению сайта. После третьего урока я решил на своём сайте изменить структуру УРЛов статей. Сейчас она выглядят так: abdullunru.ru/rubrika/statia.html, а я хочу убрать рубрику. В итоге убиваю двух зайцев:
- Ссылки станут короче
- Статьи не будут привязаны к рубрике, это иногда неудобно. Одна статья может подходить под несколько тематик
В этой статье подробно объясню вам, как это сделать. Возможно, вам это тоже пригодится.
Заинтересовал? Приступим.
Редиректы — что это и зачем нужно
301 редирект — это такое перенаправление с одних страниц на другие, при котором вес старой статьи передается новой. Все раннее накопленные поведенческие факторы, возраст, ссылочная масса не теряются, а передаются новой странице.
Область применения 301 редиректа очень обширна:
- Для определения главного зеркала сайта
- При переезде на другой домен.
- При смене структуры сайта (об этом расскажу подробнее)
- Для перехода на ЧПУ ссылки
- При изменении УРЛов важный страниц
- При объединение нескольких статей в одну большую
- Иногда хочется сделать более красивый и короткий хвост у ссылки
- И другие случаи
В чем сложность? Если изменить ссылки, то сайт продолжит работать, поисковики со временем проиндексируют новые страницы, а старые удалят. Но если это сделать, не настроив редирект со старых страниц, то новые потеряют свои позиции, так как потеряют свой вес, свой возраст, ссылочную массу, в общем всю накопленную месяцами или годами положительную карму.
Чтобы этого не произошло, нужно настроить редирект со старых версий страниц на новые.
Кстати также нужно делать и при смене домена. Тогда позиции нового домена будут такими же, как у прежнего.
Но редиректы бывают разными. Есть 301 и 302 редиректы.
Отличия 301 и 302 редиректа
При ведении сайта, как правило, приходится пользоваться только 301 редиректом. 302-ой применяется в тех случаях, когда нужной страницы временно нет, и пока нужно вместо неё показывать другую. В этом случае вес старой версии страницы не передаётся на новую. Поэтому если у вас где-то есть 302 редирект, то лучше замените на 301.
Отличия только в том, что 301-ый передает также вес, а 302 — только перенаправляет на новую ссылку.
Как настроить переадресацию с помощью 301 редиректа
Для этой цели в корне нашего сайта есть файл .htaccess.
Это очень важный файл. Если решили его редактировать, то обязательно делайте копию, чтобы можно было легко вернуть старую версию.
Если вы что-то напутаете, то сайт просто не будет работать. Придётся писать в поддержку хостинга и просить их откатить изменения. Поэтому лучше самому заранее позаботиться о копии. Тем более это очень просто. Скопируйте файл себе на компьютер. Потом редактируйте тот, что лежит на сервере. Если вдруг что-то не так, то загрузите файл с компьютера и замените. Всё снова заработает.
Меры предосторожности рассказал. Идем дальше.
Для того чтобы сделать 301 редирект в файле .htaccess нужно использовать специальную форму записи:
Redirect 301 /staraya-str.html https://site.ru/novaya-str.html
Это общий случай. Для каждой смены УРЛа нужна одна такая запись.
Есть частные случаи, когда не нужно всё по отдельности прописывать, а можно обойтись парой строк кода.
Частные случаи 301-го редиректа
с www — без www и наоборот:
RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.(.*) [NC] RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
с http — на https и наоборот:
RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
с одной категории на другую:
RedirectMatch 301 ^/category-old/(.*) /category-new/$1
при смене домена:
RewriteEngine On RewriteCond %{HTTP_HOST} old-domen.ru RewriteRule (.*) http://new-domen.ru/$1 [R=301,L]
Статья. Инструкция по склейке доменов
Если это для вас сильно сложно или страшно, то можно настроить редиректы и при помощи плагина. Есть удобный плагин simple 301 redirects.
Но лично мне не нравится этот вариант. Так как мы будем зависеть от работы этого плагина. И вообще, чем их меньше, тем лучше.
Моя инструкция, мой опыт
Как я говорил в начале, я принял решение сменить УРЛы всех статей своего блога (убрать из них категории). Чтобы не потерять позиции, нужно обязательно сделать 301 редирект со старых УРЛов на новые. Сейчас покажу, как я это сделал.
Алгоритм действий:
- Выгрузить все урлы в отдельный файл
- Загрузить их в ексель
- Сделать таблицу соответствия старых и новых УРЛов для файла htaccess
- Приготовить код для файла .htaccess
- Изменить урлы страниц. В вордпрессе в настройках постоянных ссылок.
- Вставить полученные строчки кода в файл htaccess
- Проверить работу сайта, как срабатывают редиректы.
А теперь обо всем по порядку.
Для выгрузки всех УРЛов в файл есть разные способа:
- с помощью программы краулера (Comparser, Screaming Frog SEO Spider, NetPeak Spider)
- плагин для wordpress — export all urls
- и другие
Я использовал второй способ. Хоть я и не люблю ставить лишние плагины, в этот раз сделал исключение, так как хотелось сделать быстрее.
Подробно описывать работу плагина нет смысла. Зашел в его настройки. Указал, что я хочу скачать УРЛы именно опубликованных статей. Получить список ссылок, которые мне нужно заменить.
Начинается самый кропотливый процесс.
Загрузил полученный список в эксель в одну колонку. В соседней колонке вставил тот же список. Далее я просмотрел весь список сверху вниз и подправил хвосты некоторых ссылок во второй колонке, которые мне не понравились:
- слишком длинные
- нет ключевых слов
Потом перешел в админку вордпресс, поочередно перешел к каждой записи, у которой планирую сменить хвост ссылки, и сделал такое же изменение, как в таблице в экселе.
Этот этап был самый кропотливый и долгий )))))
Осталось привести таблицу к правильному формату. В первом столбце нужно удалить домен https://abdullinru.ru, а во втором столбце удалить категории.
Хорошо, что Эксель умная программа, и это делается довольно быстро. Как удалить домен с первой колонки:
- Выделяю первую колонку
- Ctrl+f,
- заменить «https://abdullinru.ru» на пустоту
- Заменить все
Как удалить рубрики из второй колонки:
- Выделить второй столбец
- ctrl+f
- Заменить «/rubrika/» на «/»
- Заменить все
- И так для каждой категории по очереди
Теперь нужно эти столбцы как бы сцепить построчно вместе и перед ними добавить еще "Redirect 301 "
- В третью колону написал «Redirect 301» (с пробелом на конце)
- В четвертую колонку вставил формулу сцепки и растянул ее вниз
Формулу вставил такую: =СЦЕПИТЬ(ячейка3; ячейка1;« »;ячейка2)
Ячейку 3 не забудьте зафиксировать a формуле с помощью знаком доллара. В моем случае это выглядело так: =СЦЕПИТЬ($C$2;A2;« »;B2)
Далее весь полученный столбец копирую и вставляю в Notepad++. Всегда коды вставляю через эту программу.
Перехожу в админку WordPress в настройки постоянных ссылок и задаю следующий формат: https://abdullinru.ru/%postname%.html
Открываю файл .htaccess с помощью того же notepad++. Файл кстати лежит в корне сайта. Весь полученный ранее код я вставил в конец файла и сохранил.
Потом я просто проверил работу своего сайта (убедился, что всё хорошо и переживать не о чем):
- погулял по сайту
- перешел на него с поиска яндекса и гугла
- проверил коды ответа сервера при вводе старых УРЛов в вебмастере яндекса.
А также дополнительно я отправил новые статьи на переобход роботом яндекса в вебмастере в разделе индексирование. Жаль, что мне позволяют отправить только 130 страниц сайта в сутки.
Дополнение
Через несколько дней, проводя аудит сайта в программе NetSpeak Spider, я обнаружил, что допустил несколько ошибок. По невнимательности я создал несколько бесконечных редиректов, в итоге три мои страницы были недоступны.
Где я ошибся? На первом шаге инструкции я выгрузил не только статьи, но и страницы. А у страниц УРЛы не изменились, поэтому они начали перенаправлять сами на себя. Большинство таких ошибок я удалил сразу же, а некоторые только после аудита.
Заключение
Какая получилась интересная статья!
Вы узнали, как сделать 301 редирект, какие вообще бывают редиректы и с какой целью их применяют. Показал на личном примере, как поменять УРЛы всех статей на сайте и не потерять позиции.
С первого взгляда кажется сложновато. Но я бы сказал, что не сложно, а просто нужно всё делать очень внимательно.
Если совсем боитесь делать сами, то нанимайте специалистов, ставьте перед ними задачу и всё будет сделано. А также задайте вопрос в поддержку хостинга, возможно там помогут...
Я же люблю делать сам то, что мне по силам. А если необходимы изменения, которые я сделать не могу, тоже обращаюсь за помощью.
Оставляйте комментарии. Делитесь своими впечатлениями: что знали, а что нет? Задавайте вопросы... Подписывайтесь на обновления блога, чтобы узнавать о выходе новых публикаций
Всем пока и до скорых встреч.
С уважением, Абдуллин Руслан.