Omslag van 'Webtechniek voor niet-techneuten'

9. HTTP-statuscodes

Als iemand in zijn browser een pagina bezoekt, dan gaat er een verzoek (request) vanuit zijn browser naar de webserver, waar de site staat. De server antwoordt met een zogenaamde HTTP-statuscode. Bekende statuscodes zijn 404, 200, 301 en 500.

9.1 Overzicht HTTP-statuscodes

Als je een webadres in je browser intypt en op Enter drukt, dan verstuurt jouw browser een verzoek (request) aan de server om de pagina aan jou te sturen. De server geeft altijd een antwoord, dat gebeurt met een zogenaamde HTTP-statuscode of server respons code.

De mogelijke antwoorden zijn:

  • 2xx: De pagina of het bestand is gevonden.
  • 3xx: De pagina of bestand staat op een ander adres, de server verwijst het verzoek door.
  • 4xx: De pagina of bestand is niet gevonden.
  • 5xx: De server heeft een probleem.

Deze communicatie gaat als volgt: de browser (client) vraagt aan de server 'Mag ik de pagina "index.html" van jou?'; de server geeft een antwoord:

  • Alsjeblieft, hier is het bestand. (200 OK)
  • Kan hem echt nergens vinden. (404 Not Found)
  • De pagina is verwijderd. (410 Gone)
  • Je moet ergens anders zijn. Ik stuur je verzoek door naar het andere adres. (301 Moved Permanently of 308 Permanent Redirect)
  • Je moet tijdelijk ergens anders zijn. Ik stuur je verzoek door naar het andere adres. (302 Temporary Redirect)
  • Sorry, maar de website werkt niet. (500 Internal Server Error)
Tip: Controleren op de statuscode doe je met de add on Web Developer (Chrome en Firefox)

9.2 Statuscode 404: Niet gevonden

Als een pagina niet gevonden wordt, krijg je in je browser een 404-melding. Deze melding geeft de server als hij een adres niet kan vinden.

404-melding: het foutieve adres blijft staan in de adresbalk

Het webadres dat je invoerde blijft staan in de adresbalk. Dat is makkelijk, want dan kun je zien of je wellicht een typefout hebt gemaakt bij het invoeren.

Als eigenaar van een website probeer je te voorkomen dat bezoekers zo'n melding krijgen. Je kunt het natuurlijk niet altijd voorkomen. Als een bezoeker zelf een typefout maakt of er staat ergens op een andere site een verkeerde verwijzing naar jouw site, dan kun jij daar niet veel aan doen. Maar soms ligt de oorzaak wel in je site, bijvoorbeeld als je een pagina hebt hernoemd en geen doorverwijzing hebt gemaakt van de oude pagina naar de nieuwe.

Er zijn een paar programma's waarmee je kunt controleren of deze meldingen ook op jouw site voorkomen:

Wat de site in ieder geval niet moet doen is een zogenaamde zachte 404-melding geven. Daarover verderop in dit hoofdstuk meer.

9.3 Statuscode 410: Verwijderd (Gone)

De 410 communiceert dat een pagina is verwijder. Maar voor zoekmachines is deze niet anders dan de 404. Dus er is geen reden om deze te gebruiken.

9.4 Statuscode 301: Permanente redirect (ook 308)

De manier om een pagina door te verwijzen is een 301-redirect of een 308-redirect.

Voorbeeld:

Je hebt een pagina "cursus.html" en je wilt deze hernoemen naar "training.html". Als je gewoon de naam verandert, dan krijgen de bezoekers die nog cursus.html intypen een 404-melding. Dat wil je voorkomen, want je wilt graag dat ze toch op de juiste pagina uitkomen.

Op de server stel je daarom in dat de pagina cursus.html redirect naar training.html. Dit doe je via een permanente 301-redirect.

Veel CMS-en hebben een tool waarmee je dit kunt doen.

Je kunt ook een hele directory redirecten. Dat kun je zelf met het bestand .htaccess, maar dit kun je ook aan de webbouwer vragen. In sommige CMS-en kun je dit ook zelf doen.

Het redirecten van een pagina kan ook in de browser, met een meta-refresh. Dat is altijd af te raden, want de pagina geeft dan een responscode 200 OK door. Zoekmachines denken dus nog steeds dat die pagina er nog is, terwijl die eigenlijk niet meer gebruikt wordt.

9.5 Statuscode 302: Tijdelijke redirect (temporary redirect, ook 307)

Als de verwijzing tijdelijk is, dan gebruik je een 302-redirect (of 307). Dit is zelden het geval en daarom kun je beter in de gangbare situaties een 301 of 308 gebruiken.

