Никита Митусов Обсудить задачу

Переноссайтанадругойдоменилихостингбезпотерипозиций

Никита Митусов 2 ноября 2026 12 мин чтения

Коротко

Перенос сайта на другой домен начинается с полного списка старых адресов. Затем постраничные 301 редиректы, заявка «Переезд сайта» в Яндекс Вебмастере и смена адреса в Search Console. Редиректы держите минимум год. При смене хостинга адреса не меняются, там важно заранее снизить TTL и не выключать старый сервер сразу.

Перенос сайта на другой домен делается постраничными 301 редиректами и заявками в кабинетах поиска, а перенос на другой хостинг обходится без редиректов, сменой DNS. В обоих случаях главное готовится заранее: список адресов, рабочая копия и перечень всего, что смотрит на старый адрес. Гарантий нет ни у кого: Яндекс прямо пишет, что не гарантирует сохранение позиций и посещаемости. Задача переезда в том, чтобы потери не случились по его собственной вине.

Что меняется при переносе сайта: домен, хостинг или адреса

Что переносите Адреса страниц Нужны редиректы Заявка в поиске Главный риск
Другой хостинг Те же Нет Нет Простой, потерянные заказы, почта
Другой домен Новый домен Да, постраничные Да, Яндекс и Google 404, сломанные интеграции
С http на https, с www на без www Новый вариант адреса Да Яндекс: да, Google: нет Петля редиректов
Новая структура адресов, редизайн Новые пути Да, по карте Нет Потерянные страницы

Смена структуры без смены домена тоже работает на 301. На Stay2Apart адреса квартир, судя по всему, строились из номера в системе бронирования. Сейчас адрес вида /apartment/235554/ отдаёт 301 на читаемый, с улицей и домом, это видно снаружи (проверил 2 ноября 2026). Старая ссылка в чужом посте по-прежнему приводит на ту же квартиру.

Как перенести сайт на другой домен: порядок работ

Порядок сверен со справкой Яндекса и руководством Google по смене адресов.

До переезда

  1. Снимите полный список адресов: sitemap, страницы в поиске из Вебмастера и Search Console, посадочные из Метрики, логи сервера. Делайте это, пока старый сайт жив.
  2. Составьте карту соответствий: старый адрес, новый адрес. Страницы, которых больше нет, ведите на близкий раздел либо отдавайте 404 или 410.
  3. Разверните сайт на новом домене и закройте его от индексации на время проверки.
  4. Подтвердите права на оба домена в Вебмастере и Search Console. Удобнее DNS-записью: права не слетят, когда старый домен начнёт всё перенаправлять.
  5. Замените старый домен внутри сайта: ссылки, canonical, sitemap, картинки, письма, фиды. Поиск старого домена по базе и файлам должен дать ноль.
  6. Выпишите всё, что обращается к старому адресу снаружи. Список ниже.

День переезда

  1. Снимите запрет индексации с нового сайта. Если забыть, домен просто не попадёт в поиск, подробности в статье про то, почему сайт не индексируется.
  2. Проверьте robots.txt: индексирование должно быть разрешено на обоих доменах, а файлы должны совпадать. Редирект старого robots.txt на новый Яндекс тоже принимает. Новый адрес должен отдавать 200, а сервер отвечать быстрее 10 секунд.
  3. Включите 301 со старого домена.
  4. Проверьте выборку адресов командой из раздела про проверку.
  5. В Вебмастере откройте старый сайт: «Индексирование → Переезд сайта», укажите новый адрес, сохраните.
  6. В Search Console откройте старый ресурс и запустите инструмент смены адреса. Оба ресурса должны быть в одном аккаунте. Инструмент не переносит поддомены, поэтому вариант с www отправляйте отдельно.
  7. Отправьте в оба кабинета новую sitemap.

После переезда

  1. Смотрите исключённые страницы и 404 в обоих кабинетах. Чините адреса, а не только главную.
  2. Перенесите Метрику, цели и рекламу на новый адрес.

Яндекс называет срок от нескольких недель до нескольких месяцев. Google предупреждает о временных колебаниях позиций. Цифр по позициям до и после с моих переездов у меня нет, поэтому обещать их не буду.

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

Конфиги ниже я проверил на стенде с тестовыми доменами: nginx 1.22 и Apache 2.4, синтаксис и ответы сервера. Подставьте свои домены и пути к сертификатам.

