Zo hebben we Google op de vingers getikt

cacholong-web-blog-header-google

Crawlen op lichtsnelheid: slecht voor je site

Wat gebeurt er als Googlebot ruim 7500 requests per minuut op je site afvuurt? En nog veel belangrijker: hoe zorg je ervoor dat Google daar zo snel mogelijk mee stopt? Dat bleek de kern van een probleem waar een van onze klanten na een softwareupgrade mee te maken kreeg. Met een paar slimme zetten hebben we ervoor gezorgd dat alles weer draait zoals het hoort. In dit artikel lees je wat we precies deden om Google weer in het gareel te krijgen.

Het probleem: een trage, slecht bereikbare website

We zagen in onze monitoring dat een van de servers die we beheren het ontzettend druk had. De klant gaf aan dat de website erg traag en af en toe überhaupt niet te bereiken was. We hielden het een tijdje in de gaten, hebben een rapport opgesteld en aanbevelingen doorgevoerd, maar het probleem bleef bestaan. Na diepgravend onderzoek kwamen we erachter wie de boosdoener was. Niemand minder dan Googlebot!

Googlebot is de weg kwijt

Met Googlebot zorgt de zoekmachinegigant ervoor dat we via Google alles kunnen vinden wat we zoeken. Normaal gesproken komt de bot niet zo vaak langs; dat hangt af van de hoeveelheid content op je website en de hoeveelheid nieuwe content die je plaatst. Als de bot langskomt om je site te indexeren, stuurt hij meestal maar een aantal aanvragen per seconde.

Maar in dit geval was dat zo’n 125 keer per seconde, dagen achter elkaar! Dat we daar wat mee moeten, is duidelijk. Maar wat? Googlebot blokkeren is geen optie, want dat is vrij dramatisch voor je ranking in de zoekresultaten. En het is ook niet mogelijk om in te stellen hoe vaak je Google toegang wilt verlenen: de bot kijkt altijd hoe snel hij de pagina’s van je website kan crawlen, zonder het overige bezoek te hinderen. Daarin zat overigens nog een ander probleem, een foutje van het algoritme dat Google gebruikt.

De bot kijkt namelijk naar de verwerkingstijd van een server om te zien hoe snel hij verkeer kan ophalen. Dat hoort onder de 1 seconde te liggen. In dit geval heeft het algoritme ten onrechte ook een redirect op de server meegenomen in de berekening, waardoor hij het verkeer met 0,3 milliseconden dacht op te kunnen halen. Crawlen met de snelheid van het licht, dat leek Googlebot wel wat! De servers waren daar iets minder blij mee, dus zijn we aan de slag gegaan met een oplossing.

Als eerste stap hebben we een verzoek ingediend bij Google om de bot wat gas terug te laten nemen. De verwerking van die aanvraag duurt 3 dagen en is vervolgens 90 dagen geldig. Dat zou ons wat ruimte kunnen geven om de kern van het probleem te vinden. Helaas kwam er na 3 dagen geen verbetering, dus moesten we het anders aanpakken.

De oplossing: rate limiten met een web application firewall

Uiteindelijk bleek de oplossing in een goed ingestelde web application firewall (WAF) te zitten. Die bevat een rate limiter, waarmee we het aantal requests per seconde konden beperken. Maar hoe zorg je er nu voor dat alleen Googlebot daarmee te maken krijgt? Dat kan niet op basis van een ip-adres, omdat de bot niet één specifiek adres gebruikt.

Omdat Googlebot zich identificeert als user agent, namen we dat als uitgangspunt voor de uiteindelijke oplossing. We wisten nu precies wie Googlebot was, en met een aantal regels specifieke code is het gelukt de requests aan banden te leggen. Uiteraard zonder dat het problemen oplevert voor de plek in de zoekresultaten!

Dat deden we door een maximum aantal requests van 30 per seconde in te stellen. We zagen dat Googlebot in eerste instantie als een malle voorbij kwam en over die limiet ging. Daarop volgde een statuscode 503, oftewel: ‘probeer het later nog eens’. Het duurde een dag voordat Googlebot doorhad wat er aan de hand was, maar vanaf dat moment bleef het aantal aanvragen netjes op de 30 per seconde liggen. Af en toe ging hij er iets overheen, maar na een 503-melding zakte hij dan weer terug. Het grote voordeel van een 503 is dat je aangeeft bij Google dat hij de resultaten in de index vast moet houden. Zo zorg je ervoor dat je positie in de zoekresultaten gewaarborgd blijft.

Speciaal voor de techneuten onder ons: dit zijn de WAF rules die we hebben gebruikt om de rate limit specifiek voor Googlebot in te stellen:


Voorkom overbelasting van je server!

Het was even zoeken, maar uiteindelijk hebben we ontdekt wat de problemen bij onze klant veroorzaakte. Het zou ons niks verbazen als meer onverklaarbare serverproblemen toe te schrijven zijn aan Googlebot. Nu weet je in ieder geval hoe je het op kunt lossen! Heb je hulp nodig, neem dan contact met ons op.

4

Interesse? Laten we kennismaken!

Hoe kunnen we jouw helpen? We maken graag persoonlijk kennis. Vertel ons wat je wensen en eisen zijn. Dan geven we jou het juiste advies en overtreffen we jouw verwachting.

In contact komen
DNV-certified