首先让我们看看 Google 对于我新域名收录的情况吧。已经出现 Site links 了。至于几时出现的,我也不知道,但这是今天发现的。
对于换域名,即使本来用的那个(happinesz.cn)并不好记,也不舍得换。原因有很多,其中有一点很重要的,对于很多人来说都有点可笑,那就是我写给别人看,我希望能过这样的方法也能改变世界。如果没人看,我绝对不会写。而换域名,可能导致丢掉很多读者,这一点让我有点忐忑不安。不过,既然心血来潮想换,就换个容易记一点的,在博客上告诉读者,在 SEO 方面给力一点,做个了断。长痛不如短痛,我是这样告诉自己的。
在这篇文章,我将告诉你我是如何去 SEO,去告诉搜索引擎的,主要有 3 点:
1、利用 .htaccess 进行 301 重定向
2、更新(使用)Sitemap
3、提供 canonical 标识
至于告诉读者方面,这里就不多说的。但有一点比较重要的,就在前面提一下吧。那就是:在 Feed 托管商烧制你的博客 Feed,这样无论你以后怎么换,只要换一下烧制的源,地址还是不变的。另外就是烧制之后,绑定域名要慎重,比较之前订阅 feed.happinesz.cn 的同学就收不到了,让我直接损失了 1500+ RSS 读者(本来都已经快6K订阅了,现在变成 4000+)。
至于搜索引擎方面。如何去告诉他?优化博客,让他更容易读懂?看看上面的这张 Google 的 Site Links 图,域名已经是 sofish.de 了。这是如何在这么短的时间内达到的呢?
一、301 重定向
这里有两点比较重要的,一个是把原来的链接重定向到新的链接;另外一个是我使用短链接,所以在原来的链接上做点改变。
对比原来与目前需求的链接:
我是这样做的。利用 .htaccess 重定制,告诉搜索引擎,这些链接已经发生改变,而且,是永久性的。在 happinesz.cn 做如下重定向:
## 重定向原来文章的链接到短链接 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^archives/(0-9+)/$ http://sofish.de/$1 R=301,L ## 重定向其他链接 RewriteCond %{HTTP_HOST} ^happinesz.cn RewriteRule (.*) http://sofish.de/$1 R=301,L RewriteCond %{HTTP_HOST} ^www.happinesz.cn RewriteRule (.*) http://www.sofish.de/$1 R=301,L |
其实这样做就足够了,但原来我并没有提前去掉 /archives/ 这个PATH,导致搜索引擎已经完成了一部分收录,因此,还需要在 sofish.de 中做如下的重定向,并告诉搜索引擎是 301 永久性重定向:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^archives/(0-9+)(/?)$ /$1 R=301,L |
至此,搞定。一旦有用户到了,他们就会转到短链接来。而搜索引擎也一样。 对于 .htaccess 规则的使用,可以参考《.htaccess tips and tricks》,有 part 1 和 part 2 两部分。
二、SiteMap | 站点地图
相信做过站的,写过博客的,多多少少了解到一点。它会生成一个类似于这样的站点地图,这有利于爬虫的收录(当然,如果有可能,或许可以添加一个 xml Sitemap):
对于 WordPress 用户来说,非常幸运和幸福的是,总有那么多插件可以帮上手。在制作 SiteMap 上,有 Google (XML) Sitemaps Generator for WordPress 。
三、提供 canonical 标识
新域名使用的是旧域名的数据库,这一点非常有利于我的变更。因为我替换数据库中所有链接地址。当爬虫到来的时候,无论是新来的,还是旧的,都是新的链接。而且,我在每篇文章里都添加了 canonical 标识。也就是说,无论新老地址,canonical 标识都是相同的,这对搜索引擎的权重分配就非常重要了。
至于为什么要使用 canonical ,看 Google 的官方介绍吧:《Specify your canonical》。而在 WordPress 中,可以这样做:
<link rel="canonical" href=http://www.chinaz.com/Webbiz/Exp/"<?php echo get_permalink($post->ID);?>" /> |
结语
好吧,其实这些小知识可能平时我们也不常用到。刚好睡不着,就分享出来吧。不过,SEO 这情,说来话长,不是1、2个小时就能说到底的。留着以后,再分享一些其他的经验吧。
作者:sofish