Если поменялись и домен, и адреса страниц, Яндекс просит двойной редирект: сначала на новый домен со старым путём, потом на итоговый адрес. Поэтому старый домен перенаправляет всё один к одному, а карта изменившихся адресов лежит на новом. Google просит не делать длинных цепочек, и два шага в этот предел укладываются.

Редирект в nginx

Старый домен. Обратите внимание на сертификат: без живого SSL посетитель со старой https-ссылки увидит ошибку и до редиректа не дойдёт.

server {
    listen 80;
    listen 443 ssl;
    server_name old-site.ru www.old-site.ru;

    ssl_certificate     /etc/letsencrypt/live/old-site.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/old-site.ru/privkey.pem;

    # Сертификат старого домена должен продлеваться
    location /.well-known/acme-challenge/ {
        root /var/www/letsencrypt;
    }

    # Всё остальное на тот же путь нового домена
    location / {
        return 301 https://new-site.ru$request_uri;
    }
}

Новый домен, http и www на одну версию:

server {
    listen 80;
    server_name new-site.ru www.new-site.ru;
    return 301 https://new-site.ru$request_uri;
}

server {
    listen 443 ssl;
    server_name www.new-site.ru;

    ssl_certificate     /etc/letsencrypt/live/new-site.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/new-site.ru/privkey.pem;

    return 301 https://new-site.ru$request_uri;
}

Изменившиеся адреса удобно держать отдельным файлом. Блок map ставится на уровне http, например в /etc/nginx/conf.d/redirects.conf:

map $uri $redirect_to {
    default "";
    include /etc/nginx/conf.d/redirects.map;
}

Сам файл redirects.map, по строке на адрес:

/uslugi/remont/   /services/repair/;
/o-nas/           /about/;
~^/news/(.+)$     /articles/$1;

И условие внутри server нового домена:

if ($redirect_to) {
    return 301 https://new-site.ru$redirect_to$is_args$args;
}

В map адрес сравнивается целиком, поэтому /o-nas и /o-nas/ это две разные строки. Применяйте изменения так: nginx -t && systemctl reload nginx. Первая команда проверит синтаксис и не даст положить сайт опечаткой.

Редирект в .htaccess

Файл работает на Apache и совместимых серверах, на чистом nginx он не действует. Правила ставьте в самое начало, до блока # BEGIN WordPress, если он есть.

Старый домен:

RewriteEngine On

# Сертификат старого домена должен продлеваться
RewriteRule ^\.well-known/acme-challenge/ - [L]

# Всё остальное на тот же путь нового домена
RewriteCond %{HTTP_HOST} ^(www\.)?old-site\.ru$ [NC]
RewriteRule ^(.*)$ https://new-site.ru/$1 [R=301,L]

Новый домен:

RewriteEngine On

# http и www на одну версию
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ https://new-site.ru/$1 [R=301,L]

# Адреса, которые изменились
RewriteRule ^uslugi/remont/?$ https://new-site.ru/services/repair/ [R=301,L]
RewriteRule ^news/(.+)$ https://new-site.ru/articles/$1 [R=301,L]

Если сайт ушёл в бесконечный редирект, перед Apache стоит nginx хостинга, и Apache не знает про https. Замените строку с %{HTTPS} на такую:

RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]

Ошибка в .htaccess сразу даёт 500 на всём сайте, поэтому держите открытым доступ к файлу и правьте сначала на копии.

Что ещё сделать на WordPress и Тильде

На WordPress адрес живёт ещё и в базе, причём в сериализованных данных. Простая замена в дампе их ломает, используйте WP-CLI. Сначала с --dry-run, потом без него:

wp search-replace 'https://old-site.ru' 'https://new-site.ru' --all-tables --dry-run

На Тильде файла .htaccess нет, редиректы настраиваются в настройках сайта, и возможности там уже, чем на своём сервере.

Склейка зеркал: как настроить редирект с www и с http на https

Для поиска site.ru, www.site.ru, http:// и https:// это разные адреса. Зеркалом называют такую копию, а склейкой выбор одной главной версии.

Директива Host в robots.txt больше не нужна: Яндекс отказался от неё и работает с 301. Старые инструкции, где она ещё встречается, устарели.

Порядок для Яндекса тот же, что при смене домена: права на оба варианта, совпадающий robots.txt, редирект, затем «Переезд сайта». Для перехода на www или обратно там есть переключатель «Добавить WWW».

