HTTP-ошибки и диагностика

Ошибка 410 Gone: когда использовать вместо 404

Что означает HTTP 410 Gone, чем он отличается от 404 и постоянного redirect, когда уместно возвращать 410 и как проверить удалённые URL без soft 404.

Опубликовано: 26 августа 2026 г.Обновлено: 26 августа 2026 г.
Схема HTTP 410 Gone для ресурса, который существовал, был удалён и не будет восстановлен

HTTP 410 Gone означает, что доступ к ресурсу больше недоступен и это состояние, вероятно, постоянно. Код уместен, когда владелец сервиса знает: URL существовал, ресурс намеренно удалён и возвращать его не планируется.

Если неизвестно, существовал ли ресурс или постоянное ли отсутствие, RFC 9110 рекомендует использовать 404 Not Found. Поэтому 410 — не «улучшенный 404», а более конкретный сигнал о жизненном цикле URL.

Что означает HTTP 410

URL существовал
      ↓
ресурс намеренно удалён
      ↓
замены нет и возврат не планируется
      ↓
410 Gone

Схема HTTP 410 Gone для ресурса, который существовал, был удалён и не будет восстановлен

404, 410 и постоянный redirect

СитуацияОбычно уместный ответ
статус ресурса неизвестен404 Not Found
ресурс удалён без замены410 Gone
ресурс навсегда перемещён301/308

Если существует полноценная замена, пользовательский путь обычно лучше продолжить redirect на новый URL.

Когда 410 уместен

Ресурс намеренно удалён без замены

Например, устаревшая страница или endpoint, которые больше не должны использоваться.

Жизненный цикл временного ресурса завершён

Например, публичный одноразовый объект, который по политике удаляется окончательно.

API должен отличать удалённый объект от неизвестного ID

Такой контракт может быть полезен клиенту, если он не создаёт privacy/security проблем.

Когда лучше 404

404 подходит, если сервер не знает, существовал ли ресурс, или не хочет раскрывать эту информацию.

Связанный материал: ошибка 404 Not Found.

Когда нужен 301/308

Если старый URL имеет реальную постоянную замену:

/old-guide → /new-guide

постоянный redirect обычно полезнее 410.

Не стоит отправлять все удалённые URL на главную: это может быть нерелевантно пользователю.

Шаг 1. Подтвердите реальный статус

curl -i https://example.com/removed-page

Важно видеть именно:

HTTP/1.1 410 Gone

Визуальная страница «удалено», которая возвращает 200, не является корректным HTTP 410.

Шаг 2. Проверьте redirect chain

curl -i https://example.com/old-page

При необходимости:

curl -iL https://example.com/old-page

Сначала смотрите промежуточный status/Location, а затем конечный response.

Шаг 3. Примите решение по жизненному циклу URL

ресурс существует? → да → нормальный ответ
       ↓ нет
есть постоянная релевантная замена? → 301/308
       ↓ нет
точно известно постоянное удаление? → 410
       ↓ нет
404

Дерево выбора между 404, 410 и постоянным redirect для удалённого или перемещённого URL

410 и кеширование

RFC 9110 указывает, что 410 heuristically cacheable, если нет других указаний. Это ещё одна причина не использовать 410 как временную заглушку для ресурса, который скоро вернётся.

410 и SEO

HTTP status должен честно отражать состояние ресурса. Не выбирайте 410 только ради попытки повлиять на индексацию.

Для сайта важно:

  • не возвращать 200 для реально удалённой страницы;
  • не делать нерелевантный redirect;
  • обновить внутренние ссылки;
  • убрать удалённый URL из собственного sitemap как актуальный индексируемый ресурс;
  • сохранить корректный response для старых внешних ссылок.

410 в интернет-магазине

Не существует универсального правила для снятых товаров:

  • есть прямой новый аналог → возможен релевантный redirect;
  • страница остаётся полезной → можно сохранять 200;
  • ресурс окончательно удалён → 404/410 по фактическому состоянию.

410 в API

GET /v1/jobs/123
HTTP/1.1 410 Gone
Content-Type: application/json
{"error":"resource_gone"}

Такой ответ имеет смысл, если клиенту действительно нужно отличать удалённый объект от неизвестного ID.

Шаг 4. Найдите ссылки на удалённый URL

Проверьте internal links, sitemap, navigation, API clients, интеграции, документацию и старые шаблоны сообщений.

410 не заменяет исправление собственных ссылок.

Шаг 5. Проверьте массовые правила

Опасное правило:

/old/* → 410

если внутри остаются рабочие страницы. Перед deployment тестируйте выборку URL.

Как проверить результат

Нужно минимум три сценария:

живой URL            → 200
перемещённый         → 301/308 → новый URL
удалённый без замены → 410

Проверка обработки удалённых URL: живой ресурс, постоянный redirect и корректный HTTP 410

Так можно обнаружить слишком широкое routing rule.

Автоматический контроль

Если критичный публичный URL внезапно получает 410, это может быть ошибкой deployment/routing. UpWatch можно использовать для контроля ожидаемого HTTP-кода критичных страниц.

Для намеренно удалённого URL 410, наоборот, является ожидаемым состоянием.

Типичные ошибки

  • возвращать 410 для временной проблемы;
  • использовать 410 при наличии полноценной замены;
  • показывать «удалено» с HTTP 200;
  • оставлять внутренние ссылки на 410;
  • применять массовое правило без проверки выборки.

Практический чек-лист

  1. Подтвердить удаление ресурса.
  2. Определить, постоянное ли состояние.
  3. Проверить наличие релевантной замены.
  4. Выбрать 301/308, 410 или 404.
  5. Проверить status через curl.
  6. Обновить internal links.
  7. Обновить sitemap.
  8. Проверить routing rule на выборке.
  9. После deployment проверить живые/перемещённые/удалённые URL.
  10. Мониторить критичные URL на неожиданный status change.

Что делать со старым URL после перехода на 410

410 не завершает работу с URL. Проверьте собственные источники трафика: меню, related-блоки, sitemap, документацию и шаблоны сообщений. Если ссылка контролируется вами, пользователь не должен регулярно попадать на заведомо удалённую страницу.

Для внешних ссылок корректный 410 остаётся полезным ответом: он честно сообщает, что ресурса больше нет и постоянной замены не задано.

Источники и спецификации

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

Что означает HTTP 410 Gone?

Ресурс больше недоступен на origin server, и это состояние, вероятно, постоянно.

Чем 410 отличается от 404?

410 явно сообщает об известном постоянном удалении. 404 подходит, когда статус ресурса неизвестен или сервер не хочет раскрывать его существование.

Когда вместо 410 нужен 301 или 308?

Когда существует релевантный новый URL, который является постоянной заменой удалённого ресурса.

Можно ли временно возвращать 410?

Это плохо соответствует семантике: 410 сообщает о вероятно постоянном отсутствии.

Нужно ли удалять 410 URL из sitemap?

Если URL больше не является индексируемым ресурсом сайта, его не следует продолжать публиковать в собственном sitemap как актуальную страницу.

Схема причин HTTP 404 от неверного URL до удалённого ресурса и ошибки маршрутизации
HTTP-ошибки и диагностика

Ошибка 404 Not Found: причины появления и правильная обработка

Что означает HTTP 404, как найти битые URL, отличить удалённую страницу от ошибки маршрутизации и правильно выбрать между 404, 410 и постоянным перенаправлением.

Читать материал
Схема HTTP 403 Forbidden с уровнями запрета доступа от CDN и reverse proxy до приложения
HTTP-ошибки и диагностика

Ошибка 403 Forbidden: почему доступ запрещён

Что означает HTTP 403 Forbidden, чем он отличается от 401 и как проверить права доступа, Nginx, файлы, WAF/CDN, IP-ограничения, роли и application authorization.

Читать материал
Схема пошаговой проверки доступности сайта от DNS и TLS до HTTP и критичных URL
Доступность сайтов и uptime

Как проверить, работает ли сайт прямо сейчас

Практический алгоритм проверки сайта: отличаем проблему браузера от реальной недоступности, проверяем DNS, TCP/TLS, HTTP-код, время ответа и несколько критичных URL.

Читать материал
Схема HTTP 405 Method Not Allowed: ресурс существует, но выбранный метод для него не разрешён
HTTP-ошибки и диагностика

Ошибка 405 Method Not Allowed: причины и диагностика

Что означает HTTP 405 Method Not Allowed, как проверить Allow, маршрутизацию, CORS, reverse proxy и несоответствие HTTP-метода контракту endpoint.

Читать материал