[SEO]讓你的Asp.Net網(wǎng)站自動生成Sitemap——XmlSitemap

首先我要說明:Asp.Net內(nèi)置的Sitemap與這里講的Sitemap是完全不同的,Asp.Net中的Sitemap主要用于給用戶導航卿啡,而這里說的Sitemap是用來給搜索引擎爬蟲指路颈娜。

還是直接來看看官方解釋吧:

什么是Sitemap?

Sitemap 可方便管理員通知搜索引擎他們網(wǎng)站上有哪些可供抓取的網(wǎng)頁官辽。最簡單的 Sitepmap 形式,就是 XML 文件萤捆,在其中列出網(wǎng)站中的網(wǎng)址以及關(guān)于每個網(wǎng)址的其他元數(shù)據(jù)(上次更新的時間俗批、更改的頻率以及相對于網(wǎng)站上其他網(wǎng)址的重要程度為何等),以便搜索引擎可以更加智能地抓取網(wǎng)站辛慰。

網(wǎng)絡抓取工具通常會通過網(wǎng)站內(nèi)部和其他網(wǎng)站上的鏈接查找網(wǎng)頁干像。Sitemap 會提供此數(shù)據(jù)以便允許支持 Sitemap 的抓取工具抓取 Sitemap 提供的所有網(wǎng)址,并了解使用相關(guān)元數(shù)據(jù)的網(wǎng)址麻汰。使用 Sitemap?協(xié)議并不能保證網(wǎng)頁會包含在搜索引擎中五鲫,但可向網(wǎng)絡抓取工具提供一些提示以便它們更有效地抓取網(wǎng)站。

Sitemap 0.90 是依據(jù)創(chuàng)意公用授權(quán)-相同方式共享?(Attribution-ShareAlike Creative Commons License) 的條款提供的,并被廣泛采用智亮,受 Google点待、Yahoo! 和 Microsoft 在內(nèi)的眾多廠商的支持弃舒。

引自Sitemaps.org:http://www.sitemaps.org/zh_CN/

綜上所述,提供Sitemap是輔助搜索引擎爬蟲收錄網(wǎng)站的一種手段苗踪,沒有Sitemap你的網(wǎng)站一樣會被收錄削锰,而有了Sitemap則會被收錄的更全面、準確器贩。

它除了提供網(wǎng)址外,最重要的就是提供了頁面的更新時間戳吧黄,以及網(wǎng)站側(cè)重點和更新回訪頻率建議唆姐,使得搜索引擎能更精確地把握你的網(wǎng)站。

如何實現(xiàn)自動生成Sitemap赵抢?

現(xiàn)成的生成器已有不少:

https://www.xiaoyuani.com/

http://www.google.com/support/webmasters/bin/answer.py?answer=34634

不過在Asp.Net中声功,沒有官方的生成工具,搜索“Asp.Net Sitemap”找到的也都是大把的Asp.Net內(nèi)置的Sitemap功能介紹網(wǎng)頁短绸。

故此筹裕,我希望自己來實現(xiàn)一個Asp.Net的Sitemap生成工具。并且我希望這個工具是可以和Asp.Net同步交互進行數(shù)據(jù)更新的朝卒,以保障數(shù)據(jù)的時效性;而其他大多數(shù)生成器都像是一個私人爬蟲囚企,你需要手動放出它來爬遍你的網(wǎng)站,以生成整站的Sitemap棵逊,我不喜歡這樣银酗。

XmlSitemap

這就是我實現(xiàn)的Sitemap生成工具,簡單講一下實現(xiàn)方式:

通過數(shù)據(jù)庫存儲站點黍特、頁面集合灭衷、頁面數(shù)據(jù):

請點擊輸入圖片描述

在Asp.Net網(wǎng)站中,增刪改數(shù)據(jù)時迫像,調(diào)用站點地圖公開的方法更新數(shù)據(jù)庫數(shù)據(jù)部默。

通過Ashx輸出XML格式的Sitemap供搜索引擎爬蟲讀取。

在文章末尾處我將共享此項目的下載鏈接傅蹂,接下來將講一下此項目的使用方法。

如何部署犁功?

我將提供以下文件用于在現(xiàn)有Asp.Net網(wǎng)站中部署此功能:

請點擊輸入圖片描述

首先要引用XmlSitemap.dll婚夫。

然后通過“添加現(xiàn)有項”將XMLSiteMap.ashx.cs及XMLSiteMap.ashx添加到項目中案糙。

