Zoekmachine bots en serverbelasting

Zoekmachine bots zoals de Googlebot kunnen een grote impact hebben op de serverbelasting. De load kan zelfs ongemerkt van het ene op het andere moment gigantisch toenemen, zonder dat je als websitebeheerder iets hebt verandert. Gelukkig zijn er een aantal acties die je kunt ondernemen om de belasting weer op een gezond niveau te krijgen.

We hebben hier zelf met onze eigen site byte.nl ook mee te maken gehad en zullen daarom aan de hand van printscreens en praktische tips toelichten hoe je de load veroorzaakt door zoekmachine bots zoals de Googlebot kunt terugdringen en dus ook je BPU. Het kan dus nogal schelen in je portemonnee.

En een ander bijkomend voordeel is natuurlijk dat een lage serverbelasting ook nog eens gunstig is voor de snelheid van de server en dus voor de snelheid van je website. En ja, dat is natuurlijk ook zeker niet onbelangrijk! 🙂

Wat zijn zoekmachine bots en wat doen ze?

Een zoekmachine bot, ook wel bekend als zoekmachine spider, is een geautomatiseerde programma dat websites indexeren ten behoeve van de weergave in de zoekresultaten. Dat doorzoeken van pagina’s wordt ook wel crawlen genoemd.

De bots bekijken de leesbare content van de pagina’s die ze scannen. Die content is nodig om te bepalen bij welke zoekopdrachten in de zoekmachine de pagina’s relevant zijn. Daarnaast worden linkjes die de bots tegenkomen op de pagina’s onder andere gebruikt om nog onbekende pagina’s te vinden. Als je je website niet handmatig aanmeldt bij de zoekmachines, is dit de manier waarop deze toch terecht komen in de zoekresultaten van zoekmachines.

Zoekmachine bots en serverbelasting

Voor de load op de servers is er geen verschil of een pagina wordt opgevraagd door een zoekmachine bot of door een ‘normale’ bezoeker. Voor ieder verzoek zijn er resources van de webserver en eventueel ook databaseserver nodig. Hoe vaker de zoekmachine bots je site bezoeken en hoe groter het aantal pagina’s dat ze bekijken, des te hoger ook de belasting voor je servers.

googlebot crawlstatistieken byte.nl
Googlebot crawlgegevens byte.nl

Als de verschillende zoekmachine bots dus erg vaak langs komen of je website erg veel verschillende pagina’s bevat die de bots doorzoeken, zul je dit gegarandeerd terug zien in een hogere serverbelasting dan wanneer de bots in een lagere frequentie je site bezoeken en het aantal te indexeren pagina’s klein is.

databaseserver belasting byte.nl
databaseserver belasting byte.nl

Een duidelijk voorbeeld geven we aan de hand van onze eigen website byte.nl in de afbeeldingen hier rechts. Als eerste boven zie je een grafiek van het aantal gecrawlde pagina’s door de Googlebot. Halverwege september nam dat in een keer gigantisch toe.

De tweede grafiek daaronder is een grafiek van onze eigen databaseserverbelasting. Deze stijging werd volledig veroorzaakt door de extra belasting door de Googlebot. Waar dit door kwam, vertellen we later in dit artikel.

Hoe kun je de serverbelasting door zoekmachinebots verminderen?

Om de serverload terug te dringen, heb je als websitebeheerder gelukkig een aantal stappen die je zelf direct kunt zetten. In dit artikel zullen we twee effectieve acties behandelen:

  1. Voorkom dat specifieke delen van je website of individuele pagina’s worden doorzocht door zoekmachinebots;
  2. Reguleer de crawlsnelheid van de zoekmachinebots. Die mag soms best wat lager;

1. Voorkom de indexatie van specifieke delen van je website of individuele pagina’s

Je kunt zelf instellen welke pagina’s je niet geïndexeerd wilt hebben. Deze pagina’s zullen dan uit de zoekmachineresultaten verdwijnen (dit kan soms enige tijd duren nadat je het hebt ingesteld) en zullen niet meer doorzocht worden door zoekmachinebots, wat scheelt in de serverbelasting. Dit kun je als volgt instellen:

Hoe werkt een robots.txt file
Hoe werkt een robots.txt file

