我的網站有動態內容,正在創建新鏈接。asp.net中的sitemaps.xml mvc
我的數據庫有一個表,其中幾乎包含所有添加的網址。
所以我的問題是如何importnt是我有sitemaps.xml,也有一個簡單的方法來構建它,以便當新的鏈接生成時,我可以標記它到一個sitemap.xml文件的末尾?
我的網站有動態內容,正在創建新鏈接。asp.net中的sitemaps.xml mvc
我的數據庫有一個表,其中幾乎包含所有添加的網址。
所以我的問題是如何importnt是我有sitemaps.xml,也有一個簡單的方法來構建它,以便當新的鏈接生成時,我可以標記它到一個sitemap.xml文件的末尾?
您可以使用LINQ to XML從數據庫創建一個XML站點地圖,然後從一個動作返回站點地圖返回Content(document.ToString(), "text/xml")
。
抓取工具能夠更快,更準確地抓取您的網站,這一點非常重要。
您可以創建一個控制器,說siteMapController和指數添加以下
public ActionResult Index() {
var xmlString =
"<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\">";
xmlString +=
"<url>" +
"<loc>Your site</loc>" +
"<changefreq>weekly</changefreq>" +
"<priority>0.6</priority>" +
"</url>" +
"<url>" +
"<loc>Static Link of you site</loc>" + //you can add as many you want
"<changefreq>weekly</changefreq>" +
"<priority>0.6</priority>" +
"</url>" +
"<url>";
//Dynamic links
xmlString += "<url>" +
"<loc>Link of new item"</loc>" +
"<lastmod>" + DateTime.Now.ToString("yyyy-MM-dd") + "</lastmod>" +
"<changefreq>daily</changefreq>" +
"<priority>0.8</priority>" +
"</url>";
}
xmlString += "</urlset>";
ViewData["siteMap"] = xmlString;
return View();
}
保存在服務器上的XML,並通過此鏈接
https://www.google.com/webmasters/tools/home?hl=en
希望幫助發佈網站地圖
如果您的網站上有20,000個動態生成的網頁,該怎麼辦?如果你將它們都包含在網站地圖中,或者Google會忽略這麼大的條目。另外,您通常應該避免通過字符串連接來構建XML。直接寫入響應流或在最糟糕的情況下使用XML API或StringBuilder。 – 2011-02-17 11:05:04
好吧,這會給我一個XML文件在http://www.mysite.com/sitemap/?問題是,當新創建的鏈接添加到數據庫我必須重新渲染整個XML文件? – raklos 2011-02-17 11:08:03