Проверка битых ссылок
Введите URL — сканер обойдёт внутренние ссылки (до 200 страниц) и сообщит о каждой ссылке, которая не работает: 404 и другие 4xx, 5xx, тайм-ауты и ошибки DNS — внутренние ссылки, найденные при обходе, внешние — проверенные HEAD-запросом (до 100). К каждой битой ссылке прилагаются страницы, которые на неё указывают, и текст ссылки, чтобы вы могли исправить ссылку или страницу, а не просто знать, что что-то сломано. Скачивание в CSV. Ничего не хранится дольше 24 часов.
Сканирование выполняется на нашем сервере: один запрос в секунду, с соблюдением robots.txt, без JavaScript. Хранятся только стартовый URL и эта сводка — 24 часа.
Как это работает
1. Наш сканер (InsighthackerzBot, один запрос в секунду, без JavaScript) сначала загружает robots.txt и объявленные в нём sitemap, затем начинает с указанного URL и обходит внутренние ссылки в ширину — только тот же хост; www и домен без www считаются одним сайтом 2. Ограничения: 50, 100 или 200 страниц за запуск, 2 МБ на страницу, 15 с на запрос, 5 редиректов на URL; URL, закрытые в вашем robots.txt для нашего user-agent, пропускаются и подсчитываются; страницы с nofollow загружаются, но их ссылки не обходятся 3. Каждая HTML-страница проходит через тот же движок, что и проверка on-page SEO: title, description, H1, canonical, директивы robots, число слов, изображения без alt — предупреждения и ошибки сохраняются по странице, HTML — нет 4. Внутренние ссылки, оказавшиеся битыми при обходе (4xx, 5xx, тайм-ауты), перечисляются вместе со страницами, которые на них ссылаются; внешние ссылки проверяются только HEAD-запросом (один GET, если сервер отвергает HEAD), не более 100 за запуск, ссылки с nofollow исключены 5. Результат — одна задача на нашем сервере: она содержит только стартовый URL и сводку, удаляется через 24 часа и ни для чего другого не используется 6. Ссылка считается битой, если ответ 4xx или 5xx либо запрос не удался (тайм-аут, DNS, TLS, отказ в соединении). Редиректы для внутренних страниц отслеживаются и отражаются во вкладке аудита, а не здесь
О битых ссылках и о том, как их находит проверка
Битая ссылка — это ссылка, цель которой больше не отвечает: 404, потому что страницу удалили или переименовали, 410, 5xx, потому что сервер за ней упал, или вообще нет ответа, потому что домен истёк. Для посетителей это тупик; для поисковых систем — впустую потраченное сканирование и сигнал, пусть и небольшой, что сайт не поддерживается. Внутренние битые ссылки целиком ваша забота и обычно возникают из-за смены URL, о которой никто не позаботился; внешние ломает кто-то другой, а замечать приходится вам.
Проверка намеренно обращается с двумя видами по-разному. Внутренние ссылки обнаруживаются при обходе — каждая страница 4xx/5xx, на которую натыкается сканер, и есть битая ссылка, и сканер уже знает, какие страницы туда привели. Внешние ссылки не обходятся; каждый уникальный внешний URL получает один HEAD-запрос (GET, если сервер отвергает HEAD), по одному в секунду на хост, не более 100 за запуск. Этого достаточно, чтобы поймать мёртвые домены и удалённые страницы, не нагружая чужие серверы и не тратя на них ваш краулинговый бюджет.
Исходные страницы важнее самого битого URL. 404, на который ссылается одна старая запись в блоге, чинится за пять секунд; тот же 404 в подвале стоит на каждой странице и заслуживает редиректа. Таблица показывает до пяти исходных страниц на ссылку и текст ссылки, чего обычно хватает, чтобы догадаться, куда ссылка должна была вести.
Некоторые «битые» ссылки таковыми не являются. Сайты за защитой от ботов отвечают на HEAD-запросы незнакомых сканеров 403 или 429; ссылка на страницу, требующую входа, возвращает 401; некоторые серверы отвечают на HEAD 405, а на GET 200 — проверка обрабатывает это повторной попыткой через GET. 403 на известном сайте почти всегда означает, что сайт отверг сканер, а не что страница мертва — откройте её в браузере, прежде чем удалять ссылку.
Частые вопросы
- Почему рабочая ссылка показывает 403 или 429?
- Целевой сайт отверг наш запрос, а не страницу. Cloudflare и подобные сервисы встречают незнакомых сканеров проверкой с 403, а лимиты частоты отвечают 429. Проверка не может решить такую задачу и не пытается. Откройте URL в браузере: если он загружается, ссылка в порядке, а статус — это политика сайта в отношении ботов.
- В чём разница между внутренней и внешней битой ссылкой?
- Внутренние ссылки ведут на ваш хост и находятся при обходе; сканер загрузил страницу, получил ошибку и знает, откуда пришла ссылка. Внешние ведут в другое место и проверяются одним лёгким запросом каждая. Внутренние исправляйте редиректом или обновлением ссылки; для внешних обновите ссылку, найдите архивную копию или удалите её.
- Почему некоторые внешние ссылки не проверены?
- Запуск ограничивает внешние проверки 100 уникальными URL, по одному запросу в секунду на хост, чтобы быть вежливым к другим сайтам и уложиться в несколько минут. Проверка сообщает, сколько пропущено. Ссылки с rel="nofollow" не проверяются вовсе. Снимите галочку внешних ссылок, чтобы пропустить их полностью и сканировать быстрее.
- Отслеживает ли проверка редиректы?
- Для внутренних страниц — да: ссылка на URL, который через 301 ведёт на рабочую страницу, не битая, хотя редирект показан в аудите сайта, чтобы вы могли сократить цепочку. Для внешних ссылок редирект считается рабочим; дальше проверка его не отслеживает.
- Почему проверка не находит ссылку, о которой я знаю, что она битая?
- Либо страница, содержащая её, была вне обхода (за пределами лимита страниц, запрещена в robots.txt или недостижима по ссылкам от стартового URL), либо ссылка вставляется через JavaScript — сканер читает HTML как есть и не выполняет скрипты. Вкладка аудита показывает, какие страницы были просканированы.
- Как часто проверять?
- Внешние ссылки отмирают сами — несколько процентов в год на большинстве сайтов, — так что ежеквартальный запуск ловит большую часть. Внутренние ссылки ломаются при смене URL; проверяйте сразу после любого переезда, редизайна или массового переименования. Сайтам больше 200 страниц нужен инструмент, способный обойти их целиком; этот даёт выборку.