Gösta Thomas' Blog

sofort zum Inhalt

Sie sind hier: Blog: CMSimple: Überschriften richtig nutzen

CMSimple: Überschriften richtig nutzen

28.03.2015

CMS CMSimple: Nutzung der Überschriften h1, h2 und h3:

Beide CMS, CMSimple_XH und CMSimple 4.x, speichern alle Textinhalte auf dem Server in einer einzigen Datei (eine Textdatei, keine Datenbank), was beide Systeme schnell macht. Neue Seiten der obersten Menü-Ebene werden mit dem HTML-Element h1 (Überschrift 1. Ordnung) eingeleitet, egal ob man dafür den Editor oder den Pagemanager verwendet. Standardmäßig sind drei Menü-Ebenen eingestellt, wobei mit den HTML-Elementen h2 und h3 Seiten der zweiten bzw. dritten Menü-Ebene eingeleitet werden. Die hx-Elemente werden also zur CMS-internen Seitensteuerung (Paginierung) verwendet.

Das bedeutet umgekehrt, daß mit dieser Standard-Einstellung auf den Seiten der obersten Menü-Ebene die Überschriften 2. und 3. Ordnung (HTML-Elemente h2 und h3) nicht verwendet werden können. Auf den Seiten der zweiten Menü-Ebene können die Elemente h1 und h3 nicht genutzt werden, auf den Seiten der dritten Menü-Ebene keine h1 und h2. Zur semantischen Strukturierung sind bei CMSimple dann also nur die HTML-Elemente h4, h5 und h6 verfügbar.

Aktualisierung des Blog-Artikels: Bei CMSimple 4.x hat sich die beschriebene Sachlage mit Version 4.7 geändert, bei CMSimple_XH mit Version 1.7: siehe die neuen Abschnitte am Ende des Artikels (Link).

Überschriften h1, h2 und h3: wichtige Signale für Google:

Nun ist es aber so, daß die Suchmaschine Google zur inhaltlichen Einordnung einer Webseite außer Titel (HTML-Element title), Beschreibung (HTML-Element meta description), Text der Seite (vor allem am Seitenanfang) und Linktexten eingehender Links vor allem die Überschriften 1., 2. und 3. Ordnung (also die HTML-Elemente h1, h2 und h3) der Seite heranzieht. Wobei das alles inhaltlich zusammenpassen muß. Nur der Vollständigkeit halber: Den Inhalt des HTML-Elements meta keywords berücksichtigt Google nicht.

Die Überschriften sollten zudem semantisch richtig verwendet werden: So sollte nur ein einziges h1-Element je Seite vorhanden sein, und zwar inhaltlich als Haupt-Überschrift und im Quelltext weit oben platziert. Weitere Überschriften müssen hierarchisch angeordnet werden. Richtig wären zum Beispiel die Reihenfolgen h1 h2 h3 h3 h2 h3 oder h1 h2 h2. Falsch wären die Anordnungen h1 h3 h3 h2 oder h2 h3 h3 h2 h3 h1 oder (CMSimple-typisch) h1 h1 h4 h5. (Beachten Sie, daß meine vereinfachte Darstellung nötige Inhalts-Elemente wie Fließtext in Absätzen oder Informationen in Listen außer Acht läßt.)

Die HTML-Elemente h4, h5 und h6 sind bei Google bedeutungslos: Schon ein mit dem Element strong ausgezeichnetes Wort im Fließtext hat bei Google mehr Gewicht als eine Überschrift 4. Ordnung.

CMSimple_XH: Änsätze zur Lösung des Überschriften-Problems:

Wir sehen also, daß die Überschriften 1., 2. und 3. Ordnung in CMSimple inhaltlich und semantisch nicht völlig google-gerecht genutzt werden können, zumindest nicht ohne nachträgliche Eingriffe. Aus heutiger Sicht vielleicht ein Geburtsfehler, aber als Peter Harteg ab dem Jahr 1999 das CMS CMSimple entwickelte, war noch gar nicht absehbar, auf welche Signale Google später Wert legen würde.

Den Entwicklern von CMSimple_XH ist das Problem durchaus bewußt, wie zum Beispiel diese Forums-Diskussion zeigt. Dort schlägt svasti vor, zur Seitensteuerung andere Kriterien als die HTML-Überschrifts-Elemente zu verwenden, damit diese uneingeschränkt für semantische Zwecke verfügbar sind. Wie einem späteren Beitrag von cmb zu entnehmen ist, stößt die Umsetzung dieser Idee aber offensichtlich auf mehrere Schwierigkeiten technischer Art. Außerdem wird in der Diskussion eine gewisse Befürchtung deutlich, daß mit einer solchen Änderung die CMSimple-Grundidee verraten würde.

Von zwei CMSimple_XH-Entwicklern gibt es Lösungen, die ohne grundlegende Änderung der CMS-Funktionalität und ohne Änderung des vorhandenen Datenbestands auskommen: Vor Auslieferung der angeforderten CMSimple-Seiten an den Browser oder Crawler werden per Server-Script die in content() enthaltenen hx-Elemente höherwertig umgesetzt (das funktioniert vermutlich auch unter CMSimple 4.x). Hier die Links zu den beiden (englisch-sprachigen) Anleitungen:

  1. Page Titles as <h1> von Christoph Michael Becker

    (Kurz beschrieben auf Deutsch:) Die höchste vorhandene content()-hx wird umgesetzt in h1. Sie wäre aber das zweite Vorkommen von h1, wenn (zB im Standard-Template) schon (oder noch?) eine Kopfzeilen-h1 vorhanden ist.

  2. Search Engine Optimization ... Page structure  von Frank Ziesing

    (Kurz beschrieben auf Deutsch:) Hier werden umgesetzt (bzw. nicht umgesetzt):

    • content()-h1 wird umgesetzt in h2
    • content()-h2 wird nicht umgesetzt (bleibt h2)
    • content()-h3 wird umgesetzt in h2
    • content()-h4 wird umgesetzt in h3

    Damit wäre eine ggf. (im Standard-Template) vorhandene Kopfzeilen-h1 das einzige Vorkommen von h1.

Solche Krücken-Lösungen haben aus meiner Sicht aber zwei Nachteile, wobei der geringfügig höhere Bedarf an Rechenzeit auf dem Server noch der kleinere ist. Mich persönlich würde viel mehr stören, daß ich bei jeder Überschriften-Verwendung um die Ecke denken müßte: welches hx-Element muß ich jetzt verwenden, damit am Ende ein bestimmtes anderes rauskommt? Deshalb verwende ich so etwas nicht, sondern ...

Nur eine Menü-Ebene benötigt? Weitere Menüebenen ausschalten!

Auf meiner kleinen CMSimple-Website komme ich mit einer einzigen Menü-Ebene aus. Also schalte ich die Menü-Ebenen zwei und drei aus (beschrieben nach CMSimple 4.x): Im Admin-Bereich unter Einstellungen -> CMS -> Menu -> Levels habe ich die Standard-Einstellung 3 (Menü-Ebenen) in 1 geändert. Folge: Mit der Verwendung der HTML-Elemente h2 und h3 werden keine neuen Seiten mehr angelegt (weder im Editor noch im Pagemanager). Stattdessen kann ich auf allen Seiten der 1. Ebene auch die Überschriften h2 und h3 verwenden.

Template: zweifaches Vorkommen der Überschrift h1 vermeiden:

Egal, ob man ein fertiges CMSimple-Template von der Stange oder (wie ich) ein selbst erstelltes Template verwendet: im generierten Seiten-Quelltext sollte das Überschrifts-Element h1 nur einmal vorkommen. Über den Einschub <?php echo content();?> in der template.htm wird für eine Seite der 1. Ebene standardmäßig ein Überschrifts-Element h1 ausgegeben. Auf dieses Vorkommen der h1 im generierten Quelltext besteht in der template.htm kein Zugriff. Hier zwei Szenarien:

1. Szenario:

Wer die standardmäßige h1-Generierung für eine Seite der 1. Ebene über den Einschub <?php echo content();?> beibehält, sollte in seiner CMSimple-template.htm nicht noch zusätzlich ein weiteres Vorkommen der h1 für die Kopfzeile festlegen. Wenn ein Standard-Template genutzt wird, in dem ein zusätzliches Vorkommen der h1 definiert ist (zB über den Code-Schnippsel <h1><?php echo sitename();?></h1>), sollten (a) dieses h1-Element als Hülle besser entfernt, (b) für die Festlegung der Schriftgröße ggf. ein div-Element verwendet (<div class="wieh1"><?php echo sitename();?></div>) und (c) die Eigenschaften der div-Klasse wieh1 in der Template-stylesheet.css geregelt werden. Ein Nachteil dieser div-Lösung besteht jedoch darin, daß schon vor der content()-h1 Text ausgegeben würde, wo doch Google die Überschrift 1. Ordnung ganz oben erwartet.

2. Szenario:

