Диагностика проблемы: почему важна корректная переадресация после смены домена
При смене домена сайта на WordPress без правильной настройки 301 редиректов вы рискуете потерять позиции в поисковых системах, а посетители будут получать ошибки 404. Проблема усугубляется, если внутренние ссылки и мультимедийные ресурсы продолжают указывать на старый домен.
Основные симптомы:
- Переходы на старый домен приводят к страницам с ошибкой 404.
- Внутренние ссылки на сайте ведут на несуществующий адрес.
- Потеря органического трафика и падение позиций в SEO.
Пошаговое решение: настройка 301 редиректов и обновление ссылок
1. Настройка 301 редиректа в файле .htaccess (Apache)
Добавьте следующие строки в начало файла .htaccess на старом домене, чтобы все запросы перенаправлялись на новый домен с сохранением URI:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain\.ru$ [NC]
RewriteRule ^(.*)$ https://new-domain.ru/$1 [R=301,L]Замена old-domain.ru и new-domain.ru на фактические домены.
2. Обновление URL в базе данных WordPress
Для корректного отображения ссылок и медиа необходимо заменить старый домен на новый в базе данных. Используйте WP-CLI или плагин Search Replace DB.
Пример команды WP-CLI:
wp search-replace 'https://old-domain.ru' 'https://new-domain.ru' --skip-columns=guidОбратите внимание, что параметр --skip-columns=guid предотвращает изменение GUID, что может вызвать проблемы с RSS и плагинами.
3. Обновление настроек сайта в админке WordPress
Войдите в Настройки – Общие и обновите поля Адрес WordPress (URL) и Адрес сайта (URL) на новый домен.
Проверка результата после внедрения
Для проверки правильной работы переадресации и обновления ссылок:
- Откройте старый домен и убедитесь, что происходит редирект на новый с сохранением пути.
- Используйте curl команду для проверки HTTP-кодов:
curl -I https://old-domain.ru/any-pageдолжен вернуть статус 301 и Location с новым доменом. - Проверьте внутренние ссылки на сайте – они должны вести на новый домен.
- Запустите поиск 404 ошибок через Google Search Console или плагин Redirection.
Частые ошибки при настройке переадресации
- Отсутствие 301 редиректа. Использование 302 приводит к потере SEO веса.
- Неправильный синтаксис в
.htaccess. Может вызвать ошибку сервера 500. - Не обновлены ссылки в базе данных. Это вызывает проблемы с отображением контента и медиа.
- Изменение колонки
guid. Ведет к проблемам с дублированием контента в RSS и плагинах.
Практические советы по безопасности и производительности
- Перед изменениями сделайте резервную копию базы данных и файлов сайта.
- Используйте HTTPS на новом домене для безопасности и лучшего SEO.
- Настройте в Google Search Console новый домен и добавьте карту сайта.
- Настройте плагин кэширования (например, WP Super Cache или W3 Total Cache) заново, очистите кэш после изменений.
Сравнение вариантов реализации переадресации
| Метод | Преимущества | Недостатки | Когда использовать |
|---|---|---|---|
Редирект через .htaccess | Быстрая обработка на уровне сервера, SEO-дружественный | Требует доступа к серверу, ошибки в синтаксисе могут привести к сбоям | Apache сервер, полный контроль над сервером |
| Плагин Redirection | Удобство управления через админку, логирование ошибок | Нагрузка на PHP, может замедлить сайт | Отсутствие доступа к серверу, необходимость гибкого управления |
PHP редирект в functions.php | Легко реализовать, подходит для специфичных условий | Медленнее, чем серверный редирект, может вызвать проблемы с кэшированием | Простые случаи, когда нет доступа к серверу |
Пример кода PHP редиректа в functions.php
add_action('template_redirect', function() {
if (strpos($_SERVER['HTTP_HOST'], 'old-domain.ru') !== false) {
wp_redirect('https://new-domain.ru' . $_SERVER['REQUEST_URI'], 301);
exit;
}
});