Skip to main content

Optimize

GEO / AEO

Structured data, AI-crawler control, and citation signals — the config that makes your docs citable by AI Overviews, Perplexity, and ChatGPT.

config.geo controls Generative & Answer Engine Optimization: the JSON-LD NookDocs emits, which AI crawlers may access your site, and the entity/citation signals AI engines use. Everything is on by default — a site with no geo block still emits sensible structured data. For the writing patterns that earn citations, see the GEO guide.

Example

{
  "geo": {
    "structuredData": true,
    "faqSchema": true,
    "organization": {
      "name": "Acme, Inc.",
      "logo": "/logo/dark.svg",
      "sameAs": [
        "https://x.com/acme",
        "https://github.com/acme",
        "https://www.linkedin.com/company/acme"
      ]
    },
    "aiCrawlers": "allow",
    "llmsTxt": {
      "intro": "Acme builds developer infrastructure. These docs cover the API, SDKs, and self-hosting.",
      "contact": "docs@acme.com"
    },
    "topics": ["api", "sdk", "authentication"],
    "audience": "developers",
    "license": "CC-BY-4.0"
  }
}

Fields

geo.structuredDatabooleanpathdefault: true

Emit JSON-LD on every page: TechArticle, BreadcrumbList, Organization, and WebSite. Set false to disable entirely.

geo.faqSchemabooleanpathdefault: true

Emit FAQPage JSON-LD from a page's frontmatter faq: [{ q, a }]. The most cited format in answer engines.

geo.organizationobjectpath

Your publisher entity, used across the JSON-LD graph.

  • name — defaults to your site name.

  • logo — absolute or repo-relative URL; defaults to colors.logo.

  • sameAs — profile URLs (X, GitHub, LinkedIn, Wikipedia…) that identify the same entity. Strongly improves entity recognition for AI engines.

geo.aiCrawlers'allow' | 'block' | Record<string, boolean>pathdefault: allow

AI crawler access, written into /robots.txt:

  • "allow" (default) — AI bots crawl normally (covered by the global rule).

  • "block" — deny all known AI bots (GPTBot, ClaudeBot, Google-Extended, PerplexityBot, CCBot, Bytespider, Amazonbot, …).

  • An object — per-bot control, e.g. { "GPTBot": true, "CCBot": false }.

geo.llmsTxt{ intro, contact }path

Enriches the auto-generated /llms.txt: an intro paragraph at the top and a Contact: line. The page index itself is always generated automatically.

geo.topicsstring[]path

Primary topics / entities your site covers. Surfaced as JSON-LD about on every page.

geo.audiencestringpath

Target audience, e.g. "developers".

geo.licensestringpath

Content reuse / citation license (e.g. "CC-BY-4.0"). Emitted on TechArticle so AI engines know how your content may be reused.

/llms.txt, /llms-full.txt, per-page /<slug>.md, sitemap.xml, and canonical tags are all generated automatically — you don't author them. The geo block tunes and enriches; it doesn't replace them.

Related

GEO guide

The writing patterns that earn AI citations.

SEO

Classic on-page SEO that complements GEO.

llms.txt

The auto-generated LLM crawler index.

Brand

Logo, favicon, and OG image used in the JSON-LD.

Was this page helpful?

Last updated August 11, 2026