breadcrumb-navxt
domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init
action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vhosts/onetomarket.nl/httpdocs/wp-includes/functions.php on line 6114Iedere website heeft te maken met updates van URLs, pagina's die gewijzigd worden en oude domeinen die naar een nieuw domein verhuizen. Bijvoorbeeld bij een rebranding.
Stel nu dat je website volledig vernieuwd is. Het domein is veranderd van oud.nl naar nieuw.nl. Zoekmachines als Google en Bing hebben vaak de oude URL’s in hun index opgenomen en sturen bezoekers naar die inmiddels verwijderde of gewijzigde pagina’s toe. Hoe voorkom je dat bezoekers via oude links op een gewijzigde pagina binnen komen en vervolgens een ‘404 not found’ foutmelding te zien krijgen?
Heel specifiek vertelt de 301 redirect de browser of de zoekmachine dat de opgevraagde pagina verhuisd is en het stuurt de cliënt (browser of search engine) automatisch door naar het nieuwe adres. Het vertelt ze, in mensentaal: ‘Hey, deze pagina is verhuisd en hier het nieuwe adres!’ Het zal de jou als lezer vooral gaan om de techniek. Daar gaan we in dit artikel verder op in!
De beste manier om pagina’s permanent te verhuizen is met de zogenaamde ‘301 redirect’. Wat deze 301 redirect doet, is het automatisch doorsturen naar een nieuwe pagina wanneer het opgeroepen wordt. Dit maakt de 301 redirect de beste, omdat het de bezoeker niet alleen automatisch doorstuurt (dat doet de zogenaamde ‘302 redirect’ ook), maar ook omdat je de autoriteit van de oude pagina doorstuurt naar de nieuwe pagina.
Hieronder vind je verscheidene methoden om een 301 redirect te gebruiken: PHP, ASP, ASP.NET, JSP (JAVA), IIS, ColdFusion, CGI/PERL en tenslotte met .htaccess. De krachtigste techniek betreft gebruikmaking van de zogenaamde apache mod_rewrite module in httpd.conf of .htaccess.
301 redirect: permanente verwijzing. Verwijst bezoekers en zoekmachines door naar nieuwe URL.
De opgebouwde waarde van de inkomende links wordt overgezet naar de nieuwe URL.
302 redirect: tijdelijke verwijzing. De zoekmachines gaan er van uit dat de oorspronkelijke pagina op korte termijn weer zal werken. De waarde van de inkomende links blijft gekoppeld aan de oorspronkelijke URL.
Het grote voordeel van het gebruik van .htaccess is dat redirects op een server-niveau geregeld kunnen worden. In tegenstelling tot bij de genoemde programmeertalen kan met een .htaccess een gehele directory geredirect worden.
Hoe werkt een 301 redirect via een .htaccess?
Redirect 301 /oud/oud.html http://www.jouwsite.nl/nieuw.html
Let op: het eerste deel van de statement betreft het pad van het oude bestand VANAF de top level van de site (dus zonder 'http://www'). Let er ook op dat er één spatie staat tussen deze elementen:
redirect 301 (de instructie dat de pagina permanent verhuisd is)
/oud/oud.html (het oude relatieve pad en naam)
http://www.jij.nl/nieuw.html (nieuwe complete pad en naam)
Let ook op dat het niet verplicht is om pagina's te redirecten naar een nieuwe domeinnaam. Binnen een domein kan dit ook!
Wanneer iemand naar jouw site linkt, doen ze dat niet altijd op precies die wijze die jouw voorkeur heeft. Als iemand linkt naar http://www.jouwsite.nl en iemand anders linkt naar http://jouwsite.nl, dan zal Google voor iedere URL een aparte pagerank toekennen. Ja, dat is onhandig, maar het is ook waar. Met de code hieronder kan je dat aanpassen. Overigens, diegenen die in Google Webmaster Central gebruik maken van sitemaps, kunnen onder het ‘preferred domain’ submenu aangeven of ze liever hebben dat Google de www-variant of de www-loze variant van hun website indexeert.
RewriteEngine On
rewritecond %{http_host} ^jouwsite.nl
rewriteRule ^(.*) http://www.jouwsite.nl/$1 [R=301,L]
Bij de meeste server-side scripting en programmeertalen is het gebruik van 301-redirect vrij eenvoudig.
In Coldfusion werkt het als volgt:
<cfheader statuscode="301" statustext="Moved permanently">
<cfheader name="Location" value="http://www.jouwsite.nl/">
Gebruik de onderstaande code:
<?php
header( "Status: 301 Moved Permanently" );
header( "Location: http://www.jouwsite.nl/" );
exit(0); // dit is optioneel, maar wordt wel aangeraden. Hiermee voorkom je onnodige output
?>
p.s.: de Microsoft server IIS crasht als je de volgende (veelgebruikte) regel gebruikt:
header( "HTTP/1.1 301 Moved Permanently" );
Gebruik de onderstaande code:
<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.jouwsite.nl /"
%>
Gebruik de onderstaande code:
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.jouwsite.nl /");
}
</script>
Gebruik de onderstaande code:
<%
response.setStatus(301);
response.setHeader( "Location", "http://www.jouwsite.nl /" );
response.setHeader( "Connection", "close" );
%>
Gebruik de onderstaande code:
$q = new CGI;
print $q->redirect(" http://www.jouwsite.nl / ");
Gebruik de onderstaande code:
def old_action
headers["Status"] = "301 Moved Permanently"
redirect_to "http://www.jouwsite.nl/"
end
Vanuit SEO is de redirect via HTML of Javascript niet aan te raden. In het verleden is de zogenaamde 'meta-tag refresh redirection' methode vaak misbruikt met als doel om te spammen. Het resultaat hiervan is dat gebruik hiervan slecht wordt opgepikt door de zoekmachines.