В Google инструмент смены адреса для этого не нужен и не работает: хватает редиректа и canonical.

Какой редирект ставить: 301 или 302, и почему он ломает интеграции

Яндекс принимает 301 и 302. Google при переезде просит постоянный редирект, поэтому ставьте 301.

Есть ловушка, которую не показывают обычные проверки. При 301 браузеры и многие программы меняют POST на GET и теряют тело запроса, это описано в MDN. Посетитель этого не заметит, а вот платёжка, агрегатор или 1С заметят.

На ViVaDa после смены домена Яндекс Еда начала получать 401 на запросе токена. Интеграция работала два года, менялся только домен. Новый адрес без www попадал под редирект хостинга, и запрос приезжал другим:

Отправлен:  POST на адрес без www
В скрипте:  REQUEST_METHOD: GET
            HTTP_HOST: www.vivada.ru

Код проверял метод, поэтому ни одна ветка не срабатывала. Сверху это выглядело как ошибка авторизации, хотя данные просто не доехали. На диагностику ушло два дня: дамп окружения, копия на другом хостинге и логи. Мы уже меняли DNS для переезда на другой хостинг, когда нашлась причина. Все запросы перевели на адрес с www. Через десять дней в боевой среде 401 вернулся: партнёр снова обратился по адресу без www.

Правильное лечение для таких запросов одно: поменять адрес в настройках самого сервиса. Если быстро нельзя, на время поставьте 308, он сохраняет метод и тело:

location /api/ {
    return 308 https://new-site.ru$request_uri;
}

Похожий сбой с уведомлениями об оплате разобран в статье «Оплата прошла, а заказ не оплачен».

Что обращается к старому домену: список перед переездом

  • Уведомления об оплате: ЮKassa, Т-Банк, другие платёжки.
  • Обмен с 1С и CRM.
  • Агрегаторы, маркетплейсы, фиды и файлы каталога.
  • Вебхуки ботов и мобильное приложение.
  • Вход через внешние сервисы, разрешённые адреса в их настройках.
  • Почта на домене: MX, SPF, DKIM.
  • Счётчики, цели, реклама, карточки в справочниках.

Старый домен умеет возвращаться. На ViVaDa партнёр увидел товары без фото: в файле каталога остались ссылки на старый домен. Поправили, каталог стал обновляться сам. Через год такие же ссылки всплыли снова, и пришлось делать новый скрипт и новый файл каталога. Поэтому после переезда я проверяю не только сайт, но и всё, что он выдаёт наружу.

Что бывает без карты редиректов

Этот случай на моей совести, поэтому без названия клиента. На сайте клиники люди приходили через статьи. Я перенёс их парсером на новый сайт, а русские адреса заменили транслитом. Адрес вида /articles/razdel/podrazdel/statya/ превратился в /statya/, а в части адресов поменялись буквы: c стало cz. Вложенность потерялась, и этого не заметил никто.

Сайт полгода стоял на тестовом хостинге. Через три дня после выхода на боевой домен SEO-специалист увидел в статистике нули. Первая причина нашлась быстро: не поставили счётчик. Вторая была хуже: старые адреса статей отдавали 404. Списка старых адресов не было, доступа к старому проекту уже тоже.

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

Отсюда первый шаг в списке. Карту адресов собирают, пока жив старый сайт, и сверяют до выхода, а не после.

Как перенести сайт на другой хостинг

Адреса не меняются, поэтому поисковикам сообщать ничего не надо. Шаги сверены с руководством Google по переезду без смены адресов.

  1. Примерно за неделю снизьте TTL записей домена до нескольких часов или меньше.
  2. Снимите копию файлов и базы и положите её вне старого сервера.
  3. Разверните сайт на новом хостинге. Сверьте версию PHP, расширения, cron, права на файлы.
  4. Проверьте сайт до смены DNS. Пропишите новый адрес сервера в файле hosts на своём компьютере и пройдите заказ, форму, оплату в тестовом режиме.
  5. Выпишите все DNS-записи, включая MX и TXT. Без них после переезда встанет почта.
  6. Если на сайте идут заказы, договоритесь о тихом окне. Сразу перед переключением перенесите базу ещё раз, иначе заказы за последние часы останутся на старом сервере.
  7. Смените A-запись. Сертификат на новом сервере выпускается отдельно.
  8. Смотрите логи обоих серверов. Старый выключайте, когда трафик на нём упал до нуля.
  9. Перезагрузите новый сервер и убедитесь, что всё поднялось само.

Последний пункт появился не из книжки. На Automost старая система на сервере не тянула нужную версию PHP. Подняли новый сервер, обновили PHP и Laravel, проверили на тестовом адресе и поменяли записи домена местами. Сразу слетел SSL, настройки сайта и сертификат делали заново. В тот же день всплыло остальное: время стало на английском, в категории автомобилей пропали названия объявлений, а ссылки на них вели на 404. После обновления перестала работать функция 2023 года, которая собирала название из марки и модели. Я переписал её, больше 350 строк.

Через полтора месяца сервер перезагрузили, и чат на сайте упал: на новой машине не был настроен автозапуск сервисов. На тестовом адресе такое не увидишь.

Как проверить редиректы после переезда

Один адрес:

curl -sIL https://old-site.ru/uslugi/remont/ | grep -iE "^HTTP|^location"

Весь список. Положите старые адреса в файл old-urls.txt, по одному в строке:

while read -r url; do
  curl -s -o /dev/null -L --max-redirs 5 \
    -w "%{http_code} %{num_redirects} $url -> %{url_effective}\n" "$url"
done < old-urls.txt

В каждой строке должно быть 200, один или два редиректа и нужный адрес на конце. Что считать ошибкой: 404, 302 вместо 301 при проверке первой командой, цепочка длиннее двух шагов, редирект на главную.

Сколько держать редиректы и старый домен

Google советует держать редиректы как правило минимум год, а для инструмента смены адреса называет минимум 180 дней. Через 180 дней связь старого и нового сайта в Google заканчивается.

Я снимаю редиректы только когда со старого адреса никто не приходит, и обычно не снимаю вообще: стоят они копейки. Старый домен продлевайте минимум на год. Брошенный домен могут выкупить и повесить на него что угодно, а ваши старые ссылки поведут туда. Заодно следите, чтобы продлевался сертификат.

Когда звать специалиста

Сами вы справитесь с простым сайтом без оплаты и интеграций на хостинге с понятной панелью: копия, замена адресов, редирект, заявки.

Разработчик нужен, если есть заказы и оплата, обмен с 1С, CRM, агрегаторы, большой каталог или меняется структура адресов. Ошибка там стоит потерянных заказов, а не только трафика.

Перенос небольшого сайта на WordPress на новый домен с редиректами в одном из проектов стоил 6 000 ₽. Сложные переезды считаю от 2 500 ₽ в час, разбор с оценкой стоит 3 000 ₽ и идёт в зачёт работы. Подробнее на странице доработки и поддержки. Если переезд уже случился и что-то сломалось, опишите симптомы на бесплатном разборе.

Частые вопросы

Потеряю ли я позиции при переносе сайта на другой домен?

Гарантий нет: Яндекс прямо пишет, что не гарантирует сохранение позиций и посещаемости, а Google предупреждает о временных колебаниях. Постраничные 301 и заявки в обоих кабинетах убирают потери по вине самого переезда.

Сколько длится переезд сайта в Яндексе?

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

Какой редирект ставить при смене домена, 301 или 302?

Ставьте 301. Яндекс принимает и 301, и 302, а Google для переезда просит постоянный редирект. Для запросов POST от внешних сервисов лучше сменить адрес у самого сервиса или поставить 308.

Можно ли перенаправить все старые страницы на главную нового сайта?

Нельзя. И Яндекс, и Google просят вести каждую страницу на аналогичную. Массовый редирект на главную неудобен людям и замедляет индексацию.

Нужно ли сообщать Яндексу и Google о смене хостинга?

Нет, если домен и адреса остаются прежними. Инструменты смены адреса для этого не нужны, достаточно чисто переключить DNS и следить за логами.

Сколько держать редирект со старого домена?

Google советует минимум год, инструмент смены адреса требует минимум 180 дней. Я оставляю редиректы, пока со старого адреса идут люди, и продлеваю домен, чтобы его не перехватили.

Никита Митусов

Никита Митусов, веб-разработчик. Более 5 лет делаю сайты, магазины, интеграции и ботов. Статья основана на моих проектах и проверена по документации сервисов.

Читать дальше