Hoe deze controle werkt
Scanaris verzamelt alle <a href>-links in de HTML van je pagina en houdt de interne over: die naar dezelfde origin verwijzen (domein, protocol en poort). Hij laat mailto:, tel:, javascript:, ankers die met # beginnen, links naar de pagina zelf en duplicaten vallen, en beperkt de lijst tot 25 om je server niet te bestoken. Hij bezoekt elke link en telt hem alleen als kapot wanneer hij 404, 410 of een 5xx-fout antwoordt. Omleidingen zijn geen fout, 401 of 403 ook niet (het kan een bewust privégedeelte zijn), en als het verzoek op netwerkniveau mislukt, wordt het niet geteld, om valse positieven te vermijden. Bij drie of meer kapotte links is de bevinding van gemiddelde ernst; bij een of twee laag. Hij toont er tot tien met hun statuscode.
Waarom dit belangrijk is
Een kapotte link is een doodlopende weg voor de gebruiker en voor Google. Voor de gebruiker een foutpagina waar hij het product, het artikel of het formulier verwachtte, en een reden om te vertrekken. Voor Google verspild crawlbudget en een signaal van een verwaarloosde site; bovendien gaat de autoriteit die die link aan de doelpagina doorgaf verloren. Kapotte links op de homepage zijn het ergst, omdat dat de meest gecrawlde pagina is en de pagina die de meeste mensen zien, en daarom begint deze controle daar.
Waarom het gebeurt
Pagina's die hernoemd of verwijderd zijn zonder de menu's of de inhoud die ernaar linkte bij te werken. CMS- of domeinmigraties die de URL-structuur veranderen. Handmatig getypte links met een tikfout. Een deploy die een route verwijderde waar de footer nog naar linkte. En op met AI gegenereerde sites links naar pagina's die de AI in het menu heeft verzonnen ("/pricing", "/docs") en die nooit hebben bestaan.
Hoe je het oplost
- Is de pagina verplaatst, dan een 301-omleiding van de oude URL naar de nieuwe. Dat herstelt in één keer alle links die ernaar wezen, ook die van andere sites. In Nuxt
routeRules; in Next.jsredirects(); op Vercel en Netlify het omleidingsbestand; in WordPress een omleidingsplugin. - Bestaat de pagina niet meer en heeft hij geen vervanger, verwijder dan de link. Wil je dat Google hem snel vergeet, antwoord dan 410 in plaats van 404.
- Is het een tikfout, corrigeer dan de
href. Frameworks met getypeerde routes (Nuxt mettypedPages, Next.js mettypedRoutes) maken van zulke fouten buildfouten. - 5xx-fouten zijn geen verkeerd geschreven links maar pagina's die niet laden. Bekijk de logs van die route: meestal een query die crasht of een bron die niet meer bestaat.
- Voeg een linkchecker toe aan de CI (
lychee,linkinator) zodat de volgende kapotte route productie nooit bereikt.
Controleer of het opgelost is
curl -s https://jouwdomein.nl | grep -oE 'href="/[^"#]*"' | cut -d'"' -f2 | sort -u | while read p; do
printf "%s " "$(curl -s -o /dev/null -w '%{http_code}' "https://jouwdomein.nl$p")"; echo "$p"
done | grep -E "^(404|410|5)"
Er mag geen regel uitkomen. Herhaal het naast de homepage op je belangrijkste pagina's: elke pagina heeft zijn eigen links.
Veelgestelde vragen
Mijn site is een SPA en niet-bestaande routes geven 200 met de app.
Dan kan deze controle je kapotte links niet detecteren, omdat alles 200 antwoordt. Maar Google detecteert ze wel als "soft 404" en behandelt ze als fouten. Configureer je server of framework zo dat onbekende routes met een echte 404 antwoorden.
En links naar andere sites?
Die worden niet gecontroleerd: veel sites blokkeren bots en zouden valse positieven geven. Controleer ze af en toe zelf met een desktoptool of met de CI-checker, die je kunt instellen om ze geduldiger te bezoeken.
Ik heb maar één kapotte link en hij is van lage ernst. Moet ik hem repareren?
Ja: het kost een minuut en de volgende scan bevestigt het. De andere ontwikkelresten die een kapotte link meestal vergezellen, zoals URL's naar localhost, worden gezocht door interne verwijzingen; en of Google de juiste lijst van je pagina's heeft, wordt gecontroleerd door robots en sitemap.