[SEO]让你的Asp.Net网站自动生成Sitemap——XmlSitemap

首先我要说明:Asp.Net内置的Sitemap与这里讲的Sitemap是完全不同的,Asp.Net中的Sitemap主要用于给用户导航,而这里说的Sitemap是用来给搜索引擎爬虫指路。

还是直接来看看官方解释吧:

什么是Sitemap?

Sitemap 可方便管理员通知搜索引擎他们网站上有哪些可供抓取的网页。最简单的 Sitepmap 形式,就是 XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间、更改的频率以及相对于网站上其他网址的重要程度为何等),以便搜索引擎可以更加智能地抓取网站。

网络抓取工具通常会通过网站内部和其他网站上的链接查找网页。Sitemap 会提供此数据以便允许支持 Sitemap 的抓取工具抓取 Sitemap 提供的所有网址,并了解使用相关元数据的网址。使用 Sitemap 协议并不能保证网页会包含在搜索引擎中,但可向网络抓取工具提供一些提示以便它们更有效地抓取网站。

Sitemap 0.90 是依据创意公用授权-相同方式共享 (Attribution-ShareAlike Creative Commons License) 的条款提供的,并被广泛采用,受 Google、Yahoo! 和 Microsoft 在内的众多厂商的支持。

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

综上所述,提供Sitemap是辅助搜索引擎爬虫收录网站的一种手段,没有Sitemap你的网站一样会被收录,而有了Sitemap则会被收录的更全面、准确。

它除了提供网址外,最重要的就是提供了页面的更新时间戳,以及网站侧重点和更新回访频率建议,使得搜索引擎能更精确地把握你的网站。

如何实现自动生成Sitemap?

现成的生成器已有不少:

https://www.xiaoyuani.com/

不过在Asp.Net中,没有官方的生成工具,搜索“Asp.Net Sitemap”找到的也都是大把的Asp.Net内置的Sitemap功能介绍网页。

故此,我希望自己来实现一个Asp.Net的Sitemap生成工具。并且我希望这个工具是可以和Asp.Net同步交互进行数据更新的,以保障数据的时效性;而其他大多数生成器都像是一个私人爬虫,你需要手动放出它来爬遍你的网站,以生成整站的Sitemap,我不喜欢这样。

XmlSitemap

这就是我实现的Sitemap生成工具,简单讲一下实现方式:

  1. 通过数据库存储站点、页面集合、页面数据:

  2. 在Asp.Net网站中,增删改数据时,调用站点地图公开的方法更新数据库数据。

  3. 通过Ashx输出XML格式的Sitemap供搜索引擎爬虫读取。

在文章末尾处我将共享此项目的下载链接,接下来将讲一下此项目的使用方法。

如何部署?

我将提供以下文件用于在现有Asp.Net网站中部署此功能:

首先要引用XmlSitemap.dll。

然后通过“添加现有项”将XMLSiteMap.ashx.cs及XMLSiteMap.ashx添加到项目中。

再通过“添加现有项”将SiteMap.mdf添加到项目的App_Data目录中。

在Web.Config中指定SiteMap.mdf的数据库连接字串:

<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文件(如果之前没创建此文件的话),在其Application_Start中进行初始化:

其中蓝色高亮部分是上文中在Web.Config中指定的SiteMap.mdf的数据库连接字串;

黄色高亮部分是你的网站名称,在每次提交数据时都将用到此字符串;

绿色高亮部分是你的这个站点的网址,每次新增的网址数据都必须位于此网址域名下。

如何使用?

我们将通过一个按钮来模拟添加数据的操作:

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传入站点地图,而在实际使用时,应当以你的原数据条目的Guid传入,因为你在之后很可能还会对其进行更新、删除操作,如果同时要反映到站点地图中的话,你就必须还以它的Guid作为标识,才能找到它。

当你频繁点击这个按钮后,站点地图中就会新增了多条数据,你可以通过访问XmlSiteMap.ashx?Site=MySite查看当前的页面集合列表:

其中的Url地址是页面集合的网址,由于页面数据量没有达到页面集合所容纳的上限,所以目前就只有一个页面集合。

访问页面集合的网址:

这里就是每个页面的详细地址及相关信息列表。

除了添加数据之外,还有更新、删除等方法,由于都是中文写的代码,易于理解,就不在此一一演示了:

(0)

