Typo3 hreflang-Metatag per TypoScript erstellen

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