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,sameAsaeo.summary/knowsAbout/faq—llms.txt+ FAQ JSON-LDaeo.publishingPrinciples— Person trust signal (default/about/)aeo.searchPath— optional WebSiteSearchActionaeo.allowAiCrawlers— block GPTBot/ClaudeBot whenfalse- 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
- Confirm
siteinastro.config.mjsandidentity.url - Brand
og.png(npm run seo:og) - Verify
/sitemap-index.xml,/robots.txt,/rss.xml,/llms.txt,/schemamap.xml - Submit sitemaps to Google Search Console and Bing Webmaster Tools
- Optional: set
INDEXNOW_KEYin 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.