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: 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://.
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.
<head>
<!-- ... -->
<link rel="canonical" href="https://example.org/somepage"/>
</head>
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.
Warning
If you have other SEO extensions installed that generate canonical links, you have to make sure only one is responsible to embed into your frontend output.
If both the Core and another extension are generating a canonical link, it will result in 2 canonical links which might cause confusion for search engines.
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_ in the page
properties. The
\TYPO3\
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
}
}
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:
- Plugins rendered within the page content, for example a news detail plugin
- The page properties provided by typo3/cms-seo , such as Description, Title (Open Graph) or Card type (X / Twitter)
- The TypoScript setting
page.meta
A meta tag that has been set already is not overwritten by a later one. Since
page. 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
This makes
page. 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
To let TypoScript win over the page property, use
replace
:
page.meta.description = Description from TypoScript
page.meta.description.replace = 1
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
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- 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)