Quelle: www.wacon.de/typo3-know-how/typo3-9-automatische-generierung-von-sitemaps.html
Das statische TypoScript Template "XML Sitemap (seo)" muss auf der Rootseite eingebunden werden. Danach ist die Sitemap unter domain.de/?type=1533906435 erreichbar.
Eine Site Configuration muss angelegt sein. Entweder die Defaultkonfiguration oder eine selbst angepasste Konfiguration mit Static Routes und Routing Enhancers und Aspects.
Achtung: mit und ohne www kann einen Unterschied machen!
plugin.tx_seo {
config {
xmlSitemap {
sitemaps {
pages {
config {
#excludedDoktypes = 9818, 500
additionalWhere = AND no_index = 0
}
}
}
}
}
}
Der Punkt "excludeDoktypes" wird nur benötigt, wenn Sie die Seiten noch in anderen Formaten ausliefern, von denen Sie keine Sitemap benötigen.
Zum Beispiel wird keine Sitemap von Drucktemplates, RSS-Feeds etc. benötigt.
Mit "additionalWhere" wird zusätzlich zur Abfrage für die Sitemap noch die Beschränkung aufgelegt, dass die Seite auch indexierbar sein muss.
Bsp. Eine 404-Fehlerseite sollte nicht indexiert werden.
Nachdem die Sitemapkonfiguration eingetragen wurde und die o.G. Punkte erledingt sind, können Sie die Sitemap unter yourdomain.com erreichen.
Wenn Sie verschiedene Domains in Ihrem TYPO3-Backend pflegen, müssen Sie nur die o.G. Punkte bei den anderen Rootseiten der Domains wiederholen und sie erreichen die Sitemaps jeweils unter yourdomain.com.
Damit die URLs wie bei uns mit /sitemap.xml erreichbar sind und nicht über den Pagetype=1533906435, muss noch mindestens der folgende Code in der Siteconfig Ihrer Seite eingetragen werden. In die Datei typo3conf\sites\name-der-site\config.yaml:
routeEnhancers:
PageTypeSuffix:
type: PageType
map:
sitemap.xml: 1533906435
Wir verwenden die Folgende Konfiguration:
routeEnhancers:
PageTypeSuffix:
type: PageType
default: .html
index: index
map:
.html: 0
.ajax: 500
rss.feed: 9818
sitemap.xml: 1533906435
So ergibt sich auch, weshalb wir die Pagetypes 500 und 9818 aus der generierung der Sitemaps entfernt haben.
# SETUP
plugin.tx_seo {
config {
xmlSitemap {
sitemaps {
news {
provider = TYPO3\CMS\Seo\XmlSitemap\RecordsXmlSitemapDataProvider
config {
table = tx_news_domain_model_news
sortField = sorting
lastModifiedField = tstamp
recursive = 1
pid = 9 //Speicherort der Beiträge
url {
pageId = 6 //PageID der Detailseite
fieldToParameterMap {
uid = tx_news_pi1[news]
}
additionalGetParameters {
tx_news_pi1.controller = News
tx_news_pi1.action = detail
}
useCacheHash = 1
}
}
}
}
}
}
}