サイト マップの機能は、検索エンジンが Web サイトのさまざまな Web ページをできるだけ早くより多く含めることができるようにすることです。
ここではまず、検索エンジンのクローリング方法という基本原理を理解する必要があります。インターネット全体は、十字に交差する「ネット」のようなものです。ネットワークの各ノードは各 Web ページであり、各 Web ページは URL を介して相互に接続されています。スパイダーは、ある Web ページから開始して、その Web ページ上の URL を介して別の Web ページにクロールし、さらに別の Web ページの URL を介してさらに多くの Web ページにクロールすることができます。ただし、新しくリリースされた Web サイトの場合は、それを指す URL が他に存在しない可能性があるため、「クロール」(クロール)されることはありません。この問題を解決するために、新しい Web サイトは積極的に URL を検索エンジンに送信し、スパイダーにクロールを申請することができます (Google アプリケーション URL:)。ただし、通常、申請時に送信されるのはホームページの URL のみです。
すべての URL (特に動的に生成された URL) をスパイダーが迅速かつ簡単に取得できるようにするには、包括的で完全かつ明確な構造と、タイムリーに更新されるサイト マップを提供する必要があります。
また、重複コンテンツの robots.txt ファイルに対処するために、.ashx ファイルを使用して、sitemaps.org に基づいて XML 形式でサイトマップを生成します。サイト マップが生成されたら、Google などの検索エンジンに送信できます。多くの記事で、サイト マップを送信すると、Web サイトの包含速度と深度が大幅に向上することが確認されています。サイト マップの送信を除いて、他のほとんどすべての SEO 手法は証明が難しく、効果がなかったり、副作用を引き起こす可能性さえあります。
Linq to XML は、ほぼ完璧な操作エクスペリエンスをもたらします。
<%@ WebHandler Language="C#" Class="ウェブサイト" %>
システムを使用する;
System.Web を使用します。
System.Xml を使用します。
System.Xml.Linq を使用します。
System.Linq を使用します。
パブリック クラス Web サイト : IHttpHandler {
public void ProcessRequest (HttpContext コンテキスト) {
context.Response.ContentType = "テキスト/xml";
//ファイルの宣言情報。スタンドアロンの 3 番目のパラメータの値 yes は、この XML ドキュメントが自己完結型であり、外部で定義された DTD に依存しないことを示します。
XDeclaration 宣言 = new XDeclaration("1.0", "UTF-8", "yes");
context.Response.Write(宣言);
//XMLファイルの名前空間
XNamespace ns = " http://www.google.com/schemas/sitemap/0.84 ";
XElement siteMap = new XElement(ns + "urlset");
文字列fixedUrl = " http://www.freeflying.com/article ";
文字列全体 Url = 文字列.Empty;
// データをループアウトして XML ノードに変換します
foreach (Articles.GetArticles() の var 項目)
{
XElement url = 新しい 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());
XElementchangefreq = new XElement("changefreq", item.Frequency);
XElement priority = new XElement("priority", item.Weight);
url.Add(loc、lastmod、changefreq、priority);
siteMap.Add(url);
}
//最後にxmlファイル全体を出力します
context.Response.Write(サイトマップ);
}
public bool IsReusable {
得る {
false を返します。
}
}
}
XML技術はRSSでも利用されるようになる
<%@ WebHandler Language="C#" Class="rss" %>
システムを使用する;
System.Web を使用します。
System.Xml を使用します。
System.Xml.Linq を使用します。
パブリック クラス RSS : IHttpHandler {
public void ProcessRequest (HttpContext コンテキスト) {
context.Response.ContentType = "テキスト/xml";
context.Response.Write("<?xml version="1.0" encoding="UTF-8" ?>");
XElement rssFeed = new XElement("rss", new XAttribute("バージョン","2.0"));
文字列fixedUrl = " http://www.freeflying.com/article ";
文字列全体 Url = 文字列.Empty;
XElement チャネル = new XElement("チャネル",
new XElement("タイトル", "フリーフライング"),
new XElement("リンク",fixedUrl),
new XElement("説明","自由に空を飛ぶ夢のサイト"),
new XElement("pubDate",DateTime.Now.ToString())
);
foreach (Articles.GetArticles() の var 記事)
{
XElement item = new 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 の説明 = new XElement("説明",article.Description);
XElement pubDate = new XElement("pubDate",article.LastMod.ToString());
item.Add(タイトル、リンク、説明、公開日);
チャンネル.Add(アイテム);
}
rssFeed.Add(チャンネル);
context.Response.Write(rssFeed);
}
public bool IsReusable {
得る {
false を返します。
}
}
}
シミュレートされたデータ
システムを使用する;
System.Data を使用します。
System.Configuration を使用します。
System.Linq を使用します。
System.Web を使用します。
System.Web.Security を使用します。
System.Web.UI を使用します。
System.Web.UI.HtmlControls を使用します。
System.Web.UI.WebControls を使用します。
System.Web.UI.WebControls.WebParts を使用します。
System.Xml.Linq を使用します。
System.Web.UI.MobileControls を使用します。
System.Collections.Generic を使用します。
/// <概要>
/// 記事の概要説明
/// </概要>
パブリッククラス記事
{
publicArticles()
{
//
// TODO: ここにコンストラクター ロジックを追加します
//
}
public static List<Article> GetArticles()
{
新しい List<記事>(){ を返す
新しい記事(234, "ブログ", DateTime.Now.AddDays(-23), Freq.none, 0.8, "asp.net SEO", "asp.net の SEO に関する記事"),
new Article(267, "ブログ", DateTime.Now.AddDays(-245), Freq.daily, 0.6, "ado.net pro","データセットの利用について"),
新しい記事(653, "ニュース", DateTime.Now.AddDays(-45), Freq.daily, 1,"CLR via C#","この本に関するノートブック")
};
}
}
パブリッククラスの記事
{
パブリック int ID;
パブリック文字列カタログ;
public DateTime LastMod;
public double 重み;
パブリック Freq 周波数。
パブリック文字列 タイトル;
パブリック文字列の説明。
public Article(int id, string catelog, DateTime lastMod, Freqfrequency, doubleweight, string title, string description)
{
ID = ID;
カテゴリー = カテゴリー;
LastMod = lastMod;
重量 = 重量;
周波数 = 周波数;
タイトル = タイトル;
説明 = 説明;
}
}
パブリック列挙型周波数
{
なし = 1、
毎日 = 2、
毎週 = 3、
}
著者: Free Fly 原文リンク