Suchmaschinenoptimierung bei ASP.NET Teil 2 – Suchmaschinenfreundliche URL’s


Der Artikel beschäftigt sich damit wie man in seinen eigenen ASP.NET Anwendungen und Seite suchmaschinenfreundliche URL’s integrieren kann.

Noch immer hat der Grundsatz, dass Suchmaschinen mit vielen Parametern in den URL’s nicht klar kommen. Es hat sich zwar zunehmend immer weiter gebessert, aber unbedingt darauf verlassen sollte man sich nicht. Zudem heracht zumindest das Gerücht, dass z.B. Google auch die Url’s mit indiziert, und dem Inhalt der URL’s eine nicht zu unterschätzende Gewichtung zukommen lässt. Glaubt man machen SEO Berichten, so haben die in den Url’s enthaltenen Begriffe die höchste Wertigkeit. Und zu guter Letzt ist es für den Besucher natürlich auch angenehmer wenn er URL’s zu Gesicht bekommt, aus deren er den Inhalt der Seite ablesen kann.

Ich kenne mittlerweile keine CMS Systeme mehr die darauf nicht Rücksicht nehmen würden, bzw. denen man die SEO Freundlichkeit nicht mit wenigen Handgriffen per Plugin oder Boardmitteln beibringen kann. Ich spreche hier als Anwendungsentwickler mit dem Schwerpunkt der Entwicklung von  Anwendungen auf WEB Basis. Nicht immer aber oft ist dabei auch die Suchmaschinenoptimierung ein wichtiger Bestandteil.

ASP.NET ist in der Hinsicht nicht immer ein Freund, aber es gibt Mittel und Wege.

Um Suchmaschinenfreundliche URL’s generell ind ASP.NET umsetzten zu können benötigen wir das URLRewrite Modul für den IIS. Dies ist in einer Srandard Installation des IIS nicht vorhanden. Diese kann man sich leicht von der Seite http://www.iis.net über den Web Platform Installer runter laden und installieren.

Das URLRewrite Modul lässt sich dann nachdem es installiert und in der IIS Website Konfiguration aktiviert wurde,  mit Rewriteregeln in der Web.config mit den entsprechenden regeln füttern.

Dazu erstsellt man unter dem Tag <system.webServer> folgende Struktur:

<rewrite>
<rules>
<rule name=“Rewrite Rule“>
<match url=“^cms/([0-9]+)“/>
<action type=“Rewrite“ url=“Zielseite.aspx?c={R:1}“/>
</rule>
</rules>
</rewrite>

Rule name kann ein beliebger Name für die Regel sein.

Match Url enthält die Regexpression für die Regel.

Action Type gibt in diesem Fall an wo hin der Request weitergeleitet werden soll, als die Url die wir „verschleiern wollen.

Beispiel mit einem Parameter

<rule name="CMS Rewrite">
<match url="^cms/([0-9]+)"/>
<action type="Rewrite" url="cms.aspx?c={R:1}"/>
</rule>

Diese Regel wertet die suchmaschinenfreundliche URL aus welche cms/ enhält. Die nach dem / angehängte Zahl gibt den eigentlichen Content (z.B. ID des Datensatzes) an der angezeigt werden soll. Die dabei ausgewertete ID wird an die richtige Server Url per Parameter mit dem Tag {R:1} angehängt.

Aus http://www.angermeier.net/cms.aspx?c=123 würde damit eine suchmaschinenfreundliche Url http://www.angermeier.net/cms/123

Beispiel mit 2 Paraneter

<rule name=“Produkt Image Rewrite“>
<match url=“^produkt/([0-9]+)/([0-9]+)“/>
<action type=“Rewrite“ url=“produkt.aspx?p={R:1}&amp;img={R:2}“/>
</rule>

Hier ist der Aufbau wieder ähnlich dem ersten Beispiel, enthält aber 2 Parameter die wir über die Rewrite Regeln suchmaschinenfreundlich Gestalten werden. {R:1} gibt dabei den ersten Parameter an, {R:2} den zweiten Parameter.

Aus http://www.angermeier.net/produkt.aspx?p=123&img=456 würde damit eine suchmaschinenfreundliche Url http://www.angermeier.net/produkt/123/456

Dieses Szenario lässt sich sicherlich noch wesentlich verbessern, indem man am ende der url einfach den Namen des Produktes anhängt. Wie zum Beispiel:

http://www.angermeier.net/produkt/3838/1/Aqua_science_blue_54W_22K_T5.html

Die Regexpression sucht nach dem Wortteil Produkt, gefolgt von zwei Nummern. Alles was danach noch angehängt wird, wird nicht berücksichtigt. Dies lässt sehr viel Freiraum für die eigene Kreativität.

Mit dieser Rewrite Engine und den Regexpressions hat man sehr viel Spielraum für seine eigene Vorstellung, und kann sich optimal auf die Gegebenheiten einstellen. Dieser Beitrag ist keine Anleitung wie man Suchmaschinenoptimierte URL’s am besten optimiert, sondern wie man dies grundsätzlich bei ASP.NET Anwendungen umsetzten kann. Dazu finden sich im Web einige sehr spannende Anleitungen und How To’s.

[adrotate group=“1″]

Schreibe einen Kommentar