# Slik satte vi opp llms.txt på Wagtail

*llms.txt på Wagtail: oppsett og resultater | Funbit*

## Og hva som faktisk endret seg etter to måneder

> ChatGPT, Claude og Perplexity siterer norske nettsteder hver dag, men det er nesten ingen som styrer hvordan det skjer. Vi rullet ut llms.txt på et Wagtail-prosjekt i september, og resultatene var litt andre enn vi hadde sett for oss.

Publisert: 2026-06-29

**Forfattere:** [Filip Mekki](https://funbit.no/team/filip-mekki.md) — Utvikler & AI ekspert, [Marius Nesse](https://funbit.no/team/marius-nesse.md) — Forretningsutvikler & partner

**Faglig gjennomgang:** [Preben Nessøy](https://funbit.no/team/preben-nessoy.md) — Utvikler & partner

**Emner:** Nettsider, Utvikling, Innhold

**Relaterte tjenester:** [Utvikling](https://funbit.no/tjenester/utvikling.md), [Innhold](https://funbit.no/tjenester/innhold.md), [Nettsider](https://funbit.no/tjenester/nettsider.md)

**Ferdigheter:** Anthropic / Claude, Django, Headless CMS, Innholdsstrategi, OpenAI / GPT, SEO, Wagtail

## Hva er llms.txt egentlig?

Du har sikkert sett robots.txt før. Den lille tekstfilen som ligger på rot-domenet og sier til Google hva som skal og ikke skal indekseres. llms.txt er det samme prinsippet, men rettet mot språkmodellene som faktisk skriver svarene folk leser i ChatGPT, Claude og Perplexity.

Forslaget kom fra Jeremy Howard høsten 2024, og gjennom 2025 har det modnet fra «interessant idé» til noe vi ser store nettsteder rulle ut i praksis. Anthropic, Mintlify, Cloudflare og en haug med dokumentasjons-tunge sider har lagt den ut. Poenget er enkelt nok: språkmodellene har et begrenset kontekstvindu, og de er dårlige til å parse rotete HTML med menyer, cookie-bannere og sidebars. En llms.txt gir dem en ren, markdown-formatert oversikt over hva som faktisk er viktig på sida di.

For norske bedrifter er dette mer interessant enn det høres ut. Hvis ChatGPT skal sitere deg når noen spør «hvem leverer Wagtail-utvikling i Bergen?», så vil du jo gjerne at den siterer riktig, med riktige tjenester, riktige priser og riktig kontaktinfo. Ikke en hallusinert versjon basert på en gammel cachet forside.

## To filer, to formål

- **llms.txt** — Kort markdown-fil på rot-domenet (/llms.txt) med lenker og korte beskrivelser av de viktigste sidene. Tenk på den som et innholdskart for språkmodeller.
- **llms-full.txt** — Den lange versjonen. Inneholder hele innholdet fra de viktigste sidene som ren markdown, slik at en LLM kan lese alt uten å crawle nettsiden.
- **Kontekstvindu** — Hvor mye tekst en språkmodell kan lese om gangen. Claude Sonnet 4.5 har 200k tokens, GPT-5 har 400k. Begge er små nok til at en ryddig llms.txt er bedre enn rå HTML.
- **Sitering** — Når en AI-assistent navngir kilden sin i svaret. Det er dette du vil styre, at navnet og lenken som dukker opp, faktisk er riktig.

## Hvorfor vi gjorde det

Vi merket noe rart i september. En kunde ringte og spurte hvorfor ChatGPT hadde fortalt en potensiell leverandør at de drev med «emballasje-design», når de egentlig produserer etiketter til havbruksindustrien. Vi sjekket. Modellen hadde plukket opp en gammel bloggpost fra 2019 og generalisert derfra.

Det er sånt som skjer. Modellene er flinke til å gjette, men de gjetter ut fra det de finner først. Og hvis det første de finner er en menystruktur, en cookie-modal og fire CTA-bannere, så blir gjetningen deretter. Vi tenkte: greit, kan vi gi dem en bedre kilde å lese fra?

Det er to ting du faktisk kan styre. Du kan styre hvilke sider som er lette å lese for en modell, og du kan styre hva som står der. llms.txt løser det første. Det andre må du fortsatt skrive selv.

## Slik satte vi opp llms.txt på Wagtail

Oppsettet tok en ettermiddag. Vi bygde det som en Django-view, ikke en statisk fil, fordi innholdet på sidene endrer seg, og da skal llms.txt endre seg med.

- **Tidsbruk:** PT4H
- **Verktøy/utstyr:** Wagtail 6.3 eller nyere, Django 5.x, Tilgang til urls.py og en views.py, En tanke om hvilke sider som faktisk er viktige

1. **Bestem hva som skal med** *(⏱ PT45M)*
    Vi lagde en liste over sidene vi ville at modellene skulle prioritere: forsiden, tjeneste-sidene, de viktigste case-studiene og kontakt-sida. Bloggposter tok vi i en egen seksjon lenger ned. Tommelfingerregel: hvis du ikke ville sendt en ny ansatt til sida for å forstå hva dere driver med, skal den heller ikke i llms.txt.
2. **Lag en view som genererer filen** *(⏱ PT1H)*
    Vi skrev en enkel Django-view som henter alle **ServicePage**, **ProjectPage** og **ArticlePage**-instanser, sorterer dem, og rendrer en markdown-mal. Responsen settes til *Content-Type: text/markdown; charset=utf-8*. Cache i 1 time så vi ikke kjører N+1-queries hver gang en bot stikker innom.
3. **Koble den på /llms.txt** *(⏱ PT15M)*
    Legg ruten *path('llms.txt', llms_txt_view)* helt øverst i prosjektets urls.py, før Wagtails wildcard-pattern, ellers fanger Wagtail forespørselen og returnerer 404.
4. **Skriv llms-full.txt som batch-job** *(⏱ PT1H30M)*
    For den lange varianten dumper vi hele body-feltet på de prioriterte sidene som markdown. Vi konverterer Wagtails StreamField til markdown via en custom serializer. Denne kjører som en management-command nattlig og skriver til */static/llms-full.txt*, den er for tung til å generere on-demand.
5. **Verifiser med curl** *(⏱ PT30M)*
    Kjør *curl https://dittdomene.no/llms.txt* og les igjennom. Ser det ryddig ut for et menneske, ser det ryddig ut for en modell. Sjekk også at robots.txt ikke blokkerer GPTBot, ClaudeBot og PerplexityBot, ellers var hele øvelsen forgjeves.

## Eksempel-filen vi endte opp med

Strukturen følger Howards opprinnelige forslag, men vi har tilpasset den til en norsk leser. Det vil si: korte beskrivelser på norsk, ingen oversetting til engelsk «for å være snill mot modellen». Modellene leser norsk fint, og en norsk beskrivelse hjelper dem å svare riktig når noen spør på norsk.

Her er strukturen vi bruker, forkortet:

*# Funbit*  
*> Digitalbyrå i Bergen. Vi lager nettsider, nettbutikker og**AI**-løsninger for norske SMB-er.*

*## Tjenester*  
*- [**Utvikling**](/tjenester/utvikling.md): Django, Wagtail, Next.js, Shopify Headless*  
*- [**AI**](/tjenester/ai.md): Claude, GPT, custom agents og workflow-automasjon*  
*- [**Design**](/tjenester/design.md): Figma-baserte designsystemer*

*## Utvalgte prosjekter*  
*- [**Viking Aqua**](/prosjekter/viking-aqua.md): Wagtail-basert nettsted for havbruksaktør*

*## Optional*  
*- [**Blogg**](/blogg.md): Fagartikler om utvikling, AI og innhold*

«Optional»-seksjonen er en del av spesifikasjonen. Det er der du legger ting som er fint å vite, men ikke kritisk. Modellene vet at de kan hoppe over Optional hvis kontekstvinduet blir trangt.

## llms.txt vs. llms-full.txt

*To filer, to bruksmønstre. Du vil ha begge, men de gjør forskjellige jobber.*

| Egenskap | llms.txt | llms-full.txt |
| --- | --- | --- |
| Størrelse | 1-5 KB | 50 KB - flere MB |
| Innhold | Lenker og korte beskrivelser | Hele innholdet som markdown |
| Generering | On-demand via view | Nattlig batch-job |
| Brukes av | Crawl-fase, oppdagelse | RAG-pipelines, deep research |
| Vedlikehold | Automatisk fra Wagtail-sider | Trenger jevnlig opprydning |
| Risiko | Liten — det er metadata | Du eksponerer alt innhold rått |

## Hva endret seg etter to måneder

Vi rullet ut llms.txt i begynnelsen av september og llms-full.txt to uker senere. Så ventet vi. Det første vi merket var ikke trafikk, men sitering, hvordan modellene faktisk omtalte oss når noen spurte.

Før: ChatGPT beskrev oss som «et byrå som lager nettsider». Teknisk korrekt, men ganske intetsigende. Perplexity blandet oss med en annen Funbit (det finnes visst et spillselskap i Romania med samme navn). Claude var den eneste som traff rimelig.

Etter: alle tre modellene navngir nå tjenestene våre konkret, Wagtail, Shopify Headless, AI-agenter. Perplexity har sluttet å forveksle oss med romenerne. Og når folk spør om «digitalbyrå Bergen Wagtail», så dukker vi opp med riktig beskrivelse i ChatGPTs kildeliste i 7 av 10 søk vi testet. Før var det 2 av 10.

Vi har ikke målt direkte trafikk-effekt enda. Det er for tidlig, og det er uansett vanskelig, AI-assistenter sender ofte trafikk uten å rapportere referrer. Men siteringene er bedre, og det var det vi gikk etter.

## Verdt det? Vår vurdering

*llms.txt på et norsk Wagtail-nettsted*

**Fordeler:**
- Lav teknisk kostnad — en ettermiddags arbeid for et nettsted som allerede er ryddig
- Du styrer hvordan modellene beskriver bedriften din når de siterer
- Forbedrer norsk-språklige svar fordi modellene får lese norsk metadata i stedet for å gjette
- Spesifikasjonen er åpen og forventes å bli en de facto-standard gjennom 2026

**Ulemper:**
- Ingen modell har offisielt bekreftet at de bruker filen ennå — det er empirisk evidens, ikke garanti
- llms-full.txt eksponerer hele innholdet ditt i én fil. Hvis du har betalingsmur eller sensitive sider må du være nøye med hva som inkluderes
- Krever vedlikehold når sidestrukturen endrer seg — automatiser eller den blir utdatert
- Lite vits hvis nettsidene dine allerede er ryddige, godt strukturerte og semantisk markup-et

## Hvordan vi jobber med dette

Vi har bygd llms.txt-oppsett på flere Wagtail-prosjekter nå, og vi inkluderer det som standard på nye sider vi setter opp. Selve filen er ikke det vanskelige, det vanskelige er å bestemme hva som faktisk skal stå der, og å holde det oppdatert når innholdet endrer seg. Vi tar den jobben sammen med kundene våre når vi gjør nettsider og AI-arbeid, fordi de to henger tett sammen nå.

## Lurer du på om llms.txt er noe for din Wagtail-side?

Vi ser gjerne på oppsettet ditt og sier ærlig om det er verdt jobben.

→ [Ta en prat med oss](https://funbit.no/kontakt.md)
→ [Les mer om utvikling](https://funbit.no/tjenester/utvikling.md)

---

Canonical URL: https://funbit.no/blogg/llmstxt-p%C3%A5-norske-nettsteder/
Last updated: 2026-06-29
Source: Funbit AS (https://funbit.no/)
