Находите битые ссылки раньше ваших посетителей

Каждую битую ссылку на вашем сайте кто-нибудь найдёт. Единственный вопрос — будет ли этим кем-то вы, запускающий проверку тихим днём, или посетитель посреди покупки, клиент, идущий по ссылке в вашей документации, или поисковый робот, решающий, чего стоят ваши страницы. Ссылки гниют тихо — страницы переезжают, домены меняются, картинки переименовываются, партнёры реорганизуются, — и ничто на самой странице не объявляет о распаде. Эта статья о том, когда запускать проверку битых ссылок, что на самом деле означают статусы, которые она сообщает, в каком порядке исправлять найденное и каковы честные пределы проверки по одной странице за раз.

Когда запускать проверку битых ссылок

Самые ценные моменты — те, когда URL меняются оптом. После редизайна шаблоны перестраиваются, а навигация переписывается, и ссылка, бывшая правильной годами, может тихо указать на путь, который новый дизайн больше не обслуживает. После миграции — новая CMS, новая платформа, новая структура URL — каждая внутренняя ссылка фактически становится новым утверждением о том, где живёт содержимое, и часть этих утверждений окажется неверной. После смены домена старые адреса, партнёрские ссылки и встроенные картинки зависят от перенаправлений, которые кто-то должен был не забыть написать. Запускайте проверку как часть запуска, а не после первой жалобы.

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

Что статусы означают на самом деле

Проверка ссылок сводится к одному вопросу на ссылку: что отвечает сервер, когда по ссылке переходят? OK означает прямой успех (2xx). Перенаправление означает, что ссылка работает только через один или несколько прыжков 3xx — сегодня нормально, но каждый прыжок — это обещание, которое кто-то должен держать. Битая означает ответ 4xx, чаще всего 404 Не найдено: обещанной страницы там нет. Ошибка сервера означает ответ 5xx: страница может существовать, но её сервер не смог её доставить. Тайм-аут и недоступна означают, что пригодного ответа вообще не прибыло, — медлительность, мёртвый хост, сбой DNS. А пропущена означает, что проверяющий намеренно не запрашивал цель, потому что она разрешается в частный или заблокированный адрес.

Поисковые системы читают те же ответы. Собственная документация Google о том, как HTTP-коды состояния влияют на его роботов, говорит, что ответ 2xx позволяет содержимому рассматриваться для индексации, что роботы следуют перенаправлениям (по умолчанию до 10 прыжков) и обращаются с конечной целью как со страницей, которая имеет значение, и что URL, возвращающие 4xx, не индексируются — и удаляются из индекса, если были в нём, — а устойчивые ошибки 5xx замедляют обход и в конце концов тоже могут уронить страницы. Вот почему битая внутренняя ссылка хуже косметического дефекта: робот идёт по ней, не получает ничего, и ценность ссылки вместе с местом цели в индексе испаряются.

Исправляйте в этом порядке: внутренние 404, цепочки перенаправлений, картинки

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

Цепочки перенаправлений — вторыми. Одно перенаправление после переезда — норма. Цепочка — старый URL перенаправляет на более новый, который перенаправляет на текущий, — стоит кругового пути на прыжок при каждом щелчке, а каждый прыжок — ещё одно правило, которое может потеряться при следующей миграции. Обновите саму ссылку на конечный адрес; когда вам нужно увидеть прыжки, трассировщик цепочек HTTP-статусов раскладывает их по одному. Картинки — третьими. Битая картинка редко мешает чтению страницы, поэтому она ждёт позади первых двух, — но исправьте её: восстановите файл, поправьте путь или уберите тег, потому что страница, усыпанная рамками отсутствующих картинок, читается как заброшенная, а иногда «картинка» на самом деле — диаграмма или фотография продукта, от которых зависит текст.

По одной странице за раз — и почему этот объём честен

Проверяющий, идущий в паре с этой статьёй, исследует одну страницу за запуск и не более 300 ссылок на ней, и говорит об этом на своей поверхности. Этот объём — осознанный компромисс. Одну страницу можно получить, разобрать и полностью проверить достаточно быстро, чтобы это стало частью цикла правка–публикация: измените страницу, запустите проверку, исправьте найденное, опубликуйте. Он также держит счета точными — найдено ссылок, проверено ссылок, перечислено, но никогда не запрошено ссылок (mailto:, tel: и фрагменты внутри страницы не являются HTTP-запросами и сообщаются как таковые, вместо того чтобы рядиться в выдуманные статусы), и результат, помеченный как частичный всякий раз, когда запуск останавливается, не покрыв всё, вместо тихого обрезания, переодетого полнотой.

Обнаружение по всему сайту — другая работа с другими инструментами: ваша CMS знает каждую страницу, которую вы публикуете, журналы вашего сервера показывают каждый 404, на который реальные посетители и роботы уже наткнулись, а Search Console сообщает об ошибках, с которыми столкнулся сам Google. Используйте их, чтобы решить, какие страницы заслуживают проверки, затем проверяйте их по одной и исправляйте найденное. Чего проверяющий одной страницы никогда не должен делать — так это притворяться обходом; а чего никогда не должны делать вы — позволять отсутствию инструмента для всего сайта помешать вам проверить ту горсть страниц, которые несут ваш трафик.

Сделайте это привычкой, а не событием

Сайты с наименьшим числом битых ссылок — не те, у кого самая большая ежегодная уборка; это те, где проверка привязана к изменению. Всякий раз, когда меняется структура URL, шаблон, меню или папка медиа, страницы, ссылающиеся наружу, проходят проверку до того, как изменение считается завершённым. Всякий раз, когда содержимое удаляется, вопрос «что сюда ссылалось?» задаётся, пока ответ ещё лёгок. Эта привычка стоит минут на изменение и предотвращает позднейшую археологию отчёта на тысячу ссылок.

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

Источники и дальнейшее чтение

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

Как часто мне следует искать битые ссылки?

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

Вредят ли битые ссылки SEO?

Битая внутренняя ссылка тратит ценность, которую эта ссылка передавала, и шлёт роботов в тупик; согласно документации Google, URL, возвращающий 4xx, не индексируется и удаляется из индекса, если был в нём, а устойчивые ошибки 5xx уменьшают обход. Случаи, когда внешние ссылки умирают, — нормальный веб-распад, а не чрезвычайная ситуация: исправляйте те, что на страницах, которые имеют значение, начиная с ваших собственных внутренних 404.

Следует ли мне перенаправлять каждую битую ссылку на главную страницу?

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