纯代码制作响应式 WordPress 站点地图,适用 PC 端和移动端
如何纯代码制作响应式 WordPress 站点地图,让其同时适用于 PC 端和移动端。PS:国内好像只有百度有移动 Sitemap 协议,所以本文所制作的 XML 地图就是百度专用。
什么是移动 Sitemap 协议?
百度推出了移动 Sitemap 协议,用于将网址提交给移动搜索收录。百度移动 Sitemap 协议是在标准 Sitemap 协议基础上制定的,增加了<mobile:mobile/>标签,它有四种取值:
- <mobile:mobile/> :移动网页
- <mobile:mobile type="mobile"/> :移动网页
- <mobile:mobile type="pc,mobile"/>:自适应网页
- <mobile:mobile type="htmladapt"/>:代码适配
- 无该上述标签表示为PC网页
从上面的<mobile:mobile/>标签取值得知,我们是响应式站点,那么只需要在我们传统的 XML 地图上添加<mobile:mobile type="pc,mobile"/>标签即可。
制作含有<mobile:mobile type="pc,mobile"/>标签的XML地图
1、制 作sitemap_mob.php 文件。将下面的代码放到一个单独的PHP文件里并命名为 sitemap_mob.php,上传至网站根目录,使用浏览器访问该文件,如能正常打开并确认里面的网页链接及标签无误后即可。
2、新增 sitemap_mob.xml 伪静态
①、Nginx 做法
在原来的伪静态位置新增规则:
- rewrite ^/sitemap_mob.xml$ /sitemap_mob.php last;
②、Apache 做法
在 .htaccess 中新增规则:
- RewriteRule ^(sitemap_mob)\.xml$ $1.php
保存后,在浏览器访问 http://yourname.com/sitemap_mob.xml 查看效果。
3、纯静态(伪静态和纯静态二选一)
这个 sitemap 每次重新生成都是一个耗能大户,很多人担心会被有心之人拿来作为攻击入口,所以这里就跟大家分享一个张戈一直在用的最简单的实现方法:Linux 定时任务+wget 定时生成 sitemap.xml
具体实现:将网站根目录的 sitemap.php 重命名为一个只有自己知道的 php 文件,比如 xml.php,然后定时使用 wget 去请求这个文件,并将数据保存为 sitemap.xml 存放到网站根目录就可以了!比如:
#每天凌晨1点在网站根目录生成一个 sitemap.xml(xml.php为自己重命名的php文件名称)
- 0 1 * * * wget -O /home/wwwroot/zhangge.net/sitemap.xml http://zhangge.net/xml.php >/dev/null 2>&1
这样一来,就解决了sitemap.xml是动态数据问题了!
至此,我们已经成功制作了一个同时适合百度PC端和移动端的网站地图,接下来的提交站点地图就不再展开说了。在这里,boke112 提醒大家,本文所说的这个 XML 地图仅适用于百度,其他国内搜索引擎好像尚未支持<mobile:mobile/>标签,所以其他搜索引擎不用提交本文所交的 XML 地图哦。
参考资料:
拓展阅读(谷歌移动Sitemap):
- <?xml version="1.0" encoding="UTF-8" ?>
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="http://google.com/schemas/sitemap-mobile/1.0">
- <url>
- <loc>http://mobile.example.com/article100.html</loc>
- <mobile:mobile/>
- </url>
- </urlset>
请注意:
- 谷歌移动 Sitemap 只能包含支持移动网络内容的网址。Google 抓取机制将忽略任何只支持非移动网络内容的网址。如果有非移动内容,请为这些网址创建单独的 Sitemap。
- 如果<mobile:mobile/>标记丢失,我们就无法正确抓取您的移动网址。
- 各移动 Sitemap 应使用唯一名称。