网站建设

百度站内搜索全新改版:WordPress生成通用行业模板数据的php脚本

今早进入百度站长平台查看站内搜索时,发现百度站内搜索已全新升级到2.0版本!原先的站内搜索已经转移到了独立的二级域名:http://zn.baidu.com 进一步查看发现站内搜索新增了一个结果页样式设置功能: 包含如下三种自定义设置: ①、页面顶部设置 ②、频道设置 ③、结果样式模板 其中我比较感兴趣的是频道设置,可以更加接近搜索引擎的风格,比如百度搜索: 仔细研究了一下这个频道设置,发现要区分不同的频道,有2种途径: ①、不同频道使用不同的二级域名(一般大站常有的做法,比如news.163.com); ②、提交行业模板数据,每一组XML数据使用面包屑标签breadCrumb来区分该内容所在频道; 很明显,张戈博客这种简单小站只能选择第二种方案,顺手把以前的sitemap脚本修改了下,就成功提交了! 下面分享这个php脚本的代码: 将以上代码保存为sitemap_hy.php上传到WordPress网站根目录即可,然后在浏览器访问这个文件查看效果,比如: https://zhang.ge/sitemap_hy.php 只要不报错就成功了!现在就可以前往百度站内搜索提交了:http://zn.baidu.com/cse/schema/sitemap 成功提交后,继续打开频道设置,参考下图将你博客的主要分类填入到相应栏位即可: 第二列留空则表示输出全部搜索结果,如果有面包屑,则表示从提交的sitemap中筛出相同面包屑的内容,全部填写完成后点击保存并查看效果了,比如,张戈博客的站内搜索地址:http://so.zhang.ge 提交结果后,就只能等待百度抓取数据并展现了,所以短时间内将如下显示: 隔了一晚上发现张戈博客的站内搜索已经开始展现数据了:   缩略图和标题都已经有了,但是内容却是一个【略】,再次看了下百度关于这个数据文件的说明。 content:如能提交全文,则不需要spider再抓取,既可以降低站点服务器压力,提升收录效率,也可以避免搜索系统解析误差。 好吧,既然如此,我就再折腾一下,让content输出文章内容!(上文代码已更新!) 最后,如果你对百度站内搜索比较感兴趣,还可以看看张戈博客的其他相关文章: PHP制作百度站内搜索绿色通道的网页列表数据文件 关于新版站内搜索和行业数据模板的分享就到此告一段落,下面我会继续研究下站内搜索的页面顶部设置和结果样式设置,敬请期待!
阅读全文
网站建设

PHP制作百度站内搜索绿色通道的网页列表数据文件

用过百度站内搜索的朋友,都知道前不久推出了一个绿色收录通道,改善站内搜索的时效性和覆盖率,说明如下: 站内搜索结果数太少?最新的页面搜不到?您可以在本页面提交数据,提升您的站内搜索收录时效性和覆盖率。 方法1:提交一个种子页面URL,如网站首页,搜索引擎将从这个页面进行扩散,抓取站点的其他页面。 方法2:提交网站列表(即sitemap),列举您站点需要抓取的所有网页,该方法收录效果更好。 注:在此提交的数据将用于改善您的站内搜索质量,同时有机会被百度网页搜索收录,但并没有收录上的优待。 虽然,说明中提到了并没有收录上的优待,但绝对增加了网页搜索收录的效率,因为这个数据的提交相当于给蜘蛛额外提供了一个爬行路线,效果应该还是有的! 先说一下方法1的做法: 如果使用方法1,我们可以提交一个简版的站点地图,比如张戈博客提交的就是https://zhang.ge/blogmap/这个页面。提交后发现迟迟不能审核! 仔细查看后,发现该页面有这样一句话: 注:网站必须已安装站内搜索才能使用本功能。如果未通过审核,请检查您的网站是否已正确安装站内搜索。 原来必须要在页面上安装百度站内搜索才能审核通过! 所以,提交URL之后,就必须部署由百度提供的站内搜索代码: 但是,我的博客已经有自己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后缀地址! 代码如下: 保存为search放到网站根目录,然后访问查看效果,比如https://zhang.ge/search.php 最后,前往站内搜索绿色通道提交即可:http://zhanzhang.baidu.com/search/greenchannelsitemap 提交成功,过一会刷新就能看到数据了:
阅读全文
网站建设