Bij een tijdelijke redirect blijven zoekmachines de oorspronkelijke url indexeren en dat wil je meestal niet.

9.6 Statuscode 500: Serverfout

Als het probleem op de server ligt, dan kan je een 500-serverfout geretourneerd krijgen.

Het kan zijn dat de server tijdelijk overbelast is en dat de pagina een paar seconden later wel geladen wordt. Dit soort fouten wil je echter ook altijd zien te voorkomen. Via Google Search Console kun je controleren of deze pagina vaak is getoond aan bezoekers. Zo ja, dan is het tijd om dit verder te onderzoeken, bijvoorbeeld door het na te vragen bij je provider. Ook kan het reden zijn om de performance van je site structureel te gaan meten.

Behalve een 500-fout zijn er ook andere foutmeldingen in de 500-range, zoals een 501 en een 502.

Voorbeeld van een 500-melding

9.7 Foutief gebruik

Soft 404

Sommige sites hebben een algemene pagina waar alle pagina-niet-gevonden-meldingen op uitkomen. Dus als je zoekt op:

www.ncdt.nl/ikbestaniet/

dan redirect zo'n site naar bijvoorbeeld:

www.ncdt.nl/pagina-niet-gevonden/

De respons van de server is hier echter niet een 404 Not Found, maar een 200 OK. Dit heet een "soft 404". Je zou in deze tijd wellicht beter kunnen zeggen een 'fake 404'.

Dit heeft allerlei nadelen:

  • Zoekmachines denken dat de pagina nog bestaat, want ze krijgen een 200-melding. Dus blijft de verkeerde verwijzing naar de pagina in hun database. Foutieve links naar je site blijven bestaan.
  • Omdat het adres wijzigt, ziet de gebruiker niet meer welk adres hij heeft ingevoerd en weet dus niet of hij wellicht een typefout heeft gemaakt.
  • In de programma's om je site te controleren kun je dan niet meer makkelijk zien of er 404-meldingen zijn.

Client redirect

Het redirecten van een pagina kan ook in de browser, met een meta-refresh. Meestal wordt 0 seconden refreshtijd aangehouden, om de pagina direct door te leiden. Deze browser-redirect heeft echter alleen nadelen:

  • De oude pagina moet eerst geladen worden in de browser voordat deze kan doorverwijzen. De bezoeker moet hierdoor onnodig langer wachten.
  • Zoekmachines zien niet dat de pagina doorverwijst. Dat is wel het geval bij een 301-redirect: daar krijgt de zoekmachine de juiste responscode (301) terug.

Een browser-redirect van 0 seconden kan zelfs negatieve gevolgen voor de ranking van je site hebben, omdat zoekmachines dit soms inschatten als spam.

Conclusie: gebruik voor het doorverwijzen altijd een server-redirect.

Tip: met ScreamingFrog kun je achterhalen of je site gebruik maakt van browser redirects.

302 in plaats van 301

Vaak verwijzen redirects met een 302 en niet met een 301. Dat komt omdat de standaardinstelling voor redirects 302 is. Bijvoorbeeld de code in htaccess is:

RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R]

De [R] staat voor de redirect. Het wordt pas een 301-redirect als je dit expliciet vermeldt:

RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]

Als je aan je provider of je webbureau vraagt om een redirect te plaatsen, vertel dan dat je een 301-redirect wilt.

9.8 Nieuwe structuur van je site

Een ander vraagstuk wat kan spelen is dat je een nieuwe site hebt gekregen met een nieuwe indeling van de content. Met vaak een nieuw menu. Hoe zorg je er nu voor dat bezoekers de oude content nog kunnen vinden. Of als deze verdwenen is, hoe ze wel verder geholpen kunnen worden.

Hierin zijn 3 stappen belangrijk:

  • Zorg voor 301-redirects om de oude pagina's door te sturen naar de nieuwe. Je kunt ook een hele directory redirecten, bijvoorbeeld als de directory in de oude structuur "producten" heette en in de nieuwe structuur "grasmachines".
  • Gebruik een 410 voor pagina's die verwijderd zijn en niet logisch geredirect kunnen worden.
  • Zorg dat je een sitemap.xml hebt die dynamisch wordt gegenereerd. (zie hoofdstuk 6 over de sitemap)
  • Monitor je site elke dag op 404-meldingen met bijvoorbeeld ScreamingFrog.

9.9 Testen statuscodes

Per pagina:

Hele site:

top

Was dit nuttig?

Feedback

Contact

Vul dit in als je wil dat we contact met je opnemen.