301, 302, 404; hoe zit dat ook al weer?

Facebooktwitterlinkedin

Dit artikel is eerder verschenen op Emerce

Regelmatig komt het voor dat URL’s van websites gewijzigd worden. Vaak wordt gedacht dat zo lang de bezoeker maar een juiste pagina te zien krijgt, het wel in orde is. Vanuit SEO perspectief gezien is dit helaas vaak niet het geval. Op de achtergrond verzendt de server namelijk verschillende types statuscodes, die voor de gebruiker onzichtbaar zijn.

Voor de zoekbot van de zoekmachine en het overbrengen van linkwaarde zijn deze codes van groot belang. Omdat het verzenden onzichtbaar is en er verschillende mogelijkheden zijn die er voor de bezoeker hetzelfde uit zien, gaat dit vaak fout.  In de praktijk gaat dit vaak ten koste van de SEO-resultaten.

Een handige infographic van MOZ.com geeft simpel, maar duidelijk weer wat welke status precies inhoudt voor bezoeker, zoekmachine-bot en de opgebouwde linkwaarde.


Definitie van HTTP-statuscode
HTTP-statuscodes, ook wel headerstatuscodes genoemd, zijn codes die de server terug geeft aan de browser wanneer er een request wordt gedaan. Dit gebeurt in alle situaties waar een webserver een aanvraag moet behandelen. Denk hierbij aan deze HTML-pagina, bijbehorende infographic of je laatste tweet.

HTTP-statuscode 200 OK
De statuscode 200 wordt gegeven aan een URL die goed wordt ingeladen. Bijvoorbeeld: onze server heeft de statuscode 200 meegezonden naar jouw browser op het moment je deze pagina opende. Op het moment dat de server die melding kreeg, wist hij dat hij de HTML-pagina kon worden weergegeven.

Redirects
Bij het verhuizen van een pagina naar een andere locatie/URL is het belangrijk om ook een SEO-afweging te maken. Komt de URL geheel te vervallen, of slechts tijdelijk?

301: permanente redirect
De 301-header geef je mee wanneer een URL in zijn geheel komt te vervallen en de content op een andere locatie wordt geplaatst.

Stel: je hebt al jaren een pagina over ‘notebooks’, maar je wilt je vanuit SEO perspectief nu gaan focussen op ‘laptops’. Je besluit de content van ‘site.nl/notebooks’ over te plaatsen naar ‘site.nl/laptops’.  In dit geval is een permanente wijziging de juiste keuze; ‘site.nl/notebook’ zal niet meer gebruikt (gaan) worden. Het heeft voor die ’notebook’-pagina geen zin meer om te ranken en zijn waarde te behouden. Daarom stel je op ‘site.nl/notebooks’ een 301-redirect in richting ‘site.nl/laptops’.

  • De bezoeker wordt doorverwezen
  • De zoekbot wordt doorverwezen en toont de URL waar naar is doorverwezen in de zoekresultaten
  • De opgebouwde linkwaarde wordt (deels) doorverwezen

302: Gevonden (ook wel tijdelijke redirect)
Een 302 redirect gebruik je wanneer je naar verloop van tijd de oude URL weer gaat gebruiken. De nieuwe URL wordt slechts tijdelijk gebruikt.

Een 302-statuscode geeft aan de browser/zoekbot een seintje dat de pagina bestaat, maar geeft hier direct een locatie aan mee waar automatisch naar wordt  doorverwezen. Omdat wordt aangegeven dat de URL bestaat en daarna pas verwijst naar een andere URL, gaat de linkwaarde niet mee over.

In het geval van de ‘notebook’- en ‘laptop’-pagina zal de opgebouwde linkwaarde op ‘site.nl/notebooks’ blijven staan. Hierdoor zal de nieuwe laptop pagina geen voordeel ondervinden van de linkwaarde die de notebooks pagina heeft opgebouwd. Dit is terug te zien in bijvoorbeeld een lagere ranking voor de ‘laptop’-pagina, dan wanneer de ‘notebook’-pagina linkwaarde wél is doorverwezen.

  • De bezoeker wordt doorverwezen
  • De zoekbot wordt doorverwezen en toont de URL waar van af wordt doorverwezen in de zoekresultaten
  • De opgebouwde linkwaarde wordt niet doorverwezen

