Техническое SEO: доступ поисковика к сайту

410 Gone

HTTP 410 Gone — код «этого URL не будет»: чем он отличается от 404, почему Google сейчас равняет их, и когда честнее 301 или 503.

Кирилл Бабийчук · обновлено · 5 мин чтения

410 Gone — это не «более сильный 404 для ускорения вылета из Google». Это отдельный код HTTP: origin знает, что представления по URL больше не будет, и говорит об этом прямо. Соседняя страница 404 ошибки закрывает случай «документа нет» (в том числе временно или неизвестно). Хаб технического SEO — слой доступа целиком. Если задача переехала на живой URL, это 301, не 410 на старый адрес.

Договор «скорее всего навсегда»

В RFC 9110 у 410 смысл такой: целевой ресурс больше недоступен на origin, и это состояние, скорее всего, постоянное. Если сервер не знает, постоянно ли это, должен отдать 404. MDN добавляет практическое следствие: ответ 410 по умолчанию кэшируемый, клиентам не стоит повторять запрос как «вдруг страница вернулась через минуту».

Справка Search Console (русская страница про ошибки 404) формулирует текущую политику Google коротко: если контент удалён без намерения заменить его близким материалом, старый URL должен возвращать 404 или 410; в настоящее время Google обрабатывает 410 и 404 одинаково. Документация по статусам для краулеров кладёт оба кода в одну корзину 4xx: содержимое не используется, новые такие URL не индексируются, уже лежавшие в индексе снимаются, частота обхода падает. Не опирайтесь на байку «поставьте 410 — вылетит за сутки»: официальный кабинет этого не обещает.

Старое пояснение crawl-команды (Illyes): 404 иногда держат в обходе около суток как возможный сбой, 410 сразу считают намеренным снятием, разница в днях, поведение могут изменить. Это не SLA и не повод массово переписывать все 404 в 410. Для Яндекса разница в справочнике Вебмастера живая: 404 — «документ не существует», 410 — «окончательно удалён»; для переезда — 301 (его просят держать минимум 6 месяцев). Чтобы вычистить URL из поиска, робот должен увидеть 404, 403 или 410; после обнаружения указания страница уходит из базы примерно за неделю.

Вы знаете про URL Код Почему не другой
Может вернуться, опечатка, чужой href 404 410 врёт про постоянство и кэшируется
Сняли навсегда, преемника той же задачи нет 410 200/мягкий 404 и 301 на главную путают индекс
Смысл жив на новом пути один 301 410 на старом сожжёт закладки без преемника
Временно закрыли на ремонт 503, не 410 410 научит кэш и роботов, что документа не будет

Где 410 честен, где это театр

Честные случаи: акция с датой, которую не вернут; юридически снятая страница; блог-пост, который редакция вычеркнула без архива; SKU, который больше не производят и ближайшего соседа по задаче нет. Для магазина выбор «карточка / редирект / снятие» — отдельная страница товаров без наличия: там про витрину. Здесь только код origin. Если линейка жива и есть карточка-преемник, честнее 301, чем 410 «чтобы быстрее вылетело».

Театр: плагин «все 404 превратить в 410» на опечатках и сканерном шуме. Вы объявляете навсегда несуществующим то, чего никогда не обещали. То же самое — 410 на URL, который через неделю вернут из бэкапа. Кэш CDN и браузера имеют право запомнить «gone». Снимайте правило, когда документ действительно вычеркнут из продукта, а не когда в кабинете длинный список «Не найдено (404)».

Настраивают 410 явно. nginx: return 410; или error_page 410 /gone.html; с return 410 внутри location снятого префикса. Apache: Redirect gone /old-section/ либо ErrorDocument 410. WordPress сам по удалённому permalink чаще отдаёт 404 — это нормально, пока вы не знаете, что slug не вернётся. Отдельный 410 имеет смысл на префиксе выведенной витрины, который вы больше не создадите. Проверяйте первой строкой ответа: curl -sI без -L. Тело HTML для человека можно оставить, статус всё равно 410: Google содержимое 4xx игнорирует.

Кабинеты, карта, robots

В Search Console отдельной причины «410» в отчёте «Страницы» обычно нет: Google кладёт ответ в ту же логику «не найдено». Не ждите magically пустого списка на следующий день. Яндекс Вебмастер в словаре HTTP отличает 410; после окончательного снятия раздела можно дополнительно закрыть его в robots.txt. Для Google прятать 410 в Disallow вредно: робот не подтвердит статус. Два кабинета — две процедуры, как и для 404.

Уберите URL из sitemap.xml. Внутренние href на «gone» сами кормят обход тупиком — снимите их в меню и крошках. Каноникал на 410 не ставят: каноникал предполагает живой 200, см. Canonical URL. Индексация как процесс — индексация Яндекса и индексация Google. Если снятых префиксов много и непонятно, 410 это или мягкий 200, контур разбирают в SEO-аудите: не «заменить все 404 на 410», а какие URL вы сами объявили мёртвыми навсегда.

410 честен, когда редакция знает, что URL не вернётся. Неуверенность — это 404. Живой преемник — 301.

Частые вопросы

Вылетит ли URL из Google быстрее, если поставить 410 вместо 404?

Официально сейчас Google обрабатывает 410 и 404 одинаково. Исторически crawl-команда допускала разницу в порядке дней и просила на неё не рассчитывать. Для снятия без преемника достаточно любого из двух кодов; 410 ставьте, когда постоянство вам известно, а не ради «ускорения».

Можно ли массово отдать 410 на все строки «Не найдено (404)»?

Нельзя. В этом списке опечатки, чужие ссылки и URL, которые вы ещё можете вернуть. 410 кэшируется и врёт, если документ не вычеркнут навсегда. Чините свои href и sitemap; чужой шум оставляйте 404.

Нужен ли 410, если раздел переехал на новый путь?

Нет. Переезд той же задачи — один 301 на финал. 410 на старом адресе скажет, что преемника нет, и закладки с донорами умрут без склейки. Яндекс для перемещённых ресурсов просит 301, не 410.

Чем 410 отличается от 503 на время работ?

503 — «сейчас не могу, документ жив». 410 — «документа не будет». На ремонт, миграцию базы и закрытие витрины «на час» 410 нельзя: кэш и робот имеют право запомнить отсутствие.