再通過“添加現(xiàn)有項”將SiteMap.mdf添加到項目的App_Data目錄中。

在Web.Config中指定SiteMap.mdf的數(shù)據(jù)庫連接字串:

<connectionStrings>

<add?name="MySitemapDataConnstr"?connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename='C:\Users\SkyD\Documents\Visual Studio 2008\Projects\實驗室\WebApplication10\WebApplication10\App_Data\SiteMap.mdf';Integrated Security=True;User Instance=True"/>

</connectionStrings>

在項目中新增一個Global.asax文件(如果之前沒創(chuàng)建此文件的話)怒医,在其Application_Start中進行初始化:

請點擊輸入圖片描述

其中藍色高亮部分是上文中在Web.Config中指定的SiteMap.mdf的數(shù)據(jù)庫連接字串奢讨;

黃色高亮部分是你的網(wǎng)站名稱,在每次提交數(shù)據(jù)時都將用到此字符串扒袖;

綠色高亮部分是你的這個站點的網(wǎng)址,每次新增的網(wǎng)址數(shù)據(jù)都必須位于此網(wǎng)址域名下季率。

如何使用?

我們將通過一個按鈕來模擬添加數(shù)據(jù)的操作:

protected?void?Button1_Click(object?sender,?EventArgs?e)

{

var?id=Guid.NewGuid();

站點地圖.添加頁面("MySite", id,?Path.Combine("http://www.MySite.com/",?"Page.aspx?ID="?+?id),?0.5,?更新頻率.每天);

}

注意:這里僅僅是用來測試缅刽,所以臨時生成了一個Guid傳入站點地圖蠢络,而在實際使用時迟蜜,應當以你的原數(shù)據(jù)條目的Guid傳入,因為你在之后很可能還會對其進行更新髓霞、刪除操作畦戒,如果同時要反映到站點地圖中的話,你就必須還以它的Guid作為標識纵潦,才能找到它垃环。

當你頻繁點擊這個按鈕后,站點地圖中就會新增了多條數(shù)據(jù)遂庄,你可以通過訪問XmlSiteMap.ashx?Site=MySite查看當前的頁面集合列表:

請點擊輸入圖片描述

其中的Url地址是頁面集合的網(wǎng)址涛目,由于頁面數(shù)據(jù)量沒有達到頁面集合所容納的上限,所以目前就只有一個頁面集合估蹄。

訪問頁面集合的網(wǎng)址:

請點擊輸入圖片描述

這里就是每個頁面的詳細地址及相關(guān)信息列表阿迈。

除了添加數(shù)據(jù)之外,還有更新刊棕、刪除等方法,由于都是中文寫的代碼甥角,易于理解,就不在此一一演示了:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市当犯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嘉栓,老刑警劉巖拓诸,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異馋辈,居然都是意外死亡倍谜,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門井联,熙熙樓的掌柜王于貴愁眉苦臉地迎上來您旁,“玉大人,你說我怎么就攤上這事蚕脏≌炀猓” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵挣棕,是天一觀的道長。 經(jīng)常有香客問我洛心,道長,這世上最難降的妖魔是什么厅目? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任法严,我火速辦了婚禮,結(jié)果婚禮上拗馒,老公的妹妹穿的比我還像新娘溯街。我一直安慰自己,他們只是感情好苫幢,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布韩肝。 她就那樣靜靜地躺著九榔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪哲泊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音先朦,去河邊找鬼。 笑死棉浸,一個胖子當著我的面吹牛刺彩,可吹牛的內(nèi)容都是我干的枝恋。 我是一名探鬼主播嗡害,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼呐能!你這毒婦竟也來了抑堡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤偎漫,失蹤者是張志新(化名)和其女友劉穎有缆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棚壁,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡袖外,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了泌射。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鬓照。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡豺裆,死狀恐怖拒秘,靈堂內(nèi)的尸體忽然破棺而出留储,到底是詐尸還是另有隱情,我是刑警寧澤阴颖,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布丐膝,位于F島的核電站钾菊,受9級特大地震影響偎肃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜滞详,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一紊馏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧岸啡,春花似錦赫编、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逾冬。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間产还,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留牛隅,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓匕累,卻偏偏與公主長得像默伍,于是被迫代替她去往敵國和親衰琐。 傳聞我的和親對象是個殘疾皇子炼蹦,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353