Attention
TYPO3 v11 has reached end-of-life as of October 31th 2024 and is no longer being maintained. Use the version switcher on the top left of this page to select documentation for a supported version of TYPO3.
Need more time before upgrading? You can purchase Extended Long Term Support (ELTS) for TYPO3 v11 here: TYPO3 ELTS.
Canonical API
A brief explanation happens in Search engine optimization (SEO).
In general the system will generate the canonical using the same logic as for cHash.
Note
The canonical API is provided by the optional system extension EXT:seo. You can find information about how to install and use it in the EXT:seo manual.
Excluding arguments from the generation
TYPO3 will fallback to building a URL of current page and appending query strings. It is possible to exclude specific arguments from being appended. This is achieved by adding those arguments to a PHP variable:
$GLOBALS['TYPO3_CONF_VARS']['FE']['additionalCanonicalizedUrlParameters'][] = 'example_argument_name';
It is possible to exclude nested arguments:
$GLOBALS['TYPO3_CONF_VARS']['FE']['additionalCanonicalizedUrlParameters'][] = 'example_argument_name[second_level]';
Arguments in general should be excluded from cHash as well as additionalCanonicalizedUrlParameters
.
See the possible options in Caching, regarding excluding arguments from cHash.
The idea behind that is:
If a URL is worth caching (because it has different content) it is worth having a canonical as well.
— https://github.com/TYPO3-Documentation/TYPO3CMS-Reference-CoreApi/pull/1326#issuecomment-788741312
Using an event to define the URL
The process will trigger the event ModifyUrlForCanonicalTagEvent which can be used to set the actual URL to use.