Wer die Überschrift 1. Ordnung lieber schon im Kopf der Seite haben will und/oder in seinem selbst erstellten Template gerne individuelle Überschriften 1. Ordnung verwendet, oder wer ein Standard-Template nutzt und einen darin enthaltenen Code-Schnippsel in der Art wie <h1><?php echo sitename();?></h1> beibehalten will, sollte umgekehrt dafür sorgen, daß über den Einschub <?php echo content();?> in der template.htm von CMSimple kein weiteres h1-Element generiert wird. Hierzu wählt man (beschrieben nach CMSimple 4.x) im Admin-Bereich unter Bearbeiten-> (Seite auswählen) -> Seite -> Andere Seitenüberschrift die Option ja aus, läßt das Eingabefeld für die andere Seitenüberschrift jedoch leer: Damit wird für diese Seite keine zweite h1 generiert (die Seitenüberschrift, mit der die betreffende Seite im Menü verlinkt ist, wird nur im Editor-Modus noch zusätzlich angezeigt).

Menü-Ebene eins: Überschriften h2 & h3 auf allen Seiten nutzen:

Wer, wie oben beschrieben, die nicht benötigten Menüebenen ausgeschaltet hat, kann auch auf Seiten der 1. Ebene die Überschriften h2 und h3 verwenden. Hierzu ganz einfach im Editor je nach Textumfang an den gewünschten Stellen h2- und h3-Elemente platzieren. Die erste (oder einzige) Überschrift 2. Ordnung kann schon vor dem ersten Fließtext angeordnet werden.

Alles kurz erläutert anhand einer CMSimple-Beispiel-Seite:

Das Vorgehen klingt zunächst recht kompliziert, ist aber schneller erledigt als gelesen. Ich erläutere die Maßnahmen kurz anhand meiner Seite Rechtschreibung als Beispiel-Seite:

  1. als h1-Überschrift, die in der Kopfzeile angezeigt wird, habe ich in meiner template.htm festgelegt: Gösta Thomas, ich selbst
  2. die ursprüngliche h1-Überschrift der Seite (content()-h1), festgelegt im Pagemanager, ist Rechtschreibung (sichtbar im Menü)
  3. im Admin-Bereich habe ich für die Seite die Option Andere Seitenüberschrift -> ja ausgewählt, das entsprechende Eingabefeld jedoch leer gelassen (verhindert die Anzeige dieser h1)
  4. im Editor habe ich am Anfang der Seite eine h2 eingefügt: Rechtschreibung und Schreibweise, anschließend folgt der einleitende Satz
  5. dann im Editor meinen Text eingetragen: gegliedert in einige Absätze, jeweils eingeleitet mit einem h3-Element (von Traditionelle oder Neue Rechtschreibung? bis Silbentrennung per CSS-Regel)

Das war's auch schon, ganz simple ;-) Das Ergebnis ist eine semantisch richtig aufgebaute, google-freundliche CMSimple-Seite. Funktioniert aber, wie gesagt, nur dann, wenn man sich auf eine Menü-Ebene beschränkt. Für viele mit CMSimple (XH oder 4.x) erstellte Websites dürfte aber eine einzige Menü-Ebene ausreichen.

CMSimple Version 4.7: alle hx-Elemente frei verfügbar:

(Aktualisierung am 11.06.2017)

Mit CMSimple Version 4.7 vom 16.03.2017 wurde zusätzlich eine neue Methode zur CMS-internen Seitensteuerung eingeführt. Damit können alle hx-Elemente, also h1 bis h6, auf allen Seiten (egal welcher Menüebene) verwendet werden. Diese neue Methode kann auf Wunsch in den Einstellungen aktiviert werden (sinnvoll bei neu zu erstellenden Websites). Bestehende CMSimple-Websites werden bei einem Update nicht zwangsweise auf das neue Verfahren umgestellt, es gibt aber ein Konvertierungs-Script.

CMSimple_XH Version 1.7.0: alle hx-Elemente frei verfügbar:

(Aktualisierung am 28.09.2017)

CMSimple_XH hat nachgezogen: Seit der XH Version 1.7.0 vom 02.07.2017 wurde die CMS-interne Seitensteuerung auf HTML-Kommentare umgestellt. Damit können auch in diesem CMS alle hx-Elemente, also h1 bis h6, auf allen Seiten (egal welcher Menüebene) verwendet werden. Offensichtlich ist das Update von älteren CMS-Versionen aber mit einem gewissen Aufwand verbunden, zumal mit Version 1.7 noch weitere wesentliche Änderungen eingeführt wurden. In der deutschsprachigen Abteilung des CMSimple_XH-Forums gibt es zudem eine Liste von Plugins, die zur neuen Version 1.7.0 unverträglich sind.

veröffentlicht in kat_CMSimple

 
Text suchen im Blog

Suche nach vollständigen Zeichenketten (wie einge­tragen)

... im Fließtext (empfohlen):
 und      oder
... in Überschriften:
Inhalte und Gestaltung urheberrechtlich geschützt - ©2024 Gösta Thomas - Alle Rechte vorbehalten.
Kontakt | Datenschutz | Letzte Änderung: 08.11.2022, 16:10 | Mein Netz-Werk läuft unter CMSimple.