SEO, AEO og agent-vennlighet er bygget inn i coreAI sin hjemmeside som tre lag i samme respons: en sentral SEO-bygger produserer head-tagger og JSON-LD, en .md-overflate serverer samme innhold som ren markdown til AI-bots, og en egen sitemap-kommando holder begge deler oppdatert ved hver reindeksering. Alle tre lag leser fra de samme markdown-dokumentene – ingenting er bolt-on.
#Hva vi henter fra eksisterende pakker
Tre pakker dekker det grunnleggende, slik at vi slipper å vedlikeholde det selv:
prezet/prezet– markdown-CMS som indekserer en lokalisert content-mappe til en SQLite-fil. Hver overskrift, ingress og FAQ-oppføring er én markdown-fil, og innholdet hentes via Prezets query-API.spatie/laravel-markdown-response– global URL-rewrite-middleware som peeler.mdav en URL og forhandlertext/markdownmotAccept-headeren. Vi får agent-vennlige URL-er uten å duplisere ruter.spatie/laravel-sitemap– primitiver for å bygge sitemap-XML og en sitemap-indeks. Vi orkestrerer hva som havner i den.
Ingen av dem håndterer JSON-LD eller AEO – det er der egne komponenter tar over.
#Hva vi har bygget selv
Fem byggeklosser, én jobb hver:
- En SEO-bygger med som hver kontroller bruker for å produsere én
seo-view-variabel. Den setter sidetittel med varemerke-suffiks, slår av og på frivillige skjema (FAQ, brødsmuler), og regner ut canonical og hreflang fra lista over støttede lokaler. - Fem schema.org-byggere – Organization, WebSite, FAQPage, BreadcrumbList og Article – hver en ren klasse med én build-metode som returnerer JSON-LD som assosiativt array. Testbart i isolasjon og identisk på tvers av sider.
- En sentral head-partial som er eneste sted i kodebasen der
<title>,<meta>,<link rel="canonical">, hreflang-alternativer, OG-tagger og<script type="application/ld+json">blir rendret. Sider kan ikke skrive sin egen head. - En markdown-driver med én assembler per redaksjonelle side – serverer markdown 1:1 fra kildene når en agent ber om det. Vi konverterer aldri den rendrede HTML-en tilbake til markdown; vi leser samme
.md-filer som Blade-malene, så agenten ser eksakt det forfatteren skrev. /llms.txtog/llms-full.txt– en indeks over markedsføringssidene pluss de 20 nyeste artiklene, og alle sidene samlet i ett dokument. Begge ernoindexog på engelsk.
En egen sitemap-kommando orkestrerer XML-en til tre filer: sitemap.xml som indeks, sitemap-pages.xml for markedsføringssidene × språk, og sitemap-articles.xml der en sentralt vedlikeholdt blokkliste filtrerer bort markedsrelaterte seksjoner slik at disse dokumentene ikke lekker inn i artikkel-sitemappen. Etter hver reindeksering overstyrer vi Prezets sitemap-hook og kjører i tillegg en cache-flush mot markdown-overflaten, slik at agentene aldri leser utgått innhold.
#AEO: tre regler vi grader hver tekst mot
AEO (Answer Engine Optimization) er ikke et bibliotek, det er tre redaksjonelle regler som er innebygd i skrive-prosessen og dokumentert i en intern stilguide:
- Svar først. Første setning i hver ingress og hvert FAQ-svar slår fast svaret. Ingen oppvarming, ingen retoriske spørsmål, ingen "la oss se nærmere på…".
- Én H1 per side. Hero-en eier den eneste
<h1>. Alle andre seksjonstitler er<h2>, nestede<h3>. Hopp i nivå er forbudt. - Ingen "klikk her"-CTA-er. Lenketekst beskriver målet ("Se prislisten", "Bestill nå"), ikke gesten.
Reglene håndheves i kodegjennomgang, ikke av lint – men de er hvorfor svar-motorer som ChatGPT Search og Perplexity faktisk klarer å hente ut riktig setning fra en coreAI-side.
#Hvordan AI-agenter ser siden
Tre triggere bytter HTML mot markdown på de redaksjonelle rutene: .md-suffiks i URL-en, Accept: text/markdown-headeren, og kjente bot-user-agents som GPTBot og ClaudeBot. Alle tre fører til samme respons – kildemarkdownen forfatteren skrev, ikke en konvertering av den rendrede HTML-en. Transaksjonelle ruter (/order, /contact) er holdt utenfor middlewaren, så /order.md returnerer vanlig HTML.
Vil du se det selv? Hent denne artikkelen som markdown – samme URL, bare med .md på slutten. Det er nøyaktig den responsen GPTBot og ClaudeBot får når de besøker /articles/seo-aeo-and-agent-visibility.
Resultatet er at samme innhold publiseres til mennesker, søkemotorer og AI-agenter uten duplisering: forfatteren skriver én markdown, og tre overflater leverer den der mottakeren leter.