bot aan het werk

In dit artikel licht een van onze partners toe hoe Magento in combinatie met de Google Bot zorgt voor een hoge serverload en geeft tips hoe je de serverload kunt verlagen. Het is geschreven voor servers bij Byte Internet, maar kan ook gebruikt worden voor het verlagen van serverload bij andere Magento hosting providers. Dit artikel is geschreven door Byte Partner MediaCT (www.mediact.nl). We vinden het ontzettend mooi dat ze dit artikel beschikbaar willen stellen voor andere Magento beheerders via ons blog en willen ze dan ook ontzettend bedanken! 🙂

Wat is en doet de Google Bot?

Om een webshop te indexeren in de zoekresultaten, zal Google moeten weten uit welke pagina’s de site bestaat. Hiervoor stuurt Google haar Bot naar je shop. De Bot indexeert je site, maar de Bot doet meer dan alleen dat. Google wil namelijk ook weten hoeveel waarde elke pagina heeft, waarbij het ook belangrijk is voor Google om te weten wat de autoriteit is van de pagina. Met andere woorden: wat is de relevantie van elke pagina binnen de gehele shop? Om dit in kaart te brengen, gaat de Bot willekeurig alle links via elke pagina volgen. Op deze manier krijgt de Google Bot inzicht in de structuur van de shop en krijgt elke pagina een bepaalde context. Alles over de Google Bot lees je hier: http://support.google.com/webmasters/bin/answer.py?hl=nl&answer=182072

Filters in Magento: grote boosdoener

De Bot volgt dus elke link op een pagina. Dit betekent ook dat de Bot elke filter volgt. En omdat je elke filter kunt combineren (bv prijs 10-20 euro i.c.m. kleur blauw), krijg je zo enorm veel pagina’s die Google volgt. Dit zorgt er voor dat de serverload, die Byte BPU noemt, hoog is. En hoe hoger de serverload, hoe meer je betaalt voor hosting.

Een illustratie van Google allemaal volgt en kan combineren op een categoriepagina:

screenshot to indicate possible links

screenshot to indicate possible links

De rode vlakken zijn allemaal onderdelen waarop de gebruiken kan filteren of navigeren. De google Bot volgt deze ook. Stel dat alle filters en paginatielinks met elkaar te combineren zijn, dus de zichtbare filters zijn allemaal met elkaar te gebruiken, dan krijg je 5 x 5 x 5 x 5 x 5 x 2 x 6 filterpagina’s = 37.500 paginaverianten van alleen deze ene categoriepagina. Je begrijpt dat dit nogal veel serverload oplevert. Helemaal wanneer je veel categorieën hebt.

De oplossingen

Allereerst: het is niet slecht dat Google alles crawlt. Juist niet. Google heeft deze informatie nodig en het doet een webshop goed om alles goed gecrawled te hebben. In de meest ideale situatie zouden deze links niet zichtbaar zijn voor Google. Echter is er out-of-the-box hier geen oplossing voor. Technisch is het ook wenselijk om alles optimaal te laten crawlen door Google. Het is het financiële plaatje waar het probleem ontstaat: een hoge serverload betekent meer kosten.

Beperk de snelheid van de crawler in Google Webmaster Tools

In Google Webmaster tools kun je de crawlsnelheid van de Google Bot verlagen. Hoe je dit doet lees je hier: http://support.google.com/webmasters/bin/answer.py?hl=en&answer=48620

Gebruik URL-parameters in Google Webmaster Tools

Elke filter zorgt voor een URL-parameter. Als je filter op prijs, krijg je bijvoorbeeld http://www.tas.nl/herentassen?price=2%2C100. In dit geval is de URL-parameter ?price=. In Google Webmaster tools kun je aangeven wat elke URL-parameter doet. Zo help je Google en wordt de indexatie efficiënter. Zo kun je ook aangeven welke URL’s niet gecrawled hoeven te worden. Let wel op: ook hier geldt dat wanneer je Google blokkeert, dat er de kans is dat Google niet de hele shop goed in kaart kan brengen. Dus: specificeer waar mogelijk en als het moet: blokkeer de parameter. Hoe je URL-parameters gebruikt: http://support.google.com/webmasters/bin/answer.py?hl=en&answer=1235687

Scherm irrelevante mappen af in Robots.txt

Lang niet alle mappen hoeven geïndexeerd te worden van Magento. Zorg dus altijd voor een Robots.txt bestaat waarin irrelevante paden worden gelokkeerd. Een bestand dat je als uitgangspunt kunt gebruiken staat op onze blogpost Magento Robots.txt (noot: Byte Internet heeft het voorbeeld aangepast naar aanleiding van deze blogpost)

Laatste redmiddel: blokkeer filters in Robots.txt

Als laatste redmiddel om de load te verlagen kun je toegang tot de filters blokkeren voor de Google Bot in de Robots.txt. Dit is een methode dat Google zelf afraadt. Als je dit toepast, mist Google namelijk essentiële informatie om een shop correct te indexeren.

Hieronder staat een voorbeel van een aantal standaard URL-parameters die je kunt blokkeren. Een volledige lijst kun je vinden in Google Webmaster Tools.

Andere artikelen over serverload verlagen

Byte zelf heeft ook over dit onderwerp drie interessante posts en discussies(!) online staan:

Ook een gastblog schrijven voor Byte?

We vinden het erg leuk om interessante en informatieve blogposts van onze partners te ontvangen. Als je ook graag je kennis deelt in de vorm van een (niet commerciële) gastblog, laat het ons dan graag weten via support@byte.nl.

Scan je eigen Magento shop op veiligheidslekken