Configuring SEO Defaults (in Content Types)

SEO defaults now live on each content type in m18t. Learn every field — path prefix, schema type, robots, title template — and how a piece overrides them.

What you'll learn

  • Where SEO defaults live now that there's no standalone SEO Indices page.
  • Each field on a content type and what it controls.
  • How a per-piece SEO value overrides a type default.

The concept: the type is the SEO record

In m18t, the SEO defaults for a kind of content are stored on the content type itself. There is no separate "SEO Indices" screen anymore — the old /studio/config/seo-indices route 301-redirects to Content Types. When you define a blog post, a help article, or a custom type like case-study, you're also defining how every piece of that type gets a URL, a title, a robots policy, and a schema.org type.

Defaults are scoped per (brand × type). The same blog-post type can carry different defaults for two different brands. That's what keeps URLs and titles consistent within a brand and lets each brand keep its own conventions. The bigger picture is in The SEO Philosophy.

How to configure a content type's SEO defaults

  1. Go to Configuration ▸ Content Types (/studio/config/content-types). If this is new to you, click How this works for the in-page guide.
  2. Add a type or edit an existing one. To add: click Add Content Type (or pick a card from Quick-start templates — Blog Post, Help Article, and so on). To edit an existing type, click the pencil icon on its row.
  3. Set the Brand the defaults apply to, the Content Type ID (lowercase, dashes — e.g. blog-post), and a Display Label (what shows in publisher pickers).
  4. Set Path Prefix — the URL segment entries of this type live under, e.g. /blog/. This feeds the canonical URL.
  5. Set Schema.org @type — the JSON-LD type for answer engines, e.g. Article, BlogPosting, FAQPage, WebPage. See Structured Data & JSON-LD.
  6. Set the Meta Title Template. It supports {{BRAND_TITLE}}, {{POST_TITLE}}, and {{SEPARATOR}} — the default is {{BRAND_TITLE}} | {{POST_TITLE}}.
  7. Set Default Keywords (comma-separated — these also seed the SEO AI prompt), Default Robots (e.g. index, follow), Supported Locales (e.g. ar,en), and a Fallback OG Image for pieces that don't set their own.
  8. Click Save changes.

From then on, every new piece of that type for that brand starts with these values pre-filled.

How overrides work

A type default is a starting point, not a lock. When you create a piece and open its SEO tab in the content editor, every default is editable for that piece alone:

  • Forgot a per-post social image? The type's Fallback OG Image fills in.
  • Need a different title than the template produced? Edit it on the piece, or regenerate it with Generate Meta with AI.
  • Publishing a private piece in an otherwise-indexed type? Switch its robots to noindex, nofollow on the piece.

The piece wins over the type. The type wins over nothing — it's the floor.

Common variations

Changing a default after pieces already exist. Editing a type's defaults changes what new pieces inherit. Pieces already created keep the values they were given; already-published pieces also need a re-push to update what's in your CMS — see Pushing to your CMS.

A private/internal type. Set Default Robots to noindex, nofollow on the type so every piece of it stays out of the index by default.

Deleting a type. m18t blocks deletion while content entries still use the type — archive or migrate those entries first. This avoids orphaned URLs and broken CMS pushes.

What's next

FAQ

Where did the SEO Indices page go? It was folded into Content Types. The SEO defaults that used to live on a separate "SEO Indices" screen now live on each content type at /studio/config/content-types. The old route 301-redirects there.

Do SEO defaults apply across all my brands? No. They're per (brand × type). The same blog-post type can have different path prefixes, titles, and robots policies for two brands. Pick the brand at the top of the form.

What variables can I use in the meta-title template? {{BRAND_TITLE}}, {{POST_TITLE}}, and {{SEPARATOR}}. The default template is {{BRAND_TITLE}} | {{POST_TITLE}}.

Can I stop a content type from being indexed? Yes — set its Default Robots to noindex, nofollow. Every new piece of that type inherits it, and you can still override per piece.

Why can't I delete a content type? m18t hard-blocks deleting a type while content entries reference it. Archive or migrate those entries first, then delete.

Was this article helpful?