15.1 Gebruik een 301-redirect!
Website-ontwikkeling is een dynamisch verhaal. Daardoor komt het regelmatig voor dat pagina’s na verloop van tijd onder een nieuwe url geplaatst worden. Zelfs de grootste bedrijven vergeten dergelijke veranderingen op de juiste manier af te handelen.
Om maar meteen de juiste oplossing te geven: gebruik een 301-redirect!
Er zijn twee manieren om een redirect te realiseren:
- Client-side redirect
- Server-side redirect
Bij een client-side redirect wordt de redirect in de html-pagina zélf geregeld. Dit kan door een redirect in de meta-tags op te nemen (meta-refresh redirect) of door een stukje javascript-code in de pagina te plaatsen. Bij deze vorm van redirect moet dus eerst de pagina worden opgehaald en wordt in de browser van de ontvanger (of in de user-agent, zoals in het geval van zoekmachines) pas geconstateerd dat er een doorverwijzing naar een andere pagina ligt. Dan pas wordt de nieuwe pagina opgehaald. Deze methode heeft twee belangrijke nadelen. Ten eerste duurt het lang, want nieuwe én oude pagina moeten worden opgehaald. Maar nog belangrijker is het feit dat bij deze oplossing de oude pagina blijft bestaan. En precies hierin ligt een gevaar op de loer. Zoekmachine kunnen namelijk pagina’s met gelijke inhoud (of ‘duplicate content’) als spam beoordelen. Dit betekent dat als we over willen stappen naar een nieuwe pagina onder een nieuwe url, de oude moet worden verwijderd of in ieder geval onzichtbaar moet zijn, terwijl we toch een redirect willen regelen. De enige oplossing is een server-side redirect.
Bij een server-side redirect wordt de redirect geregeld bij de server waarop de webapplicatie draait. Hoe gaat dat in zijn werk? Op de server plaatsen we een bestand of een stukje code waarin we aangeven dat een bepaalde pagina, dus met een bepaalde naam, moet worden ge-redirect naar een andere pagina met de nieuwe naam. Daarbij geven we aan dat het een 301-redirect betreft. Via deze 301-code geven we aan dat het om een permanente verhuizing gaat. Als een zoekmachine deze code ziet weet deze dus wat de bedoeling is en zal/kan het de oude pagina uit de index halen en de nieuwe gaan indexeren. Het gevaar van duplicate content is hiermee dus bezworen. Verder is deze oplossing veel sneller als de pagina wordt opgevraagd door bezoekers van vlees en bloed: de oude pagina hoeft niet eerst naar hun webbrowser te worden toegehaald.
15.2 Hoe kan een 301-redirect worden gerealiseerd?
De meest ideale oplossing is er één m.b.v. een .htaccess-bestand die op de server in de rootdirectory van uw webapplicatie wordt geplaatst. Daar kunt u per pagina aangeven hoe u e.e.a. wilt redirecten:
redirect 301 /oud1.html http://www.mijndomein.nl/nieuw1.html
redirect 301 /oud2.html http://www.mijndomein.nl/nieuw2.html
Op deze manier resulteren de twee pagina's oud1.html en oud2.html in een 301-code mét nieuwe url waardoor de server van waaruit de aanvraag plaats vindt meteen de nieuwe pagina's (nieuw1.html respectievelijk nieuw2.html) kan aanvragen. Let op dat bij de oude pagina's niet de domeinnaam (noch de http://) wordt vermeld, maar slechts de bestandsnaam t.o.v. de rootdirectory. Van de nieuwe pagina's moet juist weer wel de volledige domeinnaam worden gespecificeerd.
Deze oplossing m.b.v. een .htacces-bestand is alleen mogelijk bij Apache-webservers. Als u een andere webserver gebruikt, dan moet de server-side redirect worden opgelost via een script dat op de webserver draait (server side scripts). Dat kan via vele talen als CGI/Perl, ASP.NET, JAVA, etc. Een voorbeeld van een 301-redirect in ASP.NET is:
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.mijndomein.nl /");
}
</script>
| << 14. W3C en xhtml | 16. Web2.0 en SEO >> |