不久前,张戈博客曾分享了《移动搜索 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>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 自动生成百度开放适配及 360 移动适配专用的 Sitemap 文件》中的使用方法,比如伪静态、添加 function 函数等。
写在最后:个人觉得提交这个 sitemap 会比做开放适配的效果好得多!当然,前提是你的域名已开通了百度站长平台的 sitemap 提交功能才可以用。已有权限的童鞋赶紧试试看吧!