TYPO3: Meta Keywords und Description

Für die Ausgabe von Meta-Tags im Quellcode einer TYPO3 Webseite gibt es verschiedene Möglichkeiten, die ich hier vorstellen möchte. Ein Meta-Tag wird von TYPO3 bereits automatisch gesetzt: <meta name=“generator“ content=“TYPO3 4.4 CMS“ />. Um die Ausgabe aller anderer Meta-Tags muss man sich selbst kümmern

Die – meiner Meinung nach – beste Lösung ist das Setzen der Meta-Tags über die TypoScript-Einstellung „page.meta“, da diese Lösung sehr flexibel ist und keine TYPO3 Erweiterung benötigt wird.

Per TypoScript „page.meta“

TYPO3 stellt die TypoScript-Einstellung „page.meta“ für die Meta-Tags zur Verfügung:

TS Setup

page.meta.description = Meine Beschreibung ...
page.meta.keywords.data = levelfield :-1, keywords, slide
page.meta.keywords.wrap = Keyword 1,Keyword 2,|

Die Angaben laufen durch die stdWrap-Funktion, dadurch ist man sehr flexibel und kann z.B. die Felder „Stichworte“ und „Beschreibung“ aus den Seiteneigenschaften einlesen.

Komplette Konfiguration

Bei dieser Beispiel-Konfiguration vererben sich die Meta-Inhalte auf Unterseiten, sie werden aus verschiedenen Feldern automatisch ausgelesen bzw. sind über TypoScript Konstanten konfigurierbar. Ist eine TypoScript-Konstante nicht gesetzt, wird der Meta-Tag nicht ausgegeben. Wenn für eine Seite in den Seiteneigenschaften die Checkbox „Nicht suchen“ aktiviert ist, wird ein entsprechender Meta-Tag gesetzt, so dass Suchmaschinen diese Seite nicht indexieren.

TS Constants

temp.meta {
  robots = index,follow
  copyright =
  language =
  distribution =
  rating =
  revisit = 7 days
}
[globalVar = TSFE:page|no_search = 1]
temp.meta.robots = noindex,follow
[end]

TS Setup

page.meta {
  description {
    data = page:description
    ifEmpty.data = levelfield :-1, description, slide
  }
  keywords {
    data = page:keywords
    ifEmpty.data = levelfield :-1, keywords, slide
  }
  title {
    data = page:title
  }
  author {
    data = levelfield :-1, author, slide
  }
  date {
    data = page:SYS_LASTCHANGED // page:crdate
    date = Y-m-d
  }
  robots = {$temp.meta.robots}
  copyright = {$temp.meta.copyright}
  distribution = {$temp.meta.distribution}
  rating = {$temp.meta.rating}
  revisit-after = {$temp.meta.revisit}
}

WICHTIG: Damit „slide“ (Vererbung der Felder auf Unterseiten) bei „description“, „keywords“ und „author“ funktioniert, muss man diese Felder im Install-Tool in „All Configuration“ in Feld „addRootLineFields“ eintragen.

Hinweis: Die Anweisung „data = page:myField“ bei „keywords“ und „description“ scheint unnötig zu sein, ermöglicht jedoch das Setzen der Meta-Info über PHP:

$GLOBALS['TSFE']->page['description'] = 'the new description'

Wer hier den Meta-Tag für „content-language“ vermisst: Diese Anweisung ist veraltet, die Sprache sollte man im body- oder html-Tag setzen.

Weitere Möglichkeiten für Konfiguration

Felder aus Seiteneigenschaften plus globale Werte

Mit nur einer Zeile TypoScript kann man die Keywords, die ein Redakteur über die Seiteneigenschaften einpflegt, um weitere Keywords ergänzen:

TS Setup

page.meta.keywords.wrap = Keyword 1,Keyword 2,|

Setup für tt_news Detailansicht

Auf der News-Detailseite kann man die Meta-Tags mit den Daten aus dem News-Datensatz überschreiben. Dazu legt man diesen TypoScript-Code in der News-Detailseite an:

TS Setup

// meta keywords and description from news record
page.meta {
  description.override.data = register:newsSubheader
  keywords.override.data = register:newsKeywords
}

Hinweis: Der Meta-Tag „author“ sollte an dieser Stelle natürlich auch mit dem Autor der News überschrieben werden, allerdings geht dies erst, wenn tt_news diesen für die Anwendung in TypoScript per LOAD_REGISTER-Funktion zur Verfügung stellt.

Per PHP

Setzen der Meta-Tags mit PHP, z.B. über eine eigene Erweiterung:

$GLOBALS['TSFE']->page['keywords'] = '...';
$GLOBALS['TSFE']->page['description'] = '...';

