网站建设

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

Jager · 6月20日 · 2014年 · · · 4490次已读

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


 

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

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

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

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

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

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

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

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

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

赶紧点开看了看: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>https://zhang.ge/</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.zhang.ge/</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.zhang.ge/</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("zhang.ge","m.zhang.ge",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自动提交复合型Sitemap到百度搜索

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

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

64 条回应
  1. 橡胶硫化机 2014-6-20 · 10:25

    看得出,博主很用心。

  2. wordpress主题 2014-6-20 · 10:59

    不错,有长见识了。

  3. 糯米汇 2014-6-20 · 12:50

    支持一下!

  4. 阿桑小僧 2014-6-20 · 14:50

    虽然看不懂,小僧还是要念经捧场的

  5. 女装屋 2014-6-20 · 15:00

    移动端SEO,貌似没听过,真是孤陋寡闻了

  6. 免费资源部落 2014-6-20 · 16:27

    我还在搞移动主题。

  7. Pablo Alboran 2014-6-20 · 18:06

    好牛的感觉啊

  8. 逸睡 2014-6-20 · 18:39

    好像很牛B的样子。

  9. 幸运28观察 2014-6-20 · 18:43

    技术文章,不错哈`

  10. 王晟璟 2014-6-20 · 19:07

    你走在了前面!

  11. PHP二次开发 2014-6-20 · 20:20

    提交两种,小心K你

    • avatar
      Jager 2014-6-20 · 20:48

      2种不一样啊。。。

  12. 圆月博客 2014-6-20 · 21:09

    牛逼,这技术,,

  13. iYest!生活 2014-6-20 · 21:56

    先来收藏一个...留待以后有用的时候用上

    • avatar
      Jager 2014-6-23 · 12:58

      你是自适应的网站,也可以用。

  14. yedward 2014-6-20 · 23:21

    我也申请了,不知道能不能通过。

    • avatar
      Jager 2014-6-23 · 12:59

      那坐等通知好了。。

  15. 萌妹 2014-6-20 · 23:37

    原来这么屌啊

  16. 微信营销博客 2014-6-21 · 9:52

    博主技术不错,我每天都必须来学习下。

  17. 世界之最 2014-6-21 · 9:58

    移动SEO还没试过,的我站都没有移动站

  18. 廊坊网站建设 2014-6-21 · 10:09

    这都能开发 ,太牛了

  19. 常乐猫blog.clmao.com 2014-6-21 · 10:17

    好高端

    • avatar
      Jager 2014-6-21 · 10:20

      一直想要你写一个的。

  20. 兔子酱 2014-6-21 · 17:44

    学习了哦

  21. 屠龙 2014-6-22 · 12:30

    百度的移动搜索具体怎么做呢

  22. 每日秀 2014-6-22 · 19:19

    哪个wordpress标题中的竖线你能有办法搞掉么!我这代码一点不懂的查了好久也没找到这方面的资料

    • avatar
      Jager 2014-6-22 · 20:13

      你说的是 标题|每日秀 这种格式?

      • 每日秀 2014-6-22 · 20:14

        是的 我要改成其他形式的怎么改

        • avatar
          Jager 2014-6-22 · 20:17

          修改主题下的 includes/seo.php文件即可。 里面很多 |

          • 每日秀 2014-6-22 · 20:23

            找到了,不过现在刚快照,我不能动了 先这样

  23. 幸运28观察 2014-6-22 · 19:46

    兄弟你会不会写wordpress调用帖子的功能?不是js,同一个数据库调用,我愿意付费~

    • avatar
      Jager 2014-6-22 · 20:12

      调用帖子?2个WP公用么?

      • 幸运28观察 2014-6-23 · 7:55

        一个是wordpress,一个是discuz,我wordpress想调用discuz的帖子

        • avatar
          Jager 2014-6-23 · 12:56

          DZ没玩过,你可以找下php2.cc博主,他专门弄这个

  24. 萌妹 2014-6-22 · 20:32

    用了百度云加速之后首页登录 搜索都失效了 怎么办呢

    • avatar
      Jager 2014-6-22 · 20:38

      缓存了首页,这些功能是会有影响。

      • 萌妹 2014-6-22 · 20:40

        没缓存首页啊

        • avatar
          Jager 2014-6-22 · 20:42

          把静态也取消试试。

          • 萌妹 2014-6-22 · 20:46

            还是不行

            • avatar
              Jager 2014-6-22 · 20:47

              那还是取消吧,好像360现在也可以不备案吧。。。

              • 萌妹 2014-6-22 · 20:52

                搜索不能用了 怎么办呢

                • avatar
                  Jager 2014-6-22 · 20:53

                  我主要是不懂你的主题。。

                  • 萌妹 2014-6-22 · 20:55

                    不知道是哪缓存了首页 好烦

                  • 萌妹 2014-6-22 · 22:14

                    放弃百度CDN了 唉 反正速度也还行

                  • 萌妹 2014-6-22 · 22:53

                    问题我解决了 是cos插件问题 生成了一个index.html

                    • avatar
                      Jager 2014-6-23 · 12:55

                      弄了CDN缓存就不要弄本地缓存啦。

  25. 龙三公子 2014-6-22 · 21:15

    能收到百度的邀请,确实不错啊。话说我的没有备案,移动的都不能用了。

    • avatar
      Jager 2014-6-22 · 21:55

      别用移动的siteapp,自己去做一个移动站。

      • 龙三公子 2014-6-22 · 23:06

        你是说作APP吗?这推广是个问题。最好还是这种能直接适应的最好了,有什么高见不?

  26. wang3feng 2014-6-23 · 7:12

    百度的搜索确实不如google

  27. 微历史 2014-6-23 · 8:01

    你最近的精力发现主要放在无线上面

  28. 夏日博客 2014-6-23 · 11:01

    一般直接用工具生成sitemap。。

    • avatar
      Jager 2014-6-23 · 12:51

      工具生成的是标准版的sitemap。

  29. Yang毛衫 2014-6-23 · 11:25

    这移动的我完全不会用,好难折腾。

    • avatar
      Jager 2014-6-23 · 12:54

      你要是WordPress,我倒是可以帮忙,ZB我就不懂了。。。

  30. 圆月博客 2014-6-23 · 11:46

    移动的sitemap? 突然发现会写代码很好啊

    • avatar
      Jager 2014-6-23 · 12:51

      恩,是移动站的sitemap。

  31. 无价值 2014-6-23 · 23:24

    刚刚开始接触,简直是看不懂,买了几本松松推荐的书,苦啃呢

  32. 陌小雨 2015-4-3 · 17:16

    不知道第二波开放百度sitemap权限会是什么时候,文章中的注释有误:Ps:所谓部分,就是如代码中48~55行之间的类似单元内容,还不理解请多吃点“灵泛得乐”胶囊!行数错了,可能是博主你加了注释的缘故吧。

  33. 谷浮 2015-6-1 · 15:37

    Jager你好,我的网站也是wordpress的程序做的,我采用的主题是自适应的,PC和MOBOLE可以自适应显示,不过这样的话PC和MOBOLE的URL都是一样的,我使用的柳城的百度地图插件生成了一个XML文件,在提交百度移动适配时候,是不是只需要将这个XML文件提交即可,不再需要为移动端制作XML地图文件了。是不是可以这样理解。

  34. 李易明 2015-7-5 · 14:00

    学习了 ..

  35. basemu 2015-7-18 · 18:17

    我是新手,自己鼓捣着玩。请问Jager,这个php文件具体是怎么使用的?是直接存为php,然后放到根目录吗?