Legal & Compliance

How legal policy pages are published

Legal policy pages are published from markdown files stored in the repository. Each document in the legal system gets a public, crawlable page at /legal/:slug and an optional script embed at /legal/:slug.js. YAML frontmatter in the markdown file controls whether the page is visible, when it was last updated, and whether it carries a legal-review banner.

Currently published pages

The legal system currently serves the Cookie Policy and Sub-processors pages. Privacy policy and terms of service are self-hosted as standalone marketing-site pages and are not served from /legal/:slug.

Document

Standalone URL

Status

Cookie Policy

/legal/cookie-policy

under_legal_review

Sub-processors

/legal/subprocessors

under_legal_review

Privacy policy and terms of service

Privacy policy and terms of service are self-hosted at /privacy-policy and /terms-conditions. They are not served from the /legal/:slug system.

Frontmatter fields

Each markdown file starts with YAML frontmatter. The following fields are recognized:

  • slug — the URL slug, limited to lowercase letters, numbers, and hyphens.

  • title — the page title shown in the browser tab and the page header.

  • last_updated — the date the content was last materially changed.

  • last_reviewed — the date the content was last reviewed by legal.

  • statuspublished or under_legal_review. Anything else, including missing frontmatter, is treated as draft and returns 404.

Under-review banner

When a document’s status is under_legal_review, the standalone page and the embed both show a banner with this exact text:

This document is currently under legal review and may change.

Canonical pages and embeds

Every standalone page includes a canonical link pointing to its own URL. The embed script also includes a link labeled Standalone version of this page that points back to the canonical URL. This lets visitors and search engines know which URL to share and index.

Sub-processors drift guard

The public sub-processors page must stay in sync with the internal vendor inventory. A continuous-integration test compares every vendor listed in VENDORS.md against the entries in docs/legal/subprocessors.md. If a vendor is missing from the public page, the build fails. The check is one-directional: it enforces that the internal inventory is reflected in the public doc, but it does not fail if the public doc lists extra vendors.

Standalone pages and embeds are cached publicly for five minutes. Unpublished or unknown slugs return 404 and are cached for one minute.

For step-by-step embed instructions, see Embed a legal policy page on your Squarespace site. For a quick lookup of URLs and statuses, see Legal policy page reference. For more on public page indexing, see Public event page indexing and SEO.

Was this helpful?