XML Sitemap mit TYPO3 9.5 erstellen
Seit TYPO3 9.4 bietet der TYPO3 Core einige SEO Features. In diesem Artikel möchten wir die automatische Generierung von XML-Sitemaps etwas beleuchten.
Die technische Spezifikation dazu finden Sie auf der offiziellen TYPO3-Dokumentation.
Warum braucht man eine Sitemap?
Eine Sitemap hilft Suchmaschinen (z.B. Google) dabei die Website besser zu verstehen und gibt dabei eine Übersicht über die relevanten Seiten der Website.
So kann es sein, dass Suchmaschinen Unterseiten finden, die andernfalls übersehen worden wären. Dies kann der Fall sein, wenn eine Seite gerade erst neu erstellt wurde oder nur wenige / keine Verlinkungen zu der Seite existieren.
Auch wenn eine Sitemap die Suchmaschinen unterstützt, gibt es keine Garantie, dass die Seiten auch wirklich indexiert werden. Je nach Suchmaschine und deren Algorithmus kann es sein, dass auch Seiten aus einer Sitemap nicht in den Index aufgenommen werden. Das könnte u.U. daran liegen, dass die Seite sehr mager ist und kaum Text enthält. Auch an dieser Stelle bleibt die Suchmaschinenoptimierung wichtig.
<!-- Beispieleintrag Startseite WACON.de -->
<url>
<loc>https://www.wacon.de/</loc> <!-- URL der Seite -->
<lastmod>2019-02-18</lastmod> <!-- Zuletzt modifiziert am //Optional -->
<changefreq>daily</changefreq> <!-- Häufigkeit, mit der sich die Seite vermutlich ändern wird. //Optional -->
<priority>1.0</priority> <!-- Priorisierung //Optional -->
</url>
Vorbereitung für die Sitemap
Um die automatische Generierung von Sitemaps in TYPO3 9.5 einzustellen, werden vorher noch folgende Punkte benötigt:
- Das statische TypoScript Template "XML Sitemap (seo)" muss auf der Rootseite eingebunden werden
- Eine Site Configuration muss angelegt sein. Entweder die Defaultkonfiguration oder eine selbst angepasste Konfiguration mit Static Routes und Routing Enhancers und Aspects.
Die Sitemap im Typoscript Setup einrichten
Im TypoScript Setup müssen folgende Zeilen hinzugefügt werden:
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 https://yourdomain.com/?type=1533906435 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 https://yourdomain.com/?type=1533906435.
Sitemap für News erstellen
Wenn Sie auch eine Sitemap für Ihre Newsbeiträge erstellen wollen, können Sie diese ganz einfach mit folgendem Code erstellen:
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
}
}
}
}
}
}
}
Die Sitemap der Sitemaps
Wenn Sie nun den Link https://yourdomain.com/?type=1533906435 mit Ihrer Domain aufrufen, können Sie eine Übersicht der vorhandenen Sitemaps sehen.
In unserem Beispiel werden die beiden URLs generiert:
www.wacon.de/sitemap.xml
www.wacon.de/sitemap.xml
Die erste Sitemap für die Seiten und die Zweite für unsere Newsbeiträge.
Wenn Sie nun auf eine der beiden Sitemaps klicken, kommen Sie zur Sitemap selbst.
Ext 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:
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 in robots.txt
Um den Suchmaschinen noch Mitzuteilen, wo die Sitemap(s) zu finden sind, empfiehlt es sich diese in der robots.txt zu erwähnen.
Dies können Sie ganz einfach über das TYPO3 Backend mit einem Static Route bewerkstelligen.
Beispiel:
User-agent: *
Disallow: /typo3/
Disallow: /typo3_src/
Disallow: /template/
Allow: /typo3/sysext/frontend/Resources/Public/*
Allow: /template/Resources/Public/*
Sitemap: www.wacon.de/sitemap.xml
Sitemap: www.wacon.de/sitemap.xml