Как найти битые ссылки на самописном сайте
Фреймворк не решает задачу проверки: важен HTML, который видит Chrome. Как сканировать Laravel, Django и другой кастом, править href в шаблонах и ставить 301 на сервере.
На самописном сайте нет кнопки «плагин битых ссылок» в админке, и это нормально. Для проверки не важно, на чём собран бэкенд: Laravel, Symfony, Django, Nest или старый монолит. Важна страница так, как её рисует браузер: те же href и src, что видят пользователь и робот после выполнения шаблонов и скриптов.
Что прячет самопис
- Шаблоны (Blade, Twig, Jinja, ERB) с зашитым
/old-promo. - SPA-маршруты (
#/aboutили клиентский роутер): в приложении переход «работает», с сервера по прямому URL часто 404. Сканируйте после того, как отработал JavaScript, или проверяйте SSR-версию, если она есть. - try_files / fallback на
index.htmlс 200 для несуществующих путей: мягкая 404. - Картинки из S3 с истёкшей подписью URL. Отдельно про битые изображения.
- Микросайты (
promo.bank.ru,event.client.com), на которые всё ещё смотрит подвал «большой» площадки.
Как работать
- Боевой сайт (или тестовый стенд с тем же меню и шаблонами). Advanced Broken Links Search на страницах, которые реально отдаются наружу: главная, типовая внутренняя, листинг, страница 404.
- Обход хоста, если структура сайта больше пары десятков URL. Уважайте robots.txt; ставьте паузу, если приложение хрупкое под нагрузкой.
- Постоянные редиректы 301 настройте в nginx/Caddy/CDN, а не через
location.hrefв JavaScript. - После релиза прогоните те же шаблоны снова. Плагина в репозитории не появится, зато можно добавить шаг CI, который открывает Chrome и проверяет ключевые URL.
Если это конструктор (Тильда, Битрикс, KIT), смотрите профильную статью. Если страницами управляете только вы и команда разработки, логика простая: сканируйте DOM, чините шаблон и конфиг, редирект ставьте на краю (веб-сервер или CDN).
Проверьте опубликованную страницу на боевом домене
Откройте страницу так, как её видит пользователь, и просканируйте ссылки и изображения в Chrome. Без аккаунта.
Установить в Chrome