Как настроить robots.txt и sitemap на WordPress после переноса на VDS

После переезда 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.txt
  • https://ваш-домен.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-редиректы. На практике именно там часто прячется причина, почему технические файлы выглядят правильно в админке, но отдаются неправильно снаружи.

⭐⭐⭐⭐⭐