first commit

This commit is contained in:
salam committed 2026-10-19 08:18:39 +02:00
commit 1218dd1517
12716 files changed
+989233

No files matched your search

@@ -0,0 +1,190 @@
.. include:: ../Includes.txt
.. _configuration:
=============
Configuration
=============
Target group: **Developers, Integrators**
TypoScript Settings
===================
There are a couple of TypoScript settings that can influence the output regarding search engine optimization.
* `config.pageTitleFirst <https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/Setup/Config/Index.html#pagetitlefirst>`__
* `config.pageTitleSeparator <https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/Setup/Config/Index.html#pagetitleseparator>`__
* `config.pageTitleProviders <https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/Setup/Config/Index.html#pagetitleproviders>`__
* `config.noPageTitle <https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/Setup/Config/Index.html#nopagetitle>`__
Site configuration
==================
From version 9 of TYPO3, the configuration of sites is done with the Site Management module. As the settings for
your websites are important for SEO purposes as well, please make sure you check the following fields.
.. figure:: ../Images/site.png
:class: with-shadow
:alt: example site
Example site
To get more in depth information about the site handling please refer to the :ref:`t3coreapi:sitehandling` docs.
Domains
-------
Please ensure, that you have configured your sites so that they all have an entry point. This is used for
generating the canonical tags, for example.
.. warning::
Please be aware that for SEO purposes it is best practise to use a fully qualified domain (for example: https://www.example.com).
Therefor we don't support the SEO enhancements in TYPO3 without a full domain. It might work, but it is not officially
supported.
Language
--------
Ensure, that you setup the languages correctly. All languages should have the right information in the :guilabel:`Locale`
and :guilabel:`Language Tag` field. When set correctly, TYPO3 will automatically connect your page in the different languages
for search engines. This it to ensure that the search engine knows which page to show when someone is searching in a
specific language.
.. hint::
Even if you have only one language, make sure your :guilabel:`Locale` and :guilabel:`Language Tag` fields are set correctly.
Giving wrong information to search engines will not help you to rank higher.
See :ref:`t3coreapi:sitehandling-addingLanguages` for more details.
Error pages
-----------
Although TYPO3 will respond with a HTTP status code 404 (Not found) when a page is not found, it is best practise to
have a proper message telling the user that the page they requested is not available and to guide them to another
page or for example to a search function of your website.
See :ref:`t3coreapi:sitehandling-errorHandling` for more details.
robots.txt
----------
The robots.txt is a powerful tool and should be used with care. It will deny or allow search engines to access your pages.
By blocking access to your pages, search engines won't crawl these pages. You should make sure that this will not
prevent the search engines from finding important pages.
It is best practise to keep your robots.txt as clean as possible. An example of a minimal version of your robots.txt:
.. code-block:: php
# This space intentionally left blank. Only add entries when you know how powerful the robots.txt is.
User-agent: *
On :ref:`t3coreapi:sitehandling-staticRoutes` you can find more details on how to create a static route that will show
this information when visiting https://www.example.com/robots.txt.
When you want to disallow specific URLs, you can use the :ref:`index-page` option in the backend or set the robot HTTP
header `X-Robots-tag` manually.
Redirects
---------
Having correct redirects is a very important part of SEO. Especially the status code that is used for redirects is
really important. Please use the appropriate status code for your use case.
External Resources:
* See `Tutorial of redirect module in TYPO3 <https://www.toujou.de/en/service/tutorials/redirects/>`__ by toujou
* An `Overview which redirect to use in your situation <https://yoast.com/which-redirect/>`__ by Yoast
.. _config-tags:
Tags
====
.. _config-hreflang-tags:
Hreflang Tags
-------------
The generation of the :html:`<link rel="alternate" hreflang="" href="" />`
tags is done automatically if the page is available in other languages.
This feature should work correctly in almost all cases.
If you have a specific edge case, and you don't want TYPO3 to render those tags, you can disable rendering of the those tags completely.
You just have to put this line in the :file:`ext_localconf.php` of an extension and make sure your extension is loaded after EXT:seo.
.. code-block:: php
unset($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['TYPO3\CMS\Frontend\Page\PageGenerator']['generateMetaTags']['hreflang']);
.. _config-canonical-tag:
Canonical Tag
-------------
Just like the hreflang tags, the :html:`<link rel="canonical" href="" />` tag is also generated automatically.
If you have a specific edge case, and you don't want TYPO3 to render the tag, you can disable rendering completely.
You just have to put this line in the :file:`ext_localconf.php` of an extension and make sure your extension is loaded after EXT:seo.
.. code-block:: php
unset($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['TYPO3\CMS\Frontend\Page\PageGenerator']['generateMetaTags']['canonical']);
Working links
=============
Links in your website are quite important. You can use third party applications to check all your links, but you can
also use the core extension linkvalidator to ensure, all the links in your site are working as expected.
Please check the documentation of :ref:`linkvalidator:start` .
TypoScript examples
===================
This section will provide you examples on how to configure several behaviours in the frontend.
Setting fallbacks for og:image and twitter:image
------------------------------------------------
If you want to have a fallback og:image or twitter:image, you can use this little snippet.
.. code-block:: typoscript
page {
meta {
og:image.stdWrap.cObject = IMG_RESOURCE
og:image.stdWrap.cObject {
file = EXT:your_extension/Resources/Public/Backend/OgImage.svg
}
twitter:image.stdWrap.cObject = IMG_RESOURCE
twitter:image.stdWrap.cObject {
file = EXT:your_extension/Resources/Public/Backend/TwitterCardImage.svg
}
}
}
More information about the Meta Tag Api can be found on:
* PHP :ref:`t3coreapi:metatagapi`
* TypoScript :ref:`t3tsref:meta`
Setting defaults for the author on meta tags
--------------------------------------------
This example shows how to set a default author based on the TypoScript constant :ts:`{$my.default.author}`:
.. code-block:: typoscript
page {
meta {
author = {$my.default.author}
}
}
.. seealso::
:ref:`recommendations_field_description`
@@ -0,0 +1,15 @@
.. include:: ../Includes.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
@@ -0,0 +1,192 @@
.. include:: ../Includes.txt
.. _for-editors:
===========
For Editors
===========
Target group: **Editors**
Welcome to our small SEO introduction.
We will explain the basic fields the TYPO3 core provides and introduce the SEO tools this way.
All the following fields are part of the page record.
You can reach it by:
* Open the Web > Page module
* Use the pen in the top bar icon to edit the page record
An alternative way is to use the context menu.
* Open Web > Page module
* Right click the page you want to edit in the page tree
* Select the Edit action
General tab
===========
.. figure:: ../Images/tab-general.png
:class: with-shadow
:alt: General Tab in the TYPO3 Backend
General Tab in the TYPO3 Backend
Page Title
----------
The page title field is used for several purposes. From a SEO perspective it is mainly used to define the default
URL segment and as a fallback title if you don't set a specific SEO title. More information about the usage of the title
fields can be found at :ref:`title-for-search-engines`.
URL Segment
-----------
The URL segment is the part of the URL the user enters to access your page. Depending on your use case URLs have to
fulfill certain criteria.
By default the URL segment is based on the page tree and page title, but you can override this and set it yourself.
If you want to optimize your page for search engines, it is recommended to have at least the keyword you want to be
found on in your URL segment. Please make sure to check other best practises with your SEO specialist.
SEO Tab
=======
.. figure:: ../Images/tab-seo.png
:class: with-shadow
:alt: SEO Tab in the TYPO3 Backend
SEO Tab in the TYPO3 Backend
.. _title-for-search-engines:
Title for search engines
------------------------
The :guilabel:`Title for search engines` field is used in the `<title>...</title>` tag of your web page. This title is used in the
search results of search engines. There are some best practices for the value of this field.
* Use a speaking title, which targets your audience
* If possible, use the keywords you want to be found on in the title
* Please make sure your title fits in a Google Snippet. You can use 3rd party extensions to help you with this.
When no value for the :guilabel:`Title for search engines` field is defined, it will have a fallback to the field
:guilabel:`Page title`. It will show the page title in the search results in that case.
The title can have the name of the site as a prefix or suffix. The behaviour of this can be defined by an integrator.
By default the title will have the name of the site as a suffix, separated by a dash.
.. figure:: ../Images/google-preview.png
:class: with-shadow
:alt: Google result preview
Google result preview
.. _index-page:
Index this page
---------------
Defines whether the page should be indexed by a search engine or not.
Follow this page
----------------
Defines whether search engines should follow the links on this page.
Canonical link
--------------
You want to avoid duplicate content because your ranking can suffer from this. If you have duplicate content, you have to
link to the origin of the content. This can be an internal page or an external page. You can use the default link wizard
of TYPO3 to select the destination. If you don't set a canonical link yourself, TYPO3 will generate a link to the current
page.
.. hint::
Avoid duplicate content warnings by supplying the original source of this content.
Metadata Tab
============
.. figure:: ../Images/tab-meta-data.png
:class: with-shadow
:alt: Metadata Tab in the TYPO3 Backend
Metadata tab in the TYPO3 Backend
.. _description:
Description
-----------
The description field is important for SEO purposes. This field is used to instruct search engines to use
this text to show as a teaser of your page in the search result snippets. With this description, you can
give the user a clear overview of the topic of this page.
.. figure:: ../Images/google-preview.png
:class: with-shadow
:alt: Google result preview
Google result preview
.. hint::
It is best practises to at least use the keywords you want to be found on in this description. Make sure the
description is not too long, so it fits in the search result snippets.
Social media
============
.. figure:: ../Images/tab-social-media.png
:class: with-shadow
:alt: Social Media Tab in the TYPO3 Backend
Social Media Tab in the TYPO3 Backend
The social media tab contains information which is used to enrich the snippet that is shown when visitors share your URLs
in social networks, modern browsers etc.
TYPO3 offers to have different content for OpenGraph (used for example by Facebook and LinkedIn) and Twitter Cards
(used on Twitter of course). Both implementations allow you to set a title, a description and to provide an image. When this
information is not set manually, the social network will decide itself what to show. Most probably it will use the
information from :ref:`title-for-search-engines` and :ref:`description`.
.. figure:: ../Images/social-preview-no-image.png
:class: with-shadow
:alt: Facebook preview without image
Facebook preview without image
Title
-----
This title can be specified to be shown as the title of the snippet preview when your page is shared on the social
network. You only have to fill this field when you want a different title as in the search results.
Description
-----------
Used to adjust the description of the preview snippet when your page is shared at a social network. You only have to
fill this field when you want a different description as the description in the search results.
Image
-----
You can specify the image that should be shown when your page is shared on a social network. Please be aware that the
different social networks need specific dimensions for an image. TYPO3 ships with the most used dimension. If you want
to have more dimensions, please let your integrator add more dimensions.
.. hint::
It is best practise to add an image for social networks so your result will stand out and will be easily recognizable.
.. figure:: ../Images/social-preview-image.png
:class: with-shadow
:alt: Facebook preview with image
Facebook preview with image
@@ -0,0 +1,51 @@
.. include:: ../Includes.txt
.. _recommendations:
=======================
General Recommendations
=======================
.. _recommendations_extensions:
Recommendations for additional seo extensions
=============================================
The TYPO3 core ships the whole API and the needed fields to have all necessary technical SEO.
Besides that, there are lots of tools you can use to optimize your rankings.
If you install additional SEO extensions in TYPO3 make sure you check the following recommendations:
* The extension **should** stick to the core fields where possible
* The extension **should** stick to the core behaviour where possible
* The extension **could** extend TCA with additional helpers for your editors, like:
* Readability checks
* Keyword and content checks
* Previews
* Page speed insights
Some of these tools might need external services, others can work completely on-premise.
.. _recommendations_field_description:
Recommendations for the description field
=========================================
.. danger::
Current state of SEO research states that the description should be either lovely crafted by hand,
of left our completely. (end of 2019)
If you are unsure contact an expert.
.. youtube:: W4gr88oHb-k
* Duplicate meta descriptions should only be used under specific circumstances
* Duplicate meta descriptions should only be used on a few pages
* Leave the description empty if you do not can provide one
* Provide an engaging explanation of your page, to ensure people will be motivated to visit your site
* If SEO is not your thing, get professional help
Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 549 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

@@ -0,0 +1,23 @@
.. ==================================================
.. FOR YOUR INFORMATION
.. --------------------------------------------------
.. -*- coding: utf-8 -*- with BOM.
.. This is 'Includes.txt'. It is included at the very top of each and
every ReST source file in this documentation project (= manual).
.. ==================================================
.. DEFINE SOME TEXT ROLES
.. --------------------------------------------------
.. role:: typoscript(code)
.. role:: ts(typoscript)
:class: typoscript
.. role:: php(code)
.. role:: html(code)
.. highlight:: php
+70
View File
@@ -0,0 +1,70 @@
.. every .rst file should include Includes.txt
.. use correct path!
.. include:: Includes.txt
.. Every manual should have a start label for cross-referencing to
.. start page. Do not remove this!
.. _start:
==================
SEO Core extension
==================
:Extension key:
seo
:Version:
|release|
:Language:
en
:Description:
Manual for our SEO extension, which adds basic SEO features to TYPO3.
:Keywords:
seo, google, meta tags, search engine optimization, sitemap
:Copyright:
2018-2021
:Author:
TYPO3 CMS Core Development Team
:License:
Open Content License available from `www.opencontent.org/opl.shtml
<http://www.opencontent.org/opl.shtml>`_
:Rendered:
|today|
The content of this document is related to TYPO3,
a GNU/GPL CMS/Framework available from `www.typo3.org
<http://www.typo3.org/>`_
**TYPO3**
The content of this document is related to TYPO3 CMS,
a GNU/GPL CMS/Framework available from `typo3.org
<https://typo3.org/>`_ .
**For Contributors**
You are welcome to help improve this guide. Just click on "Edit me on GitHub"
on the top right to submit your change request.
**Table of Contents**
.. toctree::
:maxdepth: 3
Introduction/Index
Editor/Index
Installation/Index
Configuration/Index
Developer/Index
GeneralRecommendations/Index
@@ -0,0 +1,56 @@
.. include:: ../Includes.txt
.. _installation:
============
Installation
============
Target group: **Administrators**
This extension is part of the TYPO3 core.
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:: bash
typo3/cms-seo v9.5.10 SEO features for TYPO3.
If it is not yet installed, use the ``composer require`` command to install the extension
.. code-block:: bash
composer require typo3/cms-seo ^9.5
The given version depends on the version of the TYPO3 core you are using.
Now head over to the extension manager and activate the extension.
.. figure:: ../Images/em.png
:class: with-shadow
:alt: Extension manager with filtered seo ext
Extension manager with filtered seo ext
Installation without composer
=============================
In an installation without composer, the code of EXT:seo is already shipped. You just have to activate the extension.
Head over to the extension manager and activate the extension.
.. figure:: ../Images/em.png
:class: with-shadow
:alt: Extension manager with filtered seo ext
Extension manager with filtered seo ext
@@ -0,0 +1,85 @@
.. include:: ../Includes.txt
.. _introduction:
============
Introduction
============
What does it do?
================
The goal of the core extension "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 just 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
This manual will not cover all the developer information, as these are covered in the TYPO3 API documentation.
.. _screenshots:
Screenshots
===========
.. figure:: ../Images/tab-general.png
:class: with-shadow
:alt: General Tab in the TYPO3 Backend
General Tab in the TYPO3 Backend
.. figure:: ../Images/tab-seo.png
:class: with-shadow
:alt: SEO Tab in the TYPO3 Backend
SEO Tab in the TYPO3 Backend
.. figure:: ../Images/tab-meta-data.png
:class: with-shadow
:alt: Metadata Tab in the TYPO3 Backend
Metadata Tab in the TYPO3 Backend
Hreflang Tags
=============
"hreflang" tags are added automatically for multi language websites based on the one-tree principle. The links are
based on the Site configuration and depending on translations of a page.
The :html:`x-default` href is the link of the current page in the default language.
The value of :html:`hreflang` is set for each language in the :guilabel:`Sites module` (see :ref:`t3coreapi:sitehandling-addingLanguages`)
Canonical Tags
==============
TYPO3 provides built-in support for the canonical tag.
If the core extension "seo" is installed, it will automatically add the canonical link to the page.
The canonical link is basically the same absolute link as the link to the current hreflang and is meant
to indicate where the original source of the content is. It is a tool to prevent duplicate content
penalties.
In the page properties, the canonical link can be overwritten per language. The link wizard offers all
possibilities including external links and link handler configurations.
If no canonical link is given manually, TYPO3 will generate a canonicalized URL to the current page in the current
language.
.. warning::
If you have other SEO extensions installed that generate canonical links, you have to make sure only one creates it.
If both core and an extension are generating a canonical link, it will result in 2 canonical links which might
cause confusion for search engines.
XML Sitemap
===========
See :ref:`t3coreapi:xmlsitemap` for the documentation how to configure your XML sitemaps.
@@ -0,0 +1,43 @@
[general]
; endless list of all of the general simple settings
; you can use in 'conf.py'
project = Search engine optimization (seo)
version = latest (10-dev)
release = latest (10-dev)
t3author = TYPO3 Core Team + Contributors, TYPO3 Documentation Team
copyright = 2018-2021
description = This documentation is about TYPO3's system extension
"seo" which provides provides search engine optimizations
[html_theme_options]
; for theme t3SphinxThemeRtd
# Add 'Edit me on Github' button
github_branch = master
github_repository = typo3/typo3
path_to_documentation_dir = typo3/sysext/seo/Documentation
# show as related links
project_contact =
project_discussions = http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-project-content-rendering
project_home = https://forge.typo3.org/projects/typo3cms-core
project_issues = https://forge.typo3.org/projects/typo3cms-core/issues
project_repository = https://github.com/typo3/typo3
[intersphinx_mapping]
# These are common mappings. Uncomment only what you really use!
# see https://docs.typo3.org/m/typo3/docs-how-to-document/master/en-us/GeneralConventions/DirectoryFilenames.html#intersphinx-mapping
h2document = https://docs.typo3.org/m/typo3/docs-how-to-document/master/en-us/
t3coreapi = https://docs.typo3.org/m/typo3/reference-coreapi/9.5/en-us/
t3install = https://docs.typo3.org/m/typo3/guide-installation/9.5/en-us/
t3tsref = https://docs.typo3.org/m/typo3/reference-typoscript/9.5/en-us/
linkvalidator = https://docs.typo3.org/c/typo3/cms-linkvalidator/9.5/en-us/