BPU Besparen Op Zoekmachines

Uit Byte Docs

Wij zien dat Magento shops zich standaard veel laten indexeren door zoekmachines. Logisch, want zonder deze indexering zou de shop niet in de zoekresultaten van bijvoorbeels Google, Bing en Yahoo voorkomen. Daarnaast indexeert Google ook nog eens de producten los van elkaar en plaatst deze in de ‘Google Shopping’ tool.

Allemaal noodzakelijk voor een webshop, maar moet uw webshop echt een paar keer per dag geïndexeerd worden? Web crawlers zijn de grootste veroorzakers van hoge load (BPU) op de server, en met een paar simpele trucs kunt u door de crawlers beter af te stellen, de BPU aanzienlijk verlagen.

Inhoud

Wat is een Crawler of spider?

Het indexeren van een gemiddelde Magento winkel met 2000+ producten wordt al snel erg intensief en is een stuk intensiever dan bijvoorbeeld een winkel met 50 producten. Het indexeren van deze producten en overige delen van de website wordt gedaan door een script, ook wel crawlers of spiders genoemd. Deze struinen het internet af op zoek naar nieuwe content en belasten hiermee de webservers waar de websites op worden gehost aanzienlijk.

Een crawler zal een site opvragen zoals elke andere bezoeker dat doet en op zoek gaan naar wijzigingen met vorige keer dat hij langs kwam. Vervolgens bezoekt hij alle links die op de pagina staan en doet daar het zelfde. Op deze manier kan een crawler behoorlijk wat verkeer veroorzaken omdat hij een aantal keer per dag alle pagina's op de site op zal vragen. Voor de load op de server maakt het niet uit of een gewone bezoeker de site bezoekt, of een crawler.

De load die wordt veroorzaakt door het proces van indexatie kan behoorlijk oplopen: tot wel 95% van de totale load kan veroorzaakt worden door deze crawlers. Gemiddeld word ca. 30 tot 40% van de load op websites veroorzaakt door crawlers.

Voorbeelden van de meest voorkomende crawlers;

  • Google - crawl-66-249-66-113.googlebot.com (bot)
  • Yahoo - b3090985.crawl.yahoo.net (bot)
  • Msn (Bing) - msnbot-65-52-110-146.search.msn.com

Baiduspider

De Baiduspider is een zoekmachine bot van de Chinese zoekmachine Baidu. Byte heeft de Baiduspider voor haar gehele netwerk geblokkeerd. Dit heeft Byte gedaan omdat deze spider onevenredig veel serverload veroorzaakte (meer dan de andere gangbare zoekmachinecrawlers samen) en zo diverse shops en websites vertraagde en naar een hoger pakket forceerde. We begrijpen dat het blokkeren van de spider ervoor zorgt dat websites niet meer gelezen worden door de Chinese zoekmachine, maar hebben deze blokkering toch doorgevoerd omdat dat de overlast die deze spider veroorzaakt voor het merendeel van onze klanten onwenselijk of zelfs onacceptabel is.

Overlast van crawlers verminderen?

U kunt invloed uitoefenen op de load die crawlers veroorzaken, door de frequentie waarmee ze langskomen in te perken en aan te geven welke gedeeltes van de site wel en niet geïndexeerd worden. Dit kan als volgt:

  1. In Google webmaster tools kunt u bijvoorbeeld kiezen om de Google crawlsnelheid aan te passen. Dit doet u bij Siteconfiguratie >> Instellingen >> Crawlsnelheid >> Aangepaste crawlsnelheid instellen.
  2. In robots.txt kan je een crawl-delay instellen, meeste grote zoekmachines zullen hier netjes rekening mee houden maar het is geen geschreven regel.
    • Het is mogelijk de crawlers in zijn geheel of voor gedeeltes van de site te blokkeren via meta tags of robots.txt (alleen voor gevorderden!).
    • Navigatie voor de robots vergemakkelijken door een sitemap toe te voegen en deze in robots.txt te zetten.

Hoe werkt de robots.txt file?

werking robots.txt
Bij elk bezoek van een (nette) crawler wordt eerst gezocht naar een robots.txt file, deze hoort in de root van de hoofddomein te staan; http://bijvoorbeeld.nl/robots.txt. Het robots.txt bestand heeft als enige doel het begeleiden van de web crawlers. Nette zoekmachines zullen altijd als eerste een robots.txt file opvragen en rekening houden met de instructies die er in staan, het is echter geen geschreven regel dus minder vriendelijke webcrawlers zullen hier geen rekening mee houden.

Let op: Als u middels robots.txt crawlers gaat uitsluiten, is het wel belangrijk dat u weet waar u mee bezig bent en wat u hiermee wilt bereiken. Houd er rekening mee dat voor een goede SEO het belangrijk is dat de belangrijkste pagina's gewoon geïndexeerd worden.

User-agent

De robots.txt kan ingezet worden voor alle webcrawlers maar u kunt er ook voor kiezen verschillende regels in te stellen per zoekmachine/crawler. In het volgende voorbeeld wordt met behulp van de "User-agent:" regel aangegeven dat Google niets mag indexeren en Bing (MSNBot) alles behalve /google/.

User-agent: Googlebot
Disallow: /
 
User-agent: MSNBot
Disallow: /google/

U moet naast de regels waarin u aangeeft wat u graag wel of niet geïndexeerd wilt hebben (of naar welke sitemap u een crawler doorstuurt) altijd een User-agent specificeren. Als u uw regels voor alle crawlers in wilt stellen kan dat met de volgende regel;

User-agent: *
Disallow: /

En deze zullen we ook in de volgende voorbeelden gebruiken. Mocht u regels voor verschillende webcrawlers willen instellen dan staat hier een lijst met namen van robots.

Mappen afschermen voor indexering

User-agent: *
Disallow: /

Met deze tekst in de robots.txt zal geen enkele pagina op de site geïndexeerd worden.

User-agent: *
Disallow: /tmp/
Allow: /products/

In deze robots.txt is aangegeven dat alles geïndexeerd mag worden, behalve de inhoud van /tmp/. Daarnaast worden crawlers naar /products/ gestuurd.

Als deze robots.txt bijvoorbeeld de locatie http://bijvoorbeeld.nl/robots.txt heeft, dan zal in dit geval http://bijvoorbeeld.nl/tmp/ niet geïndexeerd worden.

Crawl-delay

Sommige zoekmachines (Yahoo, Bing) maken gebruik van de waarde Crawl-delay, daarmee kan je instellen wat de interval tussen het opvragen van pagina's (in seconden) moet zijn, bijvoorbeeld;

User-agent: *
Crawl-delay: 10

Hier wordt aangegeven dat elke webcrawler 1 nieuwe pagina per tien seconden mag opvragen, op deze manier kunt u de intensiteit van de webcrawlers beperken. Let wel: tien seconden is vrij hoog, u kunt beter iets lager beginnen (1-5).

Sitemap voor een lagere serverload

Web crawlers zijn dol op sitemaps, door in een robots.txt naar een sitemap te verwijzen geeft u ze als het ware een inhoudsopgave, waarmee ze precies kunnen zien welke pagina's belangrijk zijn en een goede indexering maken zonder de hele site af te moeten struinen. Door een sitemap op de site te plaatsen kunt u de webcrawlers een handje helpen met indexeren en dit zal de load op de server ook verlagen.

User-agent: *
Sitemap: http://bijvoorbeeld.nl/sitemap.xml

Hoe dat werkt en waarom een sitemap helpt om uw BPU te verlagen leest u op ons blog: Sitemaps voor een betere indexatie en lagere serverload. Daar vindt u ook hoe u eenvoudig voor Joomla, Magento en WordPress automatisch een sitemap laat genereren.

Google Webmaster Tools

In Google webmaster tools kunt u de snelheid waarmee de Google crawlers de site indexeren beperken, het kan zeker lonen hier wat mee te testen, want dit kan behoorlijk wat schelen in de BPU. Aanmelden voor Google Webmaster Tools.

Best practices

Uit onderzoek van onze partners blijkt dat Google vaak de layered navigation flink indexeert. BPU verbruik verminderen kunt u doen via meta tags (zie ook Reduce Magento resources using meta tag robots) en daarnaast via de robots.txt file.

De robots.txt file aanpassen

Een manier waarvan Google zelf zegt dat u die beter niet kunt gebruiken voor het beperken van crawlen van een website omdat Google daarmee een hoop context mist in het beoordelen van uw overige pagina's. Met deze methode dient u er op te letten dat u niet al het verkeer van zoekmachine bots uitsluit, dat is namelijk niet gunstig voor de SEO. Bedank goed voor welk deel van uw website u dit wil doen en gebruik deze methode alleen als u weet hoe u dit gericht moet doen.

Onderstaand een beproefde methode. Hiermee worden alle GET veriabelen die gebruikt worden in de layered navigation verboden (dit is slechts een deel, maar voldoende om het idee te snappen):

User-agent: *
Disallow: /*?p=*
Disallow: /*&p=*
Disallow: /*?price=*
Disallow: /*&price=*
Disallow: /*?color=*
Disallow: /*&color=*
Disallow: /*?limit=*
Disallow: /*&limit=*
Disallow: /*?order=*
Disallow: /*&order=*
Disallow: /*?dir=*
Disallow: /*&dir=*

NB: voor het verbieden van de MSN bot lijkt bovenstaande niet altijd te werken. U kunt het ook zonder het laatste * proberen. Dit blijkt in sommige gevallen te werken.

  • Lees ook ons blog voor diverse tips omtrent verbruik door zoekmachines.

Magento Meta Tags

Zoekmachines hoeven niet alle Magento pagina's te indexeren. In Magento kunt u pagina types apart instellen. Hoe u dit instelt, kunt u lezen in de blogpost Reduce Magento resources using meta tag robots

De huidige waardering is: 74/100 (6 stemmen)
 You need to enable JavaScript to vote
  • Deze pagina is het laatst bewerkt op 26 apr 2012 om 15:15.
  • Deze pagina is 1.733 keer bekeken.

We proberen de kwaliteit van onze kennisbank voortdurend te verbeteren.
Geef de informatie op deze pagina een waardering met de slider hierboven.