TYPO3 – hreflang-Attribut für die Sprach- oder Regions-URL verwenden

Auf Google wird erklärt, wie ihr bei Multi-Sprachen Webseiten die hreflang Tag´s verwenden sollt und für was diese natürlich gut sein sollen!
https://support.google.com/webmasters/answer/189077?hl=de

<link rel="alternate" href="http://example.com/en-ie" hreflang="en-ie" />
<link rel="alternate" href="http://example.com/en-ca" hreflang="en-ca" />
<link rel="alternate" href="http://example.com/en-au" hreflang="en-au" />
<link rel="alternate" href="http://example.com/en" hreflang="en" />

Wichtig ist dabei der Aufbau und das alle Sprach-URL´s auch ausgeben werden. D.h. bei einer DE, EN Webseite, müssen beide Links mit ausgebgen werden.
Hier der passende typoscript Code als Beispiel werden drei Sprachen verwendet: Englisch, China Simple und China Traditional:

page.headerData.51 = HMENU
page.headerData.51 {
  special = language
  #Sprach IDs eintragen
  special.value = 0,1,2
  special.normalWhenNoLanguage = 0
  1 = TMENU
  1 {
    NO = 1
    NO {
      stdWrap.cObject = TEXT
      stdWrap.cObject {
        value = en || zh-CN || zh-TW
      }
      linkWrap = <link rel="alternate" hreflang="|
      doNotLinkIt = 1
      after.cObject = TEXT
      after.cObject {
        stdWrap {
          wrap = " href="|" />
          typolink {
            parameter.data = page:uid
            additionalParams = &L=0 || &L=1 || &L=2
            returnLast = url
            #inkl baseurl
            forceAbsoluteUrl = 1
            #z.b. tt_news
            addQueryString = 1
          }
        }
      }
    }
    # Aktive Sprache deaktivieren = 1
    CUR < .NO
                    CUR = 1
                    CUR {
                        #doNotShowLink = 1
                    }
    # Aktive Sprache deaktivieren = 1
                    ACT < .NO
                    ACT = 1
                    ACT {
                        #doNotShowLink = 1
                    }
    # Nicht übersetzte Sprache deaktivieren
                    USERDEF1 < .NO
                    USERDEF1 {
                        doNotShowLink = 1
                        after >
                    }
    # Nicht übersetzte Sprache deaktivieren
                    USERDEF2 < .NO
                    USERDEF2 {
                        doNotShowLink = 1
                        after >
                    }
  }
}

Im Fall von Auswahlmenüs für Sprache bzw. Land, die automatisch weiterleiten, sollten Sie zudem eine Annotation für den hreflang-Wert „x-default“ hinzufügen:

<link rel="alternate" href="http://example.com/" hreflang="x-default" />

Schreibt mir in den Kommentaren ob es klappt hat, oder ob Ihr weitere Lösungen oder Probleme damit hatten. Vielen Dank!

Eure Meinung zu dem Artikel ist gefragt! Schreibt mir ein Kommentar

Hat Euch der Artikel weitergeholfen oder gefallen?
Ich freue mich auf einen Blick auf meine Amazon-Wunschliste. Vielen Dank!

Hat Euch der Artikel weitergeholfen oder gefallen? Ich freue mich auf einen Blick auf meine Amazon-Wunschliste. Vielen Dank!Ich bin freiberuflicher TYPO3-Entwickler, Web-Entwickler und Frontend-Entwickler. Ich arbeite im und für das Web etwas mehr als 12 Jahre. Mehr Infos zu der TYPO3 Internetagentur - INGENIUMDESIGN.

Leave a Reply

6 Kommentare

  1. kann ich machen, nur im Moment fehlt mir wirklich die Zeit dazu 🙁

  2. Paul

    Keine Ahnung ob mein Kommentar noch den Author erreicht. Aber:
    Wäre es noch möglich das so zu erweitern das wenn man auf einer Detailseite einer news ist er keine alternate link für die andere Sprache macht wenn es dazu keine Übersetzung gibt?!

  3. Rick

    Hallo,

    Danke sehr!! (Tag wurde nicht angezeigt)

    Es zeigen folgende Codes auf englischer Seite:
    -link href=“http://test.com/industry/mining/“ hreflang=“en“ rel=“alternate“-
    -link href=“http://test.com/industrie/mining/“ hreflang=“de“ rel=“alternate“-

    Auf deutscher Seite:
    -link href=“http://test.com/industry/bergbau/“ hreflang=“en“ rel=“alternate“-
    -link href=“http://test.com/industrie/bergbau/“ hreflang=“de“ rel=“alternate“-

    Der Seite-Titel holt die richtige Übersetzung, aber der Get-parameter holt immer die Übersetzung aktueller Sprache.

    Gruß, RICK

  4. Vielen Dank.
    Irgendwie stand ich auf dem TypoScript-Schlauch 🙂
    tt_news hat kurzzeitig Probleme bereitet. Mit Hilfe von addQueryString funktioniert es jedoch einwandfrei.

    Vielen Dank

Next ArticleCSS - Pixel-Wert in Prozent-Wert umrechnen