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


Posted in PHP onNovember 09, 2009

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

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

一般来说, 网站的首页是搜索引擎访问最多的页面, 应该尽可能的向它们展示有意义的内容, 但是要以列表的形式显示文章的话, 访客和搜索引擎只能获取到文章标题信息. 文章内容或者摘要 (尤其是文章的第一句) 对于 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 相关文章推荐
php中如何防止表单的重复提交
Aug 02 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 PHP
smarty模板局部缓存方法使用示例
Jun 17 PHP
改写ThinkPHP的U方法使其路由下分页正常
Jul 02 PHP
PHP实现Soap通讯的方法
Nov 03 PHP
php实现约瑟夫问题的方法小结
Mar 23 PHP
PHP中的命名空间详细介绍
Jul 02 PHP
PHP基于单例模式实现的数据库操作基类
Jan 15 PHP
遍历echsop的region表形成缓存的程序实例代码
Nov 01 PHP
php遍历替换目录下文件指定内容的方法
Nov 10 PHP
php使用parse_str实现查询字符串解析到变量中的方法
Feb 17 PHP
Laravel中如何轻松容易的输出完整的SQL语句
Jul 26 PHP
php 将excel导入mysql
Nov 09 #PHP
PHP CKEditor 上传图片实现代码
Nov 06 #PHP
PHP 压缩文件夹的类代码
Nov 05 #PHP
PHP 向右侧拉菜单实现代码,测试使用中
Nov 03 #PHP
网页游戏开发入门教程三(简单程序应用)
Nov 02 #PHP
网页游戏开发入门教程二(游戏模式+系统)
Nov 02 #PHP
初学CAKEPHP 基础教程
Nov 02 #PHP
You might like
php的ddos攻击解决方法
2015/01/08 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
PHP设计模式之观察者模式定义与用法示例
2018/08/04 PHP
JS焦点图切换,上下翻转
2011/05/12 Javascript
jQuery.query.js 取参数的两点问题分析
2012/08/06 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
JS跨域问题详解
2014/11/25 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
[00:12]DAC2018 Miracle-站上中单舞台,他能否再写奇迹?
2018/04/06 DOTA
python实现挑选出来100以内的质数
2015/03/24 Python
在Python的Django框架中编写错误提示页面
2015/07/22 Python
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
python实现字符串加密成纯数字
2019/03/19 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
python中with用法讲解
2020/02/07 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
如果Session Bean得Remove方法一直都不被调用会怎么样
2012/07/14 面试题
MySQL面试题目集锦
2016/04/14 面试题
售后服务承诺书
2014/03/26 职场文书
市场推广策划方案
2014/06/02 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js
spring boot实现文件上传
2022/08/14 Java/Android