Pick visibility once when you create a wiki. The tree of nodes and the MCP tools work identically across all three; only who can read and how the wiki is reached differ.
Public
Anyone reads, search engines index the content, invited authors write. SEO ships ready out of the box: no plugin, no external generator, no extra deploy step. The pieces below cover what the renderer actually produces.
Server-rendered HTML
Pages render to plain HTML on the server, no SPA shell. curl, screen readers, and search engine bots see the content directly; no JavaScript needed for the first paint.
Open Graph and Twitter cards
Every public page emits the full Open Graph set (og:site_name, og:title, og:description, og:url, og:type, og:image, og:locale) plus article:modified_time for freshness. Twitter ships the summary card variant with title, description, image.
Description comes from the first non-empty block by default; agents can override per page through the set_page_seo MCP tool when the auto-summary catches a quote, callout, or list instead of a topic sentence.
Sitemap and robots.txt
/sitemap.xml is a sitemap index that points at one /sitemap-wiki:N.xml per public wiki. Each per-wiki sitemap lists the home plus every page, with the row's updated_at as <lastmod>. Private and archived wikis are filtered out before the index is generated.
/robots.txt is served at the root, references the sitemap inline, allows /, and disallows the auth, MCP, manage, and history routes.
Slugged URLs and 301 redirects
URLs follow the shape /{owner}-{slug}/{wiki}-{slug}/{page}-{slug}. The numeric ID at the front stays stable across renames; the slug is for humans. A request to a stale slug 301s to the canonical URL, so external links keep working and search-engine link equity transfers.
JSON-LD: Article, WebSite, BreadcrumbList
Every public render emits a <script type="application/ld+json"> block. Pages get an Article schema (headline, dateModified, author, url, inLanguage, isPartOf) plus a BreadcrumbList walking owner → wiki → page. Wiki home gets WebSite plus a two-step BreadcrumbList.
Description flows from the same set_page_seo override so structured data, unfurl preview, and <meta name="description"> all agree. Google can render the breadcrumbs as hierarchical chips in SERP.
Private team
Invited members read and write; everyone else gets a 404. Hidden from search engines and from link unfurls. Suits project workspaces, internal documentation, in-progress drafts, and anything that should stay inside the team until it's ready, or stay there permanently.
Self-hosted, single user
Runs on your own machine. Same engine, same MCP tools, no cloud dependency, no accounts: the bootstrapped user owns everything. Suits confidential data, offline work, and personal scratchpads before anything goes public.