# Total CMS 3.6.0 — Publishing: SEO, video, undo and WebMCP

> Source: <https://totalcms.co/releases/3-6-0>
> Published: 2026-09-24 00:00:00+00:00

Release 3.6.0

# Publishing: SEO, video, undo and WebMCP

24 September 2026

Total CMS 3.5 was about what you can build: Site Builder, extensions, an MCP server, automations. Total CMS 3.6 is about what everyone else sees. Search engines, social networks, and AI assistants now get a complete, correct picture of every page on your site from a single line in your layout. And the people editing that site get a safety net, a faster way to make small changes, and a handful of content types they have been asking for.

Here’s the tour.

## SEO, done once

The headline feature. Add one line to a layout:

```
{{ cms.seo.head(page) }}
```

Every Site Builder page and every collection object now gets a complete head: title, description, canonical URL, robots rules, Open Graph and Twitter cards, and a single structured-data graph that search engines and AI answer engines read. Blog posts are marked up as articles automatically.

You decide what goes into it in three layers, most specific first:

- **An SEO card** on any page or record, for the times one page needs its own title or share image.
- **A per-collection mapping** that builds titles and descriptions from fields you already have, with the same`${property}` templates used across Total CMS:`${title} | Reviews` , or`${cuisine} in ${city}` .
- **A Site SEO record** for the defaults. Most sites only ever fill in this one.

It comes with the things you would otherwise bolt on yourself. Upload one square PNG and every favicon size a browser, phone, or search result asks for is generated, `/favicon.ico` included. Paste the verification tags Google, Bing, and Pinterest hand you into one Meta Tags box. Give share cards their own titles and descriptions. Add your own JSON-LD and it joins the same graph. `cms.render.picture()` serves responsive AVIF and WebP images at five widths.

And with **IndexNow** switched on, every publish, edit, and delete is sent to Bing and the other IndexNow engines as it happens, following the same rules as your sitemap so a crawler is never told two different things about one page.

It works on Stacks sites too: keep a record per page as an SEO carrier and the same head call does the rest.

## An undo button for your content

Every save now keeps the version it replaced, and every delete keeps the final state. Nothing to set up, it’s on by default.

```
tcms backup:list blog my-first-post
tcms backup:restore blog my-first-post --latest
```

A restore is an ordinary save, so the record is re-indexed and your listeners fire, and the state it replaces is kept too, so a restore is never a one-way door. Only the records are versioned, never uploaded files, so the footprint stays small. By default each record keeps its ten newest versions for up to 30 days.

## Edit where you already are

**Inline editing** comes to the collection table. Hover a cell, click the pencil, change the value, press Enter. Text, numbers, dates, choices, lists, and styled text all work, and a site switch plus an access-group permission decide who gets the pencil.

Deck tables got the same care: image and file columns now show a thumbnail per row, take a drop on an empty cell, and offer edit, download, and delete on hover.

Long admin forms can fold their advanced fields into **accordions**, the image dialog finally has a proper **Discard Changes** button, and hand-written HTML in a styled text field now survives being opened and saved.

## New ways to hold content

- **A video field.** Paste a YouTube, Vimeo, Bunny, Cloudflare Stream, Loom, Wistia, Livid, Publitio, or Jet-Stream link, or a direct MP4, and`cms.render.video()` renders the right player with a click-to-play poster. It works inside cards and decks and round-trips through CSV.[Video field →](https://docs.totalcms.co/fields/video)
- **Podcasting.** A bundled extension gives you a show, an episodes collection, and a feed the directories accept, on Site Builder and Stacks alike. Host several shows on one site. Standard edition and above.[Podcasting →](https://docs.totalcms.co/extensions/podcast)
- **Markdown storage.** A collection can keep each record as a Markdown file with frontmatter, for content you’d rather write in a text editor or keep in git. Convert an existing collection with`tcms collection:convert` .[Storage format →](https://docs.totalcms.co/collections/storage-format)
- **Public counters.** Let visitors increment a number field for likes, "was this helpful", or download counts, with rate limiting built in.

## Lighter, faster front ends

A form on a public page used to load the entire admin bundle, around 300 KB compressed for a four-field form. In 3.6 it loads a form runtime under 50 KB, and heavier fields such as uploads or styled text fetch their own code only when a form actually uses them.

Static assets no longer set a session cookie, so a CDN finally caches them the way their headers always asked. And a new set of HTMX helpers and recipes covers live search, faceted filtering, sort toggles, lazy sections, and member-only fragments. [HTMX recipes →](https://docs.totalcms.co/twig/htmx)

There’s even a `|typography` filter that sets prose the way a typesetter would: curly quotes in your site’s language, real dashes and ellipses, and no lone word stranded on the last line of a paragraph.

## AI that connects on the first try

Connecting Claude, ChatGPT, or another MCP client over OAuth now works out of the box: dynamic client registration is on by default. To keep that safe, the consent screen now shows exactly where a client will send you after you approve, and warns when a self-registered client points somewhere unfamiliar.

Every connected AI client also gets better instructions from the moment it connects: look before acting, check the docs instead of guessing, change only the fields it means to change, never invent ids. Three new guided prompts cover modeling a collection, writing content, and auditing SEO.

And for the curious, there’s **WebMCP**, an experimental extension for Chrome’s new in-browser AI agents. It makes your forms callable by an agent on the page and hands that agent the same read tools your MCP server offers, as the signed-in visitor and always read-only. It’s off by default while the web standard settles. [WebMCP →](https://docs.totalcms.co/extensions/webmcp)

## For developers

- `composer require`**installs an extension** , straight from` vendor/` , and`composer update` keeps it current.
- **Extensions can ship an agent skill** , so an AI coding agent learns your extension the same way it learns Total CMS.
- `composer update`**runs**` tcms deploy`** for you** , so a forgotten cache clear after an update is a thing of the past.

## Upgrading

Most sites need to do nothing. A few things to know:

- **Site Builder page descriptions and images** moved to the SEO card and are migrated automatically. If a template reads`page.description` or`page.image` , switch it to`page.seo.description` and`page.seo.image` .
- **Backups and the generator tag are on by default.** Both can be tuned or switched off.
- **The CLI’s CSV export** now matches the admin export, with cards in dot-notation columns.

See the [3.6.0 release notes](https://totalcms.co/releases) for the full list.

## Get it

Total CMS 3.6 is available now. Zip installs update from the dashboard. Composer installs run `composer update totalcms/cms`. New project? `composer create-project totalcms/totalcms mysite`.

Thank you to everyone running 3.5 in production who took the time to report what got in their way. A good part of this release is your list.
