Naar hoofdinhoud springen

Handleidingen / HTTP-statuscodes uitgelegd

404 Not Found: kapotte links, soft 404's en wanneer u 410 gebruikt

Een 404 Not Found betekent dat de server op dit moment geen representatie heeft voor die URL, en zegt niets over of de resource ooit bestond of nog terugkomt. Die dubbelzinnigheid is precies het punt: een 404 kan een kapotte link zijn die u moet herstellen, een pagina die u met opzet heeft verwijderd, of een pagina die perfect werkt en alleen doet alsof die ontbreekt.

Wat een 404 wel en niet vertelt

Volgens RFC 9110 betekent een 404 dat de oorspronkelijke server geen actuele representatie voor de doelresource vond, of niet bereid is te onthullen dat er een bestaat. Twee details volgen uit die formulering.

Ten eerste is een 404 met opzet vrijblijvend over blijvendheid. Het belooft niet dat de URL dood blijft, en daarom blijven crawlers 404-URL's lange tijd opnieuw proberen. Ten tweede is een 404 standaard cachebaar onder RFC 9111, dus een cachende proxy of CDN kan de fout opslaan en die blijven serveren nadat u het onderliggende probleem al heeft opgelost. Wis altijd de cache na een 404-fix en test opnieuw.

Een 404 is ook een normaal, gezond antwoord. Elke site geeft er wel een paar terug. De 404's die uw tijd waard zijn, zitten op URL's die zouden moeten werken, of op URL's die mensen proberen te bereiken.

Deze twee gevallen zien er in een statuscode identiek uit en vragen om tegenovergestelde reacties.

Een kapotte link betekent dat de content bestaat maar de URL fout is. De gebruikelijke oorzaken zijn een typefout in een interne link, een slug die is aangepast na publicatie, een verschil in hoofdlettergebruik, een verschil in afsluitende schuine streep, een sitemigratie die het URL-schema veranderde, of een deployment die stopte met het uitleveren van een bestand. De oplossing is de URL herstellen of doorverwijzen.

Een echte verwijdering betekent dat de content weg is en niet terugkomt: een verlopen vacature, een uitgefaseerd product, een verwijderde accountpagina. Hier is een 404 eerlijk maar lui, want die laat crawlers het blijven proberen en bezoekers met niets achter.

Praktische manier om ze uit elkaar te houden: bestaat er vandaag ergens op de site een gelijkwaardige pagina? Zo ja, verwijs door. Zo niet, kies tussen 404 en 410.

410 Gone, het eerlijke alternatief

410 zegt dat de resource beschikbaar was en met opzet is verwijderd, en dat die toestand naar verwachting blijvend is. Waar 404 "niet gevonden" betekent, betekent 410 "met opzet verwijderd, stop met vragen".

Gebruik 410 wanneer u bewust content met pensioen stuurt en geen vervanging heeft. Het is het juiste signaal voor verlopen vacatures, uitgefaseerde productpagina's en content die om juridische of redactionele redenen is verwijderd. Zoekmachines behandelen 410 over het algemeen als een sterker, sneller verwijderingssignaal dan 404, al laten beide de URL uiteindelijk vallen. Net als 404 is 410 standaard cachebaar.

Gebruik 410 niet voor iets wat u misschien nog herstelt, en gebruik het niet als algemene afhandelaar voor onbekende URL's. Bestaat er een geschikte vervangende pagina, dan is een redirect beter dan beide codes, en de keuze van de redirect doet ertoe: zie 301 versus 302 om de juiste te kiezen.

Soft 404's en waarom monitors ze missen

Een soft 404 is een pagina die 200 OK teruggeeft terwijl de inhoud zegt dat de resource ontbreekt. Dat gebeurt wanneer een applicatie zijn eigen niet-gevonden-conditie opvangt en een vriendelijke "pagina niet gevonden"-template weergeeft zonder de statuscode in te stellen, of wanneer een catch-all-route de homepage serveert voor elke niet-overeenkomende URL.

Zoekmachines en uptimemonitors lezen dezelfde pagina dan op tegenovergestelde manieren. Google inspecteert de weergegeven content, herkent het patroon van ontbrekende content en classificeert het als een soft 404 in Search Console, dus de URL wordt niet geïndexeerd maar er wordt nog steeds crawlbudget aan besteed en het signaal raakt vertroebeld. Een monitor die statuscodes vergelijkt, ziet 200 en meldt de pagina als gezond, en zo kan een heel onderdeel "niet gevonden"-tekst serveren aan elke bezoeker terwijl het dashboard groen blijft.

De oplossing op de site is een echte 404 teruggeven met de foutpagina, wat niets kost en beide lezers tevreden stelt. De oplossing in monitoring is zowel op content als op status te toetsen: controleer of een bekende zin van de echte pagina aanwezig is, zodat een pagina die 200 teruggeeft met de verkeerde body de check toch niet doorstaat.

Hoe u 404's in de juiste volgorde oplost

  1. Bevestig de werkelijke code, niet de zichtbare pagina. Een vriendelijk foutscherm bewijst niets:
    curl -sS -o /dev/null -w "%{http_code}\n" https://example.com/missing-page
    Toont dat 200 voor een pagina waar "niet gevonden" op staat, dan heeft u een soft 404.
  2. Vind welke URL's worden geraakt. Server-toegangslogs en Search Console vermelden beide 404-URL's met volume. Los op naar verkeer, niet alfabetisch.
  3. Herstel eerst interne links. Een 404 die vanuit uw eigen navigatie wordt bereikt, ligt volledig binnen uw eigen controle en is de meest waardevolle fix.
  4. Verwijs door waar een echt equivalent bestaat. Koppel de oude URL aan de dichtstbijzijnde huidige pagina, één URL tegelijk. Vermijd alles doorsturen naar de homepage, wat zoekmachines ook als soft 404 behandelen.
  5. Geef 410 terug voor bewuste verwijderingen zonder vervanging, zodat crawlers stoppen met opnieuw proberen.
  6. Maak de 404-pagina nuttig. Zoeken, hoofdnavigatie en populaire links redden bezoekers die een kale foutpagina verliest.
  7. Wis caches en test opnieuw. Omdat een 404 cachebaar is, verifieert u de herstelde URL van buiten uw netwerk, niet alleen vanaf de oorsprong.

De code en de content samen controleren

Een slug-aanpassing, een plugin-update of een routeringswijziging breekt een set URL's terwijl de homepage blijft laden, dus niets waarschuwt en niemand merkt het tot verkeer of conversies dalen. Een geplande HTTP-controle op uw belangrijke URL's vergelijkt zowel de statuscode als de verwachte pagina-inhoud, wat een echte 404 en een soft 404 allebei opvangt. Voor de bredere familie van client-side codes, en om een echte clientfout van een serververkeerde-configuratie te onderscheiden, zie het 4xx-overzicht.

Nu controleren

Voer de gratis check uit op je eigen site, zonder account.

HTTP check

Dit permanent monitoren

Ontvang een melding zodra er iets misgaat: HostTracker controleert vanaf meer dan 300 locaties en waarschuwt je via e-mail, sms, Slack, Telegram en meer.

HostTracker-functies

Meer in dit onderdeel: HTTP-statuscodes uitgelegd