Ik kocht een domein dat voor het eerst in 2000 was geregistreerd. Op papier leek die geschiedenis eerder een voordeel. Daarna zette ik mijn nieuwe site live en begonnen de serverlogs vol te lopen met requests naar pagina's die ik nooit had gemaakt.
Meer dan 1.000 requests per dag gingen naar URL's die in het nieuwe project niet bestonden. In analytics zag ik dat als een grote piek in direct traffic met vrijwel geen engagement. Tegelijk bezocht de crawler van Yandex oude paden opnieuw, kreeg 404 Not Found, en Yandex Webmaster verzamelde in één nacht meer dan 900 fouten.
Mijn eerste verklaring was simpel: oude bots raken dode URL's, Yandex ziet die activiteit en blijft ze daarom crawlen. Zo zag de volgorde er vanaf mijn kant uit. Mijn data kon die causaliteit echter niet bewijzen.
Wat ik echt kon bevestigen
Er waren drie losse observaties. Ten eerste kreeg de server veel requests naar URL's uit het vorige leven van het domein. Ten tweede leverde dat verkeer vrijwel geen echte gebruikersbetrokkenheid op. Ten derde vroeg ook de crawler van Yandex oude paden op en rapporteerde Webmaster in één nacht meer dan 900 fouten.
Operationeel was dat een echt probleem: rommelige logs, onnodige requests en een foutreport dat ik moest opruimen. Maar die feiten bewijzen niet dat bots van derden Yandex aan het crawlen kregen of dat de fouten rankings of organisch verkeer direct schaadden. Crawlen is niet indexeren, indexeren is niet ranken en een foutmelding is geen bewijs van een penalty.
Wat ik te simpel had gemaakt aan 404 en 410
Ik dacht eerst ongeveer zo: 404 betekent “misschien tijdelijk weg”, 410 betekent “definitief weg”. Als intuïtie is dat bruikbaar, maar technisch is het niet precies.
404 Not Found betekent dat de server geen huidige representatie van de aangevraagde resource kan leveren; de status zegt op zichzelf niet of dat tijdelijk of permanent is. 410 Gone is specifieker: die past wanneer de server weet dat de resource niet meer beschikbaar is en verwacht dat dit permanent is.
Die nuance is ook belangrijk voor SEO. Zoekmachines kunnen URL's verwijderen die 404 of 410 teruggeven. Daarom noem ik 410 niet langer een magisch “sterker SEO-statussignaal” en beschouw ik 404 niet als fout voor elke verwijderde pagina.
Waarom gerichte 410-responses in mijn geval toch logisch waren
De oude paden waren geen tijdelijke storing. Ze hoorden bij eerdere content op het domein en hadden geen plek in het nieuwe project. Van die specifieke URL's wist ik dat ze permanent weg waren. 410 Gone beschreef hun toestand dus nauwkeurig.
Ik configureerde daarom 410 alleen voor bekende legacy-paden, in plaats van elke onbekende URL als 410 te behandelen. Na die wijziging nam het crawl- en reportinggeluid rond de oude paden af en werd de situatie in de webmastertools veel schoner.
Over de oorzaak blijf ik voorzichtig. Ik kan zeggen dat de verbetering na de wijziging kwam en dat 410 semantisch correct was voor die URL's. Ik kan niet bewijzen dat 410 op zichzelf iedere bot heeft gestopt. Een willekeurige bot kan de betekenis van een HTTP-status negeren en dezelfde URL eindeloos blijven aanvragen.
De beslisregel die ik nu gebruik
De nuttige vraag is niet “Is 410 beter dan 404?”, maar “Wat is er werkelijk met deze URL gebeurd?”
- Er is een duidelijke vervanger: gebruik een permanente redirect zoals
301naar de echt equivalente nieuwe URL. - De oude resource is aantoonbaar permanent verwijderd en heeft geen vervanger:
410 Goneis een precieze keuze. - De URL is alleen onbekend, verkeerd getypt of heeft nooit bestaan: een normale
404 Not Foundis passend.
Wat ik zou vermijden is iedere dode URL naar de homepage redirecten alleen om fouten te laten verdwijnen. Dat verbergt de echte toestand van de resource en kan voor zowel gebruikers als crawlers een slechtere ervaring opleveren.
Hoe ik een oud domein nu vóór de lancering zou auditen
Als ik opnieuw een domein met geschiedenis gebruik, behandel ik zijn URL-verleden als onderdeel van de migratie, ook als ik de oude website zelf niet migreer.
- Onderzoek de oude footprint. Zoek vóór de lancering naar historische URL's en duidelijke legacy-secties.
- Bekijk access logs vanaf dag één. Herhaalde requests naar paden die je nooit hebt gemaakt laten zien dat het domein extern nog wordt herinnerd.
- Scheid mensen, zoekmachinecrawlers en willekeurige bots. Een piek in direct traffic en een crawlerfout zijn verschillende signalen; maak er niet automatisch één oorzaak van.
- Classificeer terugkerende dode URL's. Kies per belangrijk patroon bewust tussen 301, 404 en 410.
- Meet resultaten apart. Requestfrequentie, crawlerreports en indexering zijn verschillende dimensies; ik vat ze liever niet samen in één vage “SEO health”-score.
Dat is weinig werk vergeleken met het probleem pas ontdekken wanneer logs en webmastertools al vol ruis staan.
Wat 410 niet oplost
410 is een HTTP-uitspraak over de toestand van een resource. Het is geen firewall, rate limiter of botblocker. Als een scraper na een 410-respons requests blijft sturen, moet de server ze nog steeds ontvangen en beantwoorden. Is het echte probleem misbruik van requestvolume, dan is dat een apart infrastructuurprobleem.
Het is ook geen SEO-boost. De juiste status helpt een crawler te begrijpen wat er met een URL is gebeurd; daardoor gaat de nieuwe site niet vanzelf beter ranken.
De les die ik heb behouden
Het verrassende was niet dat een oud domein oude URL's had. Het was hoe snel die onzichtbare geschiedenis na de lancering weer zichtbaar werd: meer dan 1.000 requests per dag naar pagina's die ik niet had, vrijwel geen engagement en meer dan 900 Yandex Webmaster-fouten in één nacht.
Een oud domein is geen lege namespace. Oude links, crawlers, scripts en bots kunnen paden nog jaren onthouden nadat de oorspronkelijke content verdwenen is. Mijn huidige regel is simpel: audit die geschiedenis, geef de status terug die bij de werkelijkheid past en houd operationeel botverkeer gescheiden van conclusies over zoekmachines.
Geschiedenis kan een asset zijn. Het is ook state die je erft.