SEO & AI Discoverability Runbook
This runbook explains how metadata, sitemaps, robots controls, and AI discovery are managed.
Metadata
- Default metadata lives in `frontend/app/layout.tsx`.
- Page-specific metadata uses `buildMetadata` from `frontend/app/seo.ts`.
- Update canonical URLs by changing `NEXT_PUBLIC_SITE_URL`.
- Private pages set `indexable: false` in their route layouts.
Sitemaps
- `/sitemap_index.xml` lists static and markets sitemaps.
- `/sitemaps/static.xml` is a curated list of public pages.
- `/sitemaps/markets.xml` is generated from `/api/markets`.
Robots & AI bots
- Robots policy is generated by `frontend/app/robots.ts`.
- Use env toggles to allow or deny AI crawlers.
LLMs guidance
- `/llms.txt` provides curated links and summaries.
- `/llms-full.txt` provides a longer reference.
- Markdown mirrors are available at `/ai.md` and `/docs/seo-ai-discoverability.md`.
Environment variables
- `NEXT_PUBLIC_SITE_URL` and `NEXT_PUBLIC_SITE_ENV`
- `NEXT_PUBLIC_OG_IMAGE_URL`
- `NEXT_PUBLIC_GOOGLE_SITE_VERIFICATION`, `NEXT_PUBLIC_BING_SITE_VERIFICATION`
- `NEXT_PUBLIC_GA4_ID` (optional analytics)
- `NEXT_PUBLIC_TWITTER_URL`, `NEXT_PUBLIC_GITHUB_URL`, `NEXT_PUBLIC_SUPPORT_EMAIL`
- `SEO_ALLOW_OPENAI_SEARCH`, `SEO_ALLOW_OPENAI_TRAINING`, `SEO_ALLOW_PERPLEXITY_SEARCH`
Verification
- Set `NEXT_PUBLIC_GOOGLE_SITE_VERIFICATION` for Google Search Console.
- Set `NEXT_PUBLIC_BING_SITE_VERIFICATION` for Bing Webmaster Tools.
Bot policy toggles
- `SEO_ALLOW_OPENAI_SEARCH`
- `SEO_ALLOW_OPENAI_TRAINING`
- `SEO_ALLOW_PERPLEXITY_SEARCH`
Indexing pings
- Run `npm run seo:submit` from `frontend/` to ping sitemaps.
- Optional IndexNow: set `INDEXNOW_KEY` and `INDEXNOW_KEY_LOCATION`.
- Submit URLs via `SEO_SUBMIT_URLS` or CLI args (space-separated URLs).
CI checks
- `npm test` runs SEO metadata + sitemap/robots coverage tests.
- `npm run lhci:ci` runs Lighthouse CI with SEO thresholds.
Validation
- Check `/robots.txt`, `/sitemap_index.xml`, `/llms.txt` in production.
- Validate structured data via Google Rich Results Test.
- Monitor Core Web Vitals in Search Console.
