Geschrieben von

SEO und Paginierung

SEO

Wenn Inhalte nicht komplett auf einer Seite dargestellt werden können, erfolgt meist eine Aufteilung dieser Inhalte. Dabei spricht man von Paginierung (engl. Pagination). Beispiele dafür sind:

  • Suchergebnislisten
  • Lange Beiträge, die aufgeteilt werden
  • Kategorieseiten in Online-Shops
  • Beiträge in Foren

Die Definition von „Paginierung“ lautet laut Wikipedia:

Die Paginierung ist die Seitennummerierung eines Schriftstückes, meist in der Kopf- bzw. in der Fußzeile. Die Zahlen werden dabei oft mittig oder außen (bei einseitigen Schriftstücken also mittig oder rechts) gestellt. Zusätzlich kann die Seitennummer auch durch die Seitenzahl (die Gesamtzahl der Seiten) ergänzt werden.

Im SEO denkt man beim Wort „Paginierung“ nicht nur an die Aufteilung von Inhalten über mehrere Seiten hinweg inkl. Seitennummerierung, was die klassische Art der Paginierung wäre. Auch Infinite Scroll nimmt dabei einen wichtigen Platz ein, der im SEO immer wieder diskutiert wird.

Ziel bei der Paginierung ist es, Suchmaschinen zu helfen die Beziehung zu den paginierten Seiten untereinander zu verstehen. Kümmert man sich nicht um die paginierten Inhalte, können einige SEO-Probleme auftreten:

  • Duplicate Content: Tritt ein wenn z.B. die erste Seite unterschiedliche aufrufbar ist und dabei keine Canonical-Anweisungen vorhanden sind.
  • Thin Content: Wenn z.B. ein Artikel auf mehrere Seite geteilt wird und jede Seite nur sehr wenig Inhalte aufweist.
  • Ranking-Signale werden gesplittet: Wenn Seiten ohne sinnvollen Grund paginiert werden und die korrekten Auszeichnungen fehlen, verteilen sich Link-Power und weitere externe Signale auf einzelne – auch unwichtige – URLs.
  • Ineffizienter Crawl-Budget-Einsatz: Bei sehr vielen paginierten Seiten, kann sich der Googlebot verlieren. Vor allem wenn paginierte Seiten endlos aufgerufen werden können, obwohl es nur eine begrenzte Anzahl an Inhaltsseiten gibt (z.B. nur 20 Seiten). Ist dann bspw. /?seite=21, /?seite=22, etc. aufgrund technischer Fehler ohne Inhalte und ohne einen 404 zu senden aufrufbar, hat man massiv Thin-Content-Seiten und ein verschwendetes Crawling-Budget.

Welche Möglichkeiten es bei der Paginierung grundsätzlich gibt und was dabei aus SEO-Sicht zu beachten ist, möchte ich in diesem Beitrag darstellen.

Wie sollte man die Inhalte aufteilen?

Die primäre Frage beim Einsatz einer Paginierung ist, wie man die Inhalte aufteilen sollte? Dabei gibt es grob 2 Ansätze, die aus der technischen Perspektive kommen:

  • Inhalte auf mehreren URLs aufteilen
  • Inhalte innerhalb einer URL aufteilen

Das Aufteilen von Inhalten auf mehreren URLs ist der klassische Fall. Diese Methode erkennt man auch direkt an den Seitennummerierungen am unteren Ende der Seite:

Paginierung

Auf der anderen Seite lassen sich Inhalte auch direkt auf bzw. innerhalb einer Seite aufteilen oder auch „paginieren“. Wie das genau aussieht und funktioniert werde ich nachfolgend erklären.

Inhalte auf mehreren URLs aufteilen

Bei langen und komplexen Inhalten werden diese gerne über mehrere Seiten/ULRs hinweg aufgeteilt. Das heißt, dass es pro Seitennummer eine eigene URL gibt. Hauptsächlich wird man in der Wildbahn 2 Arten der URL-Aussteuerung vorfinden:

Beispiel Variante 1
https://www.demirjasarevic.com/page/2/

Beispiel Variante 2
https://www.demirjasarevic.com/?page=2

Man kann also grob gesehen entweder Verzeichnisse oder URL-Parameter einsetzen. Grundsätzlich sind aus SEO-Sicht beide Varianten in Ordnung. Der einfachheitshalber empfiehlt Google den Einsatz von URL-Parameter. Dadurch lassen sich Crawling-Probleme, die durch den Einsatz von Verzeichnissen bei Paginierungen auftreten, vermeiden.

Wenn man Inhalte auf mehreren URLs aufteilt, muss man bedenken, dass dadurch viele Seiten entstehen die das Crawling-Budget belasten können. Aus diesem Grund sollten paginierte Seiten genau analysiert werden, um Crawling-Maßnahmen abzuleiten.

Um Suchmaschinen zu signalisieren, dass die paginierten Seiten zusammengehören, sollte man die Attribute rel=next und rel=prev einsetzen. Auch wenn Google diese Attribute nicht mehr nutzt (wie hier von John Müller verkündet), sollten die Attribute dennoch eingesetzt werden, um andere Suchmaschinen abzudecken. Dabei muss man achten, dass die erste Seite nur ein rel=next bekommt, die letzte Seite nur ein rel=prev und alle Seiten dazwischen jeweils ein rel=next und rel=prev. Für eine dritte Seite würde die Auszeichnung im Head-Bereich wie folgt aussehen:

<link rel="prev" href="https://www.demirjasarevic.com/page/2/" />
<link rel="next" href="https://www.demirjasarevic.com/page/4/" />

Bez. Indexierung sollte man im Hinterkopf behalten, dass Google paginierte Seiten einzeln betrachtet und nicht insgesamt als Einheit. Heißt konkret, dass jede paginierte Seite für sich selbst steht und dementsprechend indexiert werden kann. Daher sollte man sich Gedanken machen, welche paginierten Seiten man indexieren lässt und welche nicht. Ein Blog-Beitrag, der auf mehrere Seiten gesplittet wird und dabei jede einzelne Seite Unique Content vorweist, sollte komplett indexiert werden. Eine Blog-Übersichtsseite, die nur Verlinkungen auf einzelne Beiträge enthält, kann – sofern sich die Seiten voneinander nicht viel unterscheiden – ab Seite 2 vom Index ausgeschlossen werden. Dabei sollte man mit der Robots-Anweisung „noindex“ im Head-Bereich arbeiten. Mit dem Canonical sollte man hier eher nicht arbeiten. Der Canonical ist dazu gedacht, doppelte Inhalte (Duplicate Content) zu steuern. Bei Blog-Übersichtsseiten, wo nur interne Links zu Beiträgen vorhanden sind, unterscheiden sich die einzelnen Seiten inhaltlich durch die Text-Teaser der Beiträge. Je nach Länge der Vorschautexte kann man auch die paginierten Seiten indexieren lassen. Dadurch kann Google die passende Seitenzahl – je nach Suchintention und Suchkeyword – an den Nutzer ausspielen. Um dies zu entscheiden sollte man sich die Frage stellen: „Bieten die paginierten Seiten einzigartige und informative Inhalte mit Mehrwert für meine Nutzer?“. Falls ja, dann indexieren lassen. Falls man sie nicht indexiert, dann sollte man im Hinterkopf behalten, dass Links auf noindex-Seiten nach längerer noindex-Zeit von Google eventuell als nofollow gewertet werden.

Den Canonical kann man jedoch einsetzen, wenn Duplicate Content durch die Paginierung eintritt. Dies kommt häufig beim Einsatz von zusätzlichen Parametern vor und auf Seite 1. Bez. „Seite 1“ ist ein Inhalt wie https://www.demirjasarevic.com/paginierung/ nicht nur über https://www.demirjasarevic.com/paginierung/ erreichbar, sondern auch über https://www.demirjasarevic.com/paginierung?seite=1. Hier sollte dann der Canonical zum Einsatz kommen.

Bei internen und externen Links sollte man beim Aufteilen von (vor allem) Blog-Beiträgen auf mehrere URLs beachten, dass sich dadurch auch die Link-Power anders verteilt. Aus diesem Grund sollten die Seiten untereinander gut verlinkt werden.

Unter dem Titel „Paginierung ohne rel next/prev“ hatte Google auf einer Webmaster-Konferenz Tipps und Empfehlungen bei paginierten Inhalten ohne rel-next/prev gegeben:

  • Die Links zwischen den Seiten sollten mittels „nächste Seite“, „vorherige Seite“ oder mittels „Seitenzahlen“ natürlich gesetzt werden.
  • Es sollten saubere URLs eingesetzt werden (am besten ohne Parameter; aber zumindest mit sehr wenigen Parametern)

Zudem sollte im Vorfeld geklärt werden, welches Ziel die Paginierung verfolgt. Soll der Content paginiert werden oder sollen auf den paginierten Seiten Detail-Links zu weiteren Seiten gesetzt werden?

  • Wenn Content paginiert werden soll: Alle Seite miteinander verlinken, alle Seiten indexieren lassen.
  • Wenn Detail-Links auf den paginierten Seiten platziert werden (z.B. bei Shops): Hier entweder alle Seiten verlinken. Falls alle Seiten über Querverlinkungen auffindbar sind, kann nur die erste Seite oder die ersten paar Seiten indexiert werden, der Canonical-Link sollte auf die erste Seite zeigen und die anderen Seiten sollten auf „noindex“ gesetzt werden.

Zuletzt sollte die Paginierung immer mit einem Crawler gegengeprüft werden.

Inhalte innerhalb einer URL aufteilen

Da bei der klassischen Paginierung mehrere URLs zum Einsatz kommen und dabei beim Klick auf die nächste Seite ein Pagereload erfolgt und der Nutzer etwas warten muss, wird aus UX-Sicht meist für Infinite Scroll argumentiert. Hier bleibt der Nutzer auf einer Seite und die Auslieferung der weiteren Inhalte erfolgt dynamisch und aufgrund des fehlenden Pagereloads (meist) schneller. Diese Methode kommt meist bei der Blog-Übersichtsseite oder im E-Commerce bei Kategorieseiten zum Einsatz. Es gibt grundsätzlich 2 Möglichkeiten hinsichtlich Implementierung:

  • Der Nutzer scrollt und die Inhalte werden automatisch nachgeladen, sobald ein bestimmter Punkt auf der Seite erreicht wird.
  • Der Nutzer scrollt und muss am Ende aktiv einen „Mehr-Laden-Button“ klicken, damit die Inhalte nachgeladen werden.

Unabhängig davon welches der beiden Möglichkeiten eingesetzt wird, brauchen Suchmaschinen eine „Hilfestellung“, damit Crawling und Indexierung korrekt ablaufen. Wichtig ist, dass die nachgeladenen Inhalte auch ohne JavaScript zugänglich sind. Zwar ist Google mittlerweile sehr gut bei der Interpretation von JS, andere Suchmaschinen sind aber noch nicht so weit. Zudem muss man bedenken, dass Suchmaschinen nicht immer gut in der Lage sind, das Klick- und Nutzungsverhalten von echten Usern zu simulieren, um so bspw. auf zunächst verdeckte oder versteckte Inhalte hinter Buttons, etc. zu kommen.

Als gutes Beispiel wie man aus technischer SEO-Sicht ein Infinite Scroll umsetzen kann, ist diese beispielhafte Seite von John Müller. Sobald der Nutzer an einem Punkt kommt, wo eigentlich der Split auf eine paginierte Seite stattfinden sollte, wird die URL mittels pushState geändert. Dadurch ist die URL auch für Suchmaschinen und Nutzer direkt aufruf- und teilbar. pushState ist dabei Teil der History API und sorgt dafür, dass sich die URL auch ohne Pagereload ändert. Über die Verwendung der URLs in rel=next, rel=prev, XML-Sitemaps, internen und externen Links können so Suchmaschinen direkt auf die paginierten URLs gelangen, um auch Inhalte und interne Links zu crawlen, die sonst auf der ersten Seite „versteckt“ sind. Neben pushState ist bei Infinite Scroll wichtig:

  • Alle individuelle Elemente sind aufruf- und erreichbar.
  • Es sollte besonders auf den Pagespeed geachtet werden, da die Seiten schnell lang werden können.
  • Es sollte eine sinnvolle URL für die paginierten Seiten definiert werden.

Ansonsten gelten für Infinite Scroll aus SEO-Technik-Sicht die gleichen Hinweise wie oben schon bei der klassischen Paginierung angesprochen. Da mittels pushState auch hier paginierte Seiten verfügbar sind, müssen Crawling, Indexierung, Meta-Angaben und so weiter auch hier implementiert und berücksichtigt werden.

Mit dem Update der Google Rendering Engine auf Chrome 74 fällt es zudem dem Googlebot einfacher Infinite Scrolling, wo der Intersection Observer eingesetzt wird, zu crawlen, da diese Technik seit Chrome 51 unterstützt wird.

Wichtig bei Infinite Scroll ist, dass die Technik nicht wahllos eingesetzt werden sollte. Es gibt auch Fälle, wo dies der UX schaden kann. Vor allem auf Seiten mit starken Conversion-Fokus ist Infinite Scroll nicht zu empfehlen.

Sonderfall: View-All-Page

Einen Sonderfall bei der Paginierung möchte ich hier noch ansprechen. Und zwar geht es um die „View-All-Seite“. Dies ist mehr oder weniger ein Mix der oben 2 genannten Möglichkeiten. Im Grunde werden hier 2 Kategorien von Seiten erstellt. Gehen wir von einer Paginierung mit 5 Seiten aus:

  • Die 5 Seiten werden ganz normal paginiert. Heißt es gibt Seite 1, 2, 3, 4 und 5 mit eigener URL. Diese URLs enthalten kein rel=next und rel=prev. Alle diese 5 Seiten verweisen jedoch per Canonical auf eine „View-All-Seite“.
  • Neben den normalem Paginierungsseiten wird noch eine Seite erstellt, die alle Elemente der paginierten Seite enthält (die „View-All-Seite“). Diese hat einen Canonical auf sich selbst und wird in den Index geschickt.

Mit dieser Variante versucht man die SEO-Power aller paginierten Seiten auf eine globale Seite zu lenken. Auf der anderen Seite muss man bedenken, dass alle Informationen auf nur einer Seite gesammelt werden, was die Informationserfassung für den Nutzer eventuell erschwert. Zudem kommt der Faktor „Pagespeed“ hinzu, wo man aufgrund der Länge der Seite aufpassen muss, dass diese auch schnell genug ausgespielt wird. Aus Sicht des Pagespeeds und der Übersichtlichkeit würde ich diese Variante nicht empfehlen. Auch das Sammeln aller Ranking-Signale stellt für mich kein überzeugendes Argument dar. Durch eine saubere und klare interne Verlinkung der paginierten Seiten kann man hier entgegenwirken. Zudem sind Suchmaschinen aktuell gut in der Lage die Suchintention des Nutzers zu erkennen und die passende paginierte Seite in den SERPs auszuspielen. Somit landet der Nutzer auch direkt auf der Seite mit den Informationen und muss nicht lange scrollen.

Tipps bei der Paginierung

  • Saubere URLs für paginierte Seiten verwenden.
  • In den meisten Fällen müssen paginierte Seiten nicht in die XML-Sitemap.
  • Wenn du kurzfristig keinen Zugang zum Quellcode hast, kannst du auch in der Google Search Console das URL-Parameter-Tool verwenden, um den Googlebot dahingehend zu steuern.

Mögliche Fehler

  • next/prev im Body anstatt im Head zu verwenden.
  • Auf der letzten Seite einen next zu verwenden, obwohl es keine weiteren Seiten gibt.
  • Nichts tun und keine Crawling- und Indexierungssteuerung vornehmen und so die Entscheidungen den Suchmaschinen überlassen.
  • Einen Canonical von paginierten Seite auf eine View-All-Page setzen.
  • Canonicals grundsätzlich immer auf die erste Seite setzen.
  • Alle paginierten Seiten ohne genauere Analyse und Bewertung immer pauschal auf noindex setzen, was dazu führt, dass nach längerer noindex-Zeit die internen Links als nofollow behandelt werden.
  • Crawling von paginierten Seiten blocken.

Wie wird die Paginierung angenommen?

Der letzte wichtige Punkt ist die Auswertung und laufende Beobachtung wie die Paginierung seitens Nutzer und Bots aufgenommen wird. Auf dieser Basis können dann weitere Entscheidungen getroffen werden, um die Paginierung zu optimieren. Dabei kann auf folgende Systeme und Daten zurückgegriffen werden.

  • Server-Logfiles: Hier ist vor allem interessant zu sehen, wie oft und welche paginierten Seiten Google und Co. crawlen. Daraus lassen sich Optimierungen zu Crawling-Steuerung einzelner URLs ableiten.
  • Google Analytics: In Google Analytics könnte man auswerten wie oft die Paginierung tatsächlich aufgerufen worden ist. Vor allem der SEO-Traffic ist interessant.
  • Google Search Console: In der Google Search Console können Daten zu Klicks und Impressionen näher analysiert werden, um hier zu erkennen zu welchen Keywords Google paginierte Seiten ausspielt.
  • Such-Operatoren: Mit eine site-Abfrage kann man prüfen, ob die paginierten Seiten überhaupt auffindbar sind und ob eine gewünschte Indexierung stattgefunden hat.

Last modified: 9. Januar 2020