SEO & AI discoverability
Every app ships with SEO built in. A single cloudrizz.seo.json file drives the meta tags injected into your pages and the robots.txt, sitemap.xml, and llms.txt files Cloudrizz generates at deploy — so your app is discoverable by search engines and by AI assistants like ChatGPT, Claude, and Perplexity.
cloudrizz.seo.json
The config lives at the project root. The common fields:
{
"siteName": "Acme Notes",
"defaultTitle": "Acme Notes",
"titleTemplate": "%s — Acme Notes",
"description": "The fastest way to capture and share notes.",
"canonicalBase": "https://acme-notes.com",
"openGraph": { "type": "website", "image": "/og.png" },
"twitter": { "card": "summary_large_image" },
"robots": { "index": true, "follow": true },
"jsonLd": { "@type": "Organization", "name": "Acme Notes" },
"ai": {
"summary": "Acme Notes is a note-taking app for teams.",
"allowTrainingCrawlers": true,
"allowAnswerCrawlers": true
},
"sitemap": { "enabled": true },
"pages": {
"/pricing": { "defaultTitle": "Pricing", "priority": 0.8 }
}
}- Top-level fields set site-wide defaults (title, description, OG, Twitter, JSON-LD).
aicontrols how AI assistants treat your app — a plain-languagesummaryand whether training / answer crawlers are allowed.pagesoverrides any field for a specific path, plusnoindex,canonical,priority,changefreq, and sitemap inclusion.
What Cloudrizz generates
At deploy, the bundler reads your config and produces:
<head>meta tags on every page — title, description, Open Graph, Twitter card, canonical, and JSON-LD./robots.txt— honoring your index/crawler rules./sitemap.xml— all HTML pages except those you exclude or marknoindex./llms.txt— a markdown index for AI assistants, built from yoursiteName,description, AIsummary, and page list.
noindex automatically — only your production deploy is indexable.Updating it
Edit cloudrizz.seo.json like any file, or use the update_seo_config MCP tool — it validates and (by default) deep-merges your changes. Like all changes, SEO updates land on a branch and reach production through a deploy / merged PR (see Branches, PRs & AI merges). The canonical origin is your custom domain if set, otherwise your .cloudrizz.app URL.