The web is shifting from a link graph to a queryable knowledge fabric. Optimizing for the agentic web means prioritizing machine interpretability and direct interaction with AI systems — not only clicks.
schema.org.- Natural-language interface: Converts existing
schema.orginto a conversational layer so users/agents can query content. - Standards-first & model-agnostic: Designed to work across vendors and LLMs using the Model Context Protocol (MCP).
- From "AI reads your site" → "AI queries your site": Returns structured JSON grounded in your schema.
- Data ingestion: Crawl & extract
JSON-LD; non-JSON feeds (e.g., RSS) can be normalized into schema types. - Semantic storage: Store meaning as vectors so queries match concepts (e.g., "structured data" ≈ "schema markup").
- Protocol connectivity: Expose an MCP server endpoint for consistent agent access across ecosystems.
If your schema is sparse, inconsistent, or disconnected, the resulting embeddings are flawed — leading to brittle or hallucinated agent answers. An entity-first schema strategy is now a strategic necessity.
- Goal: NLWeb enables dynamic conversational interaction;
llms.txtprovides static crawler guidance. - Model: NLWeb is an active protocol/API;
llms.txtis a passive text file. - Format: NLWeb uses
schema.org JSON-LD;llms.txtuses Markdown. - Advantage: NLWeb turns your site into an AI-queryable app;
llms.txtmainly reduces ingestion friction.
- Inventory & validate: Discover all JSON-LD. Validate types and required/recommended properties. Remove conflicts/duplicates.
- Map the knowledge graph: Org/Brand, People, Products/Services, Places, Articles, FAQs. Connect with stable
@idIRIs andsameAs. - Enrich & disambiguate: Add identifiers (
gtin,mpn,isbn), usedefinedTerm/identifierfor taxonomies, leverageknowsAbout/subjectOf. - Answer coverage: Ensure properties can answer common NL queries: pricing, availability, specs, service areas, credentials, policies.
- Consistency: Keep NAP/org IDs and brand attributes consistent across all pages.
- Governance: Add schema linting to CI, document an SOP, and schedule quarterly re-validations.
Prefer one authoritative JSON-LD block per page with stable @id IRIs reused across the site.
{ "@context":"https://schema.org", "@type":"Service", "@id":"https://example.com/#local-seo-service", "name":"Local SEO & GEO Readiness", "provider":{"@id":"https://example.com/#org"}, "areaServed":{"@type":"Place","name":"United Kingdom"}, "offers":{"@type":"Offer","price":"1995","priceCurrency":"GBP"} } Disambiguate with sameAs to authoritative profiles/registries.
{ "@context":"https://schema.org", "@type":"Organization", "@id":"https://example.com/#org", "name":"Example Co", "sameAs":["https://www.wikidata.org/entity/Q123456","https://www.linkedin.com/company/example"] } Filed under: Briefing • Back to Blog