Crawlen is geen indexeren

Index versus crawling

Crawlen en indexeren zijn essentiele dingen die een zoekmachine moet uitvoeren daarom is het goed om te weten wat het het verschil is en hoe dit te verbeteren.

Crawlen en indexen zijn twee verschillende acties die een zoekmachine uitvoeren om het internet te kunnen doorzoeken. Het crawlen van een web pagina betekend niet dat de web pagina ge-indexeert wordt. Ook is het niet noodzakelijk voor zoekmachines om een webpagina te crawlen om ge-indexeert te worden. Dit heet partiële indexering of gedeeltelijke indexering. We zullen eerst kijken naar waarom een pagina wel gecrawld wordt maar niet ge-indexeert. Daarna zullen we kijken naar een web pagina die niet gecrawld wordt maar wel in de index is te vinden. Maar allereerst wat is crawlen en wat is indexeren.

Crawlen en indexeren

Crawler

Crawlen wordt gedaan door computer programma’s op enorme servers en heten crawlers. Vaak worden ze spiders genoemd omdat ze als een spin het web van links op het internet volgen maar ook bots of robots. Deze crawlers bezoeken een web pagina en kopiëren de web pagina. Tegenwoordig zijn crawlers veel geavanceerder dan een paar jaar geleden.

Bijvoorbeeld Google gaf het advies om niet meer dan 100 links in een web pagina te hebben omdat de crawler slechts 100 kilobyte van een web pagina kon indexeren en 100 links leek een mooi getal. Als een pagina meer dan 100 links had kon het zelf zijn dat Google de hele web pagina niet indexeerde.Later veranderde Google dit maar het aantal links van 100 bleef omdat Google van mening was dat meer dan 100 links te veel was voor gebruikers en daarom was het devies aan webmasters (beheerders van web sites) om niet meer dan 100 links op een pagina te hebben. Echter meer dan 100 links betekend niet dat een web pagina slecht is of dat het automatisch spam is. Daarom is er tegenwoordig geen beperking en Googlebot (de crawler van Google) crawld de gehele web pagina. Maar een pagina met alleen links kan nog steeds gezien worden als slechte gebruikers-ervaring, niet omdat er een x aantal links op een pagina staan maar omdat een pagina met alleen links geen toegevoegde waarde geven aan gebruikers, met name als ze van een zoekmachine afkomstig zijn. Immers deze gebruikers komen van een lijst met links.

Rijke media bestanden en internet applicaties

Over het algemeen lezen crawlers de tekst op een web pagina. Daarom hadden crawlers vaak moeite om Flash te lezen. Tegenwoordig kunnen bots Flash lezen zolang er tekst in de Flash is. Echter het is nog steeds aan te raden om als de web site geheel in Flash is een alternatieve versie van de web site aan te bieden speciaal voor robots. Hetzelfde geldt voor AJAX (Asynchrinous JavaScript and XML) of andere (rijke) internet applicaties zoals Silverlight (in het kort: de Microsoft versie van Flash). Deze groep geeft de gebruiker vaak een prachtige en mooie interface en de web pagina veranderd op basis van de invoer van de gebruiker. Maar omdat deze applicaties en beelden niet als een normale tekst worden weergegeven in de code van een web pagina hebben crawlers moeite om deze te lezen. Gelukkig kunnen crawlers steeds meer. Bijvoorbeeld zowel Bingbot (de crawler van Bing) als Googlebot (de crawler van Google) kunnen Flash, Silverlight en andere rijke multimedia crawlen maar beide raden aan om de inhoud toegankelijk te maken door gebruik te maken van alternatieve methoden. Bijvoorbeeld voor video raadt Google aan om een video transcript te gebruiken maar ook Bing raadt aan om gewone html te gebruiken om aan te geven waar de applicatie over gaat. In het kort, raden beide aan om een alternatieve versie van de web pagina te presenteren als een bezoeker (zoals robots) geen plug-in heeft om de web pagina op een juiste manier te laden. Naast zoekmachines is dit natuurlijk ook gebruikersvriendelijk. Immers gebruikers die, bijvoorbeeld, geen Flash hebben kunnen nu wel de web pagina zien en lezen.

Javascript

