TTFB, Time to First Byte, er den tid, der går, fra browseren beder om en side, til den første byte af svaret kommer tilbage. Den viser, hvor længe kunden venter, før der overhovedet kan vises noget, og i en WordPress-shop er det tit det tal, der afslører, at serveren bruger for lang tid på at bygge siderne.
Her gennemgår vi, hvad TTFB måler, hvordan du måler den rigtigt, hvor tiden typisk går i WordPress, og hvad du gør først for at få den ned.
Hvad TTFB måler
TTFB er summen af flere ting: opslaget af domænet, forbindelsen og krypteringen, eventuelle omdirigeringer, og den tid serveren bruger på at lave siden. På et WordPress-site er det sidste ofte den største del, når siden ikke kommer fra en cache.
Ifølge Googles vejledning om TTFB på web.dev (på engelsk) bør de fleste sites ligge på 0,8 sekunder eller derunder for 75 % af besøgene, og over 1,8 sekunder regnes som dårligt. TTFB er ikke selv en af Core Web Vitals, men den kommer før alt andet: en høj TTFB gør det svært at få resten af siden hurtigt frem.
Sådan måler du den rigtigt
Den samme side kan have vidt forskellig TTFB, alt efter om den kommer fra cachen. Mål derfor flere situationer, ikke kun forsiden:
- Åbn browserens udviklerværktøjer (F12), gå til Network, og klik på selve siden øverst i listen. Under Timing står ventetiden på serverens svar.
- Mål en produktside i et privat vindue, og genindlæs den. Den første visning kan være uden cache, den anden bør komme fra cachen.
- Læg en vare i kurven, og mål produktsiden, kurven og checkout igen. Nu kommer de ikke fra cachen.
- Har shoppen nok besøg, viser PageSpeed Insights også TTFB fra rigtige brugere. Det er det tal, der tæller, fordi det dækker kundernes forbindelser og enheder.
Hvor tiden går
| Høj TTFB på | Typisk årsag |
|---|---|
| Alle sider, også cachede | Afstand til serveren, langsomt DNS eller forbindelse, omdirigeringer, eller en cache, der ikke rammer |
| Kun sider uden cache | PHP, plugins, databasen, kald til andre servere |
| Kun når der er mange besøgende | For få PHP-processer, så forespørgslerne står i kø |
| Kun nogle gange, uden mønster | Baggrundsjob og WP-Cron, der kører oven i besøgene |
Høj TTFB på cachede sider
Kommer siden fra en cache, og er TTFB stadig høj, ligger problemet foran WordPress. Tjek først, om cachen faktisk rammer: mange cacher springer over, når der er cookies eller parametre i adressen, fx fra kampagnelinks, og så bliver hver side bygget fra bunden alligevel. Hvordan du tjekker det, står i vores guide til caching i WooCommerce.
Rammer cachen, så se på omdirigeringer (fra http til https, med eller uden www) og på afstanden til serveren. Ligger serveren langt fra kunderne, kan et CDN, der også gemmer sider, hjælpe på de cachede sider.
Høj TTFB på kurv, checkout og admin
Siderne, der ikke kan caches, viser, hvor hurtigt serveren kan bygge en side. Er de langsomme, ligger tiden i WordPress selv, og de typiske årsager er:
- Intet object cache: Databasen bliver spurgt om det samme ved hver sidevisning. Opsætningen står i vores guide til Redis object cache.
- Et tungt plugin: Et plugin, der laver tunge forespørgsler eller venter på andre servere. Sådan finder du det: find det langsomme plugin.
- En tung database: Store autoloadede indstillinger og tabeller, der er vokset. Se guiden til autoload i wp_options.
- Serveren: En gammel PHP-version, for lidt hukommelse eller for få PHP-processer til de besøgende, der er på samme tid.
Hvad du gør først
- Mål TTFB med og uden cache, så du ved, om problemet ligger foran eller i WordPress.
- Ret omdirigeringer, og tjek, at sidecachen rammer de sider, den skal.
- Slå et object cache til, hvis shoppen ikke har et.
- Find de plugins og forespørgsler, der bruger tiden på siderne uden cache.
- Se på serveren til sidst, når du ved, hvor meget den skal kunne.
Den fulde fejlfinding af en langsom shop, trin for trin, står i vores guide til en langsom WooCommerce-webshop.
Ofte stillede spørgsmål
Er en TTFB på et sekund dårlig?
Det kommer an på siden. På en cachet produktside er det højt. På checkout, der bygges fra bunden for hver kunde, er det et realistisk sted at starte, men stadig værd at få ned. Sammenlign altid den samme slags side.
Hjælper et CDN på TTFB?
På sider, CDN’et må gemme, ja, fordi svaret kommer fra en server tættere på kunden. På kurv, checkout og “Min konto” nej: de skal stadig bygges på din egen server.
Vil du have hjælp?
En høj TTFB siger, at noget tager for lang tid, men ikke hvad. Vil du have, at vi finder ud af det i din shop, så læs om optimering af en langsom WooCommerce-shop. Vi kigger gratis på din shop først og siger, hvad der skal til.