WordPress免插件生成完整站点地图(sitemap.xml)的php代码

前言:站点地图(sitemap.xml)的作用,相信站长们都有所了解,我就不献宝了。而免插件生成sitemap.xml,网络上也早就有了纯代码生成的方法。 一直以来,张戈博客都是用DX-SEO这个很好用的中文SEO插件生成的sitemap。今天整理电脑文件时,看到了以前收藏的生成sitemap.xml的php脚本,就随手打开看了看,发现这个代码只能生成主页和文章页的sitemap。果断百度了一下,发现网上分享的都大同小异,只有首页和文章页。感觉有点缺憾,反正今天也是闲着,就动手改造了一番,让这个代码更加完善,可以同时生成首页、文章、单页面、分类和标签的sitemap! 一、PHP代码 将以上代码保存为sitemap.php,传到网站根目录。手动访问查看效果,如:https://zhang.ge/sitemap.php 二、伪静态 ①、Nginx 编辑已存在的Nginx伪静态规则,新增如下规则后(平滑)重启nginx即可: ②、Apache 编辑网站根目录的 .htaccess ,加入如下规则: 做好伪静态规则后,就可以直接访问sitemap.xml看看效果了,比如 https://zhang.ge/sitemap.xml 三、纯静态 此部分内容补充于:2016年10月24日程序员节 看到很多朋友已经在问这个sitemap如何静态化,加快打开速度。毕竟每次重新生成绝对是一个耗能大户,而且还有可能被有心之人拿来作为攻击入口! 其实,张戈博客早就已经实现sitemap.xml静态化了,而且在后面的文章中也有提到=>【相关文章】 实现方法有多种,比如在Nginx的fastcgi缓存中取消xml文件的缓存屏蔽,或者使用张戈博客最早使用的php生成静态文件等。 在这里,我就分享一个自己一直在用的最简单的实现方法:Linux定时任务+wget定时生成sitemap.xml 具体实现:将sitemap.php放到某个不为人知的目录,然后定时使用wget去请求这个文件,并将数据保存为sitemap.xml存放到网站根目录就可以了!比如: 2017-09-22补充:如果是启用了https的站点,需要加入 --no-check-certificate  的选项,即: Ps:使用这个方法,注意sitemap.php里面的 require('./wp-blog-header.php'); 要改成 require('../wp-blog-header.php'); 也就是注意相对位置! 如果实在搞不清楚什么是相对路径,那么就用简单粗暴的方法:将网站根目录的sitemap.php重命名为一个只有自己知道的php文件,比如xml.php,然后如下添加任务: 这样一来,就解决了sitemap.xml是动态数据问题了! 四、文章最后 ①、确认无误之后,已开通sitemap权限的就可以前往百度站长平台提交了,没开通权限的可以发送申请邮件到百度站长平台管理员邮箱申请,并且将sitemap.xml使用a标签链接在网站底部即可。 ②、代码使用很简单,可以根据需要增减内容,比如觉得标签不应该出现在sitemap里面的,可以将标签部分的php代码删除即可,但一定要注意不要误删除结尾的</urlset>标签。 ③、今天,把分类、单页面及标签的sitemap都整出来了,那开放适配专用sitemap的php代码也就可以继续完善下了,回头有时间我会整理总结一篇关于sitemap及开放适配的终结篇,敬请期待!
阅读全文
网站建设

php自动生成百度开放适配PC页-手机页pattern对应关系sitemap.xml

以前做百度开放适配一直是提交普通的url对应关系,这种方式有个缺点,就是必须每个页面的url关系都得兼顾,即有多少就得提交多少。 然而,很多网站并不是WordPress建站,所以以往我提供的php代码也无法满足所有网站的需求。遇到这种难题,其实百度也提供了另一种关系提交——PC页-手机页pattern对应关系。 这种对应关系的优点在于,每一种url形式只需要提交一组具备正则对应关系的xml数据结构即可。 一、文章关系 对应文章页面,我的博客是%post_id%.html的格式,剩下的也只是PC域名和移动域名的对应关系,所以文章页面pattern对应关系可如下提交: 这样一组对应关系的提交,即可完成网站所有文章的百度开放适配。 二、分类关系 同样的,按照上面的对应结构,可以轻而易举的写出wordpress分类的pattern对应关系: 这2组pattern对应关系就能完成我博客的所有页面的开放适配,简单吧?! 三、关系组合 按照xml的格式,将上述2组关系组合在一起,保存为sitemap_pn.xml文件,就可以去百度开放适配提交了: 四、php代码 眼尖的朋友,应该发现了,xml中的时间是写死的,这样会不会有问题就不知道了。看来还是弄个动态的时间比较靠谱,于是写了一个php代码如下: 这样,百度抓取的时候,时间也就是博客最后更新的时间了,而非写死的时间。最后,将以上代码保存为sitemap_pn.php文件并上传到网站根目录。 五、提交关系 每个在百度站长平台验证过的网站都具备百度开放适配的权限。 直接打开数据提交地址:http://zhanzhang.baidu.com/mobiletools/add 提交这个php文件的地址即可: 如果没有出现编码错误,基本上就可以通过了: 显示数量为2 ,因为文件只提交了2组pattern对应关系。 六、拓展阅读 上文其实是想告诉大家,如果你的网站不好生成url对应关系的sitemap,可以写一个pattern级别的sitemap,将网站的对应关系,按照pattern格式分组列出即可,而无需苦恼动态脚本。 注意事项: ①、pattern对应关系涉及的正则表达式,百度官方已说明只支持数字正则(\d+)和数字字母组合的(\w+); 具体可以参考上文的pattern对应关系或者百度给出的范例:http://zhanzhang.baidu.com/site/format?id=388 ②、不要使用记事本编写相关代码,xml的编码问题会非常蛋疼,推荐用EditPlus等工具来编写; ③、根据实际情况正确选择网站版式:<xhtml_url_pattern>、<wml_url_pattern>、<html5_url_pattern>。 ④、企业网站若有需要,张戈博客可提供有偿适配服务:50元/次,包括xml、META申明等。 关于开放适配的教程写到这就全部结束了,我会找个时间整理总结一个终结篇,方便有需要的人查看,敬请期待。
阅读全文
网站建设

百度Sitemap工具升级版内测,附移动sitemap.xml的php代码(支持响应式)

早上在研究如何禁止百度转码和百度网页缓存时,在百度站长平台看到了新消息提示,查看有如下内容: 看来俺博客的移动开放适配和移动站的建设已得到了百度的认可,我长期来的研究努力并没有白费。虽然很多人并不认可用二级域名再弄一个移动站的做法,而是更加推崇响应式网页,甚至谷歌也一直推荐响应式建站。 在我看来,只要做好PC站和移动站的适配工作,无论是从体验还是从SEO角度上看,二级域名做移动站和使用响应式的区别并不大。 最有说服力的案例就是百度搜索,百度自己都一直用的二级域名做移动站:http://m.baidu.com/,所以,用二级域名走移动站,绝对不会被百度搜索所排斥!这不,百度都给俺的移动站发邀请了,一切就清白了吧! 收到邀请后,我第一时间修改了php代码,并提交了针对m.zhang.ge的sitemap,下面简单说下步骤: 一、php代码 以下是摘自百度官方的移动Sitemap协议的帮助文件: 根据以上说明,可推出如下三种可用的移动sitemap生成php脚本(适合WordPress,其他程序仅供参考): ①、非响应式WordPress网站适用(适用于二级域名做移动站): ②、响应式WordPress网站适用: ③、响应式二合一做法: 如果是响应式网站,其实可以将PC版sitemap改造一下,同时兼顾百度PC搜索和移动搜索,代码如下: 请根据网站实际情况,选择合适的代码保存为sitemap_mob.php,并上传到网站根目录。 然后在浏览器访问:http://m.zhang.ge/sitemap_mob.php 查看效果。 Ps:如果响应式网站,推荐使用二合一的php代码,可同时提交向百度提交PC和移动的数据,从而避免转码困扰。 ④、福利:针对响应式网站,若还没开通百度sitemap权限,可制作开放适配专用的sitemap 代码如下: 先根据网站的实际版式,修改代码中板式标签部分,即将<xhtml_url>标签替换成实际的网站版式,以下为三种网站版式,选择一种即可: 不会看版式的,请参考如下说明对比一下网站的申明: 修改完善后,同样将上述代码保存为sitemap_sp.php文件。上传到网站根目录,然后使用浏览器访问该文件确认无误后,打开http://zhanzhang.baidu.com/mobiletools/index,提交百度开放适配数据即可!所有验证过的网站,均可以提交百度开放适配数据! 当然以上代码是针对响应式写的,如果是非响应式网站,请参看张戈博客之前的文章: 移动搜索SEO分享:PHP自动生成百度开放适配及360移动适配专用的Sitemap文件 二、新增伪静态 ①、Nginx做法 在原来的伪静态位置新增规则: ②、Apache做法 在.htaccess中新增规则: 保存后,在浏览器访问http://m.zhang.ge/sitemap_mob.xml 查看效果。 Ps:其实百度支持提交php地址,所以第二步只是为了看起来更像xml文件而已,其实可做可不做!! 三、前往提交 打开百度sitemap工具地址:http://zhanzhang.baidu.com/sitemap/index 选择移动域名后提交上面的sitemap_mob.xml地址即可: 提交完毕,至于有什么效果,就不得而知了,反正俺的博客的移动搜索本来就已经适配完善了: 算是给百度当了一次小白鼠,仅此而已。
阅读全文
网站建设

移动搜索SEO分享:PHP自动生成百度开放适配及360移动适配专用的Sitemap文件

