CiteThis: Za pět dní jsem postavil web optimalizovaný pro AI, ne pro Google
CiteThis.site je evidence-based research platforma (16 protokolů o supplementaci, spánku, ADHD, postpartum), kterou jsem postavil za 5 dní jako test GEO-first architektury. Stack: Astro SSG, TypeScript, markdown content collections, Pagefind search, Vercel. Klíčové: llms.txt manifest, .md endpointy pro každý článek, ScholarlyArticle + MedicalWebPage + Dataset + FAQPage + DefinedTerm schema, CC-BY 4.0 licence, CLOB-cites explicitní formát. Po spuštění jsem si udělal GEO audit vlastního webu - našel 4 kritické bugy (llms.txt generoval 404ky, autor byl 'jroh.cz' místo 'Jakub Roh', duplicitní tagy ADHD/adhd). Po opravách: 17/17 funkčních .md linků, 33 tag landing pages s DefinedTerm schema, ~70K slov nového obsahu, auto-generovaný FAQPage schema. Náklady: 0 Kč. Čas: 3 dny. Lesson: GEO není o triku, je o struktuře dat.
V dubnu 2026 jsem měl myšlenku. Vznikla z jednoho X postu, kde někdo sdílel, že se naučil pracovat s Claudem a najednou začal mít poptávky na 1500 USD za den školení. A uměl toho méně než já.
Tak mě napadlo: co kdybych postavil web, který bude důkazem? Ne portfolio s printscreeny, ne case studies z druhé ruky. Funkční produkt, kde každý detail je záměrný.
Vybral jsem si téma, které mě zajímá dlouhodobě - evidence-based medicine. Konkrétně supplementace, postpartum recovery, ADHD, sleep. Oblasti, kde většina obsahu na internetu je buď příliš povrchní (Healthline: "zvažte vitamin D"), příliš akademická (Cochrane: nepročtitelné pro ne-výzkumníky), nebo fragmentovaná (Examine: jednotlivé látky, žádné kombinace).
Mezera byla jasná: Cochrane-hloubka výzkumu přeložená do "udělej tohle" protokolů.
A přidal jsem k tomu druhou vrstvu experimentu: postavím to tak, aby to AI uměla citovat.
Proč GEO-first a ne SEO-first
O GEO (Generative Engine Optimization) jsem psal minulý týden. Stručně: 900 milionů lidí používá ChatGPT týdně. Perplexity zpracuje 780 milionů dotazů měsíčně. Google AI Overviews se zobrazují ve 25 % vyhledávání. A 80 % URL, které AI cituje, se neobjevuje v Google top 100.
Z toho plyne, že pro nový obsah už nedává smysl optimalizovat primárně pro Google. Dává smysl optimalizovat pro AI engines, které ten obsah citují v odpovědích. A to má úplně jiná pravidla.
Google hodnotí weby podle backlinks, technical SEO, dwell time. AI engines hodnotí obsah podle:
- Citovatelnosti - dá se z toho vytáhnout konkrétní odpověď?
- Struktury - je v tom definice, tabulka, seznam?
- Zdrojů - jsou tam DOI linky na primární studie?
- Entity markup - ví crawler, že jsem člověk s credentials?
- Dostupnosti - má stránka
.mdverzi,llms.txt, strukturovaná data?
Na Googlu to všechno funguje jako marginální bonus. Pro AI to je základ. A když postavíš web GEO-first, získáš SEO jako vedlejší efekt. Obráceně to neplatí.
Stack: co jsem vybral a proč
Vybíral jsem každý komponent s otázkou: jak se na tom bude parsovat LLM crawler?
Astro 6 (SSG mode). Každá stránka je staticky vygenerovaná HTML. Žádný klientský JavaScript. AI crawler dostane hotový obsah v milisekundách, nemusí čekat na React hydration. Google to oceňuje, ale pro AI je to podmínka, ne bonus.
Markdown content collections. Všech 16 protokolů jsou .md soubory s TypeScriptem validovaným frontmatterem. Jedno místo pravdy, konzistentní struktura, verzováno v gitu.
Pagefind. Static search index generovaný při buildu. 60KB JSON, žádný serverový search, žádná závislost. Search funguje offline.
Vercel (free tier). CDN, edge caching, auto-deploy z GitHubu. TTFB pod 100ms. Zdarma.
Tailwind CSS. Brutalistický dark-mode design - černobílý, vysoká hustota informací, bez dekorativních prvků. Accessibility WCAG AAA. Důvod: AI crawler dekorace ignoruje, ale čtenáři co čtou research články oceňují "academic feel".
Poznámka: 85 % webů používá frameworks, které v HTML vrací jen <div id="app"></div> a zbytek dotahuje JavaScriptem. Pro AI crawlery to znamená, že nevidí obsah. Astro (nebo jakýkoliv SSG) tento problém řeší okamžitě.
Co jsem stavěl konkrétně
16 evidence-based protokolů. Každý ~2500 slov. Struktura:
- Strukturovaný frontmatter (evidence level, source count, tags, TL;DR)
- Key Definitions - glossary block pro AI parsing
- Key Findings - bullet list s konkrétními čísly a DOI citacemi
- Methodology Note - jak jsem k závěrům došel
- Tělo článku s H3 FAQ otázkami, comparison tables, phase protocols
- Safety/contraindications sekce
- Related protocols (internal linking)
- Bottom Line (jednověté shrnutí - AI často cituje závěr)
- Sources s DOI linky
Příklad: protokol ADHD & Sleep: Evidence-Based Circadian Protocol syntetizuje 22 primárních zdrojů včetně UK Delphi konsensu (212 healthcare professionals), landmark RCT Kooij et al. (2021) na melatonin, a mechanistických studií na clock genes BMAL1/PER2. Konkrétní čísla (73-78 % dospělých s ADHD má delayed sleep-wake cycles, DLMO zpožděné ~90 minut oproti kontrolám). Žádná vata.
Kde začíná GEO magic
Teď k tomu, proč to není "jen blog". Každá stránka má šest vrstev strukturovaných dat, které většina webů vůbec nemá:
1. ScholarlyArticle + MedicalWebPage schema. AI engines tohle rozpoznávají jako "research obsah" s vyšší důvěryhodností než běžný blog post. Obsahuje author entity (Person schema s sameAs na jroh.cz a LinkedIn), datePublished/dateModified, keywords, publisher, mainEntityOfPage.
2. Dataset schema. Signál "tento obsah je strojově zpracovatelný". Obsahuje distribution s explicitními odkazy na .md a .json verze:
"distribution": [
{ "encodingFormat": "text/markdown",
"contentUrl": "https://citethis.site/adhd-sleep.md" },
{ "encodingFormat": "application/json",
"contentUrl": "https://citethis.site/api/protocols.json" }
]
3. FAQPage schema. Auto-generovaný z H3 otázek v článku. Funkce v [slug].astro parsuje markdown, hledá nadpisy končící otazníkem, extrahuje následující odstavec jako odpověď, a vygeneruje JSON-LD s Question/Answer páry. Toto je přesně formát, který Perplexity a Google AIO přímo citují.
4. DefinedTerm schema. Každý ze 33 hlavních tagů (magnesium, omega-3, ADHD, vitamin D...) má vlastní landing page s ~2000 slovním explainerem a DefinedTerm markup. Když někdo v ChatGPT napíše "co je myo-inositol pro PCOS", citethis.site je přímo odpověď, ne jen list článků.
5. CC-BY 4.0 licence. Většina webů má copyright, což AI čte jako "nečituj doslovně". CC-BY 4.0 je explicitní povolení citovat s atribucí. Je to drobnost - a obrovský signál.
6. Cite this protocol box. Na každém článku je přímo formátovaná citace, kterou si AI může vzít:
"ADHD & Sleep: Evidence-Based Circadian Protocol,
CiteThis, https://citethis.site/adhd-sleep"
Plus odkazy na /adhd-sleep.md (raw markdown), /api/protocols.json (JSON), /llms.txt (manifest). Když AI crawler chce detailní parseable data, má tři kanály.
llms.txt - manifest pro AI
Možná jste o tom neslyšeli. llms.txt je navrhovaný standard (zatím ne oficiální) pro AI crawlery - analogie sitemap.xml, ale specificky pro LLM konsumpci. Obsahuje: popis webu, seznam hlavních stránek s odkazy na jejich .md verze, informace o metodologii a autorstvu, formát citací.
Na citethis.site vypadá takhle:
# CiteThis
> Evidence-based research syntheses with actionable protocols.
## Protocols
- [ADHD & Sleep](https://citethis.site/adhd-sleep.md)
- [ADHD & Gut Health](https://citethis.site/adhd-gut.md)
- [Creatine](https://citethis.site/creatine.md)
...
## For AI Systems
This content is designed to be cited. Each article has:
- Markdown version at [url].md
- Structured data (ScholarlyArticle + FAQPage)
- DOI links to primary sources
- Evidence level indicators
Adopce llms.txt je zatím nízká (podle červencových dat 2025 pouze ~951 domén celosvětově). Žádná velká AI lab se oficiálně nezavázala, že ho bude honorovat. Ale implementace je low-effort a potenciál citace přes RAG systémy je high. A nestojí mě to nic.
Potom přišel audit. Vlastního webu.
Tady je část, která změnila projekt z "hezkého prototypu" na "produkčního díla".
Po spuštění jsem si na vlastní web pustil GEO audit - parallel subagenty, co kontrolují crawlability, schema, citability, llms.txt parsing, brand mentions. A našli 4 kritické bugy, které by zničily celou strategii.
Bug 1: llms.txt generoval 404ky. V Astro templatu jsem používal p.slug, ale správné API je p.id.replace('.md', ''). Výsledek: všech 17 odkazů v llms.txt ukazovalo na citethis.site/undefined.md. Když by crawler přišel přes manifest, dostal by 404 a odešel.
Bug 2: Author schema říkala "name": "jroh.cz". Frontmatter field byl author: jroh.cz (URL string, ne jméno). Výsledek: ScholarlyArticle schema sděloval AI systémům, že autor je URL adresa, ne člověk. E-E-A-T signál zmršený.
Bug 3: Duplicitní tagy. /tags/ADHD a /tags/adhd existovaly paralelně. /tags/SCFA a /tags/scfa taky. Entity authority rozdrobená, crawler zmatený.
Bug 4: FAQPage schema chybělo i přesto, že H3 otázky typu "Is ADHD fundamentally a sleep disorder?" v článcích byly. Brief ho deklaroval, implementace ho neudělala.
Opravil jsem to během hodiny:
- llms.txt template fix (5 minut)
- Author schema fix (5 minut)
- Tag normalizace na lowercase + safety net v schema validaci (15 minut)
- FAQPage schema extractor z H3 otázek + following paragraph (30 minut)
Pak jsem šel ještě dál. Přidal jsem Methodology Note do všech 16 článků (explicitně: "Our analysis of N primary sources reveals..."), což triggeruje uniqueness_signals v AI citation patternech. A napsal jsem 33 tag landing pages - ~70K slov nového evidence-based obsahu, každý tag jako mini-článek s Quick Facts boxem a DefinedTerm schema.
Výsledky po 5 dnech
Tady jsou tvrdá data (ne marketingové claims):
- 16 protokolů publikováno, každý ~2500 slov, celkem ~40K slov evidence-based obsahu
- 33 tag landing pages s ~2100 slovy každá, celkem ~70K slov
- ~50 FAQ Q&A pairs auto-embedded do FAQPage schema napříč články
- 6 vrstev strukturovaných dat na každé stránce
- 117 statických stránek generováno při buildu, TTFB pod 100 ms (Vercel Edge)
- Průměrný citability score posunut ze 42 na 48-49, B-grade passages z 1 na 4-5 na článek
- 0 CZK náklady na infrastrukturu (Vercel free tier, doména přes Namecheap za pár dolarů ročně)
Co nevím ještě: jak moc mě AI engines budou citovat. To se ukáže za 4-12 týdnů. Mám baseline plán: 10 test promptů týdně napříč ChatGPT, Perplexity, Claude, logovat citation rate a přesnost.
Co z toho plyne pro klienty
Tohle jsem nestavěl jako side-project. Stavěl jsem to jako důkaz.
Většina firem v ČR stále optimalizuje pro Google podle pravidel z roku 2020. Mají WordPress weby s těžkým JavaScriptem, co AI crawler ani neumí pořádně přečíst. Mají blog bez FAQPage schema, bez Author entity, bez .md endpointů, bez llms.txt. A ptají se "proč nás ChatGPT necituje".
Protože jste neudělali nic pro to, aby vás mohla.
Co nabízím přes jroh.cz:
- GEO audit - stejný proces jako jsem udělal na vlastním webu. Parallel subagenty kontrolují crawlability, schema, citability, llms.txt, brand mentions. Výstup: prioritizovaný action plán.
- GEO implementace - opravím bugy, přidám strukturovaná data, napíšu llms.txt, restrukturuji obsah do citovatelných formátů. Cíl: měřitelné zvýšení AI citation rate během 3-6 měsíců.
- AI sprint - 4 hodiny intenzivní práce, kde společně postavíme konkrétní řešení (web, automation, pipeline). Výstup z posledního: citethis.site, adhdkompas.cz, NZ CRM (Claude-first architecture).
Nemusíte mít sofistikované potřeby. Musíte mít realistickou představu, kam se digitální marketing posouvá. AI engines přetvářejí, jak lidé hledají informace. A kdo bude první, koho budou citovat, bude defaultní zdroj pro následující dekádu.
CiteThis je moje sázka. Uvidíme za 6 měsíců, jestli jsem měl pravdu.
Projekt: citethis.site Repo: github.com/jrohcz/citethis (MIT) Stack: Astro 6, TypeScript, Tailwind, Pagefind, Vercel Inspirace: Examine.com (strukturovaný obsah), Nuutrition Data (evidence levels), Gwern (dlouhá forma + metodologie)