GET-Parameter: Unterschied zwischen den Versionen

Aus Seobility Wiki
Wechseln zu: Navigation, Suche
Zeile 5: Zeile 5:
 
GET-Parameter (auch: URL-Parameter) werden genutzt, wenn ein Client, zum Beispiel ein Browser, mittels HTTP-Protokoll eine bestimmte Ressource von einem Webserver anfordert. GET Parameter sind üblicherweise Name-Wert-Paare, die durch ein Gleichheitszeichen <code>=</code> getrennt werden.  
 
GET-Parameter (auch: URL-Parameter) werden genutzt, wenn ein Client, zum Beispiel ein Browser, mittels HTTP-Protokoll eine bestimmte Ressource von einem Webserver anfordert. GET Parameter sind üblicherweise Name-Wert-Paare, die durch ein Gleichheitszeichen <code>=</code> getrennt werden.  
  
== Funktionsweise der GET Anfrage ==
+
== Wie sehen URL-Parameter aus? ==
  
HTTP funktioniert als Anfrage-Antwort-Protokoll zwischen einem Client und einem Server. Insgesamt sind 9 verschiedene Anforderungsmethoden in HTTP definiert, um die gewünschte Aktion anzugeben, die für eine bestimmte Ressource vom Server ausgeführt werden soll. Jede dieser Anforderungsmethoden implementiert eine andere Semantik. Die GET Anfrage ist eine der gebräuchlichsten HTTP-Request-Methoden.
+
Eine beispielhafte URL könnte so aussehen:
  
Eine GET Anfrage wird verwendet, um Daten von einer angegebenen Ressource anzufordern. Ein Client, zum Beispiel ein Browser kann diese HTTP Methode verwenden, um eine Webressource von einem Server abzurufen. Mit der GET Anfrage werden vom Client zusammen mit der angefragten URL die GET-Parameter übermittelt. GET-Parameter sind immer Name-Wert-Paare. Die Name-Wert-Paare werden mit einem "?" an die URL angefügt. Der Name und der zugehörige Wert werden immer durch ein "=" voneinander getrennt.
+
<pre>https://www.example.com/index.html?name1=value1&name2=value2</pre>
  
Eine GET Anfrage hat folgende beispielhafte Syntax:
+
Der GET-Parameter beginnt immer mit einem Fragezeichen <code>?</code>. Darauf folgt der Name der Variable und der zugehörige Wert, getrennt durch ein <code>=</code>. Enthält eine URL mehr als einen Parameter, werden diese durch ein kaufmännisches und <code>&</code> getrennt.
  
<pre><nowiki>https://www.example.com/index.html?name1=value1</nowiki></pre>
+
== Verwendung von Get-Parametern ==
  
Mit einer GET Anfrage können aber auch mehrere Parameter übermittelt werden. Die Länge der Anfrage und damit die Anzahl der übermittelten Name-Wert-Paare ist nur durch die maximal mögliche Länge einer URL begrenzt. Bei der Übermittlung mehrerer Parameter werden die einzelnen Parameter durch das kaufmännische UND-Zeichen ("&") voneinander getrennt. Werden beispielsweise mehrere Parameter bei der Verwendung der Filterfunktion eines Onlineshops übergeben, kann die GET Anfrage wie folgt aussehen:
+
GET-Parameter lassen sich prinzipiell in <strong>aktiv</strong> und <strong>passiv</strong> unterteilen. Aktive Parameter modifizieren dabei den Content einer Seite beispielsweise durch:
  
<pre><nowiki>https://www.example.com/index.html?Kategorie=Mountainbikes&Groesse=29_Zoll&Farbe=Orange</nowiki></pre>
+
* Filtern der Inhalte: <code>?type=green</code> zeigt etwa auf einer E-Commerce-Seite nur grüne Produkte an.
 +
* Sortieren der Inhalte: <code>?sort=price_ascending</code> sortiert die angezeigten Produkte nach Preis, in diesem Falle aufsteigend.
  
Die Antwort des Servers auf eine Anfrage eines Clients enthält Informationen darüber, ob die angeforderte Ressource auf dem Server vorhanden ist und wo der Client die Ressource finden kann. Die Antwort enthält somit nicht direkt die angeforderte Ressource. Der Browser kann die Ressource jedoch im Anschluss anhand der vom Server erhaltenen Informationen laden und anzeigen. Der Grund für diese wechselseitigen Anfragen und Antworten zwischen Client und Server liegt darin, dass das HTTP-Protokoll auf eine Frage nur eine Antwort erlaubt.
+
Passive GET-Parameter hingegen verändern den Inhalt einer Seite nicht und werden primär zum Sammeln von Nutzerdaten genutzt. Anwendungsbeispiele sind unter anderem:
  
== Die Eigenschaften von GET-Anfragen ==
+
* Tracking von [[Session-ID]]s: <code>?sessionid=12345</code> So lassen sich Besuche einzelner Nutzer abspeichern, wenn Cookies abgelehnt wurden.
 +
* Tracking von [[Traffic]]: <code>?utm_source=google</code> Mithilfe von URL-Parametern lässt sich nachverfolgen, über welche Links Besucher auf die eigene Website gelangt sind. Diese UTM-Parameter funktionieren mit Analytics-Tools und können dabei helfen, den Erfolg einer Kampagne zu bewerten. Neben <code>source</code> stehen dabei <code>utm_medium</code>, <code>utm_campaign</code>, <code>utm_term</code> und<code>utm_content</code> zur Verfügung. Mehr Informationen dazu finden sich in Google's [[https://ga-dev-tools.appspot.com/campaign-url-builder/ Campaign URL Builder]].
  
GET-Anfragen können grundsätzlich zwischengespeichert und mit einem Lesezeichen versehen werden. Zudem verbleiben sie im Browserverlauf. Aus diesem Grund sollte diese HTTP-Anfragemethode nicht im Umgang mit sensiblen Daten, wie zum Beispiel Login-Informationen, verwendet werden.
+
== Mögliche Probleme im Zusammenhang mit GET-Parametern ==
  
Weiterhin werden mit einer GET-Anfrage nur Daten angefordert und keine Ressourcen verändert. Daher wird davon ausgegangen, dass es sich um eine sichere, wiederholbare Operation von Browsern, Caches und anderen HTTP-fähigen Komponenten handelt. Dies bedeutet, dass GET-Anfragen ohne vorherige Prüfung erneut ausgegeben werden können. So hat beispielsweise die Anzeige des Kontoguthabens, die mit einer GET-Anfrage realisiert wird, keinen Einfluss auf das Konto und kann daher sicher wiederholt werden. Aus diesem Grund ermöglichen es Browser einem Benutzer, eine Seite zu aktualisieren, die aus einer GET-Anfrage resultiert, ohne eine Warnung anzuzeigen. Auch andere HTTP-fähige Komponenten wie Proxys können GET-Anforderungen automatisch erneut übermitteln, wenn sie auf ein temporäres Netzwerkverbindungsproblem stoßen.
+
== Duplicate-Content ==
 
 
Ein Nachteil von GET-Anforderungen besteht allerdings darin, dass sie nur Daten in Form von Parametern bereitstellen können, die im URI oder als Cookies im Cookieanforderungsheader codiert sind. Daher kann diese Methode nicht zum Hochladen von Dateien oder für andere Vorgänge verwendet werden, bei denen große Datenmengen an den Server gesendet werden müssen.
 
 
 
== GET-Parameter und Duplicate-Content ==
 
  
 
Die Generierung der GET-Parameter, beispielsweise auf Basis der Einstellungen von Website-Filtern, kann schwerwiegende [[Duplicate Content]] Probleme bei E-Commerce-Seiten verursachen. Denn wenn Shopbesucher Filter verwenden können, um den Inhalt einer Seite zu sortieren oder einzugrenzen, werden zusätzliche URLs generiert, obwohl sich die Inhalte der Seiten nicht zwangsläufig unterscheiden. Zur Veranschaulichung dieses Problems soll folgendes Beispiel dienen:
 
Die Generierung der GET-Parameter, beispielsweise auf Basis der Einstellungen von Website-Filtern, kann schwerwiegende [[Duplicate Content]] Probleme bei E-Commerce-Seiten verursachen. Denn wenn Shopbesucher Filter verwenden können, um den Inhalt einer Seite zu sortieren oder einzugrenzen, werden zusätzliche URLs generiert, obwohl sich die Inhalte der Seiten nicht zwangsläufig unterscheiden. Zur Veranschaulichung dieses Problems soll folgendes Beispiel dienen:
Zeile 45: Zeile 43:
 
Wird dieser Link allen URLs, die durch unterschiedliche Kombinationen von Filtern entstehen können, hinzugefügt, wird die Link Power all dieser Unterseiten auf die kanonische URL gebündelt und Google weiß, welche Seite in den SERPs angezeigt werden soll.
 
Wird dieser Link allen URLs, die durch unterschiedliche Kombinationen von Filtern entstehen können, hinzugefügt, wird die Link Power all dieser Unterseiten auf die kanonische URL gebündelt und Google weiß, welche Seite in den SERPs angezeigt werden soll.
  
Der Canonical Tag ist somit eine einfache Lösung, um [[Suchmaschinen Crawler]] zu dem Inhalt zu führen, den sie indexieren sollen.  
+
Der Canonical Tag ist somit eine einfache Lösung, um [[Suchmaschinen Crawler]] zu dem Inhalt zu führen, den sie indexieren sollen.
 +
 
 +
=== Verschwendung von Crawl Budget ===
 +
 
 +
Google crawlt pro Website nur eine bestimmte Anzahl an URLs. Diese Menge an URLs wird Crawl Budget genannt. Mehr Informationen dazu finden sich im [https://www.seobility.net/de/blog/crawl-budget-optimierung/ Seobility Blog].
 +
 
 +
Hat eine Website durch die Verwendung von URL-Parametern viele crawlbare URLs, so kann es passieren, dass Googlebot das Crawl Budget für die falschen Seiten verbraucht. Eine Methode, diesem Problem vorzubeugen, ist die [[Robots.txt|robots.txt]]. Darin kann festgelegt werden, dass der Googlebot URLs mit bestimmten Parametern nicht crawlen soll.
 +
 
 +
=== Unleserliche URLs ===
  
Eine weitere Möglichkeit, um Duplicate Content durch GET-Parameter zu vermeiden, ist die zusätzliche Angabe der kanonischen URLs in einer [[XML-Sitemap|Sitemap]].  
+
Zuviele Parameter in URLs können dazu führen, dass die URL für Nutzer schlecht zu lesen und schwer zu merken ist. Im schlimmsten Fall kann das [[Usability]] und der [[CTR (Click-Through-Rate)|Click-Through-Rate]] schaden.
  
Grundsätzlich kann Duplicate Content Problemen vorgebeugt werden, indem überflüssige Parameter in einer URL vermieden werden. Das erhöht gleichzeitig die [[Usability]], da die URL durch die Aneinanderreihung der GET Parameter für User unleserlich und schwer verständlich wird.
+
Grundsätzlich kann sowohl Duplicate Content als auch Problemen mit Crawl Budget zumindest teilweise vorgebeugt werden, indem überflüssige Parameter in einer URL vermieden werden.
  
 
[[Kategorie:Web Entwicklung]]
 
[[Kategorie:Web Entwicklung]]

Version vom 23. November 2020, 14:25 Uhr

Definition

GET-Parameter
Abbildung: GET-Parameter - Autor: Seobility - Lizenz: CC BY-SA 4.0

GET-Parameter (auch: URL-Parameter) werden genutzt, wenn ein Client, zum Beispiel ein Browser, mittels HTTP-Protokoll eine bestimmte Ressource von einem Webserver anfordert. GET Parameter sind üblicherweise Name-Wert-Paare, die durch ein Gleichheitszeichen = getrennt werden.

Wie sehen URL-Parameter aus?

Eine beispielhafte URL könnte so aussehen:

https://www.example.com/index.html?name1=value1&name2=value2

Der GET-Parameter beginnt immer mit einem Fragezeichen ?. Darauf folgt der Name der Variable und der zugehörige Wert, getrennt durch ein =. Enthält eine URL mehr als einen Parameter, werden diese durch ein kaufmännisches und & getrennt.

Verwendung von Get-Parametern

GET-Parameter lassen sich prinzipiell in aktiv und passiv unterteilen. Aktive Parameter modifizieren dabei den Content einer Seite beispielsweise durch:

  • Filtern der Inhalte: ?type=green zeigt etwa auf einer E-Commerce-Seite nur grüne Produkte an.
  • Sortieren der Inhalte: ?sort=price_ascending sortiert die angezeigten Produkte nach Preis, in diesem Falle aufsteigend.

Passive GET-Parameter hingegen verändern den Inhalt einer Seite nicht und werden primär zum Sammeln von Nutzerdaten genutzt. Anwendungsbeispiele sind unter anderem:

  • Tracking von Session-IDs: ?sessionid=12345 So lassen sich Besuche einzelner Nutzer abspeichern, wenn Cookies abgelehnt wurden.
  • Tracking von Traffic: ?utm_source=google Mithilfe von URL-Parametern lässt sich nachverfolgen, über welche Links Besucher auf die eigene Website gelangt sind. Diese UTM-Parameter funktionieren mit Analytics-Tools und können dabei helfen, den Erfolg einer Kampagne zu bewerten. Neben source stehen dabei utm_medium, utm_campaign, utm_term undutm_content zur Verfügung. Mehr Informationen dazu finden sich in Google's [Campaign URL Builder].

Mögliche Probleme im Zusammenhang mit GET-Parametern

Duplicate-Content

Die Generierung der GET-Parameter, beispielsweise auf Basis der Einstellungen von Website-Filtern, kann schwerwiegende Duplicate Content Probleme bei E-Commerce-Seiten verursachen. Denn wenn Shopbesucher Filter verwenden können, um den Inhalt einer Seite zu sortieren oder einzugrenzen, werden zusätzliche URLs generiert, obwohl sich die Inhalte der Seiten nicht zwangsläufig unterscheiden. Zur Veranschaulichung dieses Problems soll folgendes Beispiel dienen:

Wenn die URL einer E-Commerce-Website die vollständige Liste aller vorhandenen Produkte in aufsteigender alphabetischer Reihenfolge enthält und der Benutzer die Produkte in absteigender Reihenfolge sortiert, ist die URL für die neue Sortierung /all-products.html?sort=Z-A. In diesem Fall hat die neue URL den gleichen Inhalt wie die ursprüngliche Seite, nur in einer anderen Reihenfolge. Dies ist allerdings problematisch, da diese Inhalte von Google als Duplicate Content gewertet werden können. Die Folge ist, dass Google nicht bestimmen kann, welche Seite in den Suchergebnissen angezeigt werden soll und welche Rankingsignale welcher der URLs zugeordnet werden sollen, wodurch sich die Relevanz auf die beiden Unterseiten aufteilt.

Eine Lösung dieses Problems besteht darin, die Beziehung der Seiten zueinander eindeutig durch Canonical-Tags zu definieren.

Canonical-Tags werden verwendet, um Suchmaschinen anzuzeigen, dass bestimmte Seiten als Kopien einer bestimmten URL behandelt werden sollen und dass alle Rankings tatsächlich der kanonischen URL gutgeschrieben werden sollten. Ein Canonical Tag kann im <head>-Bereich des HTML-Dokuments oder alternativ in den HTTP-Header der Webseite eingefügt werden. Wird der Canonical Tag im <head>-Bereich implementiert lautet die Syntax beispielsweise:

<link rel="canonical" href="https://www.example.com/all-products.html"/>

Wird dieser Link allen URLs, die durch unterschiedliche Kombinationen von Filtern entstehen können, hinzugefügt, wird die Link Power all dieser Unterseiten auf die kanonische URL gebündelt und Google weiß, welche Seite in den SERPs angezeigt werden soll.

Der Canonical Tag ist somit eine einfache Lösung, um Suchmaschinen Crawler zu dem Inhalt zu führen, den sie indexieren sollen.

Verschwendung von Crawl Budget

Google crawlt pro Website nur eine bestimmte Anzahl an URLs. Diese Menge an URLs wird Crawl Budget genannt. Mehr Informationen dazu finden sich im Seobility Blog.

Hat eine Website durch die Verwendung von URL-Parametern viele crawlbare URLs, so kann es passieren, dass Googlebot das Crawl Budget für die falschen Seiten verbraucht. Eine Methode, diesem Problem vorzubeugen, ist die robots.txt. Darin kann festgelegt werden, dass der Googlebot URLs mit bestimmten Parametern nicht crawlen soll.

Unleserliche URLs

Zuviele Parameter in URLs können dazu führen, dass die URL für Nutzer schlecht zu lesen und schwer zu merken ist. Im schlimmsten Fall kann das Usability und der Click-Through-Rate schaden.

Grundsätzlich kann sowohl Duplicate Content als auch Problemen mit Crawl Budget zumindest teilweise vorgebeugt werden, indem überflüssige Parameter in einer URL vermieden werden.

Überprüfen Sie Ihre Webseite mit
dem SEO Check!