Site / Creating a site

SEO today

  • Titles come from the tree: Site.titleOf(site, route), wired into the document the view returns ({ title: routeTitle(model.route), body: ... }). One annotation, derived everywhere — nav, breadcrumbs, titles.
  • Crawlable HTML comes from SSR or static generation above: fully rendered pages with the data in them, plus sitemap and robots from the static plugin.
  • Rich head metadata (per-page descriptions, images, article dates, JSON-LD) is a node's meta, a function of its route and the Model, and indexed: false marks a node and those below it noindex. Site.metaOf(site, route, model) merges the chain into SSR's own Meta, so it is an SSR plan's meta as it stands; there is no second meta system. The template's canonical/og:url tags are still filled from the Document the view returns.