Переезд сайта в SEO
Иногда адрес страницы меняется. Например,
мы переименовали раздел каталога или
перенесли блог с /blog/ на
/articles/. Для пользователя это
мелочь, а для поисковика - новая страница.
Старый адрес он еще помнит, а новый
видит впервые.
Если ничего не сделать, робот придет по старому адресу и получит ошибку. Страница выпадет из выдачи, а новая будет ждать переобхода. Чтобы этого не случилось, старый адрес нужно правильно перенаправить на новый. Это называется редирект.
Главный инструмент - постоянный редирект
с кодом 301. Он говорит роботу:
страница переехала навсегда, обнови адрес
в индексе и передай новой странице вес
старой. Временный редирект 302
для переезда не подходит - он не
переносит вес.
Пусть мы переименовали страницу о доставке.
Раньше она лежала по адресу
/delivery/, теперь -
/shipping/. Настроим редирект
в файле .htaccess:
RewriteEngine On
RewriteRule ^delivery/?$ /shipping/ [R=301,L]
Теперь робот по старому адресу получит
ответ 301 и пойдет на новый.
Проверить это можно через терминал:
curl -I https://example.com/delivery/
В ответе должно быть видно код 301
и заголовок Location с новым адресом:
HTTP/1.1 301 Moved Permanently
Location: https://example.com/shipping/
Редиректы нужно ставить на каждую страницу, у которой поменялся адрес. Нельзя отправлять всех на главную - это робот считает мягкой ошибкой soft 404 и вес не передает.
Отдельный случай - переезд на новый домен. Тут редирект ставится уже не на одну страницу, а на весь сайт. На старом домене настраиваем правило, которое перенаправляет любой адрес на такой же адрес нового домена. Сохраняя путь страницы:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old\.com$ [NC]
RewriteRule ^(.*)$ https://new.com/$1 [R=301,L]
Обратите внимание: мы сохраняем путь
"$1". Тогда
old.com/catalog/ переедет на
new.com/catalog/, а не на главную.
Так вес каждой страницы уходит на ее
новую версию.
После настройки редиректов нужно обновить
внутренние ссылки и карту сайта
sitemap.xml - в них должны быть
только новые адреса. Если в сайтмапе
останутся старые URL, робот будет ходить
по ним и тратить краулинговый бюджет
впустую.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://new.com/shipping/</loc>
</url>
</urlset>
Еще один обязательный шаг - закрыть от
индексации технические адреса нового
домена во время тестирования. Иначе
поисковик проиндексирует тестовую копию,
и получится дубль. На время работ
добавим запрет в robots.txt:
User-agent: *
Disallow: /
Когда переезд завершен и вы убедились, что все работает, запрет снимаем. Иначе новый сайт не попадет в индекс. Это одна из самых частых ошибок при переезде.
Дальше сообщаем поисковикам о переезде через панели вебмастера. В Яндекс Вебмастере есть отдельный инструмент «Переезд сайта», а в Google Search Console - «Изменение адреса». Это ускоряет переиндексацию.
Порядок действий при переезде на новый домен коротко:
Поднимаем новый сайт на новом домене.
Закрываем его в robots.txt от
индексации. Настраиваем 301-редирект
со старого домена. Проверяем редиректы
через curl. Обновляем ссылки и
sitemap.xml. Снимаем запрет в
robots.txt. Сообщаем о переезде
в панелях вебмастера. Следим за позициями
и ошибками обхода.
Практические задачи
Расскажите, чем отличается редирект
301 от 302 и какой
из них используют при переезде.
Дана страница, которая переехала с
/old-page/ на /new-page/.
Напишите правило для .htaccess,
которое перенаправит старый адрес
на новый.
Сайт переезжает с домена
old.com на new.com.
Напишите правило для .htaccess,
которое перенаправит все страницы,
сохраняя их пути.
Дан файл robots.txt нового
домена:
User-agent: *
Disallow: /
Sitemap: https://new.com/sitemap.xml
Сайт уже полностью переехал, редиректы со старого домена работают. Что не так с этим файлом и что случится с индексацией?
Расскажите, почему нельзя настроить редирект всех старых страниц на главную нового сайта.