看到百度站长工具的消息:百度不支持索引型XML网站地图,已提交的索引型文件要及时删除。百度官方提到的索引型XML网站地图是很多地图插件生成的那种网站地图,比如 Google XML Sitemaps插件。听说百度这么做是为了打击一些恶意排名的做法。好在即使不用插件我们也可以WordPress免插件生成XML网站地图,而且这个方式比较方便,只要一开始设置好了符合百度要求的XML地图文件,后面就无需人工干预,完全可以自动化操作。
下图是百度不予处理的索引型xml网站地图,只要你还想继续依靠百度抓取收录,这种情况的网站地图要赶紧修改了。

WordPress网站地图代码
虚拟主机无法实现,换成云服务器就行了。
国外服务器:点我登陆 Vultr 主机
将以下代码添加到 sitemap.php 文件(文件名不要和我这个一样),使用UTF-8 编码,别用记事本保存容易出错,用 dreamweaver、Notepad++,Editplus都行。
相关内容:常用网站文件编辑软件 Dreamweaver、Notepad++、Editplus 介绍及如何选择
上传到站点某个目录中。
'; echo '' ?> daily 1.0 0) { foreach($mypages as $page) { ?> monthly 0.6 0){ foreach ($terms as $term) { ?> ID); ?> ID)->post_modified); ?>+00:00 weekly 0.6 $tag ) { $link = get_term_link( intval($tag->term_id), "post_tag" ); if ( is_wp_error( $link ) ) return false; $tags[ $key ]->link = $link; ?> slug); ?> weekly 0.8 monthly 0.4
说明:代码来源自https://zhang.ge/4554.html,原作者张戈博客。同时参考了明月登楼的https://www.imydl.com/wp/5688.html,boke112的https://boke112.com/post/8015.html,张戈博客的代码有一点小问题,老魏这里直接执行会出错。参考了后面 2位博主的修改后顺利执行。
下面是对代码的解释:
1、代码开头有张戈博客的版权信息,这个对生成地图文件没什么用。
2、第5行的 $posts_to_show = 10000; 代表执行的文章数量,建议比目前已有文章数量大一些,这样就可以生成全部文章URL的地图文件了。
3、关键代码解释:
文件最后修改时间。首页就是首页最后更新时间,文章页就是文章页最后更新时间。
更新频率。比如文章的 monthly 是月度更新,如果你经常修改已经发布的文章,那么可以考虑 daily 或 weekly,谨慎!
当前文件优先权。在上面代码中首页的优先权是1.0,最大的。文章0.6,页面0.6,分类0.8,标签0.4。这里大家一定要根据你的网站情况自行判断是否修改权重数字,不懂就别改,谨慎!
4、代码文件的存放位置不同路径也不同,注意相对目录位置。
- sitemap.php文件放到网站根目录,要注意上面代码第2行,应该使用 require(‘./wp-blog-header.php’);
- 文件放到网站根目录下面的某个目录中,第2行应该用 require(‘../wp-blog-header.php’);
5、使用本页面的代码经过老魏测试是有效的。如果照搬张戈博客的代码执行会出错,生成文件大小是 0,还有别的错误提示,总之就是无法正常生成网站地图文件。
网站地图php文件执行
有了代码还需要执行,我们不可能手动去执行这个文件,万一有几天忘记手动操作了就麻烦了(网站地图一直不更新)。如果你用了 linux服务器,可以借用系统自带的定时计划功能来实现定时自动更新,解放双手。
不得不提的服务器安全问题如下:
sitemap.php这个动态文件的名称和实际目录不能让别人知道。所以文件名要改成只有你自己知道的名字,路径放到网站中只有你自己知道的目录中。为了防止目录被遍历查询搜索到,还可以通过赋予 root 群组限制访问和获取用户权限。
以现在国内市场占有率比较高的宝塔面板为例,登录面板的计划任务,按照下面提示设置:
任务类型:Shell 脚本;
任务名称:随便;
执行周期:根据你网站文章更新频率,每次文章更新执行,或者每天凌晨访问人数少时更新也行;
脚本内容输入以下代码,修改代码中的网站实际路径及文件名称,添加任务。
域名前缀是http 添加代码:
wget -O /www/wwwroot/网站目录/sitemap.xml https://域名/sitemap.php
域名前缀是https 添加代码:
wget -O /www/wwwroot/网站目录/sitemap.xml --no-check-certificate https://域名/sitemap.php

网站地图自动生成验证
1、如果想马上知道XML文件生成结果,添加计划任务后可以马上点击执行生成 sitemap.xml 文件。等待2分钟后点击“日志”查看,如果看到如下图所示结果就是成功了。
注意:要先看到下图红框中的多行执行结果,再看到显示 successful时候就是成功了。再把图中的 /域名/sitemap.xml 扔到浏览器中打开试试能否看到一行行的XML文件格式。比如魏艾斯笔记网站地图 这种形式的就可以了。

2、百度站长工具的站点管理 > 普通收录 > 资源提交 > sitemap中,勾选并删除原来的文件,那里有个手动更新文件按钮,不过系统会提示先删除再提交新文件。删除并提交网站地图url后等待一会儿再去查看,如果状态显示“正常”就OK了。

WordPress无插件生成网站地图总结
1、生成的网站地图文件适用于任何搜索引擎抓取。
2、测试百度搜索资源平台抓取成功后,停用并卸载 wordpress地图插件,给 wordpress“减负”。
3、网站地图的作用是给搜索引擎提供网站结构和及时传递更新的内容,对于网站seo优化有好处,符合百度要求的XML地图文件工作要重视起来。
4、外贸网站等面向国外访客等网站继续用Google XML Sitemaps插件吧。教程:sitemap 插件 Google XML Sitemaps 设置
5、懂代码的朋友可以修改这段代码,适用于任何php程序。
暂无评论内容