Platforms

How to find broken links on a custom-built website

No plugin will crawl your Laravel, Django, or homemade PHP. Scan the HTML Chrome renders, then fix hrefs in templates and 301s on the server.

A custom site has no “broken link plugin.” That is not a problem. The HTML is still HTML.

Laravel, Symfony, Django, Nest, “the intern’s PHP from 2014,” a bank’s Java portal — the checker does not need to know the framework. It needs the page as the browser draws it.

What custom stacks hide

  • Templates (Blade, Twig, Jinja, ERB) with a hardcoded /old-promo.
  • SPA routes (#/about or a client router) that look fine in the app and 404 when a crawler or a pasted URL hits the server. Scan after JS ran.
  • try_files / history API fallback that serves index.html with 200 for missing paths — soft 404.
  • Object storage images with expired signed URLs. Broken images.
  • Microsites (promo.bank.ru, event.client.com) still linked from the mothership footer.

How to work

  1. Open production (or staging with the same nav). Run Advanced Broken Links Search on the templates that actually ship: home, inner, listing, 404 page itself.
  2. Crawl the host if the IA is more than five URLs. Respect robots; pause if the app is fragile.
  3. Put 301s in nginx/Caddy/CDN, not in JavaScript location.href.
  4. After a release, scan the same templates again. A CMS plugin will not appear in your repo. A CI step that opens Chrome can.

If the site is a constructor (Tilda, Bitrix, KIT), use that article. If nobody but you can log into an admin called “pages,” you are here. Scan the DOM. Fix the template. Redirect on the edge.

Check the page you just read about

Install Advanced Broken Links Search and scan the live page — links, images, redirects. Free, no account.

Add to Chrome — free

Related reading