Sitmaps

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
                    }
                }
            }
        }
    }
}
setup

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.

Extension SEO und routeEnhancers

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.

Sitemap für News

# 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
                        }
                    }
                }
            }
        }
    }
}