SEO module

Module id: seo. Dependencies: none.

Everything a website does for search engines and link previews: the tags in the <head>, structured data, the sitemaps, llms.txt, and the SEO fields in the admin.

It is the one module that is on by default. A new website starts with it on, and every website that existed when it became a module was switched on by a migration, so nothing changed for them. Switching it off is the opt-out, for a site that does not want to help crawlers at all.

While it is on

  • The head carries the meta description, canonical, robots, Open Graph, Twitter card, hreflang and JSON-LD, rendered by cms-core's shared SEO partial.
  • The editor's stored SEO overrides on pages, articles, products and categories are applied.
  • The site serves /sitemap.xml (with sitemap-pages, -products, -landing, -faq and -blog under it) and /llms.txt, and robots.txt carries a Sitemap: line.

When it is off

What Off
<head> A bare <title>, from the page, product or article itself
Stored SEO overrides Not applied, on pages, articles, products and categories
JSON-LD None: seo_json_ld() returns null, cms_faq() emits no FAQPage
hreflang None: seo_hreflang() returns ''
/sitemap*.xml, /llms.txt 404
robots.txt Allow: /, without the Sitemap: line
Admin The SEO fields and tabs are hidden on pages, articles, products, categories and landing datasets

Nothing is deleted. The stored SEO data stays on each row, so switching the module back on restores every override as it was.

The theme helpers return their empty values rather than failing, so a theme needs no change when a website switches it off. The switch acts in cms-core's SEO partial and helpers: a theme that overrides {% block seo %} and writes its own tags keeps printing them.

Not the switch that hides a site

Turning SEO off only stops helping crawlers. Pages stay indexable: robots.txt still allows everything and no noindex is sent.

To keep a site out of search results, use Websites → General → Search engines → "Hide this site from search engines", see Hiding a site from search engines. That switch works whether the SEO module is on or off: with SEO off, the head is the title plus <meta name="robots" content="noindex,nofollow">, and robots.txt says Disallow: /.

Per-website settings

None. The module is a toggle; the SEO content itself lives on the pages, articles, products and categories it describes.