Skip to content

Pages Tools

FieldTypeDescription
titlestringPage title. Used in nav and as default <title> tag.
slugstringURL path. "" = homepage. No leading slash.
html_contentstringFull page body HTML.
content_mode"html"Always "html" in the current version.
status"published" | "draft" | "review"Only published pages are built into the static site.
kind"page" | "article""article" enables Article JSON-LD schema.
seo_titlestringCustom <title> tag. Defaults to title + suffix.
seo_descriptionstring<meta name="description">. 150–160 chars recommended.
og_imagestringAbsolute CDN URL for Open Graph image.
canonical_urlstringOverride the canonical URL (e.g. after a migration).
noindexbooleanSet true to add <meta name="robots" content="noindex">.
languagestringPer-page language override (e.g. "en", "sv").
authorstringArticle author. Used in Article JSON-LD.
date_publishedstringISO 8601 date. Used in Article JSON-LD.
json_ldstringCustom JSON-LD schema as a JSON string.

The homepage has slug: "" and is stored with id: "home". Claude uses this automatically when you say “the homepage” or “the start page”.

Creates a new page. Required: title. Defaults: status: "draft", content_mode: "html".

Create a page titled "Tjänster" at slug "tjanster" with three service sections.

Updates one or more fields on an existing page. Pass only the fields you want to change — others are preserved.

Update the Services page: change the seo_description to "..."

Updates multiple pages in one call. More efficient than individual updates for bulk changes like SEO fixes.

Write meta descriptions for all pages.

Claude uses batch_update_pages automatically for multi-page operations.

Returns all pages with title, slug, status and SEO fields — but not the HTML body (to keep responses small).

Add full: true to include html_content — use sparingly on large sites.

Returns a single page including its full html_content. Claude uses this before editing a page.

Reads multiple pages by ID in one call. Returns { pages_by_id: { id: page }, not_found: [] }.

Finds pages containing a substring in their HTML content:

search_pages contains="<h1" ← pages with an H1
search_pages contains="calendly" ← pages with a Calendly embed
search_pages contains="/old-path" ← pages with a stale internal link

Permanently deletes a page. This also removes it from the next deploy.

All HTML in pages should follow these conventions:

  • CSS variables for colours and fontsvar(--color-primary), var(--font-heading), never hardcoded hex
  • One <h1> per page — the page title. Sections use <h2>.
  • No <nav>, <header>, <footer> in page HTML — those live in partials
  • Inline <style> blocks are allowed — scoped to the page’s classes
  • <iframe> allowed for YouTube, Vimeo, Calendly, Google Maps
  • No <script> tags — use site settings for analytics/chat widgets