Hierboven heb ik al gehint dat javascript niet altijd goed te crawlen is door zoekmachines. Zeker een paar jaar gelden gold dat crawlers javascript niet konden crawlen. Javascript was ontwikkeld door Netscape (één van de eerste internet browsers en javascript werd de standaard rond 1996 voor web applicaties die op de browser van de gebruiker draait) om speciale functies te kunnen uitvoeren op de internet browser van de gebruiker. De rede waarom er Java in de naam zit is omdat de computer taal lijkt op Java maar verder hebben javascript en Java niks met elkaar te maken. Om men met javascript specifieke functies kan draaien op de internet browser van de gebruiker of client is het nodig dat javascript wordt uitgevoerd door een programma. Echter crawlers konden deze scripting taal niet uitvoeren laat staan dat crawlers er iets begrijpelijkst van konden maken. Tegenwoordig kunnen moderne crawlers, zoals Googlebot, wel javascript uitvoeren en begrijpen. Google crawld javascript met POSTBijvoorbeeld sinds november 2011 kan Googlebot formulieren die javascript en POST gebruiken crawlen en begrijpen. Met name dit laatste is een enorme vooruitgang voor crawlers. Tegenwoordig als een web site populaire javascript gebruikt, zoals dropdown menu’s of tabs, en daarbij gebruik maakt van populaire javascript libaries, zoals jQuery, dan kan Googlebot deze zeker begrijpen. Echter zeer complexe en opmaat geschreven javascript blijft tot op heden een probleem voor bots. Over het algemeen is het veilig om te zeggen dat Googlebot links en tekst die in javascript is verwerkt kan begrijpen.

Index

Nu hebben we gekeken naar wat een crawler wel en wat een crawler niet kan. De crawler stuurt de kopie van de web pagina naar een database. Deze database is in beginsel de index. Naast web pagina’s worden ook documenten zoals afbeeldingen opgeslagen in de index. De rede waarom er een index wordt gebruikt is om zo snel mogelijk zoekresultaten te kunnen aanbieden. Bijvoorbeeld als een gebruiker op een zoekmachine zoekt dan wordt de index geraadpleegd in plaats van dat het internet wordt afgezocht naar resultaten. Met andere woorden, doordat er een kopie van het internet in de web index is hoeft de zoekmachine niet meer het internet af te zoeken maar kan direct zijn eigen database (index) raadplegen. De grote zoekmachines, Google en Bing, hebben hun eigen index. Echter niet elke zoekmachine heeft zijn eigen index en crawlers, deze worden meta-zoekmachines genoemd. Deze zoekmachines gebruiken de index van zowel Google en Bing om zoekresultaten weer te geven.

Naar alle waarschijnlijkheid bevat de index ook meta informatie, bijvoorbeeld over welke taal er wordt gebruikt op een web pagina. Echter welke informatie er precies in de index staat is onbekend, maar het is wel duidelijk dat meer informatie in de index is dan alleen de kopie van een web pagina. Kortom, de index is nodig voor zoekmachine om zeer snel zoekresultaten te kunnen weer geven en om de schaal grote van het internet het hoofd te bieden. Deze index bepaald niet de volgorde de verschillende zoekresultaten.

Algoritme is geen index

Daar gebruiken zoekmachines algoritme voor. In het kort zijn dit computer programma’s die de verschillende web pagina’s met elkaar vergelijken en een bepaalde waarde toekennen. Door de verschillende waardes van verschillende web pagina’s met elkaar te vergelijken komt er een volgorde uit die aan de gebruiker van de zoekmachine wordt gepresenteerd. Hoewel ik hier alleen web pagina’s gebruik bekijken algoritme ook gehele web sites. Hoe deze waarde aan een bepaalde web pagina wordt toegekend is onbekend. Echter zoekmachines worden wel steeds meer open over welke nieuwe algoritme er wordt gebruikt en wat deze algoritme doet. Bijvoorbeeld onder de codenaam Panda heeft Google in februari 2011 een nieuwe algoritme (alleen voor Engelse web sites maar later ook voor andere talen) gelanceerd die bekijkt of de content van hoge kwaliteit is.

Wel crawlen maar niet indexeren?

Dus crawlen en indexeren zijn twee verschillende acties die een zoekmachine doet. Echter het is mogelijk dat een web pagina wel ge-crawld wordt maar niet geïndexeerd. Meestal komt dit voort uit het feit dat een web pagina via verschillende wegen is te bezoeken.

Dubbele web pagina’s kunnen leiden tot niet indexeren

Eén van de meest voorkomende gevallen is wanneer een web site via www en zonder-www is te bereiken. Hierdoor ontstaan duplicaten van een een web site. Immers, bijvoorbeeld, zowel www.example.com als example.com geven de zelfde web pagina’s. In dat geval kiest de zoekmachine één versie van de web site en crawld de andere versie niet. Natuurlijk is het nodig dat de crawler eerst beide versies crawld en indexeert voordat de zoekmachine (algoritme) de keuze kan maken om één versie in de toekomst te crawlen en te indexeren maar daarna is de keuze gemaakt en bezoekt de crawler slechts één versie en de andere sporadisch om er zeker van te zijn dat beide versies gelijk zijn. Hoewel het tegenwoordig niet meer nodig is wordt het nog steeds aangeraden in het geval van www tegen over zonder-www de ene via een permanente re-direct (http 301) te geleiden naar de versie die de voorkeur heeft. De rede hierachter is dat crawlers dan slechts één versie kunnen crawlen waardoor ze alleen crawlen wat de webmaster (de beheerder van de web site) wil en het tot een grotere crawl efficiency leidt. Immers in plaats van twee versies te crawlen en te indexeren hoeft de crawler slechts één versie te crawlen en te indexeren.

Noindex de manier om niet geïndexeerd te worden

Daarnaast bestaat er een explicite manier om een web pagina wel te crawlen maar niet te indexeren. Dit wordt gedaan door middel van een code. Deze code heet “noindex”. De “noindex” geeft aan crawlers aan dat de web pagina niet geïndexeerd dient te worden. Dit betekend dat de web pagina ook niet gevonden kan worden door zoekmachine gebruikers. Immers, de zoekresultaten komen uit de index en als een pagina niet in de index staat dan kan deze ook niet gevonden worden. De code kan op twee manieren worden geïmplementeerd op een web pagina:

  • Als meta tag:
    <meta name="robots" content="noindex">
    Deze meta tag bevindt zich in de head sectie van een web pagina. De head sectie is een gedeelte in de html waar meta informatie staat over de web site. Bijvoorbeeld de titel van een web pagina.
  • Als een header reactie:
    X-Robots-Tag: noindex
    De server geeft een reactie op de aanvraag van een cliënt. Een cliënt kan een internet browser zijn, zoals Firefox of Chrome, maar ook een bot, zoals Googlebot of Bingbot. Bijvoorbeeld een web pagina die gevonden is op de server en gepresenteerd kan worden heeft als header http 200 okay. Aanvullend op deze header kan de x-robots-tag worden toegevoegd met als waarde noindex. In tegen stelling tot de meta tag is deze met name handig voor bestanden. Bijvoorbeeld door de “noindex” header kan een webmaster pdf’s uit de index halen of voorkomen dat deze in de index komen.

Zoals te zien in de implementatie van “noindex” is het nodig dat een zoekmachine eerst de web pagina bezoekt voordat de “noindex” gezien kan worden. Met andere woorden, de de web pagina wordt eerst gecrawld om de “noindex” te zien en wordt daardoor niet toegevoegd aan de index waardoor deze niet naar voren komt in de zoekresultaten.

Zoals hierboven al gehint is, is het ook mogelijk om een web pagina of bestand door middel van de “noindex” uit de index te halen. Als bijvoorbeeld een bestand of een pagina geïndexeerd is maar de webmaster wil dit niet meer dan kan de “noindex” worden toegevoegd aan een pagina of bestand. De volgende keer dat een crawler deze crawlt dan zal deze de web pagina uit de index halen.

Niet crawlen maar wel geïndexeerd: partiële indexering

Door middel van robots.txt kunnen web pagina’s en bestanden geblokkeerd worden voor crawlers of robots (bekijk mijn vorige artikel om een beter idee te krijgen over robots.txt). De meeste robots respecteren de robots.txt en zijn vaak erg nauwkeurig. Stop GooglebotBijvoorbeeld Googlebot stopt met het crawlen van een pagina als ze een 5xx error krijgt op de robots.txt. Als een robot wordt geblokkeerd dan zal de crawler deze pagina of bestand niet bezoeken en daardoor kan de crawler het bestand of de web pagina niet doorgeven aan de index. Hierdoor wordt de web pagina ook niet geïndexeerd. Echter er is ook partiële indexering (met name Googlebot gebruikt dit) waarbij de web pagina of bestand toch in de index komt terwijl de web pagina niet gecrawld is. De informatie die op dat moment wordt gebruikt om een pagina of bestand toch in de index te zetten komt van andere web pagina’s op het internet. Deze informatie wordt gebruikt om web pagina’s die geblokkeerd worden door robots.txt toch weer te geven in zoekresultaten. In deze situatie wordt vaak gebruik gemaakt van links naar de geblokkeerde URL waarbij met name de anker tekst (het zichtbare gedeelte in een internet browser) wordt gebruikt.

Natuurlijk is partiële indexering niet optimaal en daarom zal over het algemeen een web pagina die partieel geïndexeerd is niet hoog ranken, maar het is zeer zeker mogelijk om te ranken in Google Search voor pagina’s die geblokkeerd zijn. Daarom als een web pagina niet in de index hoort dan is het over het algemeen beter om gebruik te maken van “noindex”. Hierbij wordt de web pagina wel gecrawld maar niet geïndexeerd.

Geef een reactie

Uw e-mail adres wordt niet gepubliceerd.

*
*

De volgende HTML tags en attributen kunnen worden gebruikt: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>