После переезда WordPress на VDS чаще всего ломается не сам сайт, а его техническая часть: поисковик видит лишние URL, sitemap отдает 404, robots.txt закрывает не то, что нужно, а в индексе остаются старые адреса. Это типичная история, когда сайт уже открывается, но SEO-сигналы настроены по старым правилам или вообще не проверялись после миграции.
Ниже — рабочая схема, которая помогает привести в порядок robots.txt и sitemap без лишних экспериментов. Подойдет для обычного WordPress на Nginx или Apache, если сайт переехал на новый сервер и нужно быстро проверить, что поисковые роботы видят правильные файлы.
Что обычно ломается после переноса
Проблема редко выглядит как одна ошибка. Чаще это набор мелких несостыковок:
robots.txtотдается не из корня сайта, а генерируется плагином с устаревшими правилами;- sitemap ведет на старый домен или на URL с редиректами;
- в
robots.txtслучайно осталсяDisallow: /после тестового режима; - плагин SEO создает несколько карт сайта, а в Google Search Console отправлена не та;
- серверный кеш отдает старую версию файлов после правок.
Если сайт переносили вручную, отдельно проверьте, не остались ли в базе старые адреса домена. Это особенно важно, если sitemap формируется с абсолютными URL.
Диагностика: что проверить до правок
Сначала нужно понять, где именно проблема: в WordPress, в плагине SEO или на уровне сервера. Проверка занимает несколько минут и экономит время на бессмысленную правку файлов.
1. Откройте robots.txt и sitemap в браузере
Проверьте прямые адреса:
https://ваш-домен.ru/robots.txthttps://ваш-домен.ru/sitemap.xmlили адрес, который использует ваш SEO-плагин
Если вместо файла вы видите 404, редирект на главную или HTML-страницу темы, значит WordPress или веб-сервер не отдают нужный ресурс.
2. Посмотрите заголовки ответа
На сервере удобно проверить ответ через curl:
curl -I https://example.com/robots.txt
curl -I https://example.com/sitemap.xmlНормально, если вы видите 200 OK. Если там 301 или 302, нужно понять, куда ведет редирект. Если 404 — файл не найден или маршрут не настроен.
3. Сравните содержимое с настройками плагина
Если используется Yoast SEO, Rank Math или другой SEO-плагин, sitemap обычно генерируется им. Тогда важно проверить, не отключен ли модуль sitemap в настройках и не конфликтует ли он с кэшем. Если sitemap создается вручную, убедитесь, что он не дублирует адреса из плагина.
Пошаговое решение для robots.txt
Лучше не хранить критичные правила в случайных местах. Для WordPress есть два нормальных сценария: управлять robots.txt через плагин SEO или положить статический файл в корень сайта. Выбор зависит от того, нужен ли вам динамический sitemap-URL и есть ли особые правила для ботов.
Вариант 1. Статический robots.txt в корне
Если вам нужен предсказуемый файл без лишней магии, создайте robots.txt в корне сайта. Пример базовой конфигурации:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap_index.xmlЭтот вариант хорош тем, что файл легко проверить и он не зависит от состояния плагина. Но если у вас несколько карт сайта или нестандартная структура, придется обновлять его вручную.
Вариант 2. Управление через SEO-плагин
Если sitemap и robots.txt уже генерируются плагином, не смешивайте два источника правды. Оставьте один механизм: либо статический файл, либо настройки плагина. Иначе можно получить конфликт, когда сервер отдает одно, а WordPress — другое.
Например, в Yoast SEO можно редактировать robots.txt из админки, а в Rank Math — через встроенный редактор файлов. После правки обязательно очистите кеш плагина и серверный кеш, если он есть.
Когда нужен запрет на технические разделы
Обычно закрывают только служебные URL, а не весь сайт. Не стоит бездумно запрещать /wp-content/ или /wp-includes/, если вы не понимаете последствия. Для типового сайта достаточно закрыть админку и оставить доступ к статике, если она нужна для индексации медиа.
Как исправить sitemap после переноса
Если sitemap не открывается или содержит старые адреса, сначала определите источник генерации. В WordPress это чаще всего SEO-плагин или встроенная карта сайта ядра.
Если sitemap делает WordPress
Начиная с WordPress 5.5, базовый sitemap доступен без плагина. Проверьте адрес /wp-sitemap.xml. Если он открывается, но в нем старые домены, значит проблема в настройках сайта или в базе данных после переноса.
Проверьте значения siteurl и home в базе:
SELECT option_name, option_value
FROM wp_options
WHERE option_name IN ('siteurl', 'home');Оба значения должны указывать на новый домен. Если там старый адрес, исправьте его через админку или SQL, а затем обновите постоянные ссылки.
Если sitemap делает SEO-плагин
У плагина может быть отдельный индекс карт сайта, например sitemap_index.xml. После переноса проверьте:
- включен ли модуль sitemap;
- не отключены ли типы записей и таксономии;
- нет ли в sitemap URL со старым доменом;
- не отдает ли сервер кешированную версию файла.
Если в sitemap остались старые URL, обычно помогает сброс кэша плагина и повторное сохранение настроек постоянных ссылок в админке WordPress.
Сравнение подходов: плагин, ядро или ручной файл
| Подход | Плюсы | Минусы | Когда выбирать |
|---|---|---|---|
Статический robots.txt | Прозрачность, легко проверить | Нужно обновлять вручную | Небольшой сайт, простые правила |
| SEO-плагин | Удобно менять из админки, часто есть редактор sitemap | Зависимость от плагина и кеша | Если уже используете Yoast SEO или Rank Math |
| WordPress sitemap по умолчанию | Не нужен отдельный плагин | Меньше гибкости | Базовый сайт без сложной SEO-логики |
Проверка результата после внедрения
После правок не ограничивайтесь открытием страницы в браузере. Проверьте, что все отдается корректно и без лишних редиректов.
robots.txtоткрывается с кодом200;- sitemap открывается без редиректа на старый домен;
- в sitemap нет URL с прежним адресом;
- в
robots.txtнет случайногоDisallow: /; - в Search Console можно заново отправить sitemap и увидеть статус обработки.
Если используете командную строку, полезно проверить содержимое напрямую:
curl https://example.com/robots.txt
curl https://example.com/sitemap_index.xml | headДля sitemap важно не только наличие файла, но и корректные URL внутри. Если там остался старый домен, поисковик будет тратить время на переобход редиректов.
Частые ошибки и как их исправить
robots.txt закрывает сайт целиком
Это часто остается после тестового режима или клонирования сайта. Ищите строку Disallow: /. Если она есть на боевом сайте, удалите ее сразу и проверьте файл заново.
Sitemap отдает 404 после переноса
Обычно причина в том, что веб-сервер не видит маршрут плагина или не обновились правила постоянных ссылок. Сначала пересохраните настройки Параметры → Постоянные ссылки, затем очистите кеш.
В sitemap старый домен
Это почти всегда следствие старых значений home и siteurl, либо закешированной генерации. Проверьте базу и сбросьте кеш плагина, если он используется.
Файл меняется, но в браузере видна старая версия
Значит, мешает серверный или CDN-кеш. На VDS это встречается часто, если настроен FastCGI cache, Redis Object Cache или внешний прокси. Очистите кеш на всех уровнях, а потом повторите проверку через curl с заголовками ответа.
Практические советы по безопасности и производительности
Технические файлы вроде robots.txt и sitemap не должны становиться источником лишней нагрузки. Если сайт большой, не генерируйте карту вручную через тяжелый PHP-скрипт на каждом запросе. Лучше использовать штатный механизм WordPress или проверенный SEO-плагин.
Для безопасности полезно ограничить доступ к админке и не открывать лишние служебные URL. Но не пытайтесь «спрятать» сайт от индексации только через robots.txt — если страница уже в индексе, одного запрета может быть недостаточно. В таких случаях нужны корректные метатеги, статус ответа и удаление старых URL через инструменты поисковой системы.
Если вы регулярно чистите сайт от дублей и технического мусора, имеет смысл смотреть в сторону инструментов, которые помогают управлять SEO-настройками и служебными страницами централизованно. Например, Clearfy Pro может быть полезен именно как набор точечных настроек для дублей и технической чистки, но использовать его стоит только там, где он реально закрывает вашу задачу, а не вместо понимания базовой схемы.
Мини-чек-лист перед отправкой сайта в индексацию
- домен в
homeиsiteurlуже новый; robots.txtотдается с200 OK;- в
robots.txtнет запрета на весь сайт; - sitemap открывается без ошибок и редиректов;
- в sitemap нет старых URL;
- кеш на сервере и в плагинах очищен;
- в Search Console отправлен актуальный sitemap.
Если после всех правок проблема остается, смотрите не только WordPress, но и конфигурацию VDS: правила Nginx, кеширование, прокси и SSL-редиректы. На практике именно там часто прячется причина, почему технические файлы выглядят правильно в админке, но отдаются неправильно снаружи.