网站SEO优化-网站地图生成,SiteMap
SiteMap是什么?
Sitemap 网站地图是一个 XML 文件,Sitemap 包含了您网站上所有网页的链接地址和该网页的相关信息,如该页更新频率、网页权重等。创建 Sitemap 网站地图文件应该遵循一下约定:
1、指定完整的网络地址,如:http://www.yinlingkeji.com
2、每个Sitemap 网站地图文件最多可以包含 50,000 个网址,如果超过 50,000 个,则应创建多个 Sitemap 网站地图文件,并为它们提交一个 Sitemap 索引文件。
3、Sitemap 网站地图文件需要保存为 UTF-8 编码。
4、Sitemap 网站地图文件可以进行任意命名,扩展名一般保存为.txt。
SiteMap格式描述
有很多工具可以自动生成 Sitemap 网站地图,但这里我们介绍手动创建 Sitemap 网站地图的方法,来了解 Sitemap 网站地图文件的结构。
1、用写字板新建一个文本文件,后缀为.txt。
2、在文本文件中输入以下内容:
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> </urlset>
3、在 urlset 标记中为每个网页添加该网页索引信息,格式如下:
<url> <loc>http://www.example.com/</loc> <lastmod>2009-01-01</lastmod> <changefreq>monthly</changefreq> <priority>1</priority> </url>
其中 loc 标记是必须的,我们来解释 Sitemap 网站地图每个标记的含义。
lastmod
使用 lastmod 标记可以指明上次修改网页的时间,该标记可选。 日期格式使用 YYYY-MM-DDThh:mmTZD,其中日期和时间值为可选。
changefreq
该选项可选,指定网页更改的频率。有效值为:always(每次访问时都更新)、hourly、daily、weekly、monthly、yearly、never(已存档的网页)。比较常用的是daily、weekly、monthly,其他值的意义并不大,一般首页设置为 daily 比较合适。
priority
priority 标记描述网站上所有网页的相对优先级。优先值最大为1.0,最小为0.1,优先值越大说明该网页越重要。一般的设置是主页(1.0)、类别(0.8)、产品(0.6)的优先值依次减小。优先级值不会影响您的网页与其他网站上网页的比较结果。 由于该值是相对于您网站上的其他网页而定。
loc
网页的 URL,URL 应该明确,如:http://www.yinlingkeji.com。不应该包括图片、样式表等的地址。
C#网站地图SiteMap生成代码
/// <summary>
/// 生成站点地图sitemap
/// </summary>
public class SiteMapHelper
{
public List<PageInfo> url
{
get;
set;
}
/// <summary>
/// 生成SiteMap字符串
/// </summary>
/// <returns></returns>
public string GenerateSiteMapString()
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("<?xml version =\"1.0\"encoding =\"UTF-8\"?>");
sb.AppendLine("<urlset xmlns =\"http://www.sitemaps.org/schemas/sitemap/0.9\">");
foreach (PageInfo pi in url)
{
sb.AppendLine("<url>");
sb.AppendLine(string.Format("<loc>{0}</loc>", pi.loc));
sb.AppendLine(string.Format("<lastmod>{0}</lastmod> ", pi.lastmod.ToString("yyyy-MM-dd")));
sb.AppendLine(string.Format("<changefreq>{0}</changefreq> ", pi.changefreq));
sb.AppendLine(string.Format("<priority>{0}</priority> ", pi.priority));
sb.AppendLine("</url>");
}
sb.AppendLine("</urlset>");
return sb.ToString();
}
/// <summary>
/// 保存Site文件
/// </summary>
public void WriteXML(string content)
{
string fileName = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "wwwroot\\sitemap.xml");
using (FileStream fs = new FileStream(fileName, FileMode.Create))
{
using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8))
{
//开始写入
sw.Write(content);
//清空缓冲区
sw.Flush();
}
}
}
}
public class PageInfo
{
/// <summary>
/// 网址
/// </summary>
public string loc { get; set; }
/// <summary>
/// 最后更新时间
/// </summary>
public DateTime lastmod { get; set; }
/// <summary>
/// 更新频繁程度
/// </summary>
public string changefreq { get; set; }
/// <summary>
/// 优先级,0-1
/// </summary>
public string priority { get; set; }
}