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结合飞信 免费天气预报短信
May 07 PHP
php Smarty模板生成html文档的方法
Apr 12 PHP
php实现过滤表单提交中html标签的方法
Oct 17 PHP
php格式化金额函数分享
Feb 02 PHP
php简单图像创建入门实例
Jun 10 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
Oct 27 PHP
学习php设计模式 php实现合成模式(composite)
Dec 08 PHP
PHP定时执行任务的3种方法详解
Dec 21 PHP
利用PHP命令行模式采集股票趋势信息
Aug 09 PHP
PHP实现可精确验证身份证号码的工具类示例
May 31 PHP
laravel框架中视图的基本使用方法分析
Nov 23 PHP
imagettftext() 失效,不起作用
Mar 09 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
改造一台复古桌面收音机
2021/03/02 无线电
用PHP连接Oracle for NT 远程数据库
2006/10/09 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
jQuery技巧总结
2011/01/01 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
YUI Compressor压缩JavaScript原理及微优化
2013/01/07 Javascript
js获取GridView中行数据的两种方法 分享
2013/07/13 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
浅谈javascript对象模型和function对象
2014/12/26 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
jQuery ajaxForm()的应用
2016/10/14 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
[01:32]2014DOTA2西雅图邀请赛 CIS我们有信心进入正赛
2014/07/08 DOTA
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
浅谈flask源码之请求过程
2018/07/26 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
python 根据时间来生成唯一的字符串方法
2019/01/14 Python
python图形用户接口实例详解
2019/12/16 Python
Python高阶函数、常用内置函数用法实例分析
2019/12/26 Python
用纯css3和html制作泡沫对话框实现代码
2013/03/21 HTML / CSS
房地产财务部员工岗位职责
2014/03/12 职场文书
餐饮服务食品安全责任书
2014/07/25 职场文书
少先队活动总结
2014/08/29 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书