Niet-bestaande pagina’s en de HTTP-headerstatus
Bezoekers en zoekmachines komen op niet bestaande pagina’s terecht door interne of externe links die naar een URL verwijzen waarvan de inhoud niet meer bestaat. In een dergelijk geval is het belangrijk dat de bezoeker weet dat hij verkeerd zit. Dit is te bereiken door de foutpagina goed in te richten en op de achtergrond de juiste headerstatus mee te geven. De meest voorkomende headerstatus is in dit geval de 404.

404: niet gevonden
Pagina’s waar geen inhoudelijke content op te vinden is voor de bezoeker, behoren de 404 status te krijgen. Denk hierbij aan niet bestaande urls, zoals typfouten of URL’s die zijn komen te vervallen. Omdat er geen inhoudelijke content op deze pagina’s staat is het niet interessant om met een dergelijke URL te ranken. Wanneer de zoekbot een pagina tegen komt met de 404 status,dan wordt deze niet in de zoekresultaten opgenomen. Linkwaarde naar een pagina met de 404 status komt te vervallen.

  • De bezoeker krijgt een 404-pagina te zien
  • De zoekbot krijgt een 404-pagina te zien en neem de URL niet op in de resultaten
  • De linkwaarde gaat verloren

Doordat linkwaarde op een 404-pagina volledig wordt genegeerd, is het van belang om zo weinig mogelijk inkomende links op niet-bestaande pagina’s te krijgen. Je profiteert er namelijk niet van in de zoekresultaten. Beoordeel je linkprofiel daarom goed en vraag eventueel de bron om de link aan te passen, of plaats zelf een redirect op de URL die meerdere relevante inkomende links heeft.

500:  Interne serverfout
Een 500-statuscode wordt gegeven wanneer de server zelf een fout veroorzaakt, waardoor de inhoud van de URL niet geladen kan worden. Dit wordt bijvoorbeeld gebruikt wanneer een database- of scriptfout ontstaat.

  • De bezoeker ziet niets
  • De zoekbot ziet niets
  • Linkjuice gaat verloren.

503: Dienst niet beschikbaar
Deze headerstatus is ongeveer gelijk aan de 404-status. Ook in dit geval wordt aangegeven dat de pagina niet bestaat. Het verschil zit hem in het feit dat deze header een retry-header mee geeft. Op de achtergrond geeft de status aan dat het slechts een tijdelijke 404 is. Bijvoorbeeld in het geval dat er onderhoud wordt gepleegd aan de betreffende pagina.

  • De bezoeker wordt niet doorverwezen
  • De (Google)bot komt later terug
  • De opgebouwde linkwaarde wordt (tijdelijk) niet doorgegeven.

Zie de 404-statuscode als de permanente  ‘pagina bestaat niet’-melding en de 503 als de tijdelijke  ‘pagina bestaat niet’-melding.

Canonical tag
De canonical tag is de enige code in dit rijtje die in de HTML meegegeven kan worden. Het is enkel toepasbaar op pagina’s, niet op tweets of op afbeeldingen.

Met de canonical tag geef je aan wat de bron is van de content. Het liefst gebruik je een bron met 100% overlap van content. Dit kan zowel op hetzelfde domein als een extern domein zijn. Zo kan je deze blogpost in zijn geheel overnemen, mits je in de <head> van de pagina de <link rel=”canonical” href=”http://www.emerce.nl/achtergrond/301-302-404-hoe-zit-dat-al-weer”/> mee geeft en onderaan de pagina de bron met link vermeldt.

Wanneer je dat doet, zal de bezoeker op jouw site de content lezen. De zoekbot wordt echter doorverwezen naar de in de canonical tag genoemde pagina, evenals de linkwaarde. Dus ook de (negatieve) linkwaarde die je opbouwt op jouw site/blog.

  • De bezoeker blijft op de aangevraagde pagina
  • De zoekbot wordt doorverwezen naar de bron
  • De linkwaarde wordt doorgegeven aan de bron.

Header-checkers
Browsers en zoekbots zien bij iedere aanvraag van een pagina de headerstatuscode. Het is belangrijk dat de juiste code wordt meegegeven, vooral bij de redirects. Wanneer je zeker wilt weten of de juiste headerstatus is ingesteld, dan kun je dit makkelijk controleren met verschillende tools. Veelgebruikte header-checkers zijn onder andere:

Daarnaast is de volgende Google Chrome-plugin handig: Redirect Path. Deze geeft bij iedere geladen pagina netjes de statuscode weer in het geval dat het geen ‘200 OK’- status is.

Foto: By Rock1997 (Own work) [GFDL or CC-BY-SA-3.0-2.5-2.0-1.0], via Wikimedia Commons

2 reacties

Het is niet mogelijk om te reageren.