TYPO3 - SEO
Siehe auch SEO
tt_news Singleansicht ohne id zu Listenansicht weiterleiten[Bearbeiten]
# pruefen, ob die GET-Variable [tt_news] gesetzt und kleiner als 1 ist
[globalVar = GP:tx_ttnews|tt_news < 1]
# dann mach mir eine 301-Weiterleitung auf meine News-Listenansicht
config.additionalHeaders = HTTP/1.0 301 Permanent Redirect | Location: http:// example.de/news/
# fertig!
[global]
oder mit Sprachschalter
# wenn Sprachparameter = 1 UND [tt_news] < 1
[globalVar = GP:L = 1] && [globalVar = GP:tx_ttnews|tt_news < 1]
config.additionalHeaders = HTTP/1.0 301 Permanent Redirect | Location: http:// example.com/news/
[global]
Startseite ohne url[Bearbeiten]
Startseite hat einen Link der Form meineDomain.de/startseite.html Den braucht man eigentlich nicht. Besser so anlegen: -Rootseite (enthält Inhalt) -- startseite (Verweis auf Rootseite)
Metatags für tt_news[Bearbeiten]
# Nachrichtentitel in Title Tag ##
# [globalVar = TSFE:id = {$newsSinglePid}]
config.titleTagFunction >
temp.newsTitle = COA
temp.newsTitle {
10 = RECORDS
10 {
source = {GP:tx_ttnews|tt_news}
source.insertData = 1
tables = tt_news
conf.tt_news >
conf.tt_news = TEXT
conf.tt_news.field=title
conf.tt_news.stdWrap.trim = 1
conf.tt_news.stdWrap.htmlSpecialChars = 1
conf.tt_news.stdWrap.cropHTML = 64|...
wrap = <title>|</title>
}
}
page.config.noPageTitle = 2
page.headerData.15 >
page.headerData.15 < temp.newsTitle
temp.newsDescription = COA
temp.newsDescription {
10 = RECORDS
10 {
source = {GP:tx_ttnews|tt_news}
source.insertData = 1
tables = tt_news
conf.tt_news >
conf.tt_news = TEXT
conf.tt_news.field=short
conf.tt_news.stdWrap.trim = 1
conf.tt_news.stdWrap.htmlSpecialChars = 1
conf.tt_news.stdWrap.cropHTML = 500|...
wrap = <meta name="description" content="|">
}
}
page.headerData.16 >
page.headerData.16 < temp.newsDescription
# [global]
Dieses Beispiel hat bei mir nicht funktioniert (2016)
# Hier stehen (kommasepariert) die Seiten die die
# tt_news Einzelseite ausgeben:
[globalVar = TSFE:id=2336]
page.meta.description >
page.meta.description = TEXT
page.meta.description.data = register:newsSubheader
page.meta.keywords >
page.meta.keywords = TEXT
page.meta.keywords.data = register:newsKeywords
# Seitentitel soll von Typo3 generiert werden
config.noPageTitle = 0
# Seitentitel soll von tt_news definiert werden
plugin.tt_news.substitutePagetitle = 1
[end]
Open Graph Tags für tt_news[Bearbeiten]
headerData.120 = COA
headerData.120 {
wrap = <meta property="og:url" content="{$config.domain}|" />
10 = TEXT
10 {
typolink {
parameter.data = TSFE:id
returnLast = url
}
}
20 = TEXT
20 {
data = GPvar:tx_ttnews|tt_news
stdWrap.wrap = &tx_ttnews[tt_news]=|
required = 1
}
}
Komfortables SEO mit metaseo[Bearbeiten]
Basis Implementierung (manuell)[Bearbeiten]
Empfohlen wird aber die Nutzung einer Extension wie z.B. metaseo (Stand 2016)
page.meta {
KEYWORDS.field = keywords
KEYWORDS.ifEmpty = Selfstorage Center Reutlingen - mietlager4U
DESCRIPTION.field = description
DESCRIPTION.ifEmpty = Selfstorage Center Reutlingen - mietlager4U
#VIEWPORT = width=device-width; initial-scale=1.0
}
Duplicate Content mit Canonical verhindern[Bearbeiten]
Um Google zu sagen wo der original Inhalt einer Seite ist gibt es den canonical link Tag.
Todo genauer anschauen ausprobieren
http://www.typo3-snippets.de/snippets/generelle-konfiguration/canonical-tag-per-typoscript-setzen/
Canonical-Tag per TypoScript setzen
Wenn man beispielsweise seine RealURL-Konfiguration so umstellt, dass alle Seiten mit ".html" generiert werden, was vorher nicht der Fall war, dann möchte man alle bereits bei den Suchmaschinen bekannten Seiten behalten ohne DuplicateContent zu erzeugen. Dies kann man mit Hilfe des Canonical-Tags erreichen. Dafür muss man in sein TypoScript-Setup folgenden Code eintragen:
tmp.canonical = TEXT
tmp.canonical {
typolink.parameter.data = TSFE:id
typolink.returnLast = url
wrap = <link rel=”canonical” href=”http://www.meine-url.de/|” />
}
page.headerData.3750 < tmp.canonical
Dies erzeug im Kopf jeder Seite das Canonical-Tag:
<link rel=”canonical” href=”www.meine-url.de/pfad/zur/seite.html”/>
Wenn man Extensions mit eigenen Parametern auf einer Seite benutzt, kann man das Canonical-Tag wie folgt um einen Parameter erweitern:
tmp.canonical.typolink.additionalParams.dataWrap = &tx_myext_pi1[uid]={GPvar:tx_myext_pi1|uid}
page.headerData.200 = COA
page.headerData.200 {
wrap =
10 = TEXT
10 {
value < config.baseURL
wrap = |
}
20 = TEXT
20.typolink {
parameter = {page:uid}
parameter.insertData = 1
# Ohne Hash sieht es schoener aus
useCacheHash = 0
# Alle GET Parameter anhaengen
addQueryString = 1
addQueryString.method = GET
# ID Parameter aus Query String entfernen (sonst doppelt)
addQueryString.exclude = id
returnLast = url
}
}
page.headerData.20 = TEXT
page.headerData.20 {
typolink {
# hol die aktuelle Page Id
parameter.data = page:uid
# prüfe ob die Id wirklich eine Zahl ist
parameter.intval = 1
useCacheHash = 1
# füge zur URL alle Parameter hinzu
addQueryString = 1
addQueryString.method = GET
# entferne folgende nicht erwünschte Parameter aus der URL
addQueryString.exclude = id, cHash, tx_ttnews[pointer], tx_indexedsearch[sword], tx_comments_pi1[page], tx_pagebrowse_pi1[page]
# gib die reine URL zurück
returnLast = url
}
# bau mir den Meta-Tag zusammen
wrap = <link rel="canonical" href="|">
}