Every field takes effect immediately — no publish needed. Empty string clears. select_site returns the current values.
name: the URL slug (subdomain) — lowercase letters, digits, hyphens.title/description: the fallback<title>and meta description for every page without its ownseo.update_pagecan't reach them.ogImage: the site-wide share image (https URL, 1200×630) — the og:image for every page without its ownseo.ogImage. Unset, those pages get a generated text card. Set it once here instead of on each page.ogVideo: the site-wide animated link preview — https URL of an H.264 MP4 (1200×630, a few seconds, muted, under ~5 MB), sent as og:video beside the still og:image. iMessage, Discord, Slack and Telegram play it; X, LinkedIn, Facebook and WhatsApp show the still. Upload the MP4 withupload_fileand pass theurlit returns. A page's ownseo.ogVideo(update_page) beats it.crawlMode:public(indexed — the default for new sites),noindex(viewable by link, sentnoindex, nofollowand left out of the sitemap) orprivate_preview(noindex plus a robots.txtDisallow: /). SetnoindexBEFORE publishing a client's copy that isn't on its final domain yet, or search engines index it as a duplicate of their real site. Flip topublicat domain cutover.blockAiCrawlers: true adds a robots.txt Disallow for known AI crawlers (GPTBot, ClaudeBot, Google-Extended, PerplexityBot, …) and turns off /llms.txt + /llms-full.txt. Search engines are unaffected. Leaving it off also lets AI assistants read the site to answer questions or book on a visitor's behalf.timezone: the business's IANA timezone, e.g. "America/Los_Angeles". Liquid dates (date,time_tag,'now' | date),{{ year }},{{ site.timezone }}and the times in form notification emails use it; unset or unknown means UTC. A date-only string (2026-06-15) keeps its day; a date-time with no offset (2026-06-15T10:00) is wall-clock time in this timezone.language: the BCP 47 tag the pages are written in ("uk", "es", "pt-BR"), sent as<html lang>on every page so browsers, screen readers and search engines read the right language. Unset means "en". Set it on every site that isn't in English.
Mounting in your own Next.js app (@pagehub/next)
mountOrigin: the origin of the app that serves this site at its root, e.g. "https://app.example.com" — https, no path or trailing slash. Canonical URLs, og:url and the sitemap then use that origin, and the page's form, analytics and favicon calls go through the app's /_pagehub/ path. Setting it issues a mount key (returned once) that the app must send so PageHub sees each visitor's real IP; clearing it removes the key.rotateMountKey: true issues a new mount key and invalidates the old one (the site must have a mountOrigin). The new key is returned once — set it asPAGEHUB_MOUNT_KEYin the host app, or that app's visitors share one IP for rate limits and analytics until you do.