URL Encoding
URL Encoding ist eine Methode, mit deren Hilfe auch Sonderzeichen oder ungültige Zeichen in einer URL von Browsern oder Servern interpretiert werden können. Die entsprechende URL wird in diesem Fall in den ASCII-Code übertragen. Es empfiehlt sich daher, für URLs ausschließlich ASCII-Zeichen zu verwenden. Der Standard für den Aufbau von URLs wird in RFC3986 definiert.
Hintergrund
Die Datenübertragung im Internet basiert seit den Anfängen auf dem American Standard Code for Information Interchange, kurz ASCII. Die verfügbaren Zeichen basieren auf einer englischen Schreibmaschinentastatur und umfassen sowohl das lateinische Alphabet in Groß- und Kleinbuchstaben sowie arabischen Ziffern und einigen Satzzeichen. Zugeordnet wurden ASCII-Zeichen ursprünglich einem 7-Bit-Muster. Heute wird ein 8-Bit-Muster genutzt. Auf diese Weise lassen sich alle möglichen Zeichen und Codierungen darstellen, da 28 mögliche Kombinationen erstellt werden können.
URL Encoding basiert schließlich auf ASCII und liefert Lösungen für Leerzeichen oder anderen Sonderzeichen in URLs. Diese Probleme können vor allem bei automatisch generierten URLs auftreten, wenn zum Beispiel Produkt- oder Artikeltitel in URLs umgewandelt werden.
Das Encoding in URLs wird immer mit einem % eingeleitet.
Beispiel
Ein Leerzeichen in der URL wird meist als Ende einer URL interpretiert. Kommt ein Leerzeichen inmitten der URL (z.B. www.beispiel.de/neue seite.html ) wird es zu einem Fehler führen, da Browser die URL nicht auflösen kann. Ruft ein Nutzer eine solche URL auf, erhält er zum Beispiel einen 404-Fehlercode. Durch das URL-Encoding wird das Leerzeichen durch ein ASCII-Zeichen, in diesem Fall um 20 hexadezimal ersetzt (%20)
http://www.beispiel.de/neue%20seite.html
Ungültige Zeichen
Bei diesen Zeichen besteht die Gefahr, dass sie nicht richtig interpretiert werden. Es empfiehlt sich folgende Zeichen in jedem Fall zu encoden:
„ < > # % { } \ | ^ [ ] ` und Leerzeichen
Reservierte Zeichen
Folgende Zeichen sind reserviert und haben eine bestimmte Bedeutung im Datenpfad. Sie können nicht immer einfach encodiert werden. Dazu gehören:
! # $ % & ' ( ) * + , / : ; = ? @ [ ]
So markiert die # in einer URL zum Beispiel eine Sprungmarke innerhalb einer Website. Das &-Zeichen markiert einen Query-String und trennt einzelne Parameter in der URL voneinander ab, während das Gleichheitszeichen (=) den Wert eines Parameters spezifiziert.
Nicht reservierte Zeichen
Diese Zeichen sind nicht reserviert und haben keine vorgegebene Bedeutung für die URL. Zu den nicht reservierten Zeichen zählen:
Buchstaben [A-Z, a-z], Ziffern [0-9] und - _ . ~
Encoding Tools
Im Web finden sich viele Tools, die eine ungültige URL schnell und einfach in eine gültige umwandeln können. Bei kleineren Websites kann manuelles URL Encoding noch zu handhaben sein. Doch bei größeren Webprojekten sollten Webmaster und SEO schon im Vorfeld darauf achten, URLs so zu codieren, dass sie problemlos von Browsern und Servern interpretiert werden können.
Bedeutung für SEO
URL-Encoding ist wichtig, damit User und Server URLs korrekt interpretieren und abrufen können. So können fehlerhafte URLs zu einer hohen Zahl von Fehlercodes führen. Jeder Fehlercode wiederum kann von Suchmaschinen als mangelhafte Pflege der Website interpretiert werden. Nutzer selbst senden negative Signale an Google und andere Suchmaschinen, wenn sie von Fehlerseiten schnell wieder abspringen, die zum Beispiel durch abgebrochene URLs mit Leerzeichen entstehen. Wichtig ist, beim URL-Encoding darauf zu achten, dass zum einen keine Parameter-Zeichen oder andere reservierte Zeichen codiert werden. Zugleich kann auch das Umwandeln in SEF-URLs zu Problemen mit doppelter Codierung und somit zu Problemen beim Abrufen von URLs führen. Um Probleme mit der URL Encodierung zu vermeiden, sollte UTF-8 zur Kodierung verwendet werden.
Weblinks
- http://www.tutorialspoint.com/html/html_url_encoding.htm
- http://seo2.0.onreact.com/top-10-fatal-url-design-mistakes
- http://synapticloop.com/blog/tomes/seo-friendly-url-encoding-for-search-results/
- http://tools.ietf.org/html/rfc3986
- URL-Encoder