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 相关文章推荐
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
Mar 15 PHP
PHP 判断常量,变量和函数是否存在
Apr 26 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
Mar 20 PHP
php数组操作之键名比较与差集、交集赋值的方法
Nov 10 PHP
PHP合并静态文件详解
Nov 14 PHP
对PHP PDO的一些认识小结
Jan 23 PHP
php实现上传图片文件代码
Jul 19 PHP
PHP类型约束用法示例
Sep 28 PHP
php导出csv文件,可导出前导0实例代码
Nov 16 PHP
smarty模板数学运算示例
Dec 11 PHP
Yii 2.0中场景的使用教程
Jun 02 PHP
微信推送功能实现方式图文详解
Jul 12 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
快速配置PHPMyAdmin方法
2008/06/05 PHP
php的mssql数据库连接类实例
2014/11/28 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
一行代码实现纯数据json对象的深度克隆实现思路
2013/01/09 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
JavaScript对象学习经验整理
2013/10/12 Javascript
深入理解javascript动态插入技术
2013/11/12 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
Node学习记录之cluster模块
2017/05/31 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
基于python编写的微博应用
2014/10/17 Python
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
python进阶_浅谈面向对象进阶
2017/08/17 Python
Python continue语句实例用法
2020/02/06 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
*p++ 自增p 还是p所指向的变量
2016/07/16 面试题
优纳科技软件测试面试题
2012/05/15 面试题
人事行政主管岗位职责
2013/12/22 职场文书
高一地理教学反思
2014/01/18 职场文书
2015年校长新年寄语
2014/12/08 职场文书
上学路上观后感
2015/06/16 职场文书
小学运动会入场词
2015/07/18 职场文书
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers