Jak udělat web čitelný pro AI
GEO a agent-ready web: praktický průvodce
Z části návštěv vibecoding.cz jsou už dnes AI agenti — a to číslo poroste.
Tahle stránka je pro vývojáře, kteří staví web; marketéry, kteří chtějí, aby je AI search citoval; a content lidi, kteří dnes plánují obsah, který bude zítra číst LLM.
Co je GEO a co je agent-ready
Tyhle dva pojmy se míchají, ale řeší různé problémy. GEO (Generative Engine Optimization) je optimalizace pro citaci v generativním vyhledávání — ChatGPT search, Google AI Overviews, Perplexity. Cíl: váš obsah se objeví v odpovědi, kterou LLM vygeneruje.
Agent-ready web je něco jiného. Připravenost na automatizovanou interakci s AI agenty — aby si web dokázal přečíst, najít na něm zdroje, případně spustit akci přes API. Cíl: agent dokáže váš web použít jako nástroj.
Překryv je v kvalitě strukturovaných metadat. Rozdíl: GEO řeší obsah, agent-ready řeší protokoly. Tahle stránka pokrývá obě.
GEO: Pro AI search
AI search čte web jinak než klasický crawler. Místo seznamu modrých odkazů skládá odpověď z citovatelných pasáží. Co dělá obsah „citovatelný“:
Strukturovaná data (Schema.org / JSON-LD)
Každý článek by měl mít Article markup, každá organizace Organization, seznamy FAQ pak FAQPage. Google AI Overviews i Perplexity dávají strukturovaná data přednost před volným textem. Minimální Article:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Název článku",
"author": { "@type": "Person", "name": "Jméno autora" },
"datePublished": "2026-04-26",
"dateModified": "2026-04-26"
}
</script> Validita: validator.schema.org. Vibecoding.cz má Article markup na každém článku — viz třeba jakýkoli článek.
llms.txt jako kurátorský seznam
llms.txt je markdown soubor v rootu webu, který říká AI: „pokud chceš pochopit tenhle web rychle, čti tohle.“ Je to kurátorovaná verze sitemapy s krátkými popisky.
Příklad z vibecoding.cz: /llms.txt (kurátor) + /llms-full.txt (plný obsah pro RAG indexaci).
Citovatelnost — krátké pasáže, jasné definice
LLM si z webu vytrhne větu nebo odstavec. Pokud věta nedává smysl bez kontextu předchozí kapitoly, neocitá se. Praktická pravidla:
- První věta každé sekce je samostatná definice toho, o čem sekce je.
- Klíčová tvrzení jako jednotlivé věty, ne v dlouhých souvětích.
- Atribuce (zdroj, datum, autor) blízko tvrzení, ne v patičce.
E-E-A-T signály
Google E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) se v prosinci 2025 rozšířil i mimo YMYL témata — týká se v podstatě každého obsahu, který soutěží o citaci. Konkrétně:
- Autor s jménem, fotkou a externím profilem (LinkedIn, GitHub).
- Datum publikace a last-updated viditelně, ne v patičce.
- Citace zdrojů s odkazy ven, ne ke zdrojům „v naší dokumentaci“.
- Kvalifikace autora pro téma (ne každý článek od každého).
Vyhněte se
- Content kanibalizaci. Jedno téma = jedna kanonická stránka. Když máte 5 článků o tomtéž, AI search neví, který citovat.
- Thin content. Pod 600 slov u edukativní stránky = problém.
- AI generated bez review. LLM rozeznají strojovou generiku v jiném LLM. Aktuální data tomu zatím nedávají velké váhy, ale směřování je jasné.
Jak měřit GEO
- Google Search Console — segment AI Overviews, kde Google poskytuje (zatím selektivně).
- Ahrefs Brand Radar — citace ve veřejných LLM odpovědích.
- Serverové logy — návštěvy od
GPTBot,ClaudeBot,PerplexityBot,Google-Extended. Na vibecoding.cz jsme to dali do D1 a graf vidíte níž.
Agent-Ready: Pro AI agenty
Když už jste pro AI search citovatelný, druhý krok je být použitelný pro agenty — automatizované systémy, které si web prochází, aby splnily úkol. Strukturováno podle 5 kategorií, které testuje isitagentready.com.
1. Discoverability — aby agent našel, co máte
Agent přistane na rootu vašeho webu a potřebuje rychle najít: kde je
sitemap, kde je llms.txt, kde je MCP server, kde je
katalog API. Tři místa, kam to umístit:
robots.txt—Sitemap:direktiva,llms.txtnení standardní robots direktiva, ale dejte ji do komentáře.- HTTP
Linkresponse headers (RFC 8288) — agenti je najdou přes HEAD request bez parsování HTML. <link rel="..." href="...">v HTML — fallback pro klienty, kteří nesahají na headery.
Příklad Link headeru pro Cloudflare Pages (public/_headers):
/*
Link: </llms.txt>; rel="llms-txt"
Link: </llms-full.txt>; rel="llms-txt-full"
Link: </sitemap.xml>; rel="sitemap"
Link: </.well-known/api-catalog>; rel="api-catalog"
Vibecoding.cz má všechny tyhle Link headery globálně —
/.well-known/api-catalog je
formát application/linkset+json podle RFC 9727.
2. Content Accessibility — aby agent obsah pochopil
HTML s ad bannery, cookie pop-upy a SPA hydratací je pro agenta peklo. Tři techniky:
-
llms.txtjako kurátor — markdown index sekcí a klíčových stránek. Agent přečte za sekundu místo procházení sitemapy. -
llms-full.txtjako full text — celý obsah webu jako jeden velký markdown pro RAG indexaci. Pozor na velikost (vibecoding.cz má kolem 700 KB). - Markdown content negotiation — když agent pošle
Accept: text/markdown, server vrátí MD místo HTML. Pokročilá technika, většina webů to dnes nedělá; agenti ale začínají testovat.
3. Bot Access Control — kdo smí číst, na co
Klasický robots.txt + nově Content Signals
(draft IETF). Příklad povoluje crawl všem, ale chrání admin sekci a explicitně
vyjmenuje hlavní AI boty (kdyby je některý User-agent: * ignoroval):
# robots.txt
User-agent: *
Allow: /
Disallow: /admin/
# Explicitní opt-in pro AI tréning a indexaci
User-agent: GPTBot
Allow: /
Disallow: /admin/
User-agent: ClaudeBot
Allow: /
Disallow: /admin/
User-agent: PerplexityBot
Allow: /
Disallow: /admin/
User-agent: Google-Extended
Allow: /
Disallow: /admin/
User-agent: CCBot
Disallow: /
# Content Signals — preference použití (platí globálně)
Content-Signal: search=yes, ai-input=yes, ai-train=yes
Sitemap: https://example.cz/sitemap.xml Content-Signal hodnoty: search = klasický indexing
pro vyhledávače, ai-input = použití jako kontext pro AI odpověď
(RAG, citace), ai-train = trénink modelu. Každá hodnota
yes / no.
Web Bot Auth — autentizace botů přes podepsané HTTP zprávy (existuje raný draft). Praktická implementace je předčasná, sledujte aktualizace na contentsignals.org.
4. Protocol Discovery — aby agent věděl, co umíte
Když web nabízí akce (objednávka, vyhledávání v katalogu, registrace na akci), agent k nim potřebuje strojový popis. Dva standardy, které dnes dávají smysl:
-
/.well-known/api-catalog(RFC 9727) —application/linkset+jsonseznam dostupných API endpointů. Vibecoding.cz to má, agent tam najde MCP server, RSS feedy, sitemap, llms.txt. - MCP Server Card (
/.well-known/mcp/server-card.json) — JSON deklarující schopnosti MCP serveru. Agent z něj vidí, jaké tooly server nabízí, bez nutnosti úvodního handshake. Vibecoding má MCP server namcp.vibecoding.cza Server Card k němu deklaruje dostupné tooly.
Minimální MCP Server Card (zkrácená ukázka — plnou podobu má vibecoding.cz na /.well-known/mcp/server-card.json):
{
"$schema": "https://modelcontextprotocol.io/schemas/server-card/v1",
"serverInfo": {
"name": "vibecoding-events",
"version": "1.0.0",
"description": "MCP server pro kalendář akcí Vibecoding.cz"
},
"transport": {
"type": "streamable-http",
"endpoint": "https://mcp.vibecoding.cz/mcp"
},
"tools": [
{ "name": "list_events", "description": "Výpis nadcházejících akcí" },
{ "name": "search_events", "description": "Vyhledávání podle klíčového slova" },
{ "name": "get_event", "description": "Detail akce" },
{ "name": "submit_event", "description": "Přidání komunitní akce" }
]
} Agent Skills a WebMCP jsou další standardy, které se objevují (Anthropic Skills, browser-side MCP). Pro běžný web jsou teď ještě předčasné.
5. Commerce — agentní platby
Standardy x402, MPP, UCP a ACP řeší situaci, kdy chce agent něco koupit nebo zaplatit. x402 je nejrozšířenější (HTTP 402 Payment Required + crypto micropayments). Pro většinu webů to dnes není relevantní — pokud váš agent nedělá platby autonomně, sledujte vývoj a vraťte se za rok.
Důkaz: jak roste adopce na vibecoding.cz
Tahle data jsou z provozu vibecoding.cz. Adopce roste. Když to neuděláte teď, dohánět budete.
Načítám data…
Modrá: celkové page views. Oranžová: požadavky na /llms.txt.
Zelená: požadavky na /llms-full.txt. Posledních 30 dní.
Otestujte svůj web
isitagentready.com je zdarma testovací nástroj, který projde váš web a vyhodnotí ho v 5 kategoriích, které jsou popsané výše. Doporučený postup:
- Zadáte URL svého webu.
- Volitelně vyberete typ webu (e-commerce / blog / SaaS / …) — upraví se kontrolní list.
- Dostanete report. Co je červené, je „udělej teď“. Co je oranžové, „udělej brzy“.
- Report dejte do Cursoru, Claude Code nebo jiného AI agenta s instrukcí „oprav body z reportu“. Většina věcí je jednoduchá konfigurace souborů v rootu projektu.
Tip: než dáte report agentovi, zkontrolujte, že chápete, co každá položka znamená — z téhle stránky byste měli mít kontext na všech 5 kategorií.
Quick wins: 5 kroků, kde začít
Seřazeno od nejjednoduššího k nejnáročnějšímu.
-
Content Signals v
robots.txt5 minutPřidejte řádek
Content-Signal: search=yes, ai-input=yes, ai-train=yesdo svéhorobots.txt. Ovlivníte stovky AI služeb, které ten draft respektují, a deklarujete, jak chcete, aby se s vaším obsahem zacházelo. -
Schema.org Article JSON-LD na článcích 1 hodina
Přidejte JSON-LD blok do
<head>každého článku. Minimum:headline,author,datePublished. Validujte na validator.schema.org. -
llms.txtjako kurátor 1 hodinaVytvořte
/llms.txtv rootu — markdown s H1 (jméno webu), blockquote (krátký popis), seznamy odkazů na hlavní sekce. Spec na llmstxt.org. Pro vibecoding.cz vidíte /llms.txt. -
Link response headers 30 minut
V Cloudflare Pages přes
public/_headers, ve Vercelu přesvercel.json, jinde v konfiguraci CDN. Advertujte alespoňllms-txt,sitemapa případněapi-catalog. -
MCP server půlden
Pokud máte vlastní backend a chcete agentům dát rozhraní k akcím (vyhledávání, objednávky, custom dotazy), nasaďte MCP server. Pro většinu obsahových webů zatím není potřeba.
Další čtení
- isitagentready.com — testovací nástroj
- agents.cloudflare.com — kontext, proč na agentech záleží
- llmstxt.org — specifikace llms.txt
- contentsignals.org — Content Signals draft
- modelcontextprotocol.io — MCP spec
- /llms.txt a /.well-known/api-catalog — naše vlastní implementace