TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:39 +02:00
commit e54ab24745
68 changed files with 3683 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
.. include:: /Includes.rst.txt
.. _configuration:
=============
Configuration
=============
Target group: **Developers, Integrators**
.. seealso::
General SEO recommendations for TypoScript and Site Configuration can be
found in `TYPO3 explained, Suggested configuration options for improved
SEO in TYPO3 <https://docs.typo3.org/permalink/t3coreapi:seo-configuration>`_.
.. toctree::
:caption: Subpages
:glob:
*
.. _configuration-site-sets:
Site sets
=========
.. versionadded::13.3
EXT:seo now offers a site set "SEO Sitemap" to include the TypoScript to
output the XML sitemap.
Include the site set "SEO Sitemap", `typo3/seo-sitemap` via the :ref:`site set in the site
configuration <t3coreapi:site-sets>` or the custom
:ref:`site package's site set <t3sitepackage:site_set>`.
Settings for the included set can be adjusted in the :ref:`settings-editor`.
.. figure:: /Images/SiteSet.png
Add the site set "SEO Sitemap"
This will change your site configuration file as follows:
.. literalinclude:: _site_config.diff
:caption: config/sites/my-site/config.yaml (diff)
If your site has a custom :ref:`site package <t3sitepackage:start>`, you
can also add the "SEO Sitemap" set as dependency in your site's configuration:
.. literalinclude:: _site_package_set.diff
:caption: EXT:my_site_package/Configuration/Sets/MySite/config.yaml (diff)
+28
View File
@@ -0,0 +1,28 @@
:navigation-title: Settings
.. include:: /Includes.rst.txt
.. _configuration-site-set-settings:
=============================
Site sets settings of EXT:seo
=============================
The following settings are available via the
:ref:`site set settings <configuration-site-sets>` and can be adjusted in
the :ref:`settings-editor`.
.. versionchanged:: 14.0
The names of the GET parameters used in the sitemap generated by EXT:seo have
been changed from `page` and `sitemap` to `tx_seo[page]` and `tx_seo[sitemap]`
respectively. If you are overriding the templates for the sitemap, provide
separate sets for TYPO3 13.4 and 14.x support.
.. versionchanged:: 14.1
The site set `typo3/seo-sitemap` now ships a sitemap route enhancer. See
also `Automatic routing for the XML sitemap <https://docs.typo3.org/permalink/typo3/cms-seo:xmlsitemap-routing>`_.
.. typo3:site-set-settings:: PROJECT:/Configuration/Sets/Sitemap/settings.definitions.yaml
:name: seo-settings
:type:
:Label: Settings of the site set of EXT:seo
@@ -0,0 +1,23 @@
.. include:: /Includes.rst.txt
.. _settings-editor:
===============
Settings editor
===============
When the :ref:`site set for the SEO sitemap <configuration-site-sets>` is included,
the settings for sitemaps become available in the editor:
You can find the available site settings in module
:guilabel:`Sites > Setup > Settings`
You can change individual settings here. If the site settings are writable
you can hit the :guilabel:`Save` button and the settings will be written
directly to the site settings.
If the settings are not writable you can click the :guilabel:`YAML export`
button to export the settings. These can then be added by a developer with
sufficient rights.
The available settings are also described in detail in :ref:`site-sets`.
@@ -0,0 +1,5 @@
base: 'https://example.com/'
rootPageId: 1
dependencies:
- typo3/fluid-styled-content-css
+ - typo3/seo-sitemap
@@ -0,0 +1,9 @@
name: my-vendor/my-site-package
label: My Site Package Set
settings:
website:
background:
color: '#386492'
dependencies:
- typo3/fluid-styled-content-css
+ - typo3/seo-sitemap
+15
View File
@@ -0,0 +1,15 @@
.. include:: /Includes.rst.txt
.. _developer:
================
Developer Corner
================
When you work with a pages-only approach you most likely don't need to use the meta tag APIs. If you have a special
edge-case or have a detail view to show a record, you need the APIs to render the corresponding meta information for your
page. You can refer to the documentation of the following APIs:
- The MetaTagApi (see :ref:`t3coreapi:metatagapi`) to define what metatags should be rendered on your page
- The PageTitleAPI (see :ref:`t3coreapi:pagetitle`) will give you the possibility to set the title of the page
+152
View File
@@ -0,0 +1,152 @@
:navigation-title: Features
.. include:: /Includes.rst.txt
.. _features:
============================================
Features of the TYPO3 system extension "seo"
============================================
The TYPO3 system extension :composer:`typo3/cms-seo` offers multiple tools and
fields that can be used to improve visibility of a TYPO3 site in search engines:
.. contents::
.. toctree::
:glob:
:hidden:
*
.. _seo-page-properties:
Additional tabs "SEO" and "Social media" in the page properties
===============================================================
After `Installation <https://docs.typo3.org/permalink/typo3/cms-seo:installation>`_
two additional tabs are available in the page properties.
SEO
This tab contains additional fields for the
`title tag <https://docs.typo3.org/permalink/typo3/cms-seo:seo-page-title-provider>`_
in the HTML header, for the description meta tag, for robots instruction, the
`Canonical URL <https://docs.typo3.org/permalink/typo3/cms-seo:canonical-url>`_
and for priorities used in the
`XML Sitemap <https://docs.typo3.org/permalink/typo3/cms-seo: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 <https://docs.typo3.org/permalink/t3editors:seo>`_.
.. _seo-page-dashboard:
A Dashboard Widget for SEO
==========================
The extension also offers an additional Dashboard widget.
:composer:`typo3/cms-dashboard` needs to be installed. Usage is described in
the Editors Tutorial, chapter
`Dashboard widgets for Search engine optimization (SEO) in TYPO3 <https://docs.typo3.org/permalink/t3editors:dashboard-widgets>`_.
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 <https://docs.typo3.org/permalink/typo3/cms-dashboard:permission-handling-of-widgets>`_
.. _xml-sitemap:
XML Sitemap
===========
The extension :composer:`typo3/cms-seo` comes with the site set
`typo3/seo-sitemap <https://docs.typo3.org/permalink/typo3/cms-seo:configuration-site-sets>`_,
which you can use to provide an XML sitemap like `https://example.org/sitemap.xml`.
See chapter `XML sitemap <https://docs.typo3.org/permalink/typo3/cms-seo:xmlsitemap>`_
for details.
.. _canonical-url:
Canonical URL
=============
When :composer:`typo3/cms-seo` is installed, pages automatically contain a
canonical link tag in their HTML head, unless disabled via TypoScript.
.. code-block:: html
:caption: example output of a canonical link in the head of a TYPO3 page
<head>
<!-- ... -->
<link rel="canonical" href="https://example.org/somepage"/>
</head>
You can use the event `ModifyUrlForCanonicalTagEvent <https://docs.typo3.org/permalink/t3coreapi:modifyurlforcanonicaltagevent>`_
to provide an alternative canonical URL if needed.
The API of the canonical link is described in
`Canonical API, TYPO3 Explained <https://docs.typo3.org/permalink/t3coreapi:canonicalapi>`_.
.. 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:
SEO page title provider
=======================
While the `Page title API <https://docs.typo3.org/permalink/t3coreapi:pagetitle>`_,
providing a `<title>` tag in the HTML head is part of a minimal TYPO3 installation,
:composer:`typo3/cms-seo` provides an additional field, `seo_title` in the page
properties. The :php:`\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:
.. code-block:: typoscript
config.pageTitleProviders {
seo {
provider = TYPO3\CMS\Seo\PageTitle\SeoTitlePageTitleProvider
before = record
}
}
.. _seo-meta-tag-provider:
Additional meta tag handling
============================
While the `MetaTag API <https://docs.typo3.org/permalink/t3coreapi:metatagapi>`_
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 :composer:`typo3/cms-seo`.
.. _seo-hreflang:
Hreflang tags
=============
:html:`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.
:html:`hreflang="x-default"` indicates the link of the current page in the default language.
The value of :html:`hreflang` is set for each language in
:guilabel:`Sites > Setup` (see :ref:`t3coreapi:sitehandling-addingLanguages`)
+243
View File
@@ -0,0 +1,243 @@
.. include:: /Includes.rst.txt
.. index:: XML sitemap
.. _xmlsitemap:
===========
XML sitemap
===========
:composer:`typo3/cms-seo` provides a ready to use XML sitemap that can be
included via `Site sets <https://docs.typo3.org/permalink/typo3/cms-seo:configuration-site-sets>`_
(recommended) or include in your TypoScript record.
.. versionchanged:: 14.0
The names of the GET parameters used in the sitemap generated by EXT:seo have
been changed from `page` and `sitemap` to `tx_seo[page]` and `tx_seo[sitemap]`
respectively.
If you are overriding the :ref:`automatic routing configuration <xmlsitemap-routing>`,
the customized routing needs to be slightly adopted.
If the templates of `EXT:seo/Resources/Private/Templates/XmlSitemap/Index.xml`
have been modified, adopt the generated links to fit the original ones.
In case the URL to a single sitemap has been provided to a third party tool
like a crawler, search engine, ... it must be added again with the new URL.
.. contents:: Table of Contents
:depth: 1
:local:
.. _xmlsitemap-url:
How to access your XML sitemap
==============================
You can access the sitemaps by visiting `https://example.org/sitemap.xml`.
You will first see the sitemap index. By default, there is one sitemap in the
index. This is the sitemap for pages.
.. note::
Each site root and language configured in the
`Site handling <https://docs.typo3.org/permalink/t3coreapi:sitehandling>`_
has its own XML sitemap depending on the entry point.
**Example:**
- Entry point `/` - :samp:`https://example.org/sitemap.xml`: for default language
- Entry point `/fr/` - :samp:`https://example.org/fr/sitemap.xml`: for French
- Entry point `/it/` - :samp:`https://example.org/it/sitemap.xml`: for Italian
.. _xmlsitemap-routing:
Automatic routing for the XML sitemap
=====================================
.. versionchanged:: 14.1
The SEO extension now ships its sitemap route enhancers as part of
the `typo3/seo-sitemap` site set.
Previously, these route enhancers had to be manually configured in each
site's `config.yaml`.
The SEO extension now ships its sitemap route enhancers as part of
the `typo3/seo-sitemap` site set. When this set is used as a dependency,
the route enhancers for XML sitemaps are automatically configured.
This enables clean URLs for sitemaps out of the box:
* `/sitemap.xml` - Main sitemap index
* `/sitemap-type/pages/sitemap.xml` - Pages sitemap
The routing can be overridden in the projects :file:`config/sites/my-site/config.yaml`
and in site sets extending the `typo3/seo-sitemap` site set.
.. index:: XmlSitemapDataProviders
.. _xmlsitemap-data-providers:
Data providers for XML sitemaps
===============================
The rendering of sitemaps is based on data providers implementing
:php:`\TYPO3\CMS\Seo\XmlSitemap\XmlSitemapDataProviderInterface`.
:composer:`typo3/cms-seo` ships with the following data providers for XML
sitemaps:
.. _xmlsitemap-data-providers-pages:
For pages: PagesXmlSitemapDataProvider
--------------------------------------
The :php:`\TYPO3\CMS\Seo\XmlSitemap\PagesXmlSitemapDataProvider` will generate a
sitemap of pages based on the detected site root. You can configure whether you
have additional conditions for selecting the pages.
Via setting :ref:`seo.sitemap.pages.excludedDoktypes <typo3/cms-seo:confval-seo-settings-seo-sitemap-pages-excludeddoktypes>`
it is possible to exclude certain `Types of pages <https://docs.typo3.org/permalink/t3coreapi:list-of-page-types>`_.
Additionally, you may exclude page subtrees from the sitemap
(for example internal pages). This can be
configured using setting
:ref:`seo.sitemap.pages.excludePagesRecursive <typo3/cms-seo:confval-seo-settings-seo-sitemap-pages-excludepagesrecursive>`.
If your site still depend on TypoScript records instead of site sets, you can
make these settings via TypoScript constants.
For special use cases you might want to override the default TypoScript provided
by the set.
.. _xmlsitemap-data-providers-records:
For database records: RecordsXmlSitemapDataProvider
---------------------------------------------------
If you have an extension installed and want a sitemap of those records, the
:php:`\TYPO3\CMS\Seo\XmlSitemap\RecordsXmlSitemapDataProvider` can be used. The
following example shows how to add a sitemap for news records:
.. literalinclude:: _xmlSitemap/_record.typoscript
:caption: EXT:my_extension/Configuration/Sets/XmlSitemapNews/setup.typoscript
You can add multiple sitemaps and they will be added to the sitemap index
automatically. Use different types to have multiple, independent sitemaps:
.. literalinclude:: _xmlSitemap/_multiple.typoscript
:caption: EXT:my_extension/Configuration/Sets/XmlSitemapMultiple/setup.typoscript
.. _xmlsitemap-changefreq-priority:
Change frequency and priority
=============================
Change frequencies define how often each page is approximately updated and hence
how often it should be revisited (for example: News in an archive are "never"
updated, while your home page might get "weekly" updates).
Priority allows you to define how important the page is compared to other pages
on your site. The priority is stated in a value from 0 to 1. Your most important
pages can get an higher priority as other pages. This value does not affect how
important your pages are compared to pages of other websites. All pages and
records get a priority of 0.5 by default.
The settings can be defined in the TypoScript configuration of an XML sitemap by
mapping the properties to fields of the record by using the options
:typoscript:`changeFreqField` and :typoscript:`priorityField`.
:typoscript:`changeFreqField` needs to point to a field containing string values
(see :typoscript:`pages` TCA definition of field
:typoscript:`sitemap_changefreq`), :typoscript:`priorityField` needs to point to
a field with a decimal value between 0 and 1.
.. note::
Both the priority and the change frequency have no impact on your rankings.
These options only give hints to search engines in which order and how often
you would like a crawler to visit your pages.
.. _xmlsitemap-without-sorting:
Sitemap of records without sorting field
========================================
Sitemaps are paginated by default. To ensure that as few pages of the sitemap
as possible are changed after the number of records is changed, the items in the
sitemaps are ordered. By default, this is done using a sorting field. If you do
not have such a field, make sure to configure this in your sitemap configuration
and use a different field. An example you can use for sorting based on the uid
field:
.. literalinclude:: _xmlSitemap/_recordUnsorted.typoscript
:caption: EXT:my_extension/Configuration/Sets/XmlSitemapTableWithoutSorting/setup.typoscript
.. _xmlsitemap-custom-provider:
Create a custom XML sitemap provider
====================================
If you need more logic in your sitemap, you can also write your own
sitemap provider. You can do this by extending the
:php:`\TYPO3\CMS\Seo\XmlSitemap\AbstractXmlSitemapDataProvider` class or
implementing :php:`\TYPO3\CMS\Seo\XmlSitemap\RecordsXmlSitemapDataProvider`.
The main methods of interest are :php:`getLastModified()` and :php:`getItems()`.
The :php:`getLastModified()` method is used in the sitemap index and has to
return the date of the last modified item in the sitemap.
The :php:`getItems()` method has to return an array with the items for the
sitemap:
.. code-block:: php
:caption: EXT:my_extension/Classes/XmlSitemap/MyXmlSitemapProvider.php
$this->items[] = [
'loc' => 'https://example.org/page1.html',
'lastMod' => '1536003609'
];
The :php:`loc` element is the URL of the page to be crawled by a search engine.
The :php:`lastMod` element contains the date of the last update of the
specific item. This value is a UNIX timestamp. In addition, you can include
:php:`changefreq` and :php:`priority` as keys in the array to give
:ref:`search engines a hint <xmlsitemap-changefreq-priority>`.
.. _sitemap-xslFile:
Use a customized sitemap XSL file
=================================
The XSL file used to create a layout for an XML sitemap can be configured at
three levels:
#. For all sitemaps:
.. code-block:: typoscript
:caption: EXT:my_extension/Configuration/TypoScript/setup.typoscript
plugin.tx_seo.config {
xslFile = EXT:my_extension/Resources/Public/CSS/mySite.xsl
}
#. For all sitemaps of a certain sitemapType:
.. code-block:: typoscript
:caption: EXT:my_extension/Configuration/TypoScript/setup.typoscript
plugin.tx_seo.config.mySitemapType.sitemaps {
xslFile = EXT:my_extension/Resources/Public/CSS/mySite.xsl
}
#. For a specific sitemap:
.. code-block:: typoscript
:caption: EXT:my_extension/Configuration/TypoScript/setup.typoscript
plugin.tx_seo.config.xmlSitemap.sitemaps.myNewsSitemap.config {
xslFile = EXT:my_extension/Resources/Public/CSS/mySite.xsl
}
The value is inherited until it is overwritten.
If no value is specified at all, :file:`EXT:seo/Resources/Public/CSS/Sitemap.xsl`
is used as default.
@@ -0,0 +1,18 @@
routeEnhancers:
PageTypeSuffix:
type: PageType
map:
/: 0
sitemap.xml: 1533906435
Sitemap:
type: Simple
routePath: 'sitemap-type/{sitemap}'
aspects:
sitemap:
type: StaticValueMapper
map:
pages: pages
tx_news: tx_news
my_other_sitemap: my_other_sitemap
_arguments:
sitemap: 'tx_seo/sitemap'
@@ -0,0 +1,30 @@
seo_googlenews < seo_sitemap
seo_googlenews.typeNum = 1571859552
seo_googlenews.10.sitemapType = googleNewsSitemap
plugin.tx_seo {
config {
xmlSitemap {
sitemaps {
news {
provider = GeorgRinger\News\Seo\NewsXmlSitemapDataProvider
config {
# ...
}
}
}
}
googleNewsSitemap {
sitemaps {
news {
provider = GeorgRinger\News\Seo\NewsXmlSitemapDataProvider
config {
googleNews = 1
# ...
template = GoogleNewsXmlSitemap.xml
}
}
}
}
}
}
@@ -0,0 +1,31 @@
plugin.tx_seo {
config {
xmlSitemap {
sitemaps {
myNewsSitemap {
provider = TYPO3\CMS\Seo\XmlSitemap\RecordsXmlSitemapDataProvider
config {
table = news_table
sortField = sorting
lastModifiedField = tstamp
changeFreqField = news_changefreq
priorityField = news_priority
additionalWhere = AND ({#no_index} = 0 OR {#no_follow} = 0)
pid = <page id('s) containing news records>
recursive = <number of subpage levels taken into account beyond the pid page. (default: 0)>
url {
pageId = <your detail page id>
fieldToParameterMap {
uid = tx_extension_pi1[news]
}
additionalGetParameters {
tx_extension_pi1.controller = News
tx_extension_pi1.action = detail
}
}
}
}
}
}
}
}
@@ -0,0 +1,13 @@
plugin.tx_seo {
config {
xmlSitemap {
sitemaps {
myUnsortedTable {
config {
sortField = uid
}
}
}
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

+1
View File
@@ -0,0 +1 @@
.. You can put central messages to display on all pages here
+63
View File
@@ -0,0 +1,63 @@
.. include:: /Includes.rst.txt
.. _start:
================================
TYPO3 Search Engine Optimization
================================
:Extension key:
seo
:Package name:
typo3/cms-seo
:Version:
|release|
:Language:
en
:Author:
TYPO3 contributors
:License:
This document is published under the
`Open Content License <https://www.openhub.net/licenses/opl>`__.
:Rendered:
|today|
----
This extension offers special fields for search engine optimization (SEO)
purposes, HTML meta tags display and sitemaps.
General information on topics about SEO can be found in
:ref:`Search engine optimization (SEO) <t3coreapi:seo>`.
Information for editors, including how to use the
`dashboard widgets <https://docs.typo3.org/permalink/t3editors:dashboard-widgets>`_
can be found in
`Tutorial for Editors, Search engine optimization (SEO) for TYPO3 editors <https://docs.typo3.org/permalink/t3editors:seo>`_.
----
**Table of Contents:**
.. toctree::
:maxdepth: 2
:titlesonly:
Introduction/Index
Installation/Index
Features/Index
Configuration/Index
Developer/Index
.. Meta Menu
.. toctree::
:hidden:
Sitemap
+54
View File
@@ -0,0 +1,54 @@
.. include:: /Includes.rst.txt
.. _installation:
============
Installation
============
Target group: **Administrators**
This extension is part of the TYPO3 Core.
.. contents:: Table of contents
:local:
Installation with Composer
==========================
Check whether you are already using the extension with:
.. code-block:: bash
composer show | grep seo
This should either give you no result or something similar to:
.. code-block:: none
typo3/cms-seo v12.4.11
If it is not installed yet, use the ``composer require`` command to install
the extension:
.. code-block:: bash
composer require typo3/cms-seo
The given version depends on the version of the TYPO3 Core you are using.
Installation without Composer
=============================
In an installation without Composer, the extension is already shipped but might
not be activated yet. Activate it as follows:
#. In the backend, navigate to the :guilabel:`System > Extensions`
module.
#. Click the :guilabel:`Activate` icon for the SEO extension.
.. figure:: /Images/InstallActivate.png
:class: with-border
:alt: Extension manager showing SEO extension
Extension manager showing SEO extension
+29
View File
@@ -0,0 +1,29 @@
.. include:: /Includes.rst.txt
.. _introduction:
============
Introduction
============
The goal of the Core extension :composer:`typo3/cms-seo` is to make sure basic
technical Search Engine Optimization (SEO) is done right out of the box.
Specific fields for SEO purposes are added, as well as the rendering of HTML
meta tags in the frontend.
There are several things you can do to optimize your site for search engines.
Some tasks are only solvable with good human writers, others are technical
tasks, which need to be implemented.
The goal of the extension `seo` is to help you with the following parts of
your SEO journey.
* Give editors all the fields needed to set the necessary meta tags.
* Provide the rendering of meta tags in the frontend for SEO related
information, to avoid reimplementing it again and again.
* Provide stable APIs for developers to give them the chance to change the
behaviour when needed in edge cases.
For a list of the features provided by this extension see
`Features of the TYPO3 system extension "seo" <https://docs.typo3.org/permalink/typo3/cms-seo:features>`_.
+9
View File
@@ -0,0 +1,9 @@
:template: sitemap.html
.. include:: /Includes.rst.txt
=======
Sitemap
=======
.. The sitemap.html template will insert here the page tree automatically.
+21
View File
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<guides xmlns="https://www.phpdoc.org/guides" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://www.phpdoc.org/guides ../vendor/phpdocumentor/guides-cli/resources/schema/guides.xsd"
links-are-relative="true">
<extension class="\T3Docs\Typo3DocsTheme\DependencyInjection\Typo3DocsThemeExtension"
project-home="https://extensions.typo3.org/extension/seo/"
project-contact="https://typo3.slack.com/archives/C025BQLFA"
project-repository="https://github.com/typo3/typo3"
project-issues="https://forge.typo3.org/projects/typo3cms-core/issues"
edit-on-github-branch="main"
edit-on-github="typo3/typo3"
edit-on-github-directory="typo3/sysext/seo/Documentation/"
typo3-core-preferred="main"
interlink-shortcode="typo3/cms-seo"
/>
<project title="SEO"
release="main (development)"
version="main (development)"
copyright="since 2018 by the TYPO3 contributors"
/>
</guides>