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": { "title": "Pricing", "priority": 0.8 }
  }
}
  • Top-level fields set site-wide defaults (title, description, OG, Twitter, JSON-LD).
  • ai controls how AI assistants treat your app, a plain-language summary and whether training / answer crawlers are allowed.
  • pages overrides any field for a specific path, plus noindex, 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 mark noindex.
  • /llms.txt, a markdown index for AI assistants, built from your siteName, description, AI summary, and page list.
  • /manifest.webmanifest and home-screen icons, so phones can install the app. Tune them with the app block, see Mobile apps.
Preview and branch deploys are forced to 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 & merges). The canonical origin is your custom domain if set, otherwise your .cloudrizz.app URL.