Skip to content
DocsGo to Dashboard
Serve an llms.txt

Publishing upserts the file on the static pages origin, served from the edge

Publish is the step that makes llms.txt real: the approved draft's content is written to the domain's static files, and a rewrite rule routes /llms.txt to it — both served by the edge proxy, no origin involvement.

SEO & AI Search Generated drafts list showing metadata, schema, llms.txt, and redirect drafts with status badges and action buttons
Four content-action kinds side by side: draft rows offer Approve and Reject, the approved llms.txt row offers Publish.

Clicking Publish#

On an approved row in Generated drafts press Publish (POST /v1/domains/:id/content-actions/:draftId/publish). Guards come first: only approved drafts pass (Only an approved draft can be published (this one is draft). is the shape of the refusal), and kinds without a publish path answer "{kind}" has no publish mechanism in this codebase yet — export it instead. Success flips the status to published, stamps publishedAt, and toasts Draft published to the proxy.

What publish writes#

  1. Static file — upsert at path llms.txt, Content-Type: text/plain; charset=utf-8, body from the draft. Visible under Advanced → Static pages (table Path | Content type | Size | Updated | Actions); the panel notes Static file changes are available immediately. Use a rewrite rule with the Static Pages origin to serve them.
  2. Rewrite rule — Serve llms.txt, source pattern ^/llms\.txt$, destination /llms.txt, origin = static pages — created only if not already present, so re-publishing never duplicates it, then rewrite rules are deployed to the serving path right away.

Rollback is documented in the action registry: delete the static file and the serving rewrite, then redeploy rewrites.

Verifying it afterwards#

Once published, three checks confirm the loop closed: the row's pill reads published; Advanced → Static pages lists llms.txt with content type text/plain; charset=utf-8 and a fresh Updated value; and Advanced → Rewrites shows the enabled Serve llms.txt rule routing ^/llms\.txt$ to the static-pages origin. A cold curl https://yourdomain/llms.txt then returns your content with the edge in front — and the publish is recorded as activity content_action.published, visible in the change log like every other content action.

What publish does not do#

It does not touch your origin (nothing to deploy there), and other rule types — SEO rules, redirects — still wait for their own save/Deploy semantics (see Deploy schema and redirects). Afterwards, curl https://yourdomain/llms.txt should return the published body with the edge in front.

Back to Serve an llms.txt