Kennis

Hoe werken zoekmachines? Van crawlen tot ranken, en wat AI eraan verandert

Je typt een paar woorden in een zoekbalk en binnen een halve seconde staat er een lijst met resultaten. Dat lijkt eenvoudig, maar in die halve seconde wordt niets doorzocht van het internet zelf. Zoekmachines werken met een kopie: een enorme, vooraf opgebouwde index van pagina’s die al eerder zijn opgehaald en verwerkt. Hoe werken zoekmachines dan wel? Het antwoord bestaat uit drie losse processen die op verschillende momenten plaatsvinden, en die je ook los van elkaar kunt beïnvloeden.

In het kort

  • Zoekmachines werken in drie stappen: crawlen (pagina’s ophalen), indexeren (verwerken en opslaan) en ranken (de volgorde bepalen bij een zoekopdracht).
  • Alleen de derde stap gebeurt op het moment dat iemand zoekt; crawlen en indexeren zijn dagen tot weken eerder gebeurd.
  • In mei 2024 lekte er interne Google-documentatie uit met 2.596 modules en 14.014 kenmerken, door Google bevestigd als echt. Het ging om API-documentatie, niet om de broncode zelf.
  • AI-zoekmachines vervangen deze techniek niet, maar zetten er een laag bovenop: ze halen pagina’s op uit bestaande indexen en schrijven daar een antwoord van.

Zoekmachines werken in drie stappen: crawlen, indexeren en ranken

De drie stappen worden in de praktijk vaak op één hoop gegooid, terwijl ze technisch weinig met elkaar te maken hebben. Een pagina kan prima gecrawld zijn zonder ooit geïndexeerd te worden, en een geïndexeerde pagina kan jarenlang bestaan zonder ooit in een resultaat te verschijnen. Wie wil weten waarom een pagina niet gevonden wordt, moet dus eerst bepalen in welke van de drie stappen het misgaat.

Crawlen: het web aflopen

Een crawler is een programma dat pagina’s opvraagt zoals een browser dat doet, de links op die pagina verzamelt en die vervolgens ook opvraagt. Googlebot, Bingbot en soortgelijke bots doen dat continu, met miljarden opvragingen per dag. Ze beginnen bij pagina’s die ze al kennen, volgen links naar nieuwe adressen en gebruiken sitemaps als aanvullende lijst.

Hoe vaak een site bezocht wordt, hangt af van hoe vaak er iets verandert en hoeveel de server aankan. Een nieuwsplatform dat elk uur publiceert wordt vaker langsgelopen dan een bedrijfssite die twee keer per jaar wijzigt. Bij trage of foutgevoelige servers knijpt de crawler zichzelf af, om de site niet plat te leggen. Dat is meteen de reden waarom laadsnelheid meer is dan een prettige bijkomstigheid: een server die traag reageert, wordt eenvoudigweg minder vaak bezocht.

In deze fase gaat het ook het vaakst mis zonder dat iemand het merkt. Een regel in robots.txt die ooit tijdelijk was bedoeld, een testomgeving die per ongeluk is afgeschermd, of een beveiligingslaag die onbekende bots blokkeert: het resultaat is telkens dat de pagina niet eens wordt opgehaald.

Indexeren: begrijpen en opslaan

Opgehaalde pagina’s gaan naar de indexering. Daar wordt de HTML uitgelezen, wordt JavaScript uitgevoerd waar dat nodig is, en wordt bepaald waar de pagina over gaat. Tekst wordt opgesplitst in losse termen, afbeeldingen krijgen betekenis via alt-tekst en omringende tekst, en gestructureerde data (schema.org) wordt apart opgeslagen als feitelijke informatie over het onderwerp.

Het resultaat is een omgekeerde index. In plaats van per pagina op te slaan welke woorden erop staan, wordt per woord opgeslagen op welke pagina’s het voorkomt en waar precies. Dat is de enige manier waarop een zoekopdracht in milliseconden beantwoord kan worden: het systeem hoeft niet te zoeken, het slaat een lijst op.

Indexering is bovendien een selectie, geen automatisme. Zoekmachines besluiten om pagina’s niet op te nemen als ze te veel lijken op iets wat al in de index staat, als er nauwelijks inhoud op staat, of als de kwaliteit onder een bepaalde drempel blijft. Bij grote sites met veel filter- en sorteervarianten leidt dat er standaard toe dat een deel van de pagina’s nooit wordt opgenomen.

Ranken: de volgorde bepalen

Pas als iemand daadwerkelijk zoekt, komt de derde stap in beeld. De zoekopdracht wordt geïnterpreteerd (bedoelt iemand met “jaguar” het dier, het merk of het besturingssysteem), er wordt een verzameling kandidaat-pagina’s uit de index gehaald, en die verzameling wordt gerangschikt.

Die rangschikking gebeurt op basis van honderden signalen tegelijk. Grofweg vallen ze in vier categorieën:

  • Relevantie: komen de termen uit de zoekopdracht voor op de pagina, in welke onderdelen, en behandelt de pagina hetzelfde onderwerp of alleen hetzelfde woord
  • Autoriteit: hoeveel en welke andere pagina’s verwijzen naar deze pagina en naar dit domein
  • Kwaliteit: aanwijzingen dat de inhoud klopt, actueel is en van iemand met kennis van zaken komt
  • Context: locatie, taal, apparaat en zoekgeschiedenis van degene die zoekt

Twee mensen die op hetzelfde moment hetzelfde intypen, krijgen daardoor zelden exact dezelfde lijst. Een vaste positie in de zoekresultaten bestaat niet; wat bestaat is een gemiddelde over veel zoekopdrachten heen.

