向访客和爬虫显示不同的内容

Aug 14th, 2009 Add Comment

为了提高网页的用户体验, 我们经常会做一些对搜索引擎不太友好的事情, 但某些情况下这并不是无法挽回的, 可以通过向自然人和搜索引擎机器人显示不同的内容来提供好的用户体验和 SEO.

听说本方法会触犯搜索引擎的一些操作原则, 有可能被被各搜索引擎处罚, 甚至删除网站. 所以我刚刚已经撤下这样的处理, 直到确定其不属于作弊. 有魄力的朋友可以继续使用, 但后果自负. :(

本博客的首页和存档页面以列表的形式显示文章, 在访客点击展开文章时才加载文章的内容. 因为文章的内容部分包含了大量的文字和图片, 需要大量的加载时间和流量. 尽快地向访客展示网页可以挽留大量的来访者. 而对于手机用户来说, 加载时间和流量则更为重要.

一般来说, 网站的首页是搜索引擎访问最多的页面, 应该尽可能的向它们展示有意义的内容, 但是要以列表的形式显示文章的话, 访客和搜索引擎只能获取到文章标题信息. 文章内容或者摘要 (尤其是文章的第一句) 对于 SEO 来说是极其重要的, 所以我们要设法向爬虫发送这些内容.

好, 我们可以通过 User Agent 来判断访问者是否为爬虫, 如果是, 则以一般形式显示文章, 否则以列表形式显示文章列表. 可以用以下的 PHP 方法判断是否为爬虫:

function is_crawler() {
	$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
	$spiders = array(
		'Googlebot', // Google 爬虫
		'Baiduspider', // 百度爬虫
		'Yahoo! Slurp', // 雅虎爬虫
		'YodaoBot', // 有道爬虫
		'msnbot' // Bing爬虫
		// 更多爬虫关键字
	);
	foreach ($spiders as $spider) {
		$spider = strtolower($spider);
		if (strpos($userAgent, $spider) !== false) {
			return true;
		}
	}
	return false;
}

这是我使用的方法, 各爬虫以访问评论由高到低进行排序. 然后通过下面的的方法向爬虫和自然人显示不同的内容:

<?php if(is_crawler()) {
	// 向搜索引擎显示的内容
} else {
	// 向自然人显示的内容
} ?>

细心的朋友可能已经发现本站的首页显示和搜索引擎中的快照有点不一样. 是的, 要的就是这种效果.

PHP 处理方法上文已经提及, 其他语言处理相仿...

声明: 本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: 向访客和爬虫显示不同的内容

  1. http://1.gravatar.com/avatar/f7bfa9c548afd6b8cfce783f5c92721b?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    毕竟爬虫还是看不出JS代码的...

  2. http://1.gravatar.com/avatar/10b71bd15c0bf316f72e32bb3084c372?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    明显的作弊……不应该做这些操作

  3. http://0.gravatar.com/avatar/4ea4aed7f6a0e15b7b07ab771d125ca3?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    雖然一些黑帽在用這個方法作弊
    但是這些東西都是雙刃劍,搜索引擎也會思考的
    還是要判斷一下你這麼做是爲了作弊還是爲了其他什麽
    所以不會因為你這麼做就被懲罰

  4. http://0.gravatar.com/avatar/4ea4aed7f6a0e15b7b07ab771d125ca3?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    微軟爬蟲會偽裝成普通用戶訪問

  5. http://0.gravatar.com/avatar/c7c6ddc7d9a7965e468500b72c394c83?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    这个方法用不得。

  6. http://0.gravatar.com/avatar/09d288a90ae2da168f11cb4c5e49199f?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    这个方法用不得。

  7. http://1.gravatar.com/avatar/7595bc68f1b929f547852bc1892470fc?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    这个站很火啊,哈哈

  8. http://1.gravatar.com/avatar/9220c28ac4c0f636c9c909e0e327d6f3?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    关注

  9. http://0.gravatar.com/avatar/8f50c34d2004fb829b4653ec00ab00fa?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    收获!
    继续关注!
    还在北京呢吧?

  10. http://0.gravatar.com/avatar/a2d74a6c3b2fc761e99fbc0354022fdb?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    现在主要是不清楚Google和百度这类引擎是否会真正分析爬虫结果和访客结果到底有什么不同,这些不同是不是在作弊还是只是因为你做了那些大批量载入而做的Javascript的小技巧所以希望引擎能抓到真实的东西,这个标准很难判断,在现在的情况下,估计使用这个技巧有很大的可能被误杀,慎用啊。。

  11. http://1.gravatar.com/avatar/9e3139845553b02a3fbffc6b4d0a0bbf?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    囧 什么叫自然人 我自然不? :shock:
    被百度google惩罚了几次了

  12. http://1.gravatar.com/avatar/1f480a47f2b2afb050302aef3745bfc4?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    话说你现在首页的效果,似乎就影响收录,我看过国外很多门户站都用类似滑动门来切换内容,这样同一地址下出现的内容是不同的,蜘蛛会不会只收录首选项,感觉会有内容被忽略掉,感觉而已。

  13. http://1.gravatar.com/avatar/94edba5ccaf4f54d0891cf3a7b1e1280?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    这方法确实有些悬
    我是不敢以身试法
    呵呵~

  14. http://0.gravatar.com/avatar/4b916f1c0ff97b97bccb842130f32628?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G
  15. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @Leeiio
    牛!

    @麦子
    我撤下了, 一个朋友告诉我, 可能因此导致删除网站收录, 情节特别严重...

    @麦子
    那是 jQuery toggle 实现的, 原理差不多, 但你需要简单学习一下 jQuery.

    @fox
    Quick Comment, 是一个日本朋友做的, 我写过相关插件的介绍文章, 你可以在本站搜索之.

    @Denis
    是啊, 撤下来了, PageRank 没关系, 被删站就不好, 哈哈~

    @九子
    全国人民为你鼓掌. :shock:

    @Justice
    其实我之前提前显示了内容, 原则上不算作弊, 就怕爬虫不会分别.

  16. http://1.gravatar.com/avatar/3fbc531bd988e3bc59f8dc0c408e2f94?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    这是一种善意的欺骗~哈哈

  17. http://1.gravatar.com/avatar/1cfd6b67e61a959b431aa1bc3e4f6736?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    算不算作弊应该和搜索引擎的设计理念有关吧..我觉得只能说现在搜索引擎没法区分是否有恶意从而只能当作弊来处理吧。

  18. http://1.gravatar.com/avatar/fa830a24447907893dc5ae05810678ec?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    很不错的方法啊·····

  19. http://0.gravatar.com/avatar/cab963ed5a8f34ea97a0769184715808?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @九子
    支持自杀! 哈哈
    PS: 怎么笑脸又换了,变来变去的

  20. http://0.gravatar.com/avatar/277c2420fd2b9da4cc552060c5f8083b?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    典型黑帽~
    不过我已经写了个ASP版本的。。。
    准备尝试自杀~ ;-)

  21. http://1.gravatar.com/avatar/78d2e8292df486d6ce573aa842e6e73d?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    这个是作弊……

  22. http://1.gravatar.com/avatar/d5641fcab0de38fb96c98b93a258ed19?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    很有可能会被认为是作弊!

  23. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    听说情节严重者会被删站, so, 请慎用.

  24. http://0.gravatar.com/avatar/81ee746dc7ae5378301f69ce1b53138d?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    我存档也是列表,因为用了一个插件。不过么,这代码是放哪里的?

  25. http://0.gravatar.com/avatar/8406d089bc81b664a2610b8d214c1428?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @fox
    没有,我有异能的,谁回复我了我第一时间都会知道……
    哈哈 开玩笑了 整天开着Gmail的嘛

    为国内 WordPress 事业做点小贡献 哈哈

  26. http://0.gravatar.com/avatar/0896c679f69c1aed666b116b801aa8db?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @Showfom
    Thank u very much, are u using blackberry smartphones?
    你回复速度真快

  27. http://0.gravatar.com/avatar/6f6612e7a9c4a07411398b0674945358?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    个人不喜欢这种动态载入的方式

  28. http://0.gravatar.com/avatar/8406d089bc81b664a2610b8d214c1428?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @fox
    在本站搜索 Quick Comments

  29. http://0.gravatar.com/avatar/8406d089bc81b664a2610b8d214c1428?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G
  30. http://0.gravatar.com/avatar/0896c679f69c1aed666b116b801aa8db?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @Showfom
    对啊. 我安装了AJAX COMMENTS PAGER 发现不是我想要的

    应该是这个QUICK COMMENTS , 就是发表后不需要刷新就可以看到评论显示出来.
    但是我搜索WP的插件怎么没有这个啊. 完整名字叫什么呢?

  31. http://0.gravatar.com/avatar/8406d089bc81b664a2610b8d214c1428?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @fox
    quick comments

    ajax comments page 是评论ajax分页

  32. http://0.gravatar.com/avatar/8406d089bc81b664a2610b8d214c1428?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    太阴险了,SEO里很重要的一条,不能让搜索引擎的爬虫和真实的访客看到的东西不一样,否则就是欺骗哦……

  33. http://1.gravatar.com/avatar/3966e01544452a87de63c9958a9edb00?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    有不同嘛?

    不过这段代码挺好.我拿过来用用.谢谢~

  34. http://1.gravatar.com/avatar/167e5105096a2bbdf32764370a161318?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G
  35. http://0.gravatar.com/avatar/0896c679f69c1aed666b116b801aa8db?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    能知道MG12的AJAX评论用的什么插件吗 . 非常好
    谢谢哦

  36. http://1.gravatar.com/avatar/71981550e606563e4f569c420b2276cf?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    那个判断爬虫的,其他地方可以用么?

  37. http://0.gravatar.com/avatar/09bb60ebe7d2785618c9c96ed188c160?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    这里没有 slideToggle的文章……

  38. http://0.gravatar.com/avatar/09bb60ebe7d2785618c9c96ed188c160?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @joel
    是吗?我再找找……

  39. http://1.gravatar.com/avatar/53063bdca87c32f56d3d7f9f440e6860?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    呵呵,很细心的想法! :smile:

  40. http://0.gravatar.com/avatar/28cde55d9f5a12309b40e97e81da5866?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @麦子
    我是用的jQuery的 slideToggle() :| 印象中这里说过这个好像

  41. http://0.gravatar.com/avatar/09bb60ebe7d2785618c9c96ed188c160?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @joel
    以前只找到增强用户体验那篇,没有滑动效果的……

  42. http://0.gravatar.com/avatar/28cde55d9f5a12309b40e97e81da5866?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @麦子
    翻看他以前的文章 ;-)

  43. http://0.gravatar.com/avatar/09bb60ebe7d2785618c9c96ed188c160?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    对了,你这个留言的已存cookies信息,Change & Close 选项的JS效果不错!是在comment.js里加了什么代码吗?

  44. http://0.gravatar.com/avatar/09bb60ebe7d2785618c9c96ed188c160?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @mg12
    :smile: 以身试法……安全的话给个话,我们随后使用……O(∩_∩)O哈哈~

  45. http://1.gravatar.com/avatar/ffa60157af668384f5325116efd02385?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    对于判断爬虫我也一直在用,暂时未被惩罚~

  46. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @Justice
    别被惩罚就行了.

    @Bruce , @探客 , @麦子
    个人觉得不算作弊吧, 我只是将本来要显示出来的内容 (不需要 JavaScript 动作) 先显示出来了. 这玩意儿谁都不知道, 只能找个人试试, 我自己试试就是. :)

  47. http://0.gravatar.com/avatar/09bb60ebe7d2785618c9c96ed188c160?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    这也算作弊?

  48. http://0.gravatar.com/avatar/644e5649c7f68a4ec8900d1eaaf7daaf?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    这些都是作弊手法,被搜索引擎发现可能会受罚
    :sad:

  49. http://1.gravatar.com/avatar/d696b09801d1974bd9710026cf3ab669?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    :cry: 等了这么多年……终于等到mg12的沙发了……不要劝我,让我独自享受一下这份激动所带来的泪流满面吧!不过话说回来,‘向访客和爬虫显示不同的内容’ 从字面上乍看属于SEO作弊范畴……让我再跟谷歌商量一下…… :?:

  50. http://1.gravatar.com/avatar/1cfd6b67e61a959b431aa1bc3e4f6736?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    恩,这好像对你目前的首页形式来说很不错啊~