Die Funktion der Sitemap besteht darin, Suchmaschinen zu ermöglichen, so schnell wie möglich mehr von den verschiedenen Webseiten der Website einzubeziehen.
Hier müssen wir zunächst ein Grundprinzip verstehen, die Crawling-Methode von Suchmaschinen. Das gesamte Internet ist wie ein kreuz und quer verlaufendes „Netz“: Jeder Knoten des Netzwerks ist jede Webseite, und jede Webseite ist über URLs miteinander verbunden. Ein Spider kann von einer Webseite aus starten und über die URL auf der Webseite zu einer anderen Webseite kriechen; dann kann er über die URL auf einer anderen Webseite zu weiteren Webseiten kriechen ... und so weiter. Wenn es sich jedoch um eine neu veröffentlichte Website handelt, gibt es möglicherweise keine andere URL, die darauf verweist, sodass sie niemals „gecrawlt“ (eingeschlossen) wird. Um dieses Problem zu lösen, kann die neue Website die URL aktiv an die Suchmaschine übermitteln und Spiders zum Crawlen beantragen (Google-Anwendungs-URL:), bei der Beantragung wird jedoch im Allgemeinen nur die URL einer Homepage übermittelt.
Damit alle URLs (insbesondere dynamisch generierte) schnell und einfach von Spidern abgerufen werden können, müssen wir eine umfassende, vollständige, klare Struktur und eine zeitnah aktualisierte Sitemap bereitstellen.
Und um mit der robots.txt-Datei mit doppeltem Inhalt umzugehen, verwenden wir die .ashx-Datei, um eine Sitemap im XML-Format basierend auf sitemaps.org zu generieren. Nachdem die Sitemap erstellt wurde, können wir sie an Suchmaschinen wie Google übermitteln. Zahlreiche Artikel bestätigen, dass das Einreichen einer Sitemap die Geschwindigkeit und Tiefe der Einbindung der Website erheblich verbessert. Fast alle anderen SEO-Methoden können schwierig zu beweisen, unwirksam oder sogar Nebenwirkungen verursachen, mit Ausnahme der Übermittlung einer Sitemap!
Linq to XML bietet uns ein nahezu perfektes Bedienerlebnis.
<%@ WebHandler Language="C#" Class="website" %>
Verwenden des Systems;
mit System.Web;
mit System.Xml;
mit System.Xml.Linq;
mit System.Linq;
öffentliche Klassenwebsite: IHttpHandler {
public void ProcessRequest (HttpContext-Kontext) {
context.Response.ContentType = "text/xml";
//Deklarationsinformationen der Datei. Der Wert „yes“ des dritten Parameters „standalone“ gibt an, dass dieses XML-Dokument eigenständig ist und nicht auf einer extern definierten DTD basiert.
XDeclaration-Deklaration = new XDeclaration("1.0", "UTF-8", "yes");
context.Response.Write(deklaration);
//Namespace der XML-Datei
XNamespace ns = " http://www.google.com/schemas/sitemap/0.84 ";
XElement siteMap = new XElement(ns + "urlset");
string FixedUrl = " http://www.freeflying.com/article ";
string WholeUrl = string.Empty;
//Schleifen Sie die Daten aus und konvertieren Sie sie in XML-Knoten
foreach (var-Element in Articles.GetArticles())
{
XElement-URL = neues XElement("url");
WholeUrl = string.Format("{0}?id={1}&catelog={2}",fixedUrl,item.ID,item.Catelog);
XElement loc = new XElement("loc", WholeUrl);
XElement lastmod = new XElement("lastmod", item.LastMod.AddDays(-23).ToShortDateString());
XElement changefreq = new XElement("changefreq", item.Frequency);
XElement-Priorität = neues XElement("priority", item.Weight);
url.Add(loc, lastmod, changefreq, priorität);
siteMap.Add(url);
}
//Endlich die gesamte XML-Datei ausgeben
context.Response.Write(siteMap);
}
öffentlicher bool IsReusable {
erhalten {
return false;
}
}
}
Auch bei RSS kommt die XML-Technologie zum Einsatz
<%@ WebHandler Language="C#" Class="rss" %>
Verwenden des Systems;
mit System.Web;
mit System.Xml;
mit System.Xml.Linq;
öffentliche Klasse RSS: IHttpHandler {
public void ProcessRequest (HttpContext-Kontext) {
context.Response.ContentType = "text/xml";
context.Response.Write("<?xml version="1.0" binding="UTF-8" ?>");
XElement rssFeed = neues XElement("rss", neues XAttribute("version","2.0"));
string FixedUrl = " http://www.freeflying.com/article ";
string WholeUrl = string.Empty;
XElement-Kanal = neues XElement("Kanal",
neues XElement("title", "freeflying"),
neues XElement("link", festeUrl),
neues XElement("Beschreibung","die Website für traumfreies Fliegen"),
neues XElement("pubDate",DateTime.Now.ToString())
);
foreach (var-Artikel in Articles.GetArticles())
{
XElement item = neues XElement("item");
XElement title = new XElement("title", Article.Title);
WholeUrl = string.Format("{0}?id={1}&catelog={2}", FixedUrl, Article.ID, Article.Catelog);
XElement link = new XElement("link", WholeUrl);
XElement-Beschreibung = neues XElement("Beschreibung", Artikel.Beschreibung);
XElement pubDate = new XElement("pubDate", Article.LastMod.ToString());
item.Add(title,link,description,pubDate);
Kanal.Add(item);
}
rssFeed.Add(channel);
context.Response.Write(rssFeed);
}
öffentlicher bool IsReusable {
erhalten {
return false;
}
}
}
simulierte Daten
Verwenden des Systems;
Verwenden von System.Data;
Verwenden von System.Configuration;
mit System.Linq;
mit System.Web;
mit System.Web.Security;
mit System.Web.UI;
mit System.Web.UI.HtmlControls;
mit System.Web.UI.WebControls;
mit System.Web.UI.WebControls.WebParts;
mit System.Xml.Linq;
mit System.Web.UI.MobileControls;
mit System.Collections.Generic;
/// <Zusammenfassung>
/// Zusammenfassende Beschreibung für Artikel
/// </summary>
öffentliche Klassenartikel
{
publicArticles()
{
//
// TODO: Konstruktorlogik hier hinzufügen
//
}
öffentliche statische Liste<Article> GetArticles()
{
return new List<Article>(){
neuer Artikel(234, „Blog“, DateTime.Now.AddDays(-23), Freq.none, 0.8, „asp.net seo“, „Artikel über SEO in asp.net“),
neuer Artikel(267, „Blog“, DateTime.Now.AddDays(-245), Freq.daily, 0.6, „ado.net pro“, „über die Datensatznutzung“),
neuer Artikel(653, „news“, DateTime.Now.AddDays(-45), Freq.daily, 1, „CLR via C#“, „Notizbuch zu diesem Buch“)
};
}
}
Artikel der öffentlichen Klasse
{
öffentliche int-ID;
öffentliche Zeichenfolge Catelog;
public DateTime LastMod;
öffentliches Doppelgewicht;
öffentliche Freq-Frequenz;
öffentlicher String-Titel;
öffentliche Zeichenfolge Beschreibung;
öffentlicher Artikel (int id, string catelog, DateTime lastMod, Freq-Häufigkeit, doppelte Gewichtung, string-Titel, string-Beschreibung)
{
ID = id;
Catelog = catelog;
LastMod = lastMod;
Gewicht = Gewicht;
Frequenz = Frequenz;
Titel = Titel;
Beschreibung = Beschreibung;
}
}
öffentliche Aufzählung Freq
{
keine = 1,
täglich = 2,
wöchentlich = 3,
}
Autor: Free Fly Original-Link