Features of the TYPO3 system extension "seo" 

The TYPO3 system extension typo3/cms-seo offers multiple tools and fields that can be used to improve visibility of a TYPO3 site in search engines:

Additional tabs "SEO" and "Social media" in the page properties 

After Installation two additional tabs are available in the page properties.

SEO
This tab contains additional fields for the title tag in the HTML header, for the description meta tag, for robots instruction, the Canonical URL and for priorities used in the XML Sitemap.
Social media
This tab contains additional fields to manage data for the Open Graph (Facebook) meta tags and the X / Twitter Cards.

Usage of these additional fields is described in the Editors Tutorial, Search engine optimization (SEO) for TYPO3 editors.

A Dashboard Widget for SEO 

The extension also offers an additional Dashboard widget. typo3/cms-dashboard needs to be installed. Usage is described in the Editors Tutorial, chapter Dashboard widgets for Search engine optimization (SEO) in TYPO3.

If your editors have one of the standard user groups "Editor" or "Advanced Editor", created by the command typo3 setup:begroups:default they have permissions to use the widget.

If you created the use groups manually you users need to have "Dashboard" in their allowed modules and "Pages missing Meta Description" in the allowed dashboard widgets list: Dashboard manual, permissions of widgets

XML Sitemap 

The extension typo3/cms-seo comes with the site set typo3/seo-sitemap, which you can use to provide an XML sitemap like https://example.org/sitemap.xml.

See chapter XML sitemap for details.

Canonical URL 

When typo3/cms-seo is installed, pages automatically contain a canonical link tag in their HTML head, unless disabled via TypoScript.

example output of a canonical link in the head of a TYPO3 page
<head>

<!-- ... -->

<link rel="canonical" href="https://example.org/somepage"/>
</head>
Copied!

You can use the event ModifyUrlForCanonicalTagEvent to provide an alternative canonical URL if needed.

The API of the canonical link is described in Canonical API, TYPO3 Explained.

SEO page title provider 

While the Page title API, providing a <title> tag in the HTML head is part of a minimal TYPO3 installation, typo3/cms-seo provides an additional field, seo_title in the page properties. The \TYPO3\CMS\Seo\PageTitle\SeoTitlePageTitleProvider provides this title as an alternative title for the <title> tag.

The following default TypoScript setup is provided for the page title provider:

config.pageTitleProviders {
    seo {
        provider = TYPO3\CMS\Seo\PageTitle\SeoTitlePageTitleProvider
        before = record
    }
}
Copied!

Additional meta tag handling 

While the MetaTag API is part of the minimal TYPO3 Core, the meta tag providers for the description meta tag commonly used for search engine optimazation, and the social preview meta tags of Open Graph and Twitter / X are part of typo3/cms-seo .

Precedence of page properties over TypoScript 

Meta tags are set from three different places, in this order:

  1. Plugins rendered within the page content, for example a news detail plugin
  2. The page properties provided by typo3/cms-seo , such as Description, Title (Open Graph) or Card type (X / Twitter)
  3. The TypoScript setting page.meta

A meta tag that has been set already is not overwritten by a later one. Since page.meta is evaluated last, a filled page property always wins over TypoScript. With the page property Description filled, the following setup has no effect:

page.meta.description = Description from TypoScript
Copied!

This makes page.meta a fallback that is applied on all pages where the corresponding page property is empty. A typical use case is inheriting a value from a parent page:

page.meta.og:title.data = levelfield:-1, og_title, slide
Copied!

To let TypoScript win over the page property, use replace :

page.meta.description = Description from TypoScript
page.meta.description.replace = 1
Copied!

An empty value never removes an already generated meta tag, so replace in combination with stdWrap overrides the page property only if TypoScript actually resolves to a value. The following setup uses the page property Abstract if it is filled, and keeps the value of the page property Description otherwise:

page.meta.description.data = page:abstract
page.meta.description.replace = 1
Copied!

Hreflang tags 

hreflang link-tags are added automatically for multi-language websites based on the one-tree principle.

The links are based on the site configuration and depend on translations of a page.

hreflang="x-default" indicates the link of the current page in the default language.

The value of hreflang is set for each language in Sites > Setup (see Adding Languages)