半个月前将永久链接的格式从 /archives/%post_id%.html 修改成了 /%year%/%monthnum%/%day%/%postname%/,结果日IP由原来的100多降低到现在的不到30。可能是永久链接的更改影响了Google的收录吧。幸亏fcicq的提醒,我装上了Permalinks Migration Plugin这个插件。这个插件可以识别旧的永久链接格式,然后通过301重定向将它转到现在的永久链接上,这样就不会影响搜索引擎收录了。
这个插件据说是个中国人写的。插件很小,仅一个文件,激活之后在选项中出现一个PermalinksMigration的选项,在其中填入旧永久链接的格式即可完成重定向。
前两天和fcicq聊天时提到了补充材料的SEO问题, 今天在Digg上发现了那天讨论的原文,特翻译于此以供参考。 原文在这里。
今天的主题是一个SEO小技巧,看看你的blog中是否像我一样有“补充材料”。
通过我的Google搜索结果,你可以看到我有106个页面位于补充材料中。 将chrisg.com改成你的域名即可测试你的blog。 (charlee注:我的结果在这里)
那么,“补充材料”到底是什么?
我最喜欢Tropical SEO给出的回答:
- Google补充材料会把页面打入西伯利亚的牢房。
- Google补充材料会被赋予极低的信任值。
- Google补充材料不会被用于任何重要的排名。
(charlee注:以上这三句引用自月光博客的译文)
从本质上讲,当Google不知道该如何处理你的页面,但却不想抛弃该页面时,就会将它放到补充材料中。
那我为什么会陷入“补充材料”的地狱?
简而言之,原因就是古老的SEO大忌“内容重复”。我的blog中的内部链接和归档页包含大量重复内容, 它们使得Googlebot不知所措。Graywolf有篇视频很清楚地解释了这个问题。
我该如何脱离“补充材料”?
最标准的方法就是利用Robots.txt阻止Google索引那些无用的页面。 我不喜欢添加Robots.txt,所以我想找个插件,结果看到了Ogletree给出的建议, 他修改了一个看似完美的Wordpress插件,但后来我在评论中看到了他给出的一段模板代码, 而这正是我想要的。只需少量改动就可以(向Googlebot)说明页面内容。 下面是我在header模板中使用的代码,添加在<title>标签之前即可。
<?php
if((is_single() || is_category() || is_page() || is_home()) && (!is_paged())){
echo “<!– ok google, index me! –>”;
}else{
echo “<!– google, please ignore - thanks! –>”;
echo “<meta name=”\”robots\”" content=”\”noindex,follow\”">\n”;
}
?>
这段代码输出一段特殊指令,告诉搜索引擎不要索引除首页、单篇文章、静态页面、分类页面之外的其他页面。 我遇到的难题就是按日期分类的归档页面,希望这个方法能有效!
301就是HTTP协议中的应答状态301 Moved Permanently。 当你的网站更换地址后,应当在原地址上写个程序返回301, 以便让访问者能够知道你更换了地址,也让搜索引擎能迅速地收录新地址。 我的blog更改地址之后,经fcicq的提醒, 使用 mod_rewrite 返回301,三天后就有100多页面被Google收录。
下面是使用各种语言返回301的方法。调试时可使用Firefox+ Tamper Data插件, 也可以用IE的ieHTTPHeaders插件。
ASP
直接调用Response.Redirect函数会返回302 Object Moved。为了返回301, 我们需要手工设置信息。
<%@ Language=VBScript %> <% Response.Status = "301 Moved Permanently" Response.AddHeader "Location", "http://www.inspiremedia.org/" Response.End %>
PHP
简单地调用 header() 函数输出头信息即可。
<?php
header("301 Moved Permanently");
header("Location: http://www.inspiremedia.org/");
?>
Perl
#!/usr/bin/perl -w print "Status: 301 Moved Permanently\n"; print "Location: http://www.inspiremedia.org/\n\n";
mod_rewrite
如果你使用Apache,那么用mod_rewrite进行重定向是最简单的选择了, 只要在 httpd.conf 的全局配置或者虚拟主机配置中写一条规则即可。
RewriteEngine On RewriteRule ^/(.*) http://www.inspiremedia.org/$1 [R=permanent,L]
注意一定要使用 [R=permanent] 选项,仅用 [R] 选项会返回 302 。