导读 随着智能手机的高速普及,人们将更多时间放到了手机上,麻利的做着以前只能在电脑上才能完成的购物、聊天、信息获取等事情。如此一来,站长们对移动端的SEO也就越来越关注。当然,也各大搜索引擎也开始发力移动搜索,比如百度近期推出的2014网站移动化大赛和开放适配、360推出的移动适配等。而张戈对于移动适配也是关注已久,写过不少相关文章,现在就来分享一个通过php自动生成百度开放适配和360移动适配的专用sitemap文件的方法。 先再次回顾下,张戈关于百度开放适配和360移动适配的历次折腾记录: ①、百度开放适配专用sitemap制作说明 ②、360站长平台移动适配文件制作说明 ③、百度开放适配&360移动适配专用Sitemap转换工具 ④、利用Meta声明来做百度开放适配 必须要申明的是,下面介绍的专用适配Sitemap,并不同于我们平常所说的网站地图Sitemap,百度开放适配Sitemap里面是PC页—手机页的对应关系,例如: 此文的PC页面地址为:https://zhang.ge/3816.html 而对应移动版页面为:http://m.zhang.ge/3816.html 那么可以通过这个专用sitemap文件将对应关系提交到百度开放适配,一旦适配成功,百度将会在移动搜索中将原PC页结果替换为对应的手机页结果。具体可以参考百度官方说明文档:http://zhanzhang.baidu.com/wiki/39#3 另外,响应式网站的开放适配请前往查看张戈博客的另一篇文章:https://zhang.ge/4530.html 弄清楚概念之后,咱们继续往下看。 一、准备工作 在生成适配文件之前,你需要一个PC网站的手机版本。本文所提供的代码默认支持的是二级域名做移动站,想用二级域名做移动站的请查看张戈博客的相关文章: ①、完美实现移动主题在360网站卫士缓存全开情况下的切换 ②、分享WordPress Mobile Pack汉化精简版及隐藏指定插件更新提示的方法   二、php代码 ①、百度开放适配: ②、360移动适配: 代码说明: <1>、以上代码默认限制1000篇文章,如需修改请改变第5行的数值即可; <2>、涉及到张戈博客域名( *.zhang.ge )的代码,请根据实际情况修改成自己网站的域名; <3>、请网站的实际版式,修改代码中板式标签部分,即将<xhtml_url>标签替换成实际的网站版式,以下为三种网站版式,选择一种即可: 不会看版式的,请参考如下说明对比一下网站的申明: 如果发现你的移动站用的还是PC通用的版式申明,那么请改成相应的mobile版式申明,以加快搜索引擎的识别。 补充说明:如果是其他类型的移动站,该如何修改? (1)、如果是 http://yoursite.com/wap 这种二级目录形式,请将代码中的m.zhang.ge全部替换成 yoursite.com/wap即可。 (2)、如果是http://yoursite.com?type=mobile 这种参数形式: 请将2种代码中的 修改为: 即加上你移动站对应的转换参数即可,至于代码中的首页对应关系该如何修改,相信可以自行搞定,无需赘述! 三、新增函数 请编辑主题目录下的functions.php文件,插入以下函数代码: 做完以上步骤,你就可以手动访问2个php脚本查看效果了,比如: https://zhang.ge/sitemap_baidu_sp.php https://zhang.ge/sitemap_360_sp.php 若显示正常,你可以继续下一步了。 目前已收集到的报错反馈,及相应解决办法: ①、若访问报500 Internal Server Error :File xxx is writeable by group错误,请将以上2个文件权限设置为644。 ②、访问百度开放适配php地址后,大概在16行报出如下错误: 这个和Apache设置有关系,目测是Win主机下特有问题。 解决办法有2个: 第1种:请打开 php.ini 然后把 output_buffering 设为 on 。重起appache,OK(可以找主机商解决); 第2种:删除上文中百度开放适配代码中的第25行: header("Content-type: text/xml"); 应该可以解决。   四、伪静态规则 从第二步最后的访问地址可以看出,用的是php的动态路径,而百度写明了需要提交xml格式(其实,我发现php格式也可以提交成功),360则写明了需要提交txt格式。于是,接下来就是将地址伪静态化。 编辑网站根目录的 .htaccess文件,如下代码所示位置新增8~11行内容: 保存之后,应该可以直接访问xml和txt路径了,如: https://zhang.ge/sitemap_baidu_sp.xml https://zhang.ge/sitemap_360_sp.txt   五、前往提交 ①、百度站长平台-开放适配:http://zhanzhang.baidu.com/mobiletools/add 提交成功预览:   ②、360站长平台-移动适配:http://zhanzhang.so.com/index.php?m=Urlmap&a=submit   提交成功预览:   若以上未出现问题,那恭喜你!一劳永逸地搞定了百度开放适配和360移动适配这项闲得蛋疼的项目...! 至此,张戈终于搞定百度开放适配和360移动适配专用sitemap没法自动更新的历史遗留问题! 六、效果展示 在手机上百度,site:zhagnge.net 可得到如下图结果:     看了上图,你可能会说,这不就只是收录了二级移动站么?那好,搜索 site:m.zhang.ge试试:   看完上图无需多言,相信你已经明了百度开放适配是个啥效果了!   篇后语:php代码是动态生成的,如此就保证了搜索引擎更新抓取的时候,是最新状态!而不会是之前那样苦逼手动去生成和更新!不过,暂时也稍有遗憾,仅仅生成了文章页面的对应关系,单页面和分类并未提供!不过,能适配文章也差不多了! 注意事项; ①、本文提供的方法仅适合Wordpress建站程序,其他PHP建站程序仅提供参考思路; ②、代码默认支持Linux系统,若是windows系统,需要修改换行符,若有疑问请留言咨询。...
阅读全文