Met behulp van een robots.txt file, vertel je de zoekmachinebots welke pagina ze niet mogen bezoeken (disallow). Dit robots.txt bestand zet je in de root van je hoofddomein. Bij een juist gebruik, zullen de zoekmachinebots de hierin door jou opgelegde regels netjes naleven. Op onze kennisbank leggen we stap voor stap uit hoe een robots.txt file werkt.

Als je voor individuele pagina’s op je website wilt instellen dat deze niet geïndexeerd mag worden door zoekmachinebots, kun je dit doen door in de metatag “noindex” te gebruiken. Dit is echter vooral effectief om de pagina uit de zoekresultaten te halen. De zoekmachinebot moet immers de pagina crawlen om überhaupt te zien dat deze de tag “noindex” bevat. Als je daarnaast nog de metatag “nofollow” toevoegt, vertel je de crawlers de links op deze pagina niet te volgen.

2. Reguleer de crawlsnelheid van de zoekmachinebots

Crawlsnelheid Googlebot instellen
Crawlsnelheid Googlebot instellen

Via je Google Webmasterhulpprogramma’s kun je de crawlsnelheid van de Googlebot handmatig aanpassen. Dit kun je doen onder Siteconfiguratie > Instellingen > Aangepast crawlsnelheid instellen.

Wil je dit meteen voor alle zoekmachinebots doen en dus niet alleen voor Google, dan kun je het ook via je robots.txt file instellen. Lees op onze kennisbank hoe je zo’n crawl-delay instelt.

Let op, deze handmatige instelling geldt maar voor 90 dagen. De kans is groot dat de Googlebot daarna weer meteen terugschiet naar de (te hoge) crawlsnelheid. Hou er dus rekening mee dat je dit mogelijk steeds opnieuw zult moeten aanpassen.

Hoe voorkom je een op hol geslagen zoekmachine bot?

Laten we nog even teruggaan naar het voorbeeld van Byte.nl. Aangezien we geen wijzigingen hadden doorgevoerd die de gigantische stijging konden verklaren, waren we erg benieuwd wat er voor had gezorgd dat de Googlebot zo op hol was geslagen:

Niet bestaande pagina’s / doodlopende verwijzingen

Een speurtocht door onze Google Webmasterhulpprogramma’s leerde ons dat de Googlebot een hele lading voor ons nog onbekende categorie-url’s en nieuwsartikelenverwijzingen had gevonden die ook nog eens een foutmelding opleverden. De Googlebot bleef steeds maar controleren of de verwijzingen al werkten en sloeg op hol. Een kwestie van goede redirection regels instellen (in ons geval met behulp van de Yireo extensie Dynamic404).

Hetzelfde probleem kan ontstaat als verwijderde pagina’s niet worden doorverwezen naar een andere pagina. Er bestaan namelijk vaak nog verwijzingen naar de verwijderde pagina. De zoekmachinebots kijken volgen alle gevonden verwijzingen (url’s). Komen deze op een niet bestaande pagina uit dan zal de zoekmachinebot deze pagina herhaaldelijk proberen te indexeren.

Layered navigation: voor ieder product een pagina, vermenigvuldigd via filters

Layared navigation Magento
Layared navigation Magento

Wat we regelmatig tegenkomen, met name bij Magento, is dat er voor ieder product een aparte URL wordt gegenereerd. Door middel van Layered navigation kan er een filter worden toegepast. Dit werkt als volgt:

Op een kleding site sorteer je eerst ‘overhemden’, hierbij word een overzicht gemaakt van alle overhemden in alle maten en kleuren met een bepaald adres (URL). Met de filter  ‘blauw’ wordt er een nieuw adres (URL) gegenereerd, enz. Voor alle mogelijke filtercombinaties ontstaat er een eigen url die wordt gecrawld door de zoekmachine bots.

Op deze manier is er al gauw sprake van tienduizenden pagina’s  terwijl je voor je gevoel slechts naar één pagina kijkt. En dan heb je niet één zoekmachinebot die die tienduizenden pagina’s afstruint, maar al snel meer dan 5! Dit kan je hele server voltrekken…

Wie herkent het en heeft een goede oplossing voor dit probleem?

Lees de reacties onderaan dit artikel. Daar vind je al enkele praktische tips. Ook het artikel Reduce Magento Resources using meta tag robots is een praktische handleiding.

Aanvullende tips en suggesties zijn natuurlijk nog altijd welkom. Laat het ons graag weten via een reactie of support@byte.nl.