Sitemap providers¶
To localize the sitemap of a site, so-called "sitemap providers" are available. These are executed one after the other (depending on priority) to localize XML sitemaps according to certain criteria.
- interface EliasHaeussler\Typo3Warming\Sitemap\Provider\ProviderInterface¶
Interface for sitemap providers used to locate the path to an XML sitemap of a given site.
- get($site, $siteLanguage = null)¶
Locate the XML sitemap path of the given site.
- Parameters
$site (
TYPO3\CMS\Core\Site\Entity\Site
) -- The site whose XML sitemap path should be located.$siteLanguage (
TYPO3\CMS\Core\Site\Entity\SiteLanguage
) -- An optional site language to include while locating the XML sitemap path.
- Returns
An instance of
EliasHaeussler\Typo3Warming\Sitemap\SiteAwareSitemap
ornull
.
- getPriority()¶
Get the provider's priority. The higher the returned value, the earlier the provider will be executed in the sitemap location process.
- Return type
int
Default providers¶
By default, the path to an XML sitemap is determined in three steps:
Site configuration
Within the Sites module, one can explicitly define the path to the XML sitemap of a site.
robots.txt
If no path is defined in the site configuration, a possible
robots.txt
file is parsed for a validSitemap
specification. Read more at sitemaps.org.Note
Only the first occurrence will be respected. In the following example, the resulting sitemap is
https://www.example.com/our-sitemap.xml
.User-agent: * Disallow: /tmp/ Sitemap: https://www.example.com/our-sitemap.xml Sitemap: https://www.example.com/our-other-sitemap.xml
Default path
If none of the above methods are successful, the default path
sitemap.xml
is used.
Implement a custom provider¶
To develop your own sitemap provider, it is only necessary to
implement the EliasHaeussler\Typo3Warming\Sitemap\Provider\ProviderInterface
.
In addition, the getPriority()
method must be used to define
when the provider is executed.
The order of the providers provided by default is as follows:
Sitemap provider |
Priority |
---|---|
|
200 |
|
100 |
|
|
Once your custom provider is ready, make sure to clear the DI caches in order to rebuild the service container properly.
See also
View the sources on GitHub: