专栏首页张戈的专栏移动SEO分享:php自动提交复合型Sitemap到百度搜索

移动SEO分享:php自动提交复合型Sitemap到百度搜索

导读:本文分享的是移动 sitemap 协议说明及生成复合型 sitemap 的方法。所谓复合型就是指一个 sitemap.xml 既包含了 pc 页,也包含了 mobile 页!一旦提交,双管齐下,同时搞定了结构化数据和移动开放适配!而且此方法适用于任何 wordpress 建站的网站,包括响应式亦可提交带响应式标识的 sitemap!所以,网站是响应式的童鞋也就别在那“得瑟”你的响应式多么多么的高大上了!当然,如果你不在乎 SEO 那也可以不用浪费时间了。


不久前,张戈博客曾分享了《移动搜索 SEO 分享:PHP 自动生成百度开放适配及 360 移动适配专用的 Sitemap 文件》,不管有没有人用,反正我用的很惬意,此文也被免费资源部落(freehao123.com)重新整理转载,反响还不错!

就在前天,惊喜的收到了期盼已久的百度 sitemap 邀请通知:

虽说,这功能在内测的时候随便用,但是很多新站都没赶上那一波,暂时都处于邀请状态:

我在收到邀请通知后,迫不及待地提交了一直在冷板凳坐着的 sitemap.xml!

然而不经意间,我在这个页面发现了新大陆:

赶紧点开看了看:http://zhanzhang.baidu.com/wiki/93#03

三、什么是移动 Sitemap 协议,如何提交 Sitemap 到移动搜索? 百度推出了移动 Sitemap 协议,用于将网址提交给移动搜索收录。百度移动 Sitemap 协议是在标准 Sitemap 协议基础上制定的,增加了<mobile:mobile/>标签,它有三种取值:

  • <mobile:mobile/> :移动网页
  • <mobile:mobile type="mobile"/> :移动网页      
  • <mobile:mobile type="autoadapt"/>:自适配网页,适用于同一网址页面,会随设备不同改变展现的情况。  
  • 无该标签表示 PC 的网页

下方样例相当于向百度移动搜索提交了一个移动网页:http://m.example.com/index.html,向 PC 搜索提交了一个传统网页:http://www.example.com/index.html,同时向移动搜索和 PC 搜索提交了一个自适配网页 http://www.example.com/autoadapt.html: <?xml version="1.0" encoding="UTF-8" ?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/"> <url> <loc>http://m.example.com/index.html</loc> <mobile:mobile type="mobile"/> <lastmod>2009-12-14</lastmod> <changefreq>daily</changefreq> <priority>0.8</priority> </url> <url> <loc>http://www.example.com/index.html</loc> <lastmod>2009-12-14</lastmod> <changefreq>daily</changefreq> <priority>0.8</priority> </url> <url> <loc>http://www.example.com/autoadapt.html</loc> <mobile:mobile type="autoadapt"/> <lastmod>2009-12-14</lastmod> <changefreq>daily</changefreq> <priority>0.8</priority> </url> </urlset>

仔细看了下 xml 代码及百度移动 sitemap 协议说明,发现原来 sitemap 可以同时提交 pc 页和 mobile 页,如果是自适应网站还可以使用自适应标识:<mobile:mobile type="autoadapt"/>,具体请细看上方引用说明。

再对比了下我上次写的那个开放适配的 php 代码,10 分钟不到就搞定了这个 php!

下面分享 php 源代码:

<?php
require('./wp-blog-header.php');
header("Content-type: text/xml");
header('HTTP/1.1 200 OK');
$posts_to_show = 1000; // 获取文章数量
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"';
echo 'xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/">'
?>
<--PC页面地址,实际使用请务必删除此行注释-->
  <url>
      <loc>http://zhangge.net/</loc>
      <lastmod><?php $ltime = get_lastpostmodified(GMT);$ltime = gmdate('Y-m-d\TH:i:s+00:00', strtotime($ltime)); echo $ltime; ?></lastmod>
      <changefreq>daily</changefreq>
      <priority>1.0</priority>
  </url>
<--mobile页面地址,实际使用请务必删除此行注释-->
  <url>
      <loc>http://m.zhangge.net/</loc>
      <mobile:mobile type="mobile"/>
      <lastmod><?php $ltime = get_lastpostmodified(GMT);$ltime = gmdate('Y-m-d\TH:i:s+00:00', strtotime($ltime)); echo $ltime; ?></lastmod>
      <changefreq>daily</changefreq>
      <priority>1.0</priority>
  </url>
<--自适应页面地址,实际使用请务必删除此行注释-->
  <url>
      <loc>http://m.zhangge.net/</loc>
     <mobile:mobile type="autoadapt"/>
      <lastmod><?php $ltime = get_lastpostmodified(GMT);$ltime = gmdate('Y-m-d\TH:i:s+00:00', strtotime($ltime)); echo $ltime; ?></lastmod>
      <changefreq>daily</changefreq>
      <priority>1.0</priority>
  </url>
<?php
header("Content-type: text/xml");
$myposts = get_posts( "numberposts=" . $posts_to_show );
foreach( $myposts as $post ) { ?>
<--PC页面地址,实际使用请务必删除此行注释-->
  <url>
      <loc><?php the_permalink(); ?></loc>
      <lastmod><?php the_time('c') ?></lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.6</priority>
    </url>
<--mobile页面地址,实际使用请务必删除此行注释-->
  <url>
      <loc><?php echo str_replace("zhangge.net","m.zhangge.net",the_sitemaplink()); ?></loc>
      <mobile:mobile type="mobile"/>
      <lastmod><?php the_time('c') ?></lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.6</priority>
    </url>
<--自适应页面地址,实际使用请务必删除此行注释-->
  <url>
      <loc><?php the_permalink(); ?></loc>
      <mobile:mobile type="autoadapt"/>
      <lastmod><?php the_time('c') ?></lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.6</priority>
    </url>
<?php } // end foreach ?>
</urlset>

使用说明:

①、必须收到了百度 sitemap 提交权限的邀请后才能使用,当然你也可以放到根目录,弄个链接等蜘蛛自己爬;

②、如果是自适应的网站,仅需要保留 <--自适应页面地址,实际使用请务必删除此注释-->的<url>部分即可;

③、如果是非自适应网站,请删除 <--自适应页面地址,实际使用请务必删除此注释-->的<url>部分;

Ps:所谓<url>部分,就是如代码中 48~55 行之间的类似单元内容,还不理解请多吃点“灵泛得乐”胶囊!

④、此代码只提交了文章页面,如果介意的话,可以仅保留 mobile 页面,去提交移动 sitemap 即可,pc 页面可另行使用插件生成更完整的 sitemap.xml。

目前张戈博客就是用的这个方法,同时向百度提交 2 种 sitemap.xml:

⑤、由于篇幅有限,就不复述其他相同的使用说明了!实际使用,请务必参考《移动搜索 SEO 分享:PHP 自动生成百度开放适配及 360 移动适配专用的 Sitemap 文件》中的使用方法,比如伪静态、添加 function 函数等。

写在最后:个人觉得提交这个 sitemap 会比做开放适配的效果好得多!当然,前提是你的域名已开通了百度站长平台的 sitemap 提交功能才可以用。已有权限的童鞋赶紧试试看吧!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Wordpress安全架构分析

    WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。WordPress具有插件架构和模板系统。Alexa排行前100万的网站中...

    Seebug漏洞平台
  • Gnuboard 漏洞分析

    Gnuboard是韩国Sir公司开发一套PHP+Mysql CMS程序。 本身数据结构简单,可扩展性能强,程序运行代码与皮肤文件分离,可扩展数据字段多,可以进行...

    Seebug漏洞平台
  • 数据库常见的图形工具有哪些?

    疑惑一 MySQL常用的图形化管理工具有哪些? 现在随着PHP+MySql越来越火,周边相关产品也受到众多人的关注。在PC上修改数据库,查看数据库内容是研发人员...

    程序员互动联盟
  • 总结nmon的诸多优点 (r4笔记第78天)

    nmon在平时的工作中可能会多多少少接触到,从sourceforge上能够下载到nmon的包。可能是有着IBM的血统,这个工具对于AIX的支持力度要大得多。 当...

    jeanron100
  • XSS分析及预防

    XSS(Cross Site Scripting),又称跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行。在WEB前端应用日益发展的今天,XSS漏洞尤其容...

    欲休
  • 想看爱奇艺VIP视频?一个python脚本帮你搞定

    一、实战背景 爱奇艺的VIP视频只有会员能看,普通用户只能看前6分钟。比如奇门遁甲的URL:http://www.iqiyi.com/v_19rrfnf1gk....

    机器学习AI算法工程
  • 治愈各种胡思乱想的清单!

    假期结束了,应该很多小伙伴都已经开工了,新的一年你有什么计划,下面小编整理了一份治愈胡思乱想的清单,希望能帮你在胡思乱想的这条道路上一去不回头!!!

    思梦php
  • 学会了C语言,能开发什么?

    看招聘职位要C语言的比例真不多了,是不是C语言真的过时了? 看看很多招聘网站有关找纯粹的C语言开发的比例真的不是很多,都被Java,php,python等等语言...

    程序员互动联盟
  • 【专业技术】PHP对战Node.js

    整个故事正如好莱坞大片的经典剧情走向:两位昔日好友如今分道扬镳,甚至被迫陷入了你死我活的斗争当中。刚开始的分歧并不严重,无非是一位老友对于另一位伙伴长久以来占据...

    程序员互动联盟
  • C语言过时了吗?

    很多编程找工作的人,都在唱衰C语言,C语言是很基础的编程语言,但是从工作机会来看相比java,php,python等编程语言少了很多。 那么C语言真的不行了嘛...

    程序员互动联盟

扫码关注云+社区

领取腾讯云代金券