TYPO3 - SEO: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
Zeile 25: Zeile 25:
 
== Metatags für tt_news ==
 
== Metatags für tt_news ==
 
<syntaxhighlight lang="typoscript">
 
<syntaxhighlight lang="typoscript">
[globalVar = TSFE:id = {$tt_news_singlePid}]
+
# Hier stehen (kommasepariert) die Seiten die die
page.meta.description >
+
# tt_news Einzelseite ausgeben:
page.meta.description.data = register:newsSubheader
+
[globalVar = TSFE:id=2336]
page.meta.keywords >
+
#
page.meta.keywords.data = register:newsKeywords
+
# Leert die Meta-Description, falls diese bereits anderswo
[global]
+
# definiert wurde
 +
page.meta.description >
 +
page.meta.description = TEXT
 +
# Weist den News-Subheader dem Feld Description zu
 +
page.meta.description.data = register:newsSubheader
 +
#
 +
# Leert die Meta-Keywords
 +
page.meta.keywords >
 +
page.meta.keywords = TEXT
 +
# Hier werden die News-Keywords
 +
# den Meta-Keywords zugewiesen
 +
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
 +
#
 +
## Hier könnte noch folgendes stehen:
 +
page.headerData.10 >
 +
# Um einen evtl. manuell in headerData.10 gesetzten Title zu löschen
 +
[end]
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 
== Open Graph Tags für tt_news ==
 
== Open Graph Tags für tt_news ==
 
<syntaxhighlight lang="typoscript">
 
<syntaxhighlight lang="typoscript">

Version vom 26. Oktober 2016, 15:00 Uhr

Siehe auch SEO

tt_news Singleansicht ohne id zu Listenansicht weiterleiten

# 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

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

# Hier stehen (kommasepariert) die Seiten die die
# tt_news Einzelseite ausgeben:
[globalVar = TSFE:id=2336]
#
# Leert die Meta-Description, falls diese bereits anderswo
# definiert wurde
page.meta.description >
page.meta.description = TEXT
# Weist den News-Subheader dem Feld Description zu
page.meta.description.data = register:newsSubheader
#
# Leert die Meta-Keywords
page.meta.keywords >
page.meta.keywords = TEXT
# Hier werden die News-Keywords
# den Meta-Keywords zugewiesen
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
#
## Hier könnte noch folgendes stehen:
page.headerData.10 >
# Um einen evtl. manuell in headerData.10 gesetzten Title zu löschen
[end]

Open Graph Tags für tt_news

    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

https://vimeo.com/183466979

Basis Implementierung (manuell)

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

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="|">
}