Dieser Artikel wurde maschinell übersetzt.
Extreme ASP.NET
Suchmaschinenoptimierung mit ASP.NET 4.0, Visual Studio 2010 und IIS7
Scott Allen
Jeder Benutzer mit einer öffentlichen Website weiß, dass Suchmaschinen eine wichtige Rolle spielen, damit Besucher auf die Website gelangen. Es ist wichtig, von den Suchmaschinen gefunden und oben in den Abfrageergebnissen angezeigt zu werden. Höhere Positionen in den Ergebnissen können zu mehr Besuchern führen, was zu weiteren zahlenden Kunden und höheren Webeumsätzen führen kann. Die Suchmaschineoptimierung (Search Engine Optimization, SEO) ist das Optimieren einer Website, um höhere Positionen in den Suchergebnissen zu erreichen. In diesem Artikel betrachten wir SEO-Vorgehensweisen, die angewendet werden können, wenn Sie die neuesten Microsoft-Webtechnologien verwenden.
SEO-Grundlagen
Es spielen viele Faktoren eine Rolle, wenn eine Suchmaschine den relativen Rang Ihrer Website ausdrückt, und einige der wichtigeren Faktoren stehen nicht unter Ihrer direkten Kontrolle. Beispielsweise wissen wir, dass Suchmaschinen auf eingehende Links zu Ihrer Website achten. Ein eingehender Link ist ein Hyperlink in einer externen Domäne, der in Ihre Domäne verweist. Wenn eine Suchmaschine viele eingehende Links zu einer Website sieht, nimmt sie an, dass die Website interessante oder wichtige Inhalte aufweist und bewertet die Website entsprechend. Die SEO-Community beschreibt dieses Phänomen mit technischen Begriffen wie "Link-Juice" und "Link-Love". Je mehr "Link-Juice" eine Website besitzt, desto höher wird die Website in Suchergebnissen angezeigt.
Wenn Ihre Website interessant ist, beginnt der Rest der Welt natürlich damit, Links zu Ihrer Website hinzufügen. Da Visual Studio keine Schaltfläche "Die eigene Website interessanter machen" hat, müssen letztendlich Sie hart daran arbeiten, verlinkungswürdige Inhalte für das Internet bereitstellen.
Sobald Sie ausgezeichnete Inhalte implementiert haben, stellen Sie sicher, dass die Suchmaschinen Ihren Inhalt finden und verarbeiten können. Wir kennen die genauen Algorithmen nicht, die von Suchmaschinen wie Bing.com und Google verwendet werden. Jedoch haben die meisten Suchmaschinen Richtlinien für Design und Inhalt veröffentlicht, die Sie befolgen können, um Ihren Rang zu erhöhen. Die Internetcommunity hat auch umfangreiche Kenntnisse durch Experimente, Versuche und Fehlschläge erworben.
Der Schlüssel ist, zu denken wie eine Suchmaschine. Suchmaschinen führen keine Skripts aus und erkennen die Formen in Bildern auf Ihrer Website nicht. Stattdessen folgen sie methodisch Links, um die Inhalte, die sie im HTML-Code finden, zu analysieren, zu indizieren und einzustufen. Wenn Sie wie eine Suchmaschine denken, konzentrieren Sie sich auf den HTML-Code.
Schneller und gültiger HTML-Code
Visual Studio hat eine lange Geschichte in der WYSIWYG-Entwicklung für den Desktop und das Web. Der Web Form-Designer ermöglicht das Ziehen und Ablegen von Serversteuerelementen auf der Entwurfsoberfläche sowie das Festlegen von Werten für Steuerelemente im Eigenschaftenfenster. Sie können schnell eine Webseite erstellen, ohne HTML-Code anzuzeigen. Wenn Sie sich auf den HTML-Code konzentrieren, sollten Sie jedoch im Fenster mit der Quellansicht arbeiten. Die gute Nachricht ist, dass Sie in Visual Studio 2010 ohne Einbußen bei der Geschwindigkeit oder der Genauigkeit in der Quellansicht arbeiten können.
Visual Studio 2010 soll mit einer Reihe von HTML-IntelliSense-Codeausschnitten zum Erstellen allgemeiner HTML-Tags und serverseitiger Steuerelemente mit einer minimalen Anzahl von Tastenanschlägen bereitgestellt werden. Wenn Sie beispielsweise in der Quellansicht einer ASPX-Datei sind, können Sie img eingeben und dann die TAB-Taste drücken, um das in Abbildung 1 angezeigte Markup zu generieren. Mit nur vier Tastenanschlägen bekommen Sie mehr als 20 der Zeichen, die Sie eingeben müssen.
Beachten Sie, wie der Editor die src- und alt-Werte in Abbildung 1 hervorhebt. Wenn Codeausschnitte verwendet werden, können Sie mit TAB zwischen markierten Bereichen wechseln und beginnen, die Werte darin zu überschreiben. Dieses Feature ist ein weiterer Produktivitätsbonus, der Ihnen den Aufwand erspart, zur richtigen Einfügemarke zu navigieren und den vorhandenen Wert manuell zu löschen.
ASP.NET-Webformulare und ASP.NET-MVC-Projekte werden in Visual Studio 2010 über HTML-Ausschnitte verfügen, um alles von ActionLinks bis hin zu XHTML-DOCTYPE-Deklarationen zu erstellen. Die Ausschnitte sind erweiterbar, anpassbar und basieren auf demselben Ausschnittmodul, das seit Visual Studio 2005 zur Verfügung steht. Weitere Informationen zu Ausschnitten finden Sie im MSDN-Artikel von Lorenzo Minore (msdn.microsoft.com/magazine/cc188694.aspx).
Abbildung 2 Validierungseinstellungen
Validierung
Das Erstellen von gültigem HTML-Code ist entscheidend, wenn Suchmaschinen Ihre Website indizieren sollen. Webbrowser sind nachsichtig und werden versuchen, eine Seite mit fehlerhaftem HTML-Code so gut wie möglich zu rendern, wenn jedoch eine Suchmaschine auf ungültigen HTML-Code stößt, werden möglicherweise wichtige Inhalte übersprungen, oder die gesamte Seite wird abgelehnt.
Da verschiedene Versionen von HTML-Spezifikationen verfügbar sind, sollte jede Seite, die Sie mit Ihrer Anwendung übermitteln, ein DOCTYPE-Element enthalten. Das DOCTYPE-Element gibt die HTML-Version an, die von der Seite verwendet wird. Webbrowser, Suchmaschinen und andere Tools untersuchen das DOCTYPE-Element, sodass sie wissen, wie das Markup zu interpretieren ist. Visual Studio platziert ein DOCTYPE-Element an den richtigen Stellen, wenn Sie neue Webformularseiten und Masterseiten erstellen. Das standardmäßige DOCTPYE-Element, das im folgenden Codeausschnitt gezeigt wird, gibt an, dass die Seite der XHTML 1.0-Spezifikation entspricht:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Obwohl Sie die feinen Unterschiede zwischen den HTML-Spezifikationen nicht kennen müssen, müssen Sie wissen, ob die Seite einem bestimmten DOCTYPE entspricht. Visual Studio hat seit der Version 2005 Features zur HTML-Validierung, und die Validierung ist standardmäßig aktiviert. Sie können die Validierungseinstellungen und den Validierungszieltyp durch Navigieren zu den Einstellungen unter Extras | Optionen | Text-Editor | HTML | Validierung steuern, wie in Abbildung 2 dargestellt.
Die Einstellung "Als Warnungen" bedeutet, dass HTML-Validierungsprobleme den Build nicht behindern, aber als Warnungen im Fehlerfenster von Visual Studio angezeigt werden. In der Quellansicht für Webformulare lenkt der Text-Editor mit Wellenlinien Ihre Aufmerksamkeit auf HTML-Validierungsfehler. Sie können die Maus über das Element bewegen, um die genaue Fehlermeldung zu sehen, wie in Abbildung 3 veranschaulicht.
Beschreibendes HTML
Das img-Tag in Abbildung 3 ist ein gutes Beispiel dafür, wie Sie wie eine Suchmaschine denken müssen. Wie bereits erwähnt, sieht oder interpretiert eine Suchmaschine keine Formen und Wörter in einem Bild, aber wir können der Suchmaschine einige zusätzliche Informationen zum grafischen Inhalt mit alt-Attribut bereitstellen. Wenn das Bild ein Firmenlogo ist, lautet der alt-Text möglicherweise "Firmenlogo", aber es wäre besser, den Namen des Unternehmens in den alt-Text des Logos aufzunehmen. Eine Suchmaschine verwendet den alt-Text als weiteren Hinweis beim Analysieren des Designs und der Aussage der Seite.
Suchmaschinen suchen immer nach solchen Hinweisen, und für die Suchmaschine sind einige Hinweise wichtiger als andere. Beispielsweise verwenden wir normalerweise Überschriften-Tags wie h1-Tags, damit bestimmte Teile des Inhalts auf einer Seite hervorstechen. Suchmaschinen geben im Allgemeinen einem Schlüsselwort innerhalb eines h1-Tags mehr Gewicht, als wenn dasselbe Schlüsselwort in einen normalen Absatz vorkommt. Sie sollten sicherstellen, dass Ihre h1-Inhalte beschreibend sind und Schlüsselwörter verwenden, die im Zusammenhang mit dem Thema der Seite stehen. Es wird für die SEO-Arbeit empfohlen, immer mindestens ein h1-Tag auf jeder Seite zu verwenden.
Wenn Sie die für diesen Artikel gewählten Überschriften betrachten, sehen Sie, dass Ausdrücke wie "Gültiger HTML-Code", "SEO-Grundlagen" usw. verwendet werden. Dies sind alles beschreibende Texte, die dem Leser und der Suchmaschine eine gute Vorstellung vom Inhalt des Artikels vermitteln.
Beschreibende Titel und Metadaten
Ein anderer wichtiger Bereich für beschreibende Stichwörter ist das head-Tag. Der head-Abschnitt einer der Seiten im zugehörigen Codedownload ist hier dargestellt:
<head runat="server">
<title>Programming meta tags in ASP.NET 4.0</title>
<meta name="keywords" content="ASP.NET, ASP.NET 4.0, SEO, meta" />
<meta name="description" content=
"How to use Page.MetaKeywords and Page.MetaDescription in ASP.NET" />
</head>
Die Wörter innerhalb des Seitentitel-Tags bekommen eine hohe Gewichtung, daher sollten Sie einen guten Titel auswählen. Das head-Tag kann auch meta-Tags enthalten. Sie sollten zwei meta-Tags für SEO-Arbeit verwenden: eines zum Festlegen der der Seite zugeordneten Schlüsselwörter und eines zum Festlegen der Beschreibung der Seite. Besucher sehen im Allgemeinen diese Metainformationen nicht, aber einige Suchmaschinen zeigen die Metabeschreibung einer Seite in den Suchergebnissen an. Die Metaschlüsselwörter sind eine andere Stelle, die tatsächliche Bedeutung Ihrer Seite bekannt zu machen, indem der Suchmaschine wichtige Wörter zugeleitet werden, die der Seite zuzuordnen sind.
Wenn Sie dynamischen Inhalt erstellen oder die Titel und Metadaten häufig ändern, dann möchten Sie diesen Inhalt nicht als vordefinierten Code in eine ASPX-Datei aufnehmen. Glücklicherweise erleichtern die Webformulare in ASP.NET 4.0 die Bearbeitung von Titel, Schlüsselwörtern und Beschreibung einer Seite im CodeBehind:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Page.Title = "Programming meta tags in ASP.NET 4.0";
Page.MetaKeywords = "ASP.NET 4.0, meta, SEO, keywords";
Page.MetaDescription =
"How to use Page.Keywords and Page.Description in ASP.NET";
}
}
SEO-Tabus
Einige Websites versuchen, die Internetsuchmaschinen zu überlisten, indem die Seiten mit irrelevanten Schlüsselwörtern, zu vielen Schlüsselwörter oder mehrfach verwendeten Schlüsselwörtern gefüllt werden. Diese Methode (das so genannte "Keyword Stuffing") ist ein Versuch, für einen bestimmten Suchbegriff eine hohe Position in den Suchergebnissen zu erreichen, ohne den tatsächlichen Benutzern nützlichen Inhalt anzubieten. Die unglücklichen Besucher, die auf einer solchen Website landen, sind zwangsläufig enttäuscht, da sie keinen sinnvollen Inhalt finden, der Besuch zählt aber dennoch als Treffer, wenn der Werbeumsatz der Website ermittelt wird.
Die Suchmaschinen versuchen, betrügerisches Verhalten wie Keyword Stuffing zu erkennen, um die Qualität der Suchergebnisse zu schützen. Sie sollten darauf achten, dass eine Suchmaschine Ihre Website nicht versehentlich als irreführend kategorisiert, weil Sie zu viele Schlüsselwörter an zu vielen Stellen verwenden. Die Strafen der Suchmaschinen reichen von der Reduzierung der relativen Bedeutung einer Seite in den Suchergebnissen bis hin zum vollständigen Löschen des Inhalts einer Website aus dem Suchindex.
Eine weitere Praktik ist, einem Suchmaschinencrawler bestimmte Inhalte nicht bereitzustellen, die einem regulären Besucher bereitgestellt werden. Einige Websites ermitteln dazu den User-Agent-Header oder die IP-Adresse einer eingehenden Anforderung. Möglicherweise fallen Ihnen zwar einige nützliche Features für dieses Verhalten ein, aber zu viele Websites haben diese Technik angewendet, um bekannte Malware und Phishinginhalt vor den Suchmaschinen zu verbergen. Erkennt eine Suchmaschine dieses Verhalten (das als Cloaking bezeichnet wird), gibt es eine Strafe. Bleiben Sie ehrlich, stellen Sie gute Inhalte bereit, und versuchen Sie nicht, die Ergebnisse von Suchmaschinen zu manipulieren.
Sie sehen, wie die Eigenschaften Title, MetaKeywords und MetaDescription der Seite während des Page_Load-Ereignisses verwendet werden. Die Title-Eigenschaft gibt es in ASP.NET seit Version 2.0, jedoch MetaKeywords und MetaDescription sind neu in ASP.NET 4.0. Obwohl wir weiterhin Zeichenfolgen mit vordefiniertem Code verwenden, könnten Sie diese Eigenschaftenwerte aus einer beliebigen Datenquelle laden. Sie könnten dann jemandem, der verantwortlich ist für die Vermarktung der Website, erlauben, die Metadaten für die besten Suchmaschinenergebnisse zu optimieren. Dann müssten Sie keinen Quellcode für die Seite bearbeiten.
Effektive Schlüsselwörter und Beschreibungen geben Ihnen möglicherweise einen kleinen Vorteil in den Suchmaschinenergebnissen, der Inhalt ist aber weiterhin König. Weitere HTML-Tipps gibt es später in diesem Artikel, in den nächsten Abschnitten werden wir jedoch sehen, dass URLs eine wichtige Rolle dabei spielen können, wie Ihre Inhalte gefunden und eingestuft werden.
Kanonische URLs
Doppelte Inhalte stellen im Allgemeinen ein Problem für Suchmaschinen dar. Nehmen wir beispielsweise an, die Suchmaschine findet ein Rezept für Ihre berühmten Tacos unter zwei verschiedenen URLs. Welche URL sollte die Suchmaschine bevorzugen und als Link in die Suchergebnisse aufnehmen? Doppelte Inhalte stellen besonders dann ein Optimierungsproblem dar, wenn es um eingehende Links geht. Wenn die "Link-Love" für Ihr Taco-Rezept über zwei verschiedene URLs verteilt ist, bekommt Ihr berühmtes Taco-Rezept möglicherweise nicht den Suchmaschinenrang, den es verdient.
Leider kann es vorkommen, dass Sie Inhalte duplizieren, ohne es zu bemerken. Wenn Suchmaschinen Ihre Website aus einer URL mit dem Präfix www und ohne das Präfix www lesen können, finden sie den gleichen Inhalt unter zwei verschiedenen URLs. Beide URLs sollen funktionieren, aber nur eine URL soll die standardmäßige oder kanonische URL sein.
Nehmen Sie als Beispiel die Website Microsoft.com. Mit www.microsoft.com und microsoft.com gelangen Sie zu denselben Inhalten. Passen Sie aber genau auf, wenn Sie die Homepage mit microsoft.com aufrufen. Die Microsoft-Website leitet den Browser zu www.microsoft.com weiter. Microsoft verwendet die Weiterleitung, um www.microsoft.com als kanonische URL durchzusetzen.
Zum Glück können Besucher mit ASP.NET leicht an Ihre kanonische URL weitergeleitet werden. Sie müssen nur ein wenig Logik im BeginRequest-Ereignis der Anwendungspipeline bereitstellen. Dazu können Sie ein benutzerdefiniertes HTTP-Modul implementieren oder eine Application_BeginRequest-Methode in global.asax verwenden. In Abbildung 4 ist dargestellt, wie die Logik für dieses Feature aussehen könnte.
Der Code in Abbildung 4 nutzt ein weiteres neues Feature in ASP.NET 4.0: die RedirectPermanent-Methode des HttpResponse-Objekts. Die traditionelle Redirect-Methode in ASP.NET sendet den HTTP-Statuscode 302 zurück an den Client. Der Code 302 teilt dem Client mit, dass die Ressource vorübergehend an eine neue URL verschoben wurde und dass der Client nur einmal zu der neuen URL navigieren muss, um die Ressource zu finden. Die RedirectPermanent-Methode sendet den Code 301 an den Client. Der Code 301 teilt dem Client mit, dass die Ressource dauerhaft verschoben wurde und er nach der Ressource bei allen zukünftigen Anforderungen unter der neuen URL suchen muss. Der Aufruf von RedirectPermanent verwendet auch ein neues Feature in C# 4.0: die Syntax der benannten Parameter. Obwohl diese Syntax nicht für den Methodenaufruf erforderlich ist, wird durch die Syntax der benannten Parameter das Ziel des Parameters explizit.
Mit einer implementierten Weiterleitung sollten Webbrowser und Suchmaschinen nur Ihre kanonische URL verwenden. Ihre "Link-Love" wird konsolidiert, und Suchmaschineränge sollten sich verbessern.
Beschreibende URLs
Abbildung 4 RedirectPermanent-Methode des HttpResponse-Objekts
void Application_BeginRequest(object sender, EventArgs e)
{
HttpApplication app = sender as HttpApplication;
if (app != null)
{
string domain = "www.odetocode.com";
string host = app.Request.Url.Host.ToLower();
string path = app.Request.Url.PathAndQuery;
if (!String.Equals(host, domain))
{
Uri newURL = new Uri(app.Request.Url.Scheme +
"://" + domain + path);
app.Context.Response.RedirectPermanent(
newURL.ToString(), endResponse: true);
}
}
}
In der MSDN Magazine-Ausgabe Januar 2009 schrieb ich über die Verwendung die Routingfunktionen von .NET 3.5 SP1 mit ASP.NET-Web Forms msdn.microsoft.com/magazine/2009.01.extremeaspnet.aspx.Wie erwähnt, sind die fehlerfreien und beschreibenden URLs, die Sie mit Routing erreichen können, wichtig für Benutzer und Suchmaschinen.Beide erkennen mehr Bedeutung in einer URL wie /recipes/tacos als in /recipe.aspx?category=40&topic=32.In der ersten URL betrachtet die Suchmaschine "recipes" und "tacos" als wichtige Schlüsselwörter für die Ressource.Das Problem bei der zweiten URL ist, dass viele Suchmaschinencrawler nicht gut funktionieren, wenn eine URL eine Abfragezeichenfolge mit mehreren Parametern erfordert und die Zahlen in der Abfragezeichenfolge außerhalb der Back-End-Datenbank der Anwendung bedeutungslos sind.
Das ASP.NET-Team hat einige zusätzlichen Klassen der 4.0-Version hinzugefügt, die das Routing mit Webformularen leicht machen.Codedownload für diesen Artikel habe ich die Demo-Website aus dem Januar mit den neuen Klassen in ASP.NET 4.0 neu implementiert.Das Routing beginnt mit der Beschreibung der Routen, die die Anwendung während des Application_Start-Ereignisses verarbeitet.Der folgende Code ist eine RegisterRoutes-Methode, die die Website während des Application_Start-Ereignisses in global.asax aufruft:
void RegisterRoutes()
{
RouteTable.Routes.Add(
"Recipe",
new Route("recipe/{name}",
new PageRouteHandler("~/RoutedForms/RecipeDisplay.aspx",
checkPhysicalUrlAccess:false)));
}
URL-Rewrite von Carlos Aguilar Mares
URL-Rewrite für IIS 7.0 ist ein Tool, das Microsoft als Download zur Verfügung stellt unter iis. net/extensions/URLRewrite. Dieses Tool kann die gesamte URL-Kanonisierung vornehmen, ohne das Code erforderlich ist. Das Tool führt Hostheader-Normalisierung, Kleinschreibung und mehr aus (wie in diesem Blogbeitrag beschrieben: ruslany.net/2009/04/10-url-rewriting-tips-and-tricks/). Mit dem Tool können Sie auch beschädigte Links korrigieren, indem Sie sie anhand einer Karte neu schreiben oder umleiten. Sie müssen also die Anwendung/den HTML-Code nicht ändern. Siehe: blogs.msdn.com/carlosag/archive/2008/09/02/IIS7UrlRewriteSEO.aspx
URL-Rewrite kann auch die beschreibenden URLs für jede Version von ASP.NET erstellen und bietet eine für bessere Leistung als alle anderen vorhandenen Optionen, darunter ASP.NET-Routing, da das Tool mit Zwischenspeicherung im Kernelmodus arbeitet.
Abbildung 5 Parameter zum Abrufen des Namens aus RouteData, um Informationen zu einem Rezept anzuzeigen
private void DisplayRecipe()
{
var recipeName = RouteData.Values["name"] as string;
if (recipeName != null)
{
var recipe = new RecipeRepository().GetRecipe(recipeName);
if (recipe != null)
{
_name.Text = recipe.Name;
_ingredients.Text = recipe.Ingredients;
_instructions.Text = recipe.Instructions;
}
}
}
Wenn Sie meinen Artikel aus dem Januar lesen, werden Sie daran denken, das jede Route einen Routenhandler angeben muss. In RegisterRoutes legen wir den Handler für "Recipe" auf eine Instanz der neuen PageRouteHandler-Klasse in ASP.NET 4.0 fest. Das Routingmodul leitet alle eingehenden Anforderungs-URLs in der Form recipe/{name} an diesen Routenhandler weiter, wobei {name} für einen Routenparameter steht, den das Routingmodul aus der URL extrahiert.
Ein Webformular hat über eine RouteData-Eigenschaft Zugriff auf alle Routenparameter, die das Routingmodul aus der URL extrahiert. Diese Eigenschaft ist für die Page-Klasse in 4.0 neu. Der Code in Abbildung 5 ruft den Namensparameter aus RouteData ab und verwendet diesen Namen zum Nachschlagen und Anzeigen von Informationen über ein Rezept:
Eines der großartigen Features des Routingmoduls ist seine bidirektionale Funktionsweise. Das Routingmodul kann nicht nur URLs zum Steuern von HTTP-Anforderungen analysieren, sondern es kann auch URLs generieren, um bestimmte Seiten zu erreichen. Wenn Sie z. B. einen Link erstellen, der einen Websitebesucher zum Rezept für Tacos führt, können Sie das Routingmodul verwenden, um eine URL basierend auf der Routingkonfiguration zu generieren (anstelle der URL mit vordefiniertem Code). Mit ASP.NET 4.0 wird ein neuer Ausdrucks-Generator eingeführt, den Sie in Ihrem Markup verwenden können, um URLs aus der Routingkonfigurationstabelle zu generieren:
<asp:HyperLink NavigateUrl="<%$ RouteUrl:RouteName=recipe,name=tacos %>"
Text="Titillating Tacos" runat="server">
</asp:HyperLink>
Der Code oben zeigt den neuen Ausdrucks-Generator RouteUrl in Aktion. Dieser Ausdrucks-Generator weist das Routingmodul an, einen Link für die Route mit dem Namen "recipe" zu generieren und einen Namensparameter mit dem Wert "tacos" in die URL einzuschließen. Das Markup oben generiert den folgenden HTML-Code:
<a href="/recipe/tacos">Titillating Tacos</a>
Die URL oben ist verständlich, beschreibend und für eine Suchmaschine optimiert. Dieses Beispiel wirft jedoch ein größeres Problem mit ASP.NET auf. Serversteuerelemente für Webformulare ignorieren häufig den produzierten HTML-Code, und nicht alle Serversteuerelemente in ASP.NET sind für Suchmaschinen lesbar. Es ist Zeit, wieder über HTML zu sprechen.
HTML-Fehler
Wenn wir einen Link zum Taco-Rezept über einen LinkButton anstelle eines Hyperlinks erstellt hätten, wäre das Markup im Browser anders. Der Code für den LinkButton und der damit generierte HTML-Code ist hier dargestellt:
<asp:LinkButton runat="server" Text="Tacos"
PostBackUrl="<%$ RouteUrl:RouteName=recipe,name=tacos %>">
</asp:LinkButton>
<!-- generates the following (excerpted): -->
<a href="javascript:WebForm_DoPostBackWithOptions(...)">Tacos</a>
Wir haben noch ein Ankertag, auf das der Benutzer klicken kann, aber das Ankertag verwendet JavaScript, um den Browser zum Postback an den Server zu zwingen.LinkButton rendert diesen HTML-Code, um ein serverseitiges Click-Ereignis auszulösen, wenn der Benutzer auf den Link klickt.Leider funktionieren die Postback-Navigation von JavaScript und Suchmaschinen nicht zusammen.Der Link ist gewissermaßen unsichtbar für Suchmaschinen, und sie finden vielleicht die Zielseite nie.
Abbildung 6 IIS 7-Manager
Da serverseitige ASP.NET-Steuerelemente HTML ignorieren, müssen Sie die Serversteuerelemente mit Bedacht wählen.Wenn Sie die vollständige Kontrolle über das HTML-Markup in einer ASP.NET-Umgebung wünschen, sollten Sie das ASP.NET-MVC-Framework verwenden.Serversteuerelemente sind verboten, wenn Sie das MVC-Framework verwenden, und die Infrastruktur sowie die APIs sind zur Verwendung nur mit HTML-Markup implementiert.
Wenn Sie ASP.NET-Webformulare verwenden und für Suchmaschinen optimieren, könnten Sie den HTML-Quelltext anzeigen, der von Serversteuerelementen erzeugt wird.In jedem Webbrowser erhalten Sie diese Option.Verwenden Sie in Internet Explorer den Befehl Ansicht -> Quelltext.Seien Sie vorsichtig mit Steuerelementen, die eine Kombination aus HTML und JavaScript in Navigationsszenarien rendern.Wenn beispielsweise eine DropDownList verwendet wird, für die die AutoPostBack-Eigenschaft auf true gesetzt ist, muss JavaScript funktionieren.Wenn Sie mit dem automatischen Postback zu neuen Inhalten navigieren, wird der Inhalt für Suchmaschinen unsichtbar.
Natürlich können Anwendungen mit viel AJAX ein Problem für Suchmaschinen darstellen.Das UpdatePanel-Steuerelement und der Inhalt, der von Webdienstaufrufen aus JavaScript generiert wird, werden von Suchmaschinen nicht berücksichtigt.Der sicherste Ansatz für die SEO-Arbeit besteht darin, Inhalte direkt in Ihrem HTML-Code zu platzieren, um sie leicht auffindbar machen.
Nachdem Sie den HTML-Code, die Schlüsselwörter und Ihre URLs optimiert haben, wie messen Sie die Ergebnisse?Obwohl Ihr Suchmaschinenrang eine ultimative Bewertung Ihrer SEO-Bemühungen ist, wäre es schön, wenn Sie Probleme finden würden, bevor eine Website online geschaltet wird und eine Suchmaschine Ihre Seiten crawlt.Obwohl Visual Studio Sie über HTML-Validierungsprobleme informieren kann, werden Sie damit nicht über fehlende Metadaten und kanonische URLs gewarnt.Dies ist die Aufgabe eines neuen Produkts: des IIS-SEO-Toolkits.
Abbildung 7 Berichtszusammenfassung
Das IIS-SEO-Toolkit
Das IIS-SEO-Toolkit ist ein kostenloser Download für IIS 7 und erhältlich unter iis.net/extensions/SEOToolkit.Das Toolkit enthält ein Crawlingmodul, das Ihre lokale Webanwendung wie ein Suchmodul indiziert, und bietet Ihnen einen detaillierten Websiteanalysebericht.Das Toolkit kann auch robots.txt und sitemap-Dateien verwalten.Die Datei robots verwendet ein standardisiertes Format, um Suchmaschinen darüber zu informieren, was aus der Indizierung ausgeschlossen werden soll, während sitemap-Dateien Suchmaschinen auf Inhalt verweisen können, der enthalten sein sollen.Sie können auch sitemap-Dateien verwenden, um der Suchmaschine die Priorität, die Änderungsrate und das Änderungsdatum einer Ressource mitzuteilen.
Für die SEO-Arbeit ist der Websiteanalysebericht dabei von unschätzbarem Wert.Der Bericht sagt Ihnen alles über Ihre Website aus der Perspektive einer Suchmaschine.Nachdem Sie das Toolkit installiert haben, wird eine Option zur Websiteanalyse für Ihre Websites im Fenster des IIS 7-Managers angezeigt, wie in Abbildung 6 dargestellt.
Durch Doppelklicken auf das Symbol gelangen Sie zu einer Liste zuvor ausgeführter Berichte mit einer Aktionsoption zur Ausführung einer neuen Analyse.Ausführen einer Analysis ist genauso einfach, wie das Tool auf eine lokale HTTP-URL zu verweisen und auf OK zu klicken.Wenn die Analyse abgeschlossen ist, öffnet das Toolkit den Zusammenfassungsbericht, wie in Abbildung 7 gezeigt.
Das Toolkit wendet eine Reihe von Regeln und Heuristiken, um Sie auf SEO- und leistungsbezogene Probleme aufmerksam zu machen.Sie können fehlerhafte Links, fehlende Titel, zu kurze oder zu lange Beschreibungen und eine Vielzahl anderer potenzieller Probleme finden.Das Toolkit analysiert Links und bietet Berichte über die am häufigsten verlinkten Seiten und die Pfade, denen ein Besucher folgen müsste, um eine bestimmte Webseite zu erreichen.Das Toolkit enthält auch eine textbezogene Analyse des Inhalts jeder Seite.Diese Analyse können Sie verwenden, um die besten Schlüsselwörter für eine Seite zu finden.
Mit dem IIS-SEO-Toolkit können Sie die SEO-Arbeit ermitteln, die Sie ausführen müssen, und die SEO-Arbeit überprüfen, die Sie bereits abgeschlossen haben.Während dieser Artikel geschrieben wird, liegt das Toolkit in Betaversion 1 vor.Sie können davon ausgehen, dass zukünftige Versionen weitere Regeln und Analysefunktionen enthalten, zusätzlich zur Funktionalität, automatisch für Sie bestimmte Probleme beheben zu können.
Einfach und effektiv
Auch wenn Sie den umfangreichsten Inhalt der Welt haben, muss der Inhalt für Suchmaschinen und Besucher auffindbar gemacht werden.SEO ist eine Methode, zu denken wie eine Suchmaschine und Ihre Website für Crawler und Rangfolgealgorithmen auffällig zu machen.Visual Studio 2010 und ASP.NET 4.0 führen neue Funktionen ein, damit SEO-Arbeit einfacher in .NET 4.0 erledigt werden kann, während das IIS-SEO-Toolkit ein fantastisches Tool ist, um Ihre Website für Suchmaschinen besser zu machen.Wenn Sie die drei Tools in Kombination verwenden, können Sie Ihre SEO-Arbeit einfacher und effektiver vornehmen.
K.SCOTT ALLEN ist technischer Mitarbeiter von Pluralsight und Begründer von OdeToCode.Sie erreichen Allen über scott@OdeToCode.com, oder lesen Sie seinen Blog unter odetocode.com/blogs/scott.