PRG-Pattern - Was ist das?
In Online-Shops mit tausenden Artikeln führt meist eine Filter-Navigation (auch Faceted Navigation) durch das Sortiment. Sie wählen dort Farbe, Form, Preis und weitere Eigenschaften der Hose, der Uhr oder der Tasche aus und verschaffen sich so einen besseren Überblick.
Aus technischer SEO-Sicht entstehen dabei Probleme: Die Vielzahl an Artikeln führt zu Near Duplicate Content, also zu Inhalten, die sich in vielen Punkten gleichen. Für die Suchmaschinenoptimierung ist Duplicate Content jeder Art ein Nachteil. Außerdem generieren die Filtereinstellungen eine unüberschaubare (oder sogar unendliche) Menge an URLs. Diese überflüssigen URLs verbrauchen das Crawling-Budget des Google-Bots sehr schnell, denn Google stellt jeder Webpräsenz nur einen begrenzten Anteil an Ressourcen für das Durchsuchen der Seite zur Verfügung.
Um diesen Problemen entgegenzuwirken, wird das Post-Redirect-Get-Pattern (PRG) eingesetzt: eine Form der Linkmaskierung, die neben Canonicals und dem Aussperren von URLs in der robots.txt für Shops mit Faceted Navigation eine sinnvolle Ergänzung darstellt.

Post, Redirect, Get
Damit ein vom Nutzer ausgewählter Filter auch angewandt wird, werden mit Hilfe einer GET-Methode vom Server die Daten angefordert, nach welchen der Nutzer den Shop gefiltert haben möchte.
Nehmen wir an, ein Nutzer möchte die Artikel, beispielsweise Hosen, nach Preis sortieren. Er schickt diese Daten per GET an den Server und erhält anschließend eine Unterseite, auf der alle Hosen nach Preis geordnet sind. Für diese Unterseite entsteht eine neue, dynamische URL, und genau daraus ergibt sich der Near Duplicate Content.
Wie bereits erwähnt, ließe sich diesen Einstellungen ein Canonical-Verweis auf die eigentliche Shopseite mit Hosen mitgeben. Ein Canonical verbraucht jedoch auch Crawling-Budget, was wir vermeiden wollen.
Die POST-Methode übermittelt im Gegensatz zur GET-Methode Daten an den Server und empfängt sie nicht. Google kann POST-Formularen nicht (oder nur kaum) folgen, was das Crawling-Budget schont. Zudem erzeugt die POST-Methode keine neuen URLs, womit sich auch das Problem mit dem (Near) Duplicate Content erledigt.
Problem: Da keine neue URL entsteht, können Nutzer ihre Filtereinstellungen nicht untereinander teilen.
Lösung: das PRG-Pattern. Da Google einem POST-Request nicht folgen kann, wird bei einer Filtereinstellung zunächst dieser an den Server geschickt. Der Server gibt die Ergebnisseite jedoch nicht direkt aus. Über einen Redirect leitet er den Nutzer auf die Ergebnisseite weiter, sodass aus dem POST-Request ein GET wird.
Unendliche Möglichkeiten für Robots
Das PRG-Pattern bringt drei konkrete Vorteile mit sich:
- Durch den Einsatz eines POST-Befehls entsteht keine neue URL, und damit auch kein Duplicate Content.
- Die Umwandlung in einen GET-Befehl erlaubt die Generierung einer neuen URL (die vom Nutzer weitergegeben, als Lesezeichen verwendet oder auch vom Shop-Betreiber für Sonderaktionen genutzt werden kann), welche jedoch durch den zuvor gesendeten POST-Befehl nicht gecrawlt wird.
- Das PRG-Pattern hält den Google-Bot davon ab, die nahezu unbegrenzten Kombinationen einer Filternavigation zu durchsuchen, und spart so Crawling-Budget ein. Gerade für Shop-Seiten mit vielen Artikeln ist das eine wichtige Ressource.
Ja, Nein, Vielleicht
Das Ganze noch einmal zusammengefasst:

Ein Nachtrag: Unterstützt Ihr Content-Management-System (CMS) das PRG-Pattern nicht, sollten Sie in jedem Fall mit Canonical-Tags und noindex-Einträgen arbeiten.


