面向搜索引擎优化 之 站点地图

搜索引擎很流行,查资料、看新闻,不是上 Google,就是找度娘。于是乎,网站也需要针对搜索引擎进行优化,以提升自己在搜索结果中的排名。这种优化称为面向搜索引擎的优化,英文是 Search Engine Optimization,简称为 SEO。

SEO 中最基础的一步是站点地图(Sitemap)。站点地图是一个 XML 格式的文件,它的作用是告诉搜索引擎,你的站点中有哪些页面,每个页面的地址是什么,多久更新一次之类的信息,以便于搜索引擎更好地索引你的站点。虽然搜索引擎都有爬虫来扫描每一个站点,但爬虫不一定能扫描整个站点,比如一些AJAX的页面,对爬虫就不太友好。提供站点地图,能极大地抵消这些困扰。

站点地图的格式很简单,和 RSS 类似,如下。如果有多个页面,只需要并列地写一排的<url>标签和内容即可。

做出站点地图之后,可以把它添加进 robots.txt 中,以后有爬虫来的时候,它就知道站点中有多少页面了。robots.txt 的语法如下:

这样是不是就可以了呢?大多数的 SEO 文章到这里就结束了。但是,站点地图还可以进一步针对不同的搜索引擎做不同的优化,让我们分别来看一下:

Google

由于 Google 同时支持 HTTP 和 HTTPS 的索引,如果你的站点也同时支持 HTTP 和 HTTPS ,在过渡期间你可以把两个版本的站点地图都提交给它。具体做法是,在 Google 的站长工具中,添加并验证两个版本的网站,然后分别提交不同的站点地图。

另外,Google 还允许在站点地图中添加多媒体信息,如图片和视频,格式如下。提交多媒体信息的好处是,Google 会把它们显示在搜索结果中,使你的页面看上去更吸引人。详情请参考站点地图格式和准则

百度

百度的站点地图规范中并不包含多媒体信息,但它有另一个特性:手机(小屏幕)适配。它可以帮助百度区分站点中的 PC 和手机/平板适用的页面。有些站点可以使用的不同的子域名来应对不同的设备,使用这种格式就可以在搜索结果是显示更适合用户浏览的结果。

由于百度的格式和 Google 并不兼容,你可能需要制做两份站点地图,分开提交才可以。

至于其它的搜索引擎,暂时还不知道有更多的格式支持,如果它们有更新,我会及时添加在这里。

避免搜索引擎重复计算HTTP和HTTPS的内容

如果你的博客同时支持HTTP和HTTPS访问,那么你需要进行一些小修改,以避免搜索引擎认为那是两个网站。

比如本站,http://leonax.nethttps://leonax.net都可以访问,并且可以看到同样的内容。正常的读者都会认为这是同一个网站,但包括Google在内的多数搜索引擎却不会这么认为。Google会认为这是两个网站,并同时进行索引。更严重的问题是,Google会认为两个网站同时偷取对方的内容,从而降低两个网站的评分。这对于网站来说是得不尝失的。

对于这种问题,Google提供了一种解决方案,就是在网页中加入一个链接,标记本网页的原始地址是哪个。比如本页面中,在<head/>中有如下这一条:

这个称为canonical link的标签说明了,本页面的原始地址是http://开头的那一个,让Google把https的版本,也归到为http去。这样一来,无论用户访问的是https还是http版本的网页,Google都会认为是在访问http版本,从而提高网站的权值。

另外,canonical link还可以消除URL参数对索引的影响。比如在一个购物网站,一件商品的不同颜色可能是用参数表示,比如?color=red或者?color=blue,这种情况搜索引擎也会认为是两个不同的页面,但实际上它们的内容是大同小异的。这时候,添加一个rel="canonical"的link标签,把href设置成不带参数的URL,就可以消除这种结果。

要在Wordpress中设置canonical link,可以使用WordPress SEO by Yoast插件,在“固定链接(permalink)”那一页可以看到相关设置。

在 Google 搜索结果中显示博文作者

更新:此项功能已被 Google 移除,下面的设置将没有作何效果。

在 Google 搜索的结果中,有时候可以看到文章的作者信息,如下图所示。之前我一直都认为这是 Google 自动生成的,比如在索引 Google 自己的博客服务的时候,在索引内容中自动添加了作者信息。后来发现不是,在任何的独立博客中,比如我现在自己搭的 WordPress,都可以做到这样的效果。

做法有很多种,这里介绍一种最直接有效的:

首先,你需要有一个 Google+ 的帐号,并且头像中包含可被识别的正面的人脸。这个对墙内的同学们有点困难,但是注册完之后就可以不管了,自己的博客也不会有被墙的风险。

然后,在博文的源码的<head/>中添加如下一行,说明文章作者的 Google+ 地址是 ,当然你需要改成你自己的 Google+ 的地址。如果你使用的也是 WordPress 平台,你可以安装 Yoast WordPress SEO 这个插件来帮你做到这一步。

<link href="https://plus.google.com/+ShuhaiShenSumhat" rel="author" />

最后,去 申请一下,你需要有一个你的域名对应的邮箱地址,比如我用的就是 ,用于证明我拥有 leonax.net 这个域名。申请完之后,你的 Google+ 资料会自动添加上那个邮箱地址。

再接下去,就开始等吧,我大约等了 2 周的时间,就看到如上图的结果了,效率还算比较高的。

如果你对你的设置没有信心,可以使用 Google 提供的工具验证一下,输入博文地址,得到类似如下的结果,就算是设置成功了。

通过添加作者信息,不仅可以让用户在预览搜索结果的时候更有亲切感,增加点击率,还可以提升文章在搜索结果中的排名哦……

在新浪博客中以任意时间发表新的博文

小R的要求,捣鼓了一下新浪博客。

新浪博客貌似禁止修改博文的发表时间,只能定时在未来的某个时间发布,而不能用以前的时间发布。原因可能是为了防止某些人修改时间来作弊。出发点虽好,但也阻止了大家迁移博客的需求。

不过上有政策,下就有对策。绕过新浪的限制是可行的,如下:

1. 发表新的博文,然后设置定时到随便一个时间。

2. 在“博文将于XXX时间发布”的框上面点右键,选择“审查元素”(Chrome的功能,IE可以通过F12做到类似的效果)

3. 在弹出的窗口中找到“date_pub”字段,把value修改成想要的日期

4. 按你的需求设置博文的其它内容,然后发表即可。

然后新的博文就是以你想要的时间发布啦……

不过貌似已发布的博文,没有办法修改时间,只能用相同内容发表一篇新的,同时设置新的时间……