相关推荐

  • 百度搜索算法权威性与时效性解读课程笔记(二)

    本期主要内容搜索权威性与时效性解读 1.权威性的作用 对百度而言 :提供给用户可信赖的权威结果,提高用户对百度的信任感,增加用户搜索黏性. 对于资源方而言:生产权威可信的结果,可增加曝光度,带来更多的 ...

  • 【干货】百度站长工具(资源平台)使用教程、解读

    一.百度搜索资源平台工具一览 百度搜索资源平台为开发者们提供了有助于搜索优化的各种工具与服务,包括资源提交.数据统计.搜索展现和站点优化与维护四部分. 百度搜索资源平台搜索服务板块 二.数据提交 1. ...

  • 给你们说几点鲜有人知的爬虫技巧

    关于爬虫可以用到的技巧 只要技巧使用得当 那么尽管姿势再多 也能感到爽爽的了 那么,如何才能爽呢? 接下来就是 学习python的正确姿势 技巧一 换个角度,解锁新姿势 我知道 你在爬取某些 web ...

  • 百度站长通知:请及时清理历史sitemap文件,什么意思?

    最近不少站长都应该受到这样一条重要提醒:尊敬的搜索合作伙伴: 您好!为了提升站点新资源的处理效率,避免旧数据过多造成站点数据抓取与处理异常,请于11月9日之前尽快删除超出站点配额的历史sitemap文 ...

  • 谷歌站长工具傻瓜式教学

    所有原创转载请注明作者:Mike外贸说.来源及原文链接 摘取自我的群分享 再讲一下谷歌站长工具的使用 不会的自己这次注意看 首先你得有谷歌账号 也就是谷歌邮箱gmail 下面哪行的意思是说 这个谷歌邮 ...

  • 营销高手之路-如何用网站自动推广工具实现流量倍增

    网站推广的终极目标就是怎样才能让流量倍增,然后很大一部分网站推广人员因操作不当,总是无法来来稳定.持续优质的流量.而且在网站推广过程中对网站自动推广工具的使用也涉及一些技巧性的操作,并非使用网站自动推 ...

  • 从SEO角度怎么选择好的网站域名呢?

    域名的选择是每位SEO站长和网络创业者都必须面临的.特别是立志于建立品牌网站的创业者,选择域名的过程往往花费很大的心思.今天,曾庆平从SEO和品牌网站的角度来探讨域名,希望在你将来选择域名时有启发和借 ...

  • SEO人员如何优先选好网站域名?

    前面我们确定了品牌名和口号之后,就要开始考虑域名的问题了.域名和品牌名一样,基本上确定之后就不再修改,所以一样要重视.域名是稀缺资源.也许我们的确想了一个好的品牌名,但往往与品牌名全拼相同的域名早就有 ...

  • 推广揭秘-营销高手们用的是什么网站自动推广软件

    很多营销人员在营销推广的过程中,前期往往会走很多弯路,这个过程不可避免.因为你终究会发现,生命之中,经历最贵.任何营销高手也非天生,他们区别用大多数营销人员的是:历经磨难,但依然坚持,且最终走上了正确 ...

  • Asp.net core 3.1实现路由Url根据命名空间自动生成

    注:下面涉及的代码文件可查看我的LessSharp框架Github 按Asp.net core默认的接口写法,每个接口控制器都得继承自ControllerBase类,还需具有ApiController ...

  • 单页SEO排名技巧,单页网站制作,高排名策略!

    单页网站SEO是一个比较特殊的优化工作,它更多的应用于在线商品快速交易行业,单页网站其实往往更多的应用在竞价推广,而非SEO. SEO单页排名技术:指的是仅依靠一个独立的页面,对目标关键词进行优化,一 ...

  • <h1 style="color: rgb(0, 0, 0);">微信扫码 - 关注公众号后网站自动注册并登录的实现</h1>

    需求描述 在自己网站上点击微信登录,网站自己弹出一个二维码.扫描二维码后弹出公众号的关注界面.只要一关注公众号网站自动登录.第二次扫描登录的时候网站直接登录. 大家可以体验一下 「随便找的一个网站」 ...

  • 如何实现微信扫码或关注公众号后网站自动登录?

    序言 常见方式 平常大家见到过最多的扫码登录应该是 开放平台网页登录 大概形式就是:点击微信登录后会出现一个黑页面,页面中有一个二维码,扫码后可以自动获取用户信息然后登录,但是这种方式需要申请开放平台 ...

  • SEO人员,需要HTML版本网站地图4个理由

    如果你长期运营一个独立网站,你会发现草根SEO人员,经常是在利用碎片化时间去更新站点内容,相对于一个独立博客而言,他的站内信息流动实际上是相对"混乱"的. 甚至随着时间的推移,连自 ...