Indexabiliteit: wat kop en header zeggen over opname in de index
Een pagina die niet in een zoekresultaat staat, kan drie verschillende dingen betekenen: een crawler mocht de pagina niet komen lezen, de paginaverbod stond in de kop, of de pagina werd gelezen maar een ander adres werd als het hare onthouden. De eerste vraag beantwoordt robots.txt — een crawl-regel op een andere plek van de host. De tweede en derde beantwoorden de kop van de pagina zelf en de regels van haar header, en daarover gaat dit artikel.
Indexabiliteit leest die twee plaatsen apart: `meta name="robots"`, richting voor richting, met waarde en eventuele partij, en `X-Robots-Tag` in de header, waar regels staan die een kop niet zeggen mag. Daarnaast leest hij élk `link rel="canonical"` in de kop — niet alleen het eerste — want twee blokken met verschillende adressen zijn een tegenspraak in de kop zelf, en elke crawler kiest er één.
Wat de tool daarbij nadrukkelijk niet doet, hoort bij het verhaal: hij vraagt niet aan een zoekmachine wat die geïndexeerd heeft. "Geen noindex" is een gemeten afwezigheid, geen bewezen plaats in een index. Dit artikel leest wat er in de kop schrijven kan, welke regels elkaar tegenspreken, en waar de meting ophoudt.
1. Opnemen en doorgeven zijn twee vragen
In één `robots`-tekst staan twee soorten regels door elkaar. `noindex` en `none` gaan over de pagina zelf: mag deze URL in de index komen. `nofollow` gaat over de links die de pagina doorgeeft: of een crawler ze mag volgen en wat ze betekenen. Een pagina kan dus opneembaar zijn met links die niet doorgegeven worden, of omgekeerd — en een `none` is geen waarde maar een bundel die beide vragen tegelijk beantwoordt.
Daarnaast zijn er de zachtere regels: `nosnippet` houdt de tekst buiten het resultaatfragment, `noimageindex` de afbeeldingen buiten de image-index, `nocache` en `noarchive` houden bewaarde koppen weg, en `max-snippet`, `max-image-preview` en `max-video-preview` geven maten in plaats van verboden. Die laatste kunnen er bij een partij staan — `max-image-preview:(Google)` of `max-snippet:[Google]300` — en dan hoort die partij bij de richting, niet bij de waarde. Wie alleen "noindex" zoekt, mist dus een deel van wat er staat.
2. Twee plaatsen waar de regel kan staan
Een indexeer-regel kan in de kop staan, als `meta name="robots"` met een content-waarde, en in de header, als `X-Robots-Tag`. De kop is onderdeel van de pagina; de header komt van de server en staat buiten de HTML. Dat verschil is praktisch: een noindex die niet in de HTML te vinden is, staat vaak in serverconfiguratie, CDN of CMS, en is daar te zetten én te halen. Omdat een browser de header van een andere origin niet mag lezen, haalt onze server de HTML en de headers op en leest de tool beide in jouw browser — in één verzoek, op het adres van de pagina zelf.
Tegenspraak tussen die twee plaatsen is een eigen bevinding. Staat in de kop `index, follow` en in de header `noindex`, dan zeggen kop en header tegengestelde dingen; de tool meldt de tegenspraak en laat open wat een crawler ervan maakt. Hetzelfde geldt voor richtingen die hier niet in de vaste lijst staan: een onbekende richting wordt bij naam genoemd — een typefout is mogelijk, iets eigens ook — en niet beoordeeld. En een `unavailable_after` met een datum die niet te lezen is, wordt gemeld als een datum die een crawler niet als datum leest.
3. Het adres dat de pagina stelt
`rel=canonical` is de manier waarop een pagina zegt welk adres zij als het hare bedoelt. Een crawler onthoudt dat adres en legt daar wat hij aan linkkracht verzamelt. Deze tool leest élk canonical-blok in documentvolgorde: adressen, of ze uit een relatief adres of een tekst zonder basis komen, of er een fragment (#dst) aan hangt, en of het adres op een andere host of een ander scheme staat dan de gemeten URL. Blokken die verschillende adressen stellen, worden geteld zoals ze zijn — twee adressen in één kop zijn twee beloften, niet één correctie.
Naast de canonical staat vaak `og:url`, het adres dat delers onthouden. Zijn die twee verschillend, dan vertelt één kop twee verhalen: een crawler onthoudt de canonical, een deler de og:url. En naast beide staat het adres dat deze meting zelf bereikte — de URL die de server na de doorverwijzingen opvroeg. Drie adressen die niet hetzelfde zijn, is de meest over het hoofd geziene indexabiliteitsfout: de pagina is opneembaar, maar niet op het adres dat de eigenaar bedoelde.
4. Waar de meting ophoudt
Een kop zonder noindex bewijst geen index. Een kop met noindex bewijst wél een verbod dat daar staat — maar niet dat een index het heeft zien staan, noch dat een oudere telling al verdwenen is. Zoeken is een beslissing van een zoekmachine op een moment dat jij er niet bij was; wat hier gemeten wordt, is wat er op dit adres staat voor de bezoeker die deze meting doet.
Ook de rest van de brief aan een crawler staat bij eigen tools: robots en sitemap leest wat een crawler mag komen lezen en kruist dat met de eigen sitemap, Linkweergave leest wat delers uit dezelfde kop halen, en wat Google, LinkedIn en WhatsApp uit je pagina halen en robots.txt en sitemap kruiscontrole gaan over de twee kanten die samen bepalen of een pagina gevonden wordt. Een pagina die gevonden wil worden, schrijft die brief beter met opzet dan door toeval — en de eerste stap is lezen wat er nu staat.