Skip to content
Blume
English
Esc
navigateopen⌘Jpreview
On this page

SEO and AEO

How a Blume site gets found — by search engines and social platforms on one side, coding agents and AI assistants on the other — and where each surface is configured.

Search engines and AI agents want the same thing from your docs: a clean, machine-readable account of what each page says, how the pages relate, and who publishes them. Blume treats the two as one discoverability layer. Metadata, social cards, feeds, and structured data serve the crawlers that rank you; llms.txt, raw Markdown, a JSON API, an MCP server, and discovery manifests serve the agents that answer questions about you — and the files in between (robots.txt, the sitemap, JSON-LD) are read by both.

Almost all of it is on by default and needs no configuration. The knobs live under two keys in blume.config.ts: seo for what search engines and social platforms see, and ai for what agents see.

seo: {
  og: { enabled: true },
  rss: { enabled: true, types: ["blog", "changelog"] },
  sitemap: true,
  robots: true,
  structuredData: true,
  x: { handle: "@acme" },
},
ai: {
  llmsTxt: true,
  mcp: { enabled: false },
},

Most of this is sharper with an absolute site URL — set deployment.site so feeds, OG images, canonicals, the sitemap, JSON-LD, and every agent manifest can emit full URLs. A few surfaces (Open Graph images, the sitemap) stay off until it’s set.

What the build emits

Surface Where Default Guide
<head> metadata, canonicals, X cards every page on Metadata
Social share images /og/<route>.png on with a site URL Open Graph images
schema.org JSON-LD every page on Structured data
RSS feeds /<type>/rss.xml on RSS feeds
sitemap.xml, robots.txt, content signals site root on Sitemap and robots
llms.txt, llms-full.txt site root on llms.txt
Raw Markdown mirrors, content negotiation, Copy as Markdown, Open in chat /<route>.md on Markdown for agents
JSON API and its OpenAPI description /api/docs/…, /openapi.json on JSON API
MCP server /mcp opt-in, server output MCP server
agent-readability.json, Link headers, API catalog, WebMCP, skills, Web Bot Auth site root, /.well-known/… on Agent discovery

Every generated file yields to one you ship yourself: drop a robots.txt, sitemap.xml, llms.txt, openapi.json, or agent-readability.json in public/ and Blume serves yours in its place.

The in-page Ask AI assistant is the one AI feature documented elsewhere: it’s a reader-facing product feature rather than a discovery surface, so it lives under Configuration.

Checking your work

blume audit crawls the built site and reports on titles, descriptions, canonicals, Open Graph and X cards, hreflang, the sitemap, robots.txt, and structured data. Point it at a deployment with --url to also check response headers and DNS-based agent discovery.

Was this page helpful?