Byggeloggen satte et grønt flueben ud for hver eneste side på wybrandt.com: statisk, færdigbygget, klar til at blive serveret fra cache. Serveren var af en anden mening. Den byggede hver side forfra ved hvert eneste besøg og satte oven i købet en header på svaret, der forbød al caching.

Det opdagede jeg, fordi jeg havde sat min AI-makker til en klassisk SEO-gennemgang: metadata, sitemap, hastighed. Den slags ender normalt i en tjekliste med pæne anbefalinger. Denne gang endte den som udgravningsarbejde.

Én linje kode, ti manglende filer

Mistanken samlede sig om én linje i sidens rodlayout: et kald, der læser den besøgendes sprogindstilling. Next.js — værktøjet, siden er bygget med — tolker den slags som »denne side afhænger af den enkelte besøgende« og opgiver i stilhed at bygge noget som helst på forhånd. Byggeloggen viste stadig sit grønne flueben. Der lå bare ingen filer bag det.

Men mistanke er ikke årsagssammenhæng. Så vi kørte eksperimentet: fjern linjen, byg igen, tæl filer på disken. Ti færdige HTML-filer dukkede op. Sæt linjen tilbage: nul. Først dér var fejlen bevist — og først dér blev noget som helst »optimeret«.

Eksperimentet: 1 linje fjernet → 10 statiske filer på disken. Linjen tilbage → 0.

Løsningen blev at dele sidens fundament i tre, så den offentlige del kan bygges færdig på forhånd, mens login og dashboard fortsat må være dynamiske. Ikke køn på et arkitekturdiagram. Men målbar: i dag serveres forsiden som en færdig fil med et års holdbarhed på cachen.

Søgerobotterne blev sendt til udlandet

Undervejs afslørede en test noget, den første rapport helt havde overset. Kom man forbi med engelsk browsersprog, blev man automatisk omdirigeret væk fra den danske forside — og det samme blev enhver søgerobot, der præsenterede sig på engelsk. Google behandler automatiske sprogomdirigeringer som en fælde, og den danske hovedside var reelt utilgængelig for dem. Nu skifter siden kun sprog, når nogen selv beder om det.

To af tolv påstande holdt ikke

Til sidst fik en frisk model hele ændringen til gennemsyn. En, der ikke havde skrevet en linje af koden, ikke havde deltaget i samtalen og ikke havde noget at forsvare — med én instruks: prøv at skyde arbejdet ned. Den byggede siden selv, startede sin egen server og efterprøvede hver påstand. Ti af tolv blev bekræftet. To blev afvist.

Begge afvisninger var ægte fejl. De engelske sider bar danske beskrivelser i deres strukturerede data, og sidens globale 404-side var gået i stykker under ombygningen. Begge blev rettet, før noget kom i drift. Det er hele pointen med at lade en anden kigge: den, der har bygget, leder efter bekræftelse. Den friske leder efter fejl.

Moralen er ikke, at værktøjerne lyver. Den er, at et grønt flueben er en påstand, ikke et bevis. Grav, til du står med artefaktet i hånden — filen på disken, headeren, målingen. Og lad derefter en anden prøve at grave det ned igen.