Dies funktioniert aber nur, wenn die Meta-Tags nach bestimmten Regeln konfiguriert werden, z.B. page.meta.keywords.data = page.keywords

Per Extension

Es gibt natürlich auch diverse Erweiterungen für TYPO3, die sich um die Erzeugung der Meta-Tags kümmern:

Extension metatags

Generiert Meta-Tags über ein PHP-Skript.

Vorteile:

  • Globale Keywords möglich, man kann diese mit den Feldern aus den Seiteneigenschaften kombinieren
  • Dublin Core Meta Tags möglich
  • Konfiguration über TypoScript möglich, dadurch kann man z.B. auch die Vererbung einstellen oder eigene Meta-Tags für die News-Detailseite

Nachteile:

  • Unnötig, da gesamte Funktionalität über TypoScript erreicht werden kann
  • Extension ist aus Jahr 2005 und wurde für TYPO3 Version 3.6 erstellt
  • Extension ist nicht dokumentiert

Ähnliche Erweiterungen:

  • pp_pagemetadata
  • cl_metatags: Komplette Ext. ist in TypoScript, gibt zusätzlich Geo-Tags und Facebook Open Graph aus
  • und weitere…

Extension autometa

Erzeugt Tags (keywords, description, author und date) automatisch aus vorliegendem Seiten-Inhalt, wenn diese nicht händisch für eine Seite angelegt wurden. Verwendet als Meta-Keywords die am häufigsten vorkommenden Wörter der Seite und als Meta-Description den ersten Textabschnitt. Bestimmte Keywords (stopwords) werden nicht verwendet.

Vorteile:

  • Sinnvoll für Seiten, deren Texte bewusst Suchmaschinen-optimiert sind (also wichtige Stichwörter mehrfach erwähnen, besonderen Augenmerk auf Überschrift und ersten Textabschnitt)
  • Auf jeder Seite individuelle Meta-Keywords und -Description ohne Pflegeaufwand durch den Redakteur…

Nachteile:

  • …wobei die Pflege der Stopwords doch wieder einiges an Zeit fressen wird
  • Extension ist nicht dokumentiert

Ähnliche Erweiterungen:

Es gibt viele ähnliche Erweiterungen, die technisch unterschiedlich vorgehen und verschiedene Features bieten.

  • pmkautokeywords
  • bk_automakemetatags
  • mc_autokeywords
  • autokeywords
  • autokeywordz
  • jh_opengraphprotocol (nur Open Graph Meta-Tags)
  • hnkeywords: erweitert das Keyword-Eingabefeld, macht beim Tippen Vorschläge (Autocomplete) und zeigt an, wie oft das Keyword schon verwendet wird. Bietet außerdem BE-Modul mit Keyword-Übersicht über alle Seiten.
  • und weitere…

Autor:
Geändert: Freitag, 6. November 2015 9:13 Uhr
Erstellt: Mittwoch, 2. März 2011 20:38 Uhr
Tags: , , , , , ,
Themengebiet: Web Entwicklung, TYPO3

Trackback: Trackback-URL LoadingZu Favoriten hinzufügen

5 Kommentare

  1. 1

    Vielen Dank für die tolle Zusammenfassung. Du schreibst, dass

    Der Meta-Tag “author” sollte an dieser Stelle natürlich auch mit dem Autor der News überschrieben werden, allerdings geht dies erst, wenn tt_news diesen für die Anwendung in TypoScript per LOAD_REGISTER-Funktion zur Verfügung stellt.

    Und genau daran scheitere ich. Wie bekomme ich den den author per LOAD-REGISTER zur Verfügung gestellt?

  2. 2

    Ich meinte damit, dass dies nicht geht, bis der Entwickler von tt_news das Feld „author“ per LOAD_REGISTER zur Verfügung stellt.
    Oder aber du übergibst das Feld über den Hook „extraItemMarkerHook“ selbst an diese Funktion.

  3. 3

    Ich hab’s wie folgt gelöst:

    page.meta.author >
    page.headerData.1 = TEXT
    page.headerData.1 {
    dataWrap = DB:tt_news:{GP:tx_ttnews|tt_news}:author
    wrap3 = <meta name="author" content="{|}" />
    insertData = 1
    }

  4. 4

    kleiner als / größer als wurde ersetzt…

    page.meta.author>
    page.headerData.1 = TEXT
    page.headerData.1 {
    dataWrap = DB:tt_news:{GP:tx_ttnews|tt_news}:author
    wrap3 = „kleiner als“ meta name=“author“ content=“{|}“ „größer als“
    insertData=1
    }

  5. 5

    Danke für den Beitrag, habe dein Code-Snippet bearbeitet, damit es richtig angezeigt wird.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.