llms.txt i WordPress: Er det værd at lave, eller er det bare AI SEO hype?
llms.txt bliver nævnt mere og mere i forbindelse med AI SEO, men filen er ikke en magisk genvej til synlighed i ChatGPT, Google AI Overviews eller andre AI baserede søgeresultater. Den kan være et nyttigt supplement, hvis resten af hjemmesiden er bygget ordentligt, men den kan ikke rette op på dårlig teknisk SEO, svag struktur eller indhold, som er svært at læse.
På en WordPress hjemmeside bør llms.txt derfor ikke være det første, man kigger på. Først skal indholdet kunne crawles, HTML strukturen skal give mening, interne links skal være logiske, schema skal passe til virkeligheden, og siden skal være hurtig nok til både brugere og crawlere. Når det fundament er på plads, kan llms.txt være en ekstra måde at pege AI systemer mod de vigtigste sider.
Hvad er llms.txt?
llms.txt er en tekstfil, der typisk placeres i roden af et website:
https://ditdomæne.dk/llms.txtFormålet er at give AI systemer en kort og ryddelig oversigt over de vigtigste sider, emner, ressourcer og beskrivelser på en hjemmeside.
Man kan se det lidt som en kurateret indgang til hjemmesiden. Ikke for almindelige brugere, men for AI systemer og værktøjer, der forsøger at forstå, hvad en hjemmeside handler om.
En llms.txt fil kan for eksempel indeholde:
- en kort beskrivelse af virksomheden
- links til de vigtigste servicesider
- links til centrale guides og artikler
- links til dokumentation eller værktøjer
- korte forklaringer af, hvorfor siderne er relevante
- emner hjemmesiden dækker
Det lyder umiddelbart smart. Og det kan det også være.
Men det er vigtigt at forstå, hvad llms.txt ikke er.
Det er ikke det samme som sitemap.xml.
Det er ikke det samme som robots.txt.
Det er ikke en officiel Google rankingfaktor.
Det er ikke en garanti for synlighed i AI søgning.
Det er ikke en erstatning for almindelig teknisk SEO.
Det er en ekstra fil, der kan give en mere menneskeligt læsbar og AI venlig oversigt over dit vigtigste indhold.
Hvorfor taler alle pludselig om llms.txt?
Fordi søgning er ved at ændre sig.
Før handlede meget SEO arbejde om at blive fundet i de klassiske søgeresultater. Googlebot crawlede siden, Google indekserede indholdet, og brugeren klikkede videre til hjemmesiden.
Det findes stadig. Og det er stadig vigtigt.
Men i dag bliver indhold også brugt i AI baserede svar, hvor brugeren ikke nødvendigvis klikker på samme måde som før. AI systemer kan samle information fra flere kilder, lave opsummeringer, besvare komplekse spørgsmål og vise brugeren et svar direkte.
Det har fået mange til at lede efter nye tekniske måder at gøre deres indhold mere synligt for AI.
Og her er llms.txt blevet nævnt som en mulig løsning.
Problemet er bare, at der hurtigt opstår hype omkring sådan noget. Pludselig bliver en enkel tekstfil solgt som noget, alle skal have, hvis de vil være klar til AI søgning.
Så enkelt er det ikke.
Efter min mening skal llms.txt ses som et supplement. Ikke som fundamentet.
Hvis din WordPress hjemmeside allerede har en stærk teknisk struktur, gode interne links, fornuftigt schema, hurtig server, tydelige servicesider og indhold med reel erfaring, kan llms.txt være interessant at teste.
Hvis hjemmesiden derimod er langsom, rodet og svær at crawle, er det dér arbejdet skal starte.
llms.txt er ikke en erstatning for teknisk SEO
Det vigtigste at forstå er dette:
Hvis en AI skal bruge dit indhold, skal den først kunne finde og forstå det. Det problem løses ikke af én ekstra tekstfil.
Jeg har arbejdet med webudvikling siden 1995, og jeg har set mange tekniske trends komme og gå. Hver gang der kommer noget nyt, er der nogen, der prøver at gøre det til en genvej.
Men på en rigtig hjemmeside er det sjældent genvejen, der gør forskellen.
Det er fundamentet.
På WordPress ser jeg ofte problemer som:
- vigtige sider er sat til noindex
- canonical peger på den forkerte URL
- sitemap indeholder gamle eller irrelevante URL’er
- robots.txt blokerer mere end den burde
- interne links er svage eller tilfældige
- overskrifter bruges til design i stedet for struktur
- tekst ligger gemt bag JavaScript
- page builderen laver tung og rodet HTML
- schema er forkert eller for generisk
- der er gamle redirect kæder
- serveren svarer langsomt
- WooCommerce skaber mange tekniske URL’er
- filter URL’er og søgesider skaber crawlstøj
- vigtige sider mangler tydelige beskrivelser
Hvis de ting ikke er på plads, hjælper llms.txt kun meget lidt.
Det svarer lidt til at lave en flot indholdsfortegnelse til en bog, hvor halvdelen af kapitlerne mangler, siderne står i forkert rækkefølge, og nogle af kapitlerne slet ikke kan åbnes.
Så skal man ikke starte med indholdsfortegnelsen.
Man skal starte med bogen.
Forskellen på llms.txt, robots.txt og sitemap.xml
For at forstå llms.txt rigtigt, er det vigtigt at skelne mellem de forskellige filer.
| Fil | Formål | Bruges typisk til |
|---|---|---|
| robots.txt | Fortæller crawlere hvad de bør eller ikke bør hente | Crawl styring |
| sitemap.xml | Viser søgemaskiner hvilke URL’er der findes | Opdagelse og indeksering |
| llms.txt | Giver en kurateret oversigt over vigtigt indhold | AI venlig indgang til indhold |
robots.txt handler primært om adgang og crawl styring.
sitemap.xml handler om at hjælpe søgemaskiner med at finde de URL’er, du gerne vil have crawlet og indekseret.
llms.txt handler mere om at forklare og prioritere indhold.
En simpel måde at sige det på er:
robots.txt styrer, hvad crawlere bør hente.
sitemap.xml viser, hvilke URL’er der findes.
llms.txt forklarer, hvilke sider der er vigtige og hvorfor.
Det er tre forskellige ting.
Derfor bør llms.txt heller ikke bruges som erstatning for de andre. Den bør kun bruges som et ekstra lag, hvis resten allerede fungerer.
Hvordan kan en llms.txt fil se ud?
En llms.txt fil skrives typisk i Markdown lignende format. Den skal være nem at læse, kort nok til at være overskuelig og tydelig nok til at give mening.
Et simpelt eksempel kunne se sådan her ud:
# Kim Tetzlaff
> Kim Tetzlaff arbejder med WordPress, hastighedsoptimering, teknisk SEO, WooCommerce og webudvikling med fokus på performance og teknisk kvalitet.
## Vigtige sider
- [WordPress hastighedsoptimering](https://kim-tetzlaff.dk/wordpress-hastighedsoptimering/)
Praktisk og teknisk gennemgang af hastighedsoptimering til WordPress.
- [Teknisk SEO](https://kim-tetzlaff.dk/sogemaskineoptimering/teknisk-seo/)
Hjælp til crawlbarhed, indeksering, struktur, schema og tekniske SEO fejl.
- [Hastighedsoptimering](https://kim-tetzlaff.dk/hastighedsoptimering/)
Optimering af hjemmesider med fokus på TTFB, Core Web Vitals, billeder, scripts og server.
- [Værktøjer](https://kim-tetzlaff.dk/vaerktojer/)
Gratis værktøjer til test af hastighed, sidestørrelse, redirects, robots.txt og teknisk SEO.
## Emner
- WordPress
- WooCommerce
- Teknisk SEO
- Core Web Vitals
- Hastighedsoptimering
- Schema
- Crawlbarhed
- Server performanceDet vigtigste er ikke, at filen bliver lang. Det vigtigste er, at den er kurateret.
En llms.txt fil skal ikke bare være endnu en automatisk liste over alt, hvad WordPress kan finde. Så ender den bare med at blive lige så rodet som et dårligt sitemap.
Den skal pege på det bedste og vigtigste indhold.
Skal alle WordPress hjemmesider have llms.txt?
Nej.
I hvert fald ikke som det første.
En lille virksomhedsside med fem almindelige sider får sandsynligvis ikke den store værdi ud af llms.txt, hvis hjemmesiden i forvejen er enkel og godt struktureret.
En større hjemmeside med mange artikler, guides, værktøjer, dokumentation eller servicesider kan derimod bedre have glæde af en kurateret oversigt.
llms.txt giver mest mening, når:
- du har mange guides eller vidensartikler
- du har teknisk dokumentation
- du har værktøjer eller ressourcer
- du vil pege AI systemer mod dine vigtigste sider
- du har stærke emneklynger
- du arbejder seriøst med teknisk SEO
- du vil eksperimentere med AI synlighed uden at bilde dig selv ind, at det er en rankingfaktor
llms.txt giver mindre mening, når:
- du kun har få sider
- dine vigtigste sider ikke er teknisk optimeret
- du har problemer med noindex eller canonical
- dit sitemap er rodet
- din interne linkstruktur er svag
- dit indhold er tyndt eller generisk
- du forventer hurtig trafik bare ved at oprette filen
Det sidste punkt er vigtigt.
Hvis nogen sælger llms.txt som en hurtig vej til AI synlighed, ville jeg være skeptisk.
Det kan være et fint teknisk supplement. Men det er ikke et mirakel.
Sådan laver du llms.txt i WordPress
Der er flere måder at lave llms.txt på i WordPress. Hvilken løsning der giver mest mening, afhænger af hvor teknisk hjemmesiden er, og hvor ofte filen skal opdateres.
1. Manuel llms.txt fil i roden
Den mest simple løsning er at oprette en fysisk fil og uploade den til roden af hjemmesiden.
Den skal typisk ligge samme sted som WordPress installationens wp-config.php.
På mange webhoteller vil det være en mappe som:
/public_html/llms.txteller:
/htdocs/llms.txtFordelen er, at det er simpelt.
Ulempen er, at filen skal opdateres manuelt.
Det kan være fint, hvis hjemmesiden ikke ændrer sig ret ofte. Men hvis du løbende udgiver guides, værktøjer og nye landingssider, kan den hurtigt blive forældet.
2. llms.txt via WordPress kode
Man kan også lave filen via WordPress, så /llms.txt bliver håndteret dynamisk uden en fysisk fil.
Et simpelt eksempel kunne se sådan her ud:
add_action( 'init', function() {
add_rewrite_rule( '^llms\.txt$', 'index.php?ktz_llms_txt=1', 'top' );
});
add_filter( 'query_vars', function( $vars ) {
$vars[] = 'ktz_llms_txt';
return $vars;
});
add_action( 'template_redirect', function() {
if ( get_query_var( 'ktz_llms_txt' ) ) {
header( 'Content-Type: text/plain; charset=utf-8' );
echo "# Dit website\n\n";
echo "> Kort beskrivelse af hjemmesiden.\n\n";
echo "## Vigtige sider\n\n";
echo "- [Forside](https://ditdomæne.dk/)\n";
echo "- [Kontakt](https://ditdomæne.dk/kontakt/)\n";
exit;
}
});Hvis du bruger denne metode, skal WordPress kende rewrite reglen. Det betyder, at permalinks typisk skal gemmes igen under:
Indstillinger → Permanente links
På en rigtig løsning bør rewrite regler ikke flushes ved hvert page load. Hvis du laver det som et plugin, bør flush ske ved plugin aktivering.
3. Dynamisk llms.txt baseret på udvalgt indhold
For mere avancerede WordPress løsninger kan man lave en dynamisk llms.txt, hvor udvalgte sider, indlæg eller custom post types automatisk hentes.
Men her skal man passe på.
Dynamisk er ikke automatisk bedre.
Hvis du bare henter alle publicerede indlæg, alle sider, alle kategorier og alle produkter, får du hurtigt en fil uden prioritering. Og så forsvinder pointen.
En god llms.txt bør være kurateret.
Det kan for eksempel være baseret på:
- udvalgte servicesider
- udvalgte guides
- artikler i bestemte kategorier
- sider markeret med et custom field
- værktøjer eller ressourcer
- dokumentationssider
Man kan for eksempel lave et ACF felt som:
Medtag i llms.txtog så kun vise de sider, hvor feltet er slået til.
Det giver langt bedre kontrol end bare at outputte alt.
Eksempel på mere dynamisk WordPress løsning
Her er et simpelt eksempel, hvor man henter sider, der er markeret med et custom field.
Eksemplet forudsætter, at der findes et meta felt med navnet include_in_llms.
add_action( 'init', function() {
add_rewrite_rule( '^llms\.txt$', 'index.php?ktz_llms_txt=1', 'top' );
});
add_filter( 'query_vars', function( $vars ) {
$vars[] = 'ktz_llms_txt';
return $vars;
});
add_action( 'template_redirect', function() {
if ( ! get_query_var( 'ktz_llms_txt' ) ) {
return;
}
header( 'Content-Type: text/plain; charset=utf-8' );
echo "# Dit website\n\n";
echo "> Kort beskrivelse af hvad hjemmesiden handler om.\n\n";
echo "## Vigtige sider\n\n";
$query = new WP_Query([
'post_type' => ['page', 'post'],
'post_status' => 'publish',
'posts_per_page' => 50,
'meta_key' => 'include_in_llms',
'meta_value' => '1',
'orderby' => 'menu_order',
'order' => 'ASC',
'no_found_rows' => true,
]);
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
$title = get_the_title();
$url = get_permalink();
$description = get_post_meta( get_the_ID(), 'llms_description', true );
echo "- [" . $title . "](" . $url . ")\n";
if ( $description ) {
echo " " . wp_strip_all_tags( $description ) . "\n";
}
echo "\n";
}
wp_reset_postdata();
}
exit;
});Det er stadig kun et simpelt eksempel. På en færdig løsning ville jeg også se på cache, tegnsætning, maksimum længde, redirects, noindex, canonical og om URL’erne faktisk bør med.
Det er netop her forskellen ligger mellem en hurtig plugin løsning og en teknisk gennemtænkt løsning.
Hvad skal du ikke putte i llms.txt?
En llms.txt fil skal ikke indeholde alt.
Faktisk er noget af det vigtigste at vælge fra.
Undgå normalt:
- tynde tag arkiver
- interne søgesider
- login sider
- kurv og checkout
- min konto sider
- ordre modtaget sider
- filter URL’er
- sorterings URL’er
- gamle kampagnesider
- sider med noindex
- sider der redirecter
- duplicate content
- URL’er med tracking parametre
- sider uden reel værdi
- sider du ikke vil have AI systemer til at prioritere
På WooCommerce bør man være ekstra opmærksom.
En webshop kan hurtigt skabe mange URL’er, som ikke nødvendigvis bør fremhæves:
- produktfiltre
- sortering
- paginering
- parameter URL’er
- udgåede produkter
- variationer
- kurv
- checkout
- konto sider
Hvis man laver en llms.txt til en WooCommerce webshop, ville jeg normalt hellere fremhæve de vigtigste kategorier, købsguides, informationssider og eventuelt udvalgte produkter, ikke alt hvad shoppen indeholder.
Hvordan tester man llms.txt?
Man kan teste, om filen teknisk virker.
Man kan ikke teste med sikkerhed, at en bestemt AI tjeneste bruger den til synlighed eller citering.
Det er en vigtig forskel.
Du kan teste:
- om
/llms.txtreturnerer HTTP status 200 - om filen har content type
text/plain - om filen ikke redirecter unødvendigt
- om den kan læses uden login
- om links i filen virker
- om de vigtigste URL’er ikke er noindex
- om de vigtigste URL’er ikke er blokeret i robots.txt
- om URL’erne findes i sitemap
- om cache viser en opdateret version
- om filen er kort og overskuelig
Du kan også teste den direkte i browseren.
Hvis den åbner som almindelig tekst, er det et godt tegn.
Men det betyder ikke, at du nu automatisk bliver synlig i AI søgning.
Det vigtigste man kan teste lige nu er, om filen teknisk er korrekt, og om den peger på sider, der i forvejen er værd at bruge.
llms.txt og serverlogs
Hvis man vil vide, om bots faktisk besøger filen, skal man kigge i serverlogs.
Det er her man kan se, hvad der sker i virkeligheden.
I logs kan man blandt andet se:
- om
/llms.txtbliver hentet - hvilke user agents der besøger filen
- hvilke IP adresser der bruges
- hvilken statuskode filen returnerer
- hvor ofte filen bliver hentet
- om bots også besøger de URL’er, filen linker til
- om bots rammer redirects
- om bots får 404 eller 500 fejl
- om trafikken belaster serveren
En loglinje kunne for eksempel ligne:
GET /llms.txt 200 "OAI-SearchBot"Man skal dog ikke stole blindt på user agent alene. User agents kan spoofes.
Men serverlogs er stadig langt bedre end gætterier.
Hvis man arbejder seriøst med teknisk SEO, AI crawlere og WordPress performance, bør logs være en del af værktøjskassen.
Det er også her man kan opdage, om crawlere bruger tid på de forkerte URL’er. Det gælder ikke kun AI crawlere, men også klassiske søgemaskiner.
Skal llms.txt nævnes i robots.txt?
Nogle vælger at tilføje en reference til llms.txt i robots.txt.
For eksempel:
User-agent: *
Allow: /
Sitemap: https://ditdomæne.dk/sitemap_index.xml
LLMS: https://ditdomæne.dk/llms.txtHer skal man dog være opmærksom på, at LLMS: ikke er en klassisk standardlinje på samme måde som Sitemap:.
Det kan være fint som signal eller eksperiment, men man skal ikke regne med, at alle crawlere forstår eller bruger det.
Hvis man vil være konservativ, kan man nøjes med at gøre filen tilgængelig direkte på:
https://ditdomæne.dk/llms.txtDet er også den mest simple løsning.
llms.txt og robots.txt er to forskellige diskussioner
Mange blander llms.txt og robots.txt sammen, fordi begge filer ligger i roden af hjemmesiden og handler om crawlere.
Men de løser ikke samme problem.
robots.txt bruges til at styre, hvad crawlere bør hente.
llms.txt bruges til at give en oversigt over indhold, som AI systemer kan bruge som indgang.
Hvis du vil blokere en crawler, bruger du robots.txt.
Hvis du vil fremhæve vigtigt indhold, kan du bruge llms.txt.
Det er to forskellige ting.
Eksempelvis kan man i robots.txt vælge at tillade en AI søgecrawler og blokere en træningscrawler, hvis crawlerne understøtter det.
User-agent: OAI-SearchBot
Allow: /
User-agent: GPTBot
Disallow: /Pointen er ikke, at alle skal bruge præcis den opsætning.
Pointen er, at man skal skelne mellem formål.
En crawler der bruges til søgning, er ikke nødvendigvis det samme som en crawler, der bruges til træning. Derfor giver det sjældent mening bare at sige “blokér AI” eller “tillad AI”.
Det afhænger af, hvad du vil med dit indhold.
Hvad ville jeg gøre på en WordPress hjemmeside?
Hvis jeg skulle vurdere, om en WordPress hjemmeside bør have llms.txt, ville jeg ikke starte med selve filen.
Jeg ville starte med en teknisk gennemgang.
Jeg ville tjekke:
- Kan de vigtigste sider crawles?
- Er de sat korrekt til index?
- Peger canonical rigtigt?
- Er sitemap rent?
- Er robots.txt fornuftig?
- Ligger hovedindholdet i HTML?
- Er interne links logiske?
- Er schema korrekt?
- Er siden hurtig nok?
- Er der crawlstøj fra filtre, søgninger eller parametre?
- Er indholdet konkret og baseret på reel erfaring?
- Er der en klar sammenhæng mellem hovedsider, undersider og blogindlæg?
Først derefter ville jeg lave llms.txt.
Og jeg ville holde den kort.
En god llms.txt fil bør ikke være en kopi af sitemap. Den bør være en prioriteret oversigt over det indhold, du faktisk gerne vil have fremhævet.
Min anbefaling til begyndere
Hvis du er ny i teknisk SEO, så start ikke med at tænke på llms.txt som noget, der skal løse alt.
Start med disse spørgsmål:
- Kan Google finde dine vigtigste sider?
- Kan dine sider indekseres?
- Har dine sider gode titles og meta descriptions?
- Har du en tydelig menustruktur?
- Linker dine sider naturligt til hinanden?
- Er indholdet let at læse?
- Er siden hurtig nok?
- Har du styr på sitemap?
- Er der sider, der ved en fejl er noindex?
- Kan en bruger hurtigt forstå, hvad siden handler om?
Hvis svaret er nej til flere af de spørgsmål, bør du starte der.
llms.txt kan komme senere.
Min anbefaling til øvede
Hvis du allerede arbejder teknisk med SEO, WordPress og performance, kan llms.txt være interessant at teste.
Men gør det ordentligt.
Min anbefaling vil være:
- lav filen manuelt eller kontrolleret dynamisk
- medtag kun vigtige URL’er
- undgå tynde arkiver og tekniske sider
- brug korte beskrivelser
- sørg for at alle URL’er returnerer 200
- tjek at de ikke er noindex
- tjek canonical
- sammenhold med sitemap
- se i serverlogs om filen bliver hentet
- mål ikke succes på mavefornemmelse
- dokumentér hvorfor sider er medtaget
Hvis du laver det som plugin eller custom funktion i WordPress, så byg det med kontrol. Ikke som en blind automatisk eksport.
Det er bedre med 20 gode URL’er end 800 tilfældige.
llms.txt er ikke ligegyldigt
Men det er heller ikke den store genvej til AI synlighed, som det nogle gange bliver gjort til. På en WordPress hjemmeside giver filen først mening, når det tekniske fundament allerede er nogenlunde på plads.
Hvis dine vigtigste sider kan crawles, læses og forstås, hvis din interne struktur er logisk, hvis schema passer til indholdet, og hvis siden ikke drukner i teknisk rod, kan llms.txt være et fint supplement.
Men hvis fundamentet halter, er det der arbejdet skal starte.
AI SEO starter stadig ikke med AI.
Det starter med en hjemmeside, der er bygget ordentligt.
Hej Kim. Jeg er gået i gang med at seo optimere min køreskole hjemmeside. Jeg synes LS er lidt langsom hvilket jeg også kan se,…
Læs mereHej Albert, Ja, jeg har samarbejdet med Madbanditten i mere end 10 år nu, og vi samarbejder stadig den dag i dag. Dette er som…
Læs mereHej Kim. Spændende case at læse om. Jeg har lige et enkelt spørgsmål - der står du har samarbejdet med Madbanditten.dk i mere end 10…
Læs mere[…] Optimering af webshop er en kontinuerlig proces, der kræver opmærksomhed på detaljer og en forståelse for, hvad der driver kundeadfærd. Ved at undgå de…
Læs mereJeg har skam uddybet lidt mere på andre indlæg. Men man kan sige at alle tingene som google tester, reelt har indflydelse, da de alle…
Læs mere