Official module

SEO

Everything search engines need, managed from the admin and rendered by your themes through filters. One source of truth for meta, sitemaps, canonical URLs, structured data and redirects.

Availablev1.0Filter-basedOfficial · by Atypisch
What it does

Built to one standard, wired into the core.

Every capability integrates with permissions, validation, migrations and the headless API. Nothing bolted on the side.

Meta & Open Graph

Titles, descriptions and social cards per entry, with smart fallbacks pulled from your content.

Sitemaps

A sitemap.xml that stays current as you publish. Multi-sitemap support for large sites, zero configuration.

Redirects

Manage redirects in the admin or import them in bulk. Changed slugs are captured automatically so old links never break.

Structured data

JSON-LD for articles, products and breadcrumbs out of the box, extendable per collection.

Canonical & robots

Canonical URLs and index controls, set per entry or as a collection default.

Rendered in your head

The same meta renders in PHP themes through filters, from one definition in the admin.

In your themes

One call renders every tag.

Enabling the module adds an SEO panel to every collection. In a theme, a single helper renders the full head, complete with fallbacks and structured data.

Per-entry control

Override any tag on any entry; otherwise inherit sensible defaults.

No duplicate work

Meta written once is available to themes and the API together.

Validated

Lengths and formats are checked before anything is saved.

templates/article.phpphp
<head>
  <title><?= e(apply_filters('seo_meta_title', $post['title'], $post)) ?></title>
  <meta name="description" content="<?= e(apply_filters('seo_meta_description', '', $post)) ?>">
</head>

// with the SEO module active, these filters supply
// the resolved title and description for this entry

Sitemap, kept current

XML
GET /sitemap.xmlxml
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://acme.eu/journal/field-notes</loc>
    <lastmod>2026-03-12</lastmod>
  </url>
</urlset>
What is included

Everything in one install.

SEO panel

Added to every collection, with live previews of the search and social snippet.

Sitemap engine

Automatic, paginated, and pinged to search engines on publish.

Redirect manager

Wildcards, import/export and automatic slug-change capture.

Structured data

JSON-LD generators for common types, extendable in code.

All modules

Full documentation. Installation, configuration, every option and the API reference live in the SEO module docs. Building your own instead? Read building a module.

Add SEO to your install.

Drop it in public/modules, activate it in the admin Modules screen, and its migrations run on activation. Reviewed, supported, and free to self-host.