PHP制作百度站内搜索绿色通道的网页列表数据文件
用过百度站内搜索的朋友,都知道前不久推出了一个绿色收录通道,改善站内搜索的时效性和覆盖率,说明如下:
站内搜索结果数太少?最新的页面搜不到?您可以在本页面提交数据,提升您的站内搜索收录时效性和覆盖率。 方法 1:提交一个种子页面 URL,如网站首页,搜索引擎将从这个页面进行扩散,抓取站点的其他页面。 方法 2:提交网站列表(即 sitemap),列举您站点需要抓取的所有网页,该方法收录效果更好。 注:在此提交的数据将用于改善您的站内搜索质量,同时有机会被百度网页搜索收录,但并没有收录上的优待。
虽然,说明中提到了并没有收录上的优待,但绝对增加了网页搜索收录的效率,因为这个数据的提交相当于给蜘蛛额外提供了一个爬行路线,效果应该还是有的!
先说一下方法 1 的做法:
如果使用方法 1,我们可以提交一个简版的站点地图,比如张戈博客提交的就是http://zhangge.net/blogmap/这个页面。提交后发现迟迟不能审核!
仔细查看后,发现该页面有这样一句话:
注:网站必须已安装站内搜索才能使用本功能。如果未通过审核,请检查您的网站是否已正确安装站内搜索。
原来必须要在页面上安装百度站内搜索才能审核通过!
所以,提交 URL 之后,就必须部署由百度提供的站内搜索代码:
<script type="text/javascript">document.write(unescape('%3Cdiv id="bdcs"%3E%3C/div%3E%3Cscript charset="utf-8" src="http://rp.baidu.com/rp3w/3w.js?sid=11196058821421648414') + '&t=' + (Math.ceil(new Date()/3600000)) + unescape('"%3E%3C/script%3E'));</script>
但是,我的博客已经有自己 DIY 的站内搜索了,并不想添加百度这个搜索框,最后我还是将这个搜索代码添加到了 footer,然后使用 CSS 的 display:none 属性隐藏掉了,不出几天,果真审核通过了!
下面说下方法 2:
方法 2,其实就是提交一个 sitemap.xml,没什么技巧,那为什么要写这篇文章呢?
因为大部分新站都没开通百度的 sitemap 权限!所以,我写这篇文章的主要目的就是分享一个变相提交 sitemap 的方法!!当然,除了在站内搜索变相提交 sitemap 优化收录之外,咱们还可以使用百度的开放适配来变相提交 sitemap,有兴趣的可以查看张戈博客之前的文章:《移动搜索 SEO 分享:PHP 自动生成百度开放适配及 360 移动适配专用的 Sitemap 文件》。
既然,百度不给你开通 sitemap,那你就可以利用站内搜索和开放适配变相提交 sitemap 数据!!
好了,下面分享代码:
①、XML 格式:
如果想使用 xml 格式,只要使用张戈博客前几天写的《WordPress 免插件生成完整站点地图(sitemap.xml)的 php 代码》一文中的 php 代码即可,成功提交后如下显示:
②、TXT 格式:
TXT 就是将博客的所有页面地址一行一行的列出即可,其实并不一定是 txt 后缀地址!
代码如下:
<?php
require('./wp-blog-header.php');
header("Content-type: text/txt");
header('HTTP/1.1 200 OK');
$posts_to_show = 1000; // 获取文章数量
?>
<?php echo 'http://'.$_SERVER['HTTP_HOST']; ?><?php echo "n"; ?>
<?php
/* 文章页面 */
header("Content-type: text/txt");
$myposts = get_posts( "numberposts=" . $posts_to_show );
foreach( $myposts as $post ) {
the_permalink();
echo "n";
}
?>
<?php
/* 单页面 */
$mypages = get_pages();
if(count($mypages) > 0) {
foreach($mypages as $page) {
echo get_page_link($page->ID);
echo "n";
}
}
?>
<?php
/* 博客分类 */
$terms = get_terms('category', 'orderby=name&hide_empty=0' );
$count = count($terms);
if($count > 0){
foreach ($terms as $term) {
echo get_term_link($term, $term->slug);
echo "n";
}
}
?>
<?php
/* 标签(可选) */
$tags = get_terms("post_tag");
foreach ( $tags as $key => $tag ) {
$link = get_term_link( intval($tag->term_id), "post_tag" );
if ( is_wp_error( $link ) ) {
return false;
$tags[ $key ]->link = $link;
}
echo $link;
echo "n";
}
?>
保存为 search 放到网站根目录,然后访问查看效果,比如http://zhangge.net/search.php
最后,前往站内搜索绿色通道提交即可:http://zhanzhang.baidu.com/search/greenchannelsitemap
提交成功,过一会刷新就能看到数据了:
- Silvelright:ListBox无法用Tab顺序切换内部元素焦点的解决
- 2017精典书店年度好书
- silverlight:贝塞尔曲线
- 三要素支撑“人工智能+安防”:识别技术扛大旗
- IO模型
- jenkins 从git拉取代码
- Silverlight:针式打印机文字模糊的改善办法
- 大数据和云计算技术周报:NoSQL特辑
- 常用业务接口界面化 in python flask
- 打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机
- 区块链推动支付革命
- MySQL常见的库操作,表操作,数据操作集锦及一些注意事项
- nohup命令
- 跨浏览器的剪贴板访问解决方案
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- laravel model模型定义实现开启自动管理时间created_at,updated_at
- laravel ORM关联关系中的 with和whereHas用法
- thinkPHP事务操作简单案例分析
- php 多个变量指向同一个引用($b = &$a)用法分析
- 浅谈laravel5.5 belongsToMany自身的正确用法
- 在 PHP 和 Laravel 中使用 Traits的方法
- Laravel 修改默认日志文件名称和位置的例子
- php 命名空间(namespace)原理与用法实例小结
- Laravel Eloquent ORM 实现查询表中指定的字段
- Yii框架 session 数据库存储操作方法示例
- 使用laravel指定日志文件记录任意日志
- php实现微信小程序授权登录功能(实现流程)
- PHP封装请求类实例分析【基于Yii框架】
- php 多继承的几种常见实现方法示例
- PHP中通过getopt解析GNU C风格命令行选项