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中的字符串函数
Oct 09 PHP
建立动态的WML站点(一)
Oct 09 PHP
PHP控制网页过期时间的代码
Sep 28 PHP
php date与gmdate的获取日期的区别
Feb 08 PHP
队列在编程中的实际应用(php)
Sep 04 PHP
PHP编程函数安全篇
Jan 08 PHP
php使用google地图应用实例
Dec 31 PHP
php 问卷调查结果统计
Oct 08 PHP
CodeIgniter读写分离实现方法详解
Jan 20 PHP
php上传大文件设置方法
Apr 14 PHP
PHP中子类重载父类的方法【parent::方法名】
May 06 PHP
Laravel框架表单验证操作实例分析
Sep 30 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截取后台登陆密码的代码
2012/05/05 PHP
php中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
JavaScript页面刷新与弹出窗口问题的解决方法
2010/03/02 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
js中自定义方法实现停留几秒sleep
2014/07/11 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
适用于手机端的jQuery图片滑块动画
2016/12/09 Javascript
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
2017/03/30 Javascript
Vue封装Swiper实现图片轮播效果
2018/02/06 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
python3中str(字符串)的使用教程
2017/03/23 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
新秀丽拉杆箱美国官方网站:Samsonite美国
2016/07/25 全球购物
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
请解释接口的显式实现有什么意义
2012/05/26 面试题
造型师求职自荐信
2013/09/27 职场文书
总经理司机岗位职责
2014/02/06 职场文书
致跳远运动员广播稿
2014/02/11 职场文书
中国梦团日活动总结
2014/07/07 职场文书
机关干部三严三实心得体会
2014/10/13 职场文书
教师自查自纠材料
2014/10/14 职场文书
检讨书格式范文
2015/05/07 职场文书
化验室安全管理制度
2015/08/06 职场文书
2016新年问候语大全
2015/11/11 职场文书
导游词幽默开场白
2019/06/26 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
windows下快速安装nginx并配置开机自启动的方法
2021/05/11 Servers