TYPO3 / SEO: Startseite richtig einrichten und in Menüs anzeigen

In diesem Beitrag möchte ich ein paar Worte zu der richtigen Konfiguration einer TYPO3 Startseite loswerden. Gerade für die Suchmaschinenoptmierung gibt es hierbei ein paar Kleinigkeiten zu beachten.

Die Root Seite als Startseite verwenden

In vielen TYPO3 Systemen dient die Rootseite (die Seite mit der Weltkugel) lediglich als Verweis zu einer Unterseite, die als Startseite dient. Das Problem dabei ist jedoch, dass Anfragen an die Webseite in der Regel direkt an www.domain.de gehen und nicht an www.domain.de/startseite.html . Verwendet man nämlich eine Unterseite als Startseite, so werden die Anfragen von der Rootseite standardmäßig auf /start.html oder home.html weitergeleitet, was unnötig Zeit und Ressourcen in Anspruch nimmt.
Im schlimmsten Fall ist das System sogar so konfiguriert, dass man die Inhalte der Startseite sowohl unter www.domain.de als auch unter www.domain.de/start.html erreichen kann – also ohne Weiterleitung. In diesem Fall droht eine Abstufung durch Google aufgrund von „Duplicate Content„.

Nun kann man viel hin und her schieben oder per htaccess weiterleiten, aber es geht natürlich auch viel einfacher: Verwendet die Rootseite eines Seitenbaums einfach direkt als Startseite!

Dies führt jedoch direkt zu einem anderen Problem:

Die Startseite in Menüs bekommen, deren entryLevel eine Ebene tiefer ist

Verwendet man die als Startseite, so könnte ein Seitenaufbau in etwa so aussehen:

– Startseite (Root)
— Über uns
— Leistungen
— Neuigkeiten
— etc.

In der Regel verfügt eine Seite über ein Menü, um sich durch die Seiten zu surfen. Diese Menüs zeigen jedoch auf die Ebene unter Root und zeigen die Startseite somit natürlich nicht mit an, was man in vielen Fällen jedoch explizit will. Eine Funktion ála „includePidList“ von HMENU gibt es leider nicht.

Die Lösung:

TYPO3 Menü Struktur

TYPO3 Menü Struktur

Legt neben den anderen Seiten noch eine weitere Seite namens „Startseite“ an und stellt diese als Shortcut / Verweis auf die Rootseite – also die echte Startseite – ein.

Nun solltet ihr die Startseite ebenfalls im Menü haben – achtet darauf, dass der Link des entsprechenden Menüpunktes auch direkt auf www.domain.de zeigt und nicht auf www.domain.de/startseite.html, welche anschließend weiterleitet.

Ein Problem bleibt noch:

Aktiv-Status der Startseite im Menü

Leitet der Shortcut auf die Rootseite weiter, so wird Status des Menüpunkts niemals ACT bzw. aktiv erreichen und obwohl man sich auf der Startseite befindet, bleibt dieser im Menü auf NO, also nicht-aktiv Status.

Eine schöne Lösung habe ich dafür bis heute zwar nicht gefunden, allerdings tut das folgende Snippet seinen Zweck (bitte entsprechend anpassen)

[globalVar = TSFE:id=1]
  lib.meinMenue.1.NO.wrapItemAndSub = <li class="mm1 active">|</li>|*|<li class="mm1">|</li>
  lib.meinMenue.1.NO.ATagParams = class="mm1 active" |*| class="mm1"
[global]

Über die Condition treffen die folgenden Anweisungen nur dann zu, wenn es sich um die Seite mit der ID1 handelt (in meinem Fall die Rootseite).
Bei meinem Beispiel habe ich ein Standardmenü in dem ich meine aktiven Menüpunkte im Typoscript-Bereich ACT des TMENUs die CSS Klasse „active“ im LI und im A Tag hinzufüge.

Da ACT jedoch niemals greift manipuliere ich einfach den Normalfall (NO) per OptionSplit, sodass der erste Menüpunkt diese CSS Klasse ebenfalls erhält, unabhängig davon ob er wirklich aktiv ist oder nicht.

Ihr müsst das Snippet lediglich eurer eigenen Typoscript Struktur für euer Menü anpassen.

Schönere Lösungen gerne in die Kommentare 🙂

2 Kommentare

  • Ich habe das mal über ein COA gelöst (natürlich Eurer Konfiguration anpassen), damit kann man auch den Link entfernen:

    
    # hier steht das TS für das "normale Menü":
    # 1
    # ^
    # |
    # 2-3-4-5-6-7-8
    
    [globalVar = TSFE:id = 1]
    
    ### Hauptnavigation nur für die erste Seite ID=1
    lib.nav = COA
    lib.nav {
    # öffnendes UL Tag
    10 = TEXT
    10.value = &lt;ul&gt;
    # Link / Verweis von ID=2 nicht verlinken und auf "active" setzen
    20 = HMENU
    20 {
    special = list
    value = 2
    1 = TMENU
    1 {
    expAll = 1
    NO {
    wrapItemAndSub = &lt;li class="active"&gt;|&lt;/li&gt;
    doNotLinkIt = 1
    }
    }
    }
    # Rest vom Menü normal, ohne Verweis
    30 = HMENU
    30 {
    special = list
    special.value = 3, 4, 5, 6, 7, 8
    1 = TMENU
    1{
    expAll = 1
    NO{
    wrapItemAndSub = &lt;li&gt; | &lt;/li&gt;
    }
    }
    # 2.Ebene
    2 = TMENU
    2 &lt; .1
    2 {
    wrap = &lt;ul&gt;|&lt;/ul&gt;
    }
    }
    # schließendes UL Tag
    40 = TEXT
    40.value = &lt;/ul&gt;
    }
    [global]
    
    
  • Danke für den Klasse Artikel war sehr hilfreich =)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Highlighting von Codes ist mit den Tags  [ts], [php], [html], [javascript], [xml] oder [code] möglich.