06082 928047Anfahrt

TYPO3 mit hreflang versehen

Was genau bewirkt hreflang ?

Das hreflang-Tag dient in erster Linie dazu, Suchmaschinen über anderssprachige Versionen einer Seite zu informieren. Zu diesem Zweck wird für jede Sprachversion ein Eintrag im <body>-Tag der Seite ausgegeben, aus der ersichtlich ist, um welche Sprache es sich jeweils handelt und wo(URL) diese Seite zu finden ist.

Bsp.:

Es existiert eine Seite "Über uns":

  • in deutscher Sprache unter www.xyz.de/ueberuns.html
  • und in englischer Sprache unter www.xyz.de/en/aboutus.html

Dann muss im Quellcode der deutschen Seite folgender Eintrag zu finden sein:

...
<link rel="alternate" hreflang="en" href="https://www.wacon.de/en/aboutus.html" />
...

Entsprechend sollte auf der Seite aboutus.html folgendes zu finden sein:

...
<link rel="alternate" hreflang="de" href="https://www.wacon.de/ueberuns.html" />
...

Auf diese Weise werden die Seiten bei der Suche in anderen Sprachen entsprechend stärker berücksichtigt. Und selbstverständlich steigt das Ranking auch aufgrund dieser klaren und transparenten Strukturierung.

Wie wird das hreflang-Tag in TYPO3 eingebunden?

Als erstes muss - falls noch nicht geschehen - TYPO3für die Mehrsprachigkeit eingestellt werden.

Dafür gehen wir ins Modul "Liste" und wählen die oberste Seite aus und legen dort über Website-Sprache eine neue Sprachvariante an.

Nachdem die neue Sprache angelegt wurde, muss noch das Typoscript Template angepasst werden.

Erst wird die deutsche Sprache mit der uid=0 angelegt.

config.sys_language_uid = 0
config.locale_all = de_DE
config.language = de
config.htmlTag_langKey = de

Danach wird per Condition die 2. Sprache festgelegt.

[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = en
config.locale_all = en_UK
config.htmlTag_langKey = en-UK
[global]


Jetzt ist es möglich, eine Übersetzung für die Seite anzulegen:

Nachdem eine Übersetzung angelegt wurde, fehlt nur noch das hreflang-Tag.

Um diesen zu generieren, wechseln wir wieder in das Typoscript-Template und tragen folgendes ein:

tmp.hreflang = HMENU
tmp.hreflang {
      special = language
      special.value = 1
      special.normalWhenNoLanguage = 0
      1 = TMENU
      1 {
         NO = 1
         NO {
            stdWrap.cObject = TEXT
            stdWrap.cObject {
               value = en
             }
             linkWrap = <link rel="alternate" hreflang="|
            doNotLinkIt = 1
            after.cObject = TEXT
            after.cObject {
               stdWrap.wrap = " href="https://www.wacon.de/|" />
               stdWrap.typolink.parameter.data = page:uid
               stdWrap.typolink.additionalParams = &L=1
               stdWrap.typolink.returnLast = url
          }
       }
      CUR = 1
      CUR {
        doNotShowLink = 1
      }
      USERDEF1 = 1
      USERDEF1{
        doNotShowLink = 1
      }
    }
 }


Dieses Snippet generiert das englische hreflang-Tag in der deutschen Version.

Das ganze fügen wir mit:

page.headerData.3780 < tmp.hreflang
page.headerData.3780.insertData = 1

in den Header der Seite ein.

Um nun in der englischen Version das deutsche hreflang-Tag zu generieren, nehmen wir nochmal denselben Code, umschließen ihn mit einer Condition, ändern en zu de und stellen das speciel.value auf "0" und stdWrap.typolink.additionalParams auf &L=0.

[globalVar = GP:L = 1]
tmp.hreflang = HMENU
tmp.hreflang {
      special = language
      special.value = 0
      special.normalWhenNoLanguage = 0
      1 = TMENU
      1 {
         NO = 1
         NO {
            stdWrap.cObject = TEXT
            stdWrap.cObject {
               value = de
             }
             linkWrap = <link rel="alternate" hreflang="|
            doNotLinkIt = 1
            after.cObject = TEXT
            after.cObject {
               stdWrap.wrap = " href="https://www.wacon.de/|" />
               stdWrap.typolink.parameter.data = page:uid
               stdWrap.typolink.additionalParams = &L=0
               stdWrap.typolink.returnLast = url
          }
       }
      CUR = 1
      CUR {
        doNotShowLink = 1
      }
      USERDEF1 = 1
      USERDEF1{
        doNotShowLink = 1
      }
    }
 }

page.headerData.3780 < tmp.hreflang
page.headerData.3780.insertData = 1

[global]

Ergebnis

Auf der deutschen Seite steht im Quellcode nun:

<link rel="alternate" hreflang="en" href="<ENGLSICHE_URL>" />

und auf der englischen Seite:

<link rel="alternate" hreflang="de" href="<DEUTSCHE_URL>" />

Haben Sie Fragen oder können wir Sie als TYPO3-Agentur technisch unterstützen? Dann nehmen Sie doch einfach Kontakt mit uns auf. Gerne helfen wir Ihnen zu fairen Preisen.


Einen Kommentar schreiben

* Diese Felder sind Pflichtfelder

Kommentare

Bislang liegen zu diesem Artikel keine Kommentare vor.