Typo3 hreflang-Metatag per TypoScript erstellen

07. September 2016

SEO in Typo3: Mit Hilfe des hreflang-Tags kann man Google verständlich machen, dass die gewählte Seite in anderen Sprachen existiert. Hier eine Möglichkeit den hreflang-Tag inklusive des x-default-Tags per TypoScript zu generieren. Dabei wird der x-default-Tag auf “EN” (L=1) gestellt, falls eine Englische Übersetzung der Sprache existiert und auf “DE” (L=0), falls die Seite “EN” nicht existiert.

page.headerData.22 = HMENU
page.headerData.22 {
 
   special = language
   special.normalWhenNoLanguage = 0
   special.value = 0,1,2,3,4,5,6,7,8,9,10
 
   1 = TMENU
   1 {
      NO = 1
      NO {
         stdWrap.cObject = TEXT
         stdWrap.cObject {   
            value = de || en || nl || ru || tr || dk || fr || it || sw || no || es
         }
         linkWrap = <link rel="alternate" hreflang="|
         doNotLinkIt = 1
         after.cObject = TEXT
         after.cObject {
            stdWrap.wrap.cObject = COA
            stdWrap.wrap.cObject {
               10 = TEXT
               10.value < config.baseURL
               10.stdWrap.wrap = " href="|
               20 = TEXT
               20.value = |" />
            }
            stdWrap.typolink.parameter.data = page:uid
            stdWrap.typolink.additionalParams = &L=0 || &L=1 || &L=2 || &L=3 || &L=4 || &L=5 || &L=6 || &L=7 || &L=8 || &L=9 || &L=10
            stdWrap.typolink.returnLast = url
         }
 
         before.cObject = TEXT
         before.cObject {
            stdWrap.wrap.cObject = TEXT
            stdWrap.wrap.cObject {
               value =
               stdWrap.wrap = || <link rel="alternate" hreflang="x-default" href="|" /> || || || || || || || ||
               stdWrap.typolink.additionalParams = &L=1
               stdWrap.typolink.parameter.data = page:uid
               stdWrap.typolink.returnLast = url
               stdWrap.typolink.forceAbsoluteUrl = 1
 
               if.isTrue.cObject = TEXT
               if.isTrue.cObject.stdWrap.wrap = || 1 || ||
            }
         }
      }
 
      CUR = 1
      CUR {
         doNotShowLink = 1
      }
 
      # Seite existiert nicht in Übersetzung!
      USERDEF1 < .NO
      USERDEF1 {
         doNotShowLink = 1
         doNotLinkIt = 1
         linkWrap >
         stdWrap >
         after >
         before.cObject {
            stdWrap.wrap.cObject {
               stdWrap.typolink.additionalParams = &L=0
            }
         }
      }
   }
}