Es ist ca. 3 Jahre her, dass ich für den Blog unserer Agentur nach einer Möglichkeit gesucht habe, den Canonical Tag für jeden einzelnen Blogbeitrag individuell zu setzen. Seinerzeit habe ich per TypoScript eine Lösung gefunden. In TYPO3 gibt es nun eine Möglichkeit, mit Hilfe des ModifyUrlForCanonicalTagEvent ein PSR-14 per API zu modifizieren.
Das Problem: Für jeden Blogbeitrag wird bislang ein Link geschrieben, der entweder die Einstiegsseite des Blog zurück gibt, oder der Aufruf mit allen Parametern mit Hash Code. Bei SEO Tools und bei Google kommt das nicht gut an. Denn wenn man die XML Sitemap einreicht, stehen dort diese Links. Und Seobility meckert jedes mal über den Hash Code. Den möchte ich aber auch nicht abschalten, um die Features zur Sicherheit zu nutzen, die in TYPO3 implementiert sind.
Man könnte nun zwar die SEO Extension des TYPO3 Core erweitern, aber der Aufwand ist nicht gerade gering und außerdem hat Google vielleicht noch alte Links im Index, denn den Blog gibt es seit 2015, die seligen Zeiten von realUrl... Da ist es besser, dafür zu sorgen, dass immer der eindeutige und lesbare Link im Quelltext der Seite steht.
Die Lösung lautet deshalb: Mit Hilfe der API kann ich nun einen Event Listener schreiben, mit dem man den Canonical Link modifizieren kann. Den Link zum Namespace gebe ich in der Services.Yaml ggf. mit einigen weiteren Optionen an. Egal über welchen Link ein Blogbeitrag nun aufgerufen wird, es wird immer der korrekte, lesbare Link ausgegeben. Und damit kann ich auch genau nachvollziehen, wann welche Links angeklickt worden sind.
Das Code Beispiel aus dem IBK Blog:
Weitere Informationen zur Modifizierung des Canonical Links für TYPO3: