Как поменять домен на сайте? Безболезненно

Я тот человек, который любил много раз менять домен на своём блоге, за всё время, насколько я помню, он был поменян ровно 5 раз. Конечно, это не сказалось положительно на позициях сайта в поисковиках, ну вот как-то так… Хочу поделиться с вами своим опытом по переездам.

В видеокурсе по созданию сайтов на WordPress с нуля у меня есть целый модуль по работе с доменами и хостингами. Рекомендую.

1. Привязка нового домена к сайту

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

Вот как это реализовано у меня на хостинге Beget.

Сайты и прилинкованные домены на хостинге Beget
Домен должен быть прилинкован к директории на сервере. На скриншоте у меня все три домена прилинкованы к одной директории и это норм.

2. Замена старого домена на новый в базе данных и в файлах темы

2.1 В базе данных

Для того, чтобы заменить старый домен на новый в базе данных и ничего не пропустить, рекомендую сделать это автоматически при помощи SQL-запросов, которые можно сгенерировать при помощи этого инструмента, а потом просто запустить их в phpMyAdmin на вкладке SQL (только не забудьте сначала выбрать нужную базу данных). У меня кстати есть целый урок, посвященный этим SQL запросам — вон он, возможно будет полезен.

Вот сюда мы и будем вставлять наши SQL-запросы:

Выполняем запросы к базе данных в phpmyadmin на вкладке SQL

2.2 В файлах темы

Вообще этого шага быть не должно. Но если у вас какая-то кастомная тема, и вам прямо не хотелось использовать site_url() и вы много где указывали домен статикой, чтобы сэкономить малейшие доли производительности, то да, этот шаг для вас.

В любом случае ничего страшного, вам лишь понадобится редактор кода, который позволяет искать и производить замену во всех файлах в выбранной директории — используем его, чтобы осуществить массовую замену старого домена на новый. Например у меня это выглядит так:

Поиск и замена домена в файлах сайта
Так мы сможем найти во всех файлах один домен и заменить на другой.

3. Ставим 301 редиректы в .htaccess

Это самый ответственный момент. Если неправильно проставить редиректы, то на всё остальное уже будет просто пофиг. Хотя тут я наверное преувеличиваю, так как без второго шага сайт и вовсе работать не будет.

Окей, тут важно понять одну вещь — все ссылки на материалы сайта на старом домене должны перенаправляться на соответствующие материалы на новом (важно — даже, если они при этом изменили структуру URL! ).

Пример:

misha.blog/blog/post1.html должен перенаправляться 301м редиректом на misha.agency/blog/post1.html, но так как я вообще решил избавиться от /blog в ссылках, то у меня он перенаправляется на misha.agency/post1.html. А можно например, пользуясь случаем, избавиться от .html на конце ссылок. На самом деле это довольно просто, а теперь давайте глянем, как это делается.

Вот какие правила в .htaccess использую я:

RewriteCond %{HTTP_HOST} ^misha.blog$ [OR]
RewriteCond %{HTTP_HOST} ^www.misha.blog$
RewriteRule (.*)$ https://misha.agency/$1 [R=301,L]

Эти строчки кода всегда должны идти после RewriteEngine on (если нету, добавьте!), однако, если вы решили прилинковать новый домен к той же самой директории на хостинге, то возможно у вас в .htaccess уже существуют какие-то правила WordPress — принцип тот же, но обратите внимание — добавляем сразу же на следующей строчке после RewriteEngine on.

4. robots.txt и sitemap.xml

Если вам эти слова не знакомы, на пока вы можете скипнуть этот шаг, но задуматься о том, что неплохо было бы заняться SEO-оптимизацией сайта, хотя бы внутренней.

Если ваша карта сайта sitemap.xml генерируется динамически, то ничего делать не нужно, если же нет, то пересоздайте её в том плагине, который используете. Чтобы проверить, перейдите на неё в браузере прямой ссылке и убедитесь, что в ней не осталось старого домена.

В файле robots.txt обычно меняется URL у директивы host и sitemap. Если вы прилинковали новый домен к другой директории, сделайте изменения в robots.txt в обоих местах.

Host: https://misha.agency
Sitemap: https://misha.agency/sitemap.xml

5. Яндекс Вебмастер и Google Search Console

Понимаю, что скорее всего на блоге есть читатели, которые не используют эти инструменты (один или второй, или оба), но тем не менее, какие действия нужно в них сделать при смене домена? Тут могут быть разные сценарии, а так как я себя сеошником не считаю, то наверное не опишу их все подробно. Скажу лишь, какой должен быть конечный результат.

Оба домена должны быть добавлены в Google/Яндекс вебмастерс и должен быть запущен процесс переезда домена.

Google Search Console (Google Webmaster Tools)

Итак, пошагово:

  1. Переходим в Google Search Console.
  2. Добавляем в него сайт на новом домене.
  3. Выбираем затем старый сайт и переходим в настройки (ссылка Settings с шестерёнкой в меню слева).
  4. А на страницы настроек выбираем опцию смены адреса сайта.
  5. В итоге у нас откроется вот такая страница, где мы должны указать, куда будет переезжать сайт:
Смена адреса сайта в Google Search Console

Яндекс Вебмастер

Принцип примерно тот же, как и в Google Search Console, подробнее — на скриншоте.

Изменение адреса в Яндекс Вебмастер консоли

Вот вроде бы и всё, на этом наш переезд на новый домен завершён, знакомый сеошник сказал, что теперь нужно терпеливо ждать месяц. И во время переезда старайтесь не менять дизайн сайта.

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

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

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал