Das Final Release von DotNetNuke (Version 3.0.12) ist nun released, die ersten Drittanbieter Module für DNN 3.X sind auch verfügbar. Was ist aber mit der Suchmaschinenfreundlichkeit von DotNetNuke. Hat sich das in der Version 3.0 verbessert ?
Die Suchmaschinen und DotNetNuke
Nachdem das warten auf die Final Release Version von DotNetNuke 3.X nun endgültig vorüber ist, wird nach den rcihtigen Upgrade Pfaden für das Upgrade von DotNetNuke 2.12 Portalen gesucht.
Bei dieser Suche, und nun meine ich meinen persönlichen Upgrade Pfad meiner DotNetNuke 2.12 Portal beginne ich zuerst einmal damit die Suchmaschinenfreundlichkeit von DotNetNuke 3.X Webseiten mit den von mir betriebenen DotNetNuke 2.12 Portalen zu vergleichen..
Das größte Übel bisher war doch immer die sehr unglücklichen URL's. Suchmaschinen mögen keine Parametrisierten URL's.
Ich hatte das Problem URL in meinen DotNetNuke 2.12 Portalen mit einem eigenen URL Rewriting Module gelöst. In DNN 3.X sind nun Spider Frindly URL's im Core enthalten, auch wenn mir die Lösung noch nicht so gefällt.
Nun kommen wir aber zum zweiten und genau so großen Problem, dem Seitenaufbau einer DotNetNuke Seite.
Ich möchte nun auch keinen Vortrag über die Möglichkeiten von Seitenoptimierung von Webseiten halten, deshalb stelle ich nun einfach einige Thesen in den Raum, die ich an dieser Stelle nicht weiter erläutern möchte.
Falls jemand Interesse über die Hintergründe dieser Thesen hat, kann er mich gerne kontaktieren.
Dann hier meine Thesen:
Auf einer DotNetNuke Seite wird eigentlich keine normale HTML Formatierung wie < H1 >, < H2 > usw. mehr verwendet, man verwendet CSS Klassen, die sind zwar nett, aber viele Suchmaschinen verarbeiten nun mal die HTML Formatierung um den Inhalt einer Seite zu gewichten.
Auf einer DotNetNuke Seite kommt der eigentlich Inhalt, wenn an sich den HTML Quelltext anschaut, eigentlich viel zu Spät. Viele Suchmaschinen bewerten gerade den Anfang des Textes auf einer Seite viel Höher als Text der irgendwann einmal auf einer Webseite kommen.
Ich möchte es erst einmal bei diesen beiden Thesen belassen.
Da dies kein neues Thema von DNN 3.X ist, sondern das gleiche Problem bereits in DotNetNuke 2.12 bestand, habe ich eigentlich nichts neues erfinden müssen, da ich dieses Problem bereits in der DotNetNuke 2.12 Version bereits gelöst hatte. Wobei gelöst eventuell etwas übertrieben ist, aber ich habe eine Möglichkeit gefunden, die es ermöglicht, dass die Suchmaschinen etwas freundlicher mit meinen Seiten umgeht, als es für DotNetNuke Seiten üblich ist.
Wie sieht nun mein Lösungsweg aus:
Die Lösung des Rätsels ist einfach die Default.aspx um ein Control zu erweitern.
Dieses Control ich nenne es TextInjector wird einfach so weit als Möglich nach oben in den Quelltext gesetzt. Im Original sieht dass dann so aus:
Schauen wir uns den Body Bereich der Default.aspx einmal an:
< BODY ID="Body" runat="server" ONSCROLL="__dnn_bodyscroll()" BOTTOMMARGIN="0" LEFTMARGIN="0"
TOPMARGIN="0" RIGHTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
< noscript >< /noscrip t>
< asp:Label ID="SkinError" Runat="server" CssClass="NormalRed" Visible="False">< /asp:Label>
< INPUT ID="__dnnVariable" runat="server" NAME="__dnnVariable" TYPE="hidden">
< /BODY >
Wie wir sehen können ist die erste Stelle an der man ein Injector Control einfügen könnte an der nachfolgend dargestellten Stelle.
< BODY ID="Body" runat="server" ONSCROLL="__dnn_bodyscroll()" BOTTOMMARGIN="0" LEFTMARGIN="0"
TOPMARGIN="0" RIGHTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
< noscript >< /noscrip t>
< div class="Invisible" id="TextInjector" runat="server" EnableViewState="false" >< /div >
< asp:Label ID="SkinError" Runat="server" CssClass="NormalRed" Visible="False">< /asp:Label>
< INPUT ID="__dnnVariable" runat="server" NAME="__dnnVariable" TYPE="hidden">
< /BODY >
Was will ich nun mit diesem Injector Control ?
Ganz einfach dort Injizieren wir durch ein Modul das wir in DNN Laden folgenden Informationen:
Den Titel des Tab
Die Beschreibung des Tab
Und die Modul Titel aller auf dem ab enthaltenen Module.
Wenn wir dies ohne die entsprechende CSS Klasse machen würden, dann würde die Seite schon merkwürdig ausssehen.
Da wir aber mir einer Klasse invisible arbeiten die wie folgt deklariert ist:
.Invisible {
display: none;
}
Wird der Text für den Benutzer unsichtbar dargestellt und stört somit nicht unser schöne gestaltetet Webseite.
Um nun den Effekt unseres eingefügten Textes noch zu erhöhen, fügen wir nicht einfach den Text ein, sondern wir verwenden dafür auch noch die gute alte HTML Formatierung wie Header 1 Header 2 usw.
Die Vergangenheit hat gezeigt dass die besten Suchmaschinen Bewertungen bei folgenden Einstellungen erziehlt werden:
Der Tab Titel wird mit Header 1 formatiert.
Die Tab Beschreibung wird einfach in Paragraph gesetzt
Die Module Titel der auf dem Tab vorhandenen Module werden mit Header 3 formatiert.
Ja und damit man das ganze nicht auch noch selbst machen muss, habe ich ein DNN Modul entwickelt, dass genau dies macht.
Das TextInjector Modul kann im Downloadbereich heruntergeladen werden.
Hier geht es direkt zum Downloadbereich