Да, если во время выгрузки страницы действительно временно недоступны, 503 Service Unavailable — правильный код ответа. Он сообщает поисковому роботу, что URL существует, но сервер временно не может его обслужить и к странице нужно обратиться позднее.
Для кратковременного технического окна это правильнее, чем отдавать 404, 410 или страницу-заглушку с кодом 200.
Google при получении 503 не воспринимает страницу как удалённую. Контент ответа с 5xx не используется как нормальная версия страницы, а уже известный URL некоторое время может сохраняться в индексе. При большом количестве серверных ошибок поисковый робот может снизить интенсивность сканирования сайта.
К 503 имеет смысл добавить заголовок Retry-After:
HTTP/1.1 503 Service Unavailable Retry-After: 900
В этом примере сервер сообщает, что повторить запрос желательно примерно через 900 секунд. Retry-After является рекомендацией для клиента, а не гарантией того, что поисковый робот вернётся ровно через указанное время.
Если выгрузка в 4 утра занимает несколько минут и только в этот промежуток часть товарных страниц возвращает 503, серьёзной проблемы обычно нет. Робот может попасть в окно недоступности, получить 503 и обратиться к URL позднее.
Но делать 503 постоянной частью ежедневной работы магазина нежелательно. Если значительная доля страниц регулярно отвечает 5xx, это уже может влиять на частоту и объём обхода. Особенно это критично для крупных каталогов, где поисковому роботу нужно постоянно переобходить тысячи товарных URL.
Лучше организовать выгрузку так, чтобы текущая версия каталога продолжала работать до полного завершения обновления:
- Старая версия данных продолжает обслуживать запросы и отдавать 200.
- Новая выгрузка загружается отдельно.
- После успешного завершения импорта выполняется быстрое переключение на новые данные.
- Sitemap обновляется после завершения выгрузки.
В такой схеме пользователи и поисковые роботы вообще не видят промежуточное состояние каталога.
Если текущая архитектура этого не позволяет, кратковременный 503 — нормальный запасной вариант. Лучше вернуть 503 на несколько минут, чем отдавать 200 с пустой карточкой товара, ошибкой базы, частично загруженными характеристиками или общей страницей технических работ.
Необязательно переводить на 503 весь сайт, если проблема возникает только у товарных страниц. Главная, категории, статьи и остальные работающие разделы могут продолжать отвечать 200.
Отдельно лучше оставить доступным robots.txt. Если поисковый робот не может получить robots.txt из-за серверной ошибки, это способно повлиять уже на обход сайта в целом. Поэтому общая техническая заглушка не должна без необходимости перехватывать запрос к /robots.txt.
Проверять последствия лучше по серверным логам. Нужно посмотреть:
- сколько запросов Googlebot и YandexBot приходится на время выгрузки;
- сколько из них получают 503;
- сколько длится недоступность;
- возвращаются ли роботы к этим URL позднее;
- не растёт ли доля ответов 5xx;
- не снижается ли общий объём обхода сайта.
Если каталог недоступен ежедневно 5–10 минут, а остальные 23 часа 50 минут стабильно отвечает 200, 503 использовать допустимо. Если же выгрузка каждый день выводит значительную часть магазина из строя на десятки минут или часы, лучше исправлять сам механизм обновления каталога, а не компенсировать проблему HTTP-кодом.