Examples
Three GeoWeather targets, three audit scores
The geoaeo package ships a static HTML site, a Next.js App Router app, and an Astro site. Each is the same product (GeoWeather) after geoaeo init. Scores below are from geoaeo audit . on the source directory.
Source-directory audits understate framework apps
Framework apps understate when audited as a source directory because artifacts are generated at runtime. Next.js serves llms.txt, sitemap, robots, WebMCP, and Markdown mirrors from route handlers. Astro writes titles, meta, and JSON-LD into HTML at build time. Audit the deployed URL (or Astro dist/) for the true score. The static HTML example has no such gap: the files on disk are what engines fetch.
A plain GeoWeather site: one index.html plus the static artifacts geoaeo init writes at the site root. geoaeo audit . scores the files directly.
This example ships fully optimized. It passes every technical and structured-data check. The open gaps are answerability signals a real content site adds: a dated/updated stamp, a named author, and Markdown mirrors.
cd examples/static-html && geoaeo audit .
What ships
index.htmlHome page with meta tags, Open Graph, Twitter, and JSON-LDgeoaeo.config.tsSite metadata, tools, pricing, FAQllms.txtShort LLM site mapllms-full.txtFull LLM site map with FAQ and pricingsitemap.xmlXML sitemaprobots.txtCrawler policy with a Sitemap: linewebmcp.jsonWebMCP tool manifest for agents
A minimal Next.js App Router site with the route handlers, config, and SEO components that geoaeo init produces.
Next.js generates GEO/AEO artifacts at runtime: route handlers for sitemap, robots, llms.txt, JSON-LD, and .md mirrors. A static source-directory audit cannot see that output, so 48/100 understates the live result. Audit the deployed URL for the true score.
cd examples/nextjs-app && geoaeo audit .
What ships
geoaeo.config.tsSite metadata, tools, pricing, FAQsrc/app/llms.txt/route.tsShort LLM site map (GET → plain text)src/app/llms-full.txt/route.tsFull LLM site map with FAQ and pricingsrc/app/sitemap.tsDynamic sitemap.xmlsrc/app/robots.tsDynamic robots.txtsrc/app/webmcp/route.tsWebMCP tool manifest (JSON)src/app/[page].md/route.tsMarkdown mirrors of every pagesrc/components/seo/json-ld.tsxJSON-LD for software, product, and FAQ
A minimal Astro site with geoaeo.config.ts and the static artifact files geoaeo init produces for non-Next.js projects.
Astro holds titles, meta tags, and JSON-LD in .astro source. Those only appear in HTML after astro build. A source-directory audit cannot see them, so 46/100 understates the result. Audit the built dist/ or the deployed URL.
cd examples/astro-site && geoaeo audit .
What ships
geoaeo.config.tsSite metadata, tools, pricing, FAQsrc/pages/index.astroHome page source (meta, OG, Twitter, JSON-LD)llms.txtShort LLM site mapllms-full.txtFull LLM site map with FAQ and pricingsitemap.xmlXML sitemaprobots.txtCrawler policy with a Sitemap: linewebmcp.jsonWebMCP tool manifest for agents
Reproduce a score
From a clone of the repo, audit the example directory. Then compare the gap list to the GEO/AEO checklist.
npx geoaeo audit ./packages/geoaeo/examples/static-html npx geoaeo audit ./packages/geoaeo/examples/nextjs-app npx geoaeo audit ./packages/geoaeo/examples/astro-siteOpen the checklist