Hoe werkt Google precies, en wat weten we sinds de lekken?

Google beschrijft de drie stappen zelf in de documentatie over de werking van Google Search, maar houdt daarin de kern bewust vaag. Welke signalen zwaar wegen en hoe ze onderling worden verrekend, is nooit gepubliceerd. Twee incidenten hebben dat beeld de afgelopen jaren wel behoorlijk ingekleurd.

Het bekendste is het Google-lek van mei 2024. Een geautomatiseerde bot van Google publiceerde in maart van dat jaar per ongeluk interne documentatie van de Content Warehouse API op een openbare GitHub-repository, waar die tot 7 mei bleef staan. De inhoud werd eind mei openbaar gemaakt door SEO-onderzoekers Rand Fishkin en Mike King. Het gaat om 2.596 modules met in totaal 14.014 kenmerken, en Google bevestigde op 29 mei 2024 dat de documenten echt zijn.

Belangrijk is wat er niet in stond. Dit was geen broncode en geen algoritme, maar documentatie van datavelden: een beschrijving van welke gegevens Google per pagina en per domein opslaat. De weging ontbreekt volledig, dus het lek vertelt wel wat er gemeten wordt en niet hoe zwaar dat telt. Toch was dat genoeg om een paar hardnekkige discussies te beslechten. Er bleken velden te bestaan voor klikgedrag uit een systeem dat Navboost heet, voor een sitebrede kwaliteitsinschatting, en voor de vraag of een domein als klein persoonlijk platform wordt geclassificeerd. Al die zaken waren jarenlang publiekelijk gerelativeerd.

Echte broncode van een grote zoekmachine is één keer eerder uitgelekt, en dat was niet bij Google. In januari 2023 verscheen 44 GB aan Yandex-repositories online, buitgemaakt door een oud-medewerker. Daarin stond een lijst van 1.922 rankingfactoren, waarvan overigens ongeveer tweederde als verouderd of ongebruikt gemarkeerd stond. Yandex is de vierde zoekmachine van de wereld en niet Google, maar de architectuur is grotendeels dezelfde, en de lijst bevestigde het klassieke beeld: links, tekstuele overeenkomst, gedragssignalen en de leeftijd van een pagina, met daar bovenop honderden kleine correcties.

Wat je uit beide lekken vooral kunt meenemen, is dat er veel meer wordt gemeten dan iemand van buitenaf kan optimaliseren, en dat het loont om te werken aan de dingen die in elke versie van elk systeem terugkomen.

Hoe AI-zoekmachines werken

AI-assistenten worden vaak beschreven als een vervanging van de zoekmachine, maar technisch is het eerder een extra laag. Wanneer je ChatGPT, Gemini of Perplexity iets vraagt waarvoor actuele informatie nodig is, formuleert het model zelf een of meer zoekopdrachten, stuurt die naar een bestaande index, haalt een aantal pagina’s op en schrijft op basis daarvan een antwoord. ChatGPT leunt daarbij op Bing, Gemini op de Google-index. Crawlen en indexeren gebeuren dus nog steeds precies zoals hierboven beschreven; alleen de laatste stap ziet er anders uit.

Dat verschil in de laatste stap heeft wel gevolgen. Een zoekmachine toont tien resultaten en laat de bezoeker kiezen. Een assistent kiest zelf, gebruikt een handvol bronnen en verwerkt daar een passage uit in een lopend antwoord. Er is geen tweede positie die ook nog verkeer oplevert: je wordt genoemd of je wordt niet genoemd. Hoe je daarop stuurt, staat uitgewerkt in ons artikel over bovenaan in AI komen.

Onderdeel Klassieke zoekmachine AI-assistent
Invoer Enkele trefwoorden Volledige vraag in gewone taal
Bron van de pagina’s Eigen index Bestaande index, plus trainingsdata
Uitvoer Lijst met links en snippets Eén geschreven antwoord met bronvermelding
Aantal zichtbare partijen Tien of meer per pagina Meestal drie tot vijf
Eenheid die telt De pagina De losse alinea of het rijtje

De laatste rij is in de praktijk de belangrijkste. Een model neemt geen hele pagina over, maar één fragment, en dat fragment moet los van de rest kloppen. Een alinea die begint met een verwijswoord verliest zijn betekenis zodra je hem eruit tilt; een alinea die begint met het onderwerp zelf niet.

Waar je in de praktijk het meeste aan hebt

De drie stappen geven ook de volgorde aan waarin je problemen oplost. Controleer eerst of pagina’s überhaupt opgehaald kunnen worden, dan of ze in de index staan (in Google Search Console is dat per adres na te gaan), en pas daarna of ze op de juiste zoekopdrachten verschijnen. Werken aan positie zeven terwijl de pagina niet geïndexeerd is, levert niets op.

Voor het deel dat je wél in de hand hebt, blijft het lijstje kort en saai. Zorg dat een server snel en betrouwbaar antwoordt. Zorg dat de tekst in de HTML staat en niet pas na het uitvoeren van scripts verschijnt. Schrijf pagina’s die een concrete vraag beantwoorden in plaats van een trefwoord herhalen. En zorg dat gezaghebbende partijen naar je verwijzen, want dat signaal komt in elke uitgelekte lijst terug, bij Google net zo goed als bij Yandex.

Dat die adviezen al twintig jaar hetzelfde zijn, is geen teken dat er niets verandert. Het is een teken dat de onderliggende techniek, ondanks alle nieuwe interfaces, in de kern nog steeds op crawlen, indexeren en rangschikken draait.