Проверка битых ссылок на сайте онлайн: как найти ссылки на несуществующие страницы

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

Что именно нужно искать

Объект этой проверки — ссылка на странице и URL, указанный в ее атрибуте href. Сначала находят страницу-источник, затем извлекают адрес назначения и проверяют его доступность. Это отличается от поиска страниц 404: страница сайта может нормально отвечать кодом 200, но содержать несколько ссылок на удаленные внутренние страницы или недоступные внешние ресурсы.

Проверка битых ссылок на сайте онлайн должна учитывать не только ответ 404. Недоступность также обозначают коды 410, часть ответов 5xx, ошибки DNS, сбой TLS, превышение времени ожидания и циклические редиректы. При этом отдельный необычный ответ еще не доказывает, что ссылку следует удалить: сервер может блокировать автоматические запросы, ограничивать частоту обращений или временно находиться на обслуживании.

Внутренние и внешние ссылки

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

Проверять полезно и ссылки на документы, изображения для скачивания, архивы и другие файлы. Путь может выглядеть корректно, но ресурс уже удален или закрыт авторизацией.

Диагностический алгоритм

1. Определите область обхода

Начните с публичных HTML-страниц, доступных из навигации и внутренних переходов. Для крупного сайта отдельно зафиксируйте стартовые разделы, поддомены и ограничения обхода. Страницы личного кабинета, результаты внутреннего поиска и бесконечные комбинации фильтров обычно требуют отдельных правил.

2. Соберите пары «источник — назначение»

Для каждой найденной ссылки сохраните минимум четыре поля: URL страницы-источника, текст ссылки, исходное значение href и итоговый абсолютный URL. Относительные пути нужно разрешать с учетом адреса страницы и элемента <base>, если он используется. Иначе корректная ссылка ../docs/manual.pdf может быть ошибочно признана нерабочей.

3. Нормализуйте адреса без потери смысла

Удалите фрагмент после символа # для сетевой проверки: он не передается серверу. Не объединяйте автоматически URL с разными параметрами запроса — параметры могут определять содержимое. Ссылки mailto:, tel: и javascript: не проверяются обычным HTTP-запросом и должны анализироваться отдельно.

4. Проверьте HTTP-ответ и редиректы

Быстрая проверка часто начинается с метода HEAD, но окончательный вывод лучше подтверждать запросом GET: некоторые серверы неправильно обрабатывают HEAD. Следуйте редиректам с ограничением их количества и записывайте всю цепочку. Важен не только первый код, но и конечный адрес.

5. Перепроверьте подозрительные результаты

Повторите запрос после паузы, откройте URL в браузере и сравните ответ из другой сети, если это допустимо. Такой контроль помогает отличить постоянную поломку от временного сбоя, антибот-защиты или ограничения по региону.

6. Исправьте источник и выполните повторный обход

После изменения ссылки повторно проверьте исходную страницу и адрес назначения. Простого открытия конечного URL недостаточно: старая ссылка могла сохраниться в мобильном меню, шаблоне, карточке товара или другом повторяющемся блоке.

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

Результат Что он означает Что проверить
200–299 Ресурс технически доступен Соответствует ли содержимое назначению ссылки
301 или 308 Постоянное перенаправление Можно ли заменить ссылку конечным URL и сократить цепочку
302, 303 или 307 Временное либо сценарное перенаправление Ожидаемо ли оно и куда приводит
401 или 403 Доступ требует авторизации либо запрещен Должен ли публичный посетитель переходить по этой ссылке
404 или 410 Ресурс не найден или удален Новый адрес, восстановление ресурса или удаление ссылки
429 Слишком много запросов Повтор с меньшей частотой, а не немедленная пометка как битой
500–599 Ошибка на стороне сервера Повторяемость сбоя и доступность в браузере
DNS, TLS, timeout Соединение не установлено Домен, сертификат, сеть и результат повторной попытки

Код 200 не всегда означает исправную ссылку. Сервер может отдавать «мягкую 404»: страница сообщает, что материал не найден, но технически отвечает 200. Обнаружить такой случай можно по заголовку, основному тексту, шаблонным сообщениям об ошибке и сравнению с заведомо несуществующим URL на том же сайте.

Чек-лист проверки

  • Зафиксированы URL страницы-источника и адрес назначения.
  • Относительные ссылки преобразованы в абсолютные корректно.
  • Проверены внутренние, внешние ссылки и ссылки на файлы.
  • Записаны начальный ответ, цепочка редиректов и конечный код.
  • Ошибки HEAD подтверждены запросом GET.
  • Учтены таймауты, DNS-ошибки, TLS и ограничения частоты.
  • Подозрительные ответы перепроверены вручную.
  • После исправления выполнен повторный обход страниц-источников.

Типовые ошибки при поиске

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

Считать любой редирект поломкой. Один ожидаемый переход может быть допустим. Проблемой чаще становится неверный конечный адрес, цикл или длинная цепочка, в которой один из этапов перестает работать.

Принимать 403 за окончательный результат. Запрет может относиться только к автоматическому клиенту. Нужна ручная проверка и понимание того, доступен ли ресурс обычному посетителю.

Исправлять только одну копию ссылки. Один и тот же ошибочный URL может находиться в общем шаблоне и повторяться на сотнях страниц. Полезно группировать результаты по адресу назначения и элементу интерфейса.

Настраивать редирект на нерелевантную страницу. Перенаправление на главную формально устраняет 404, но не восстанавливает ожидаемый материал. Если равноценной замены нет, иногда честнее убрать или переписать ссылку.

Границы автоматической проверки

Обычный обход видит ссылки, присутствующие в полученном HTML или созданные при поддерживаемом выполнении JavaScript. Он может не обнаружить переходы, появляющиеся только после авторизации, выбора региона, отправки формы или сложного действия в интерфейсе. Нельзя автоматически подтвердить и смысловую корректность: доступная статья с кодом 200 может оказаться устаревшей или не соответствовать тексту ссылки.

Результат также зависит от момента и условий запроса. Временный сетевой сбой не равен постоянной поломке, а доступность из одной страны не гарантирует доступность из другой. Поэтому автоматический отчет следует считать списком диагностических сигналов, а спорные случаи — проверять вручную.

Как использовать SiteVisor

SiteVisor анализирует публичный URL без доступа к CMS и показывает технические, SEO/GEO и конверсионные сигналы. Такая проверка помогает получить независимый взгляд на доступную посетителю страницу, но не заменяет полный обход всех ссылок, серверные журналы и ручную проверку спорных ресурсов.

Можно запустить бесплатную проверку SiteVisor, а затем сопоставить найденные сигналы с результатами собственного обхода. Дополнительные практические материалы о диагностике сайтов собраны в блоге SiteVisor.

Итог

Надежный поиск битых ссылок строится вокруг связки «страница-источник — URL назначения — фактический ответ». Соберите ссылки, корректно разрешите относительные адреса, проверьте конечные ответы и редиректы, отдельно разберите сетевые ошибки и подтвердите неоднозначные случаи в браузере. После исправлений обязательно повторите обход: только так можно убедиться, что на странице больше нет старого адреса и новая ссылка действительно ведет к ожидаемому ресурсу.