Skip to content
BaseLayer Themes

Docs

SEO & AEO

Meta tags, JSON-LD graph, sitemaps, RSS, llms.txt, schema endpoints, and IndexNow.

BaseLayer Themes ships a production SEO + answer-engine stack on every page via BaseLayout.

What you get

Surface URL / location
Meta + OG + Twitter Seo.astro
Linked JSON-LD @graph JsonLd.astro + src/lib/schema.ts
Sitemap (chunked) /sitemap-index.xml (themes, docs, pages)
robots.txt /robots.txt (+ Schemamap:)
RSS (themes catalog) /rss.xml
llms.txt /llms.txt
Schema map /schemamap.xml
Schema endpoints /schema/pages.json, /schema/themes.json, /schema/docs.json
Markdown alternates /themes/{slug}.md

Per-page meta

<BaseLayout
  title="Page title — BaseLayer Themes"
  description="Search description."
  ogImage="/og-custom.png"
  ogType="article"
  publishedTime={date.toISOString()}
  modifiedTime={updated.toISOString()}
  markdownAlternate={`/themes/${slug}.md`}
  noindex={false}
>

Canonical is omitted when noindex is true. Robots meta includes large snippet / image preview hints when indexing is allowed.

Config

Edit src/config/integrations.ts:

  • seo.* — title, description, ogImage (/og.png), Twitter, keywords, sameAs
  • aeo.summary / knowsAbout / faqllms.txt + FAQ JSON-LD
  • aeo.publishingPrinciples — Person trust signal (default /about/)
  • aeo.searchPath — optional WebSite SearchAction
  • aeo.allowAiCrawlers — block GPTBot/ClaudeBot when false
  • IndexNow via env INDEXNOW_KEY (post-build)

JSON-LD

Every page emits a linked graph: WebSite, Person (with knowsAbout / publishingPrinciples), ProfessionalService, WebPage, plus FAQ on home/contact and breadcrumbs on inner pages.

Scripts

npm run build          # OG → Astro build → SEO check → IndexNow (if keyed)
npm run seo:og         # regenerate public/og.png + apple-touch-icon.png
npm run seo:check      # lint dist HTML
npm run seo:indexnow   # INDEXNOW_KEY=… SITE_URL=https://baselayerthemes.com

Launch checks

  1. Confirm site in astro.config.mjs and identity.url
  2. Brand og.png (npm run seo:og)
  3. Verify /sitemap-index.xml, /robots.txt, /rss.xml, /llms.txt, /schemamap.xml
  4. Submit sitemaps to Google Search Console and Bing Webmaster Tools
  5. Optional: set INDEXNOW_KEY in CI

Files

File Role
src/components/global/Seo.astro Head meta
src/lib/schema.ts Graph builders
src/lib/aeo.ts robots / llms / schemamap
src/lib/sitemap.ts Filter + git lastmod
scripts/generate-og.mjs Social PNGs
scripts/check-seo.mjs Post-build validation
scripts/indexnow.mjs IndexNow submit

Also see kit markdown: docs/SEO.md.