wordpress SEO插件关了,自定义的sitemap.xml生成的代码 删了
现在访问 站点的sitemap.xml 提示解析错误

wordpress SEO插件关了,自定义的sitemap.xml生成的代码 删了
现在访问 站点的sitemap.xml 提示解析错误

上午好☀️☀️☀️️
本答案参考通义千问
你目前遇到的问题是:访问 WordPress 站点的 sitemap.xml 时提示“解析错误”。这种情况通常是因为 XML 格式不正确,或者 服务器返回的内容不是有效的 XML。
sitemap.xml 文件内容是否合法重点:确保你的 sitemap.xml 是一个合法的 XML 文件。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://yourdomain.com/</loc>
<lastmod>2025-04-05</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<!-- 更多 URL -->
</urlset>
<urlset>
<url>
<loc>https://yourdomain.com/
</url>
</urlset>
注意: 所有标签必须正确闭合,且 XML 声明必须在最开始。
sitemap.xml 的实际内容你可以通过浏览器直接访问 https://yourdomain.com/sitemap.xml,查看返回的内容是否为合法 XML。
确保服务器返回的 Content-Type 是 application/xml 或 text/xml。
Content-Type: application/xml; charset=UTF-8
Content-Type: text/html; charset=UTF-8
你可以使用浏览器开发者工具(F12 → Network → 查看请求详情)检查响应头。
sitemap.xml如果文件确实存在并且内容错误,建议:
sitemap.xml 文件(如果不需要手动维护)。sitemap_old.xml 以防误操作。如果你之前使用了第三方 SEO 插件(如 Yoast SEO、Rank Math 等),即使关闭了插件,也可以通过以下方式恢复站点地图:
WordPress 本身支持站点地图,只需访问:
https://yourdomain.com/sitemap_index.xml
这个文件会自动列出所有站点地图,包括文章、页面、分类等。
安装并激活 Google XML Sitemaps 插件:
https://yourdomain.com/sitemap.xml 查看是否正常。如果你手动设置了 .htaccess 规则来处理 sitemap.xml,请确认规则没有冲突。
.htaccess 规则(仅用于测试):<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^sitemap\.xml$ /wp-content/sitemap.xml [L]
</IfModule>
注意: 不要随意添加规则,以免干扰 WordPress 的默认行为。
sitemap.xml下面是一个简单的 PHP 脚本,可以动态生成 sitemap.xml 文件:
sitemap.xml):<?php
header("Content-Type: application/xml; charset=UTF-8");
echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
// 获取所有文章
$args = array(
'post_type' => 'post',
'posts_per_page' => -1,
);
$query = new WP_Query($args);
while ($query->have_posts()) {
$query->the_post();
echo '<url>' . "\n";
echo ' <loc>' . get_permalink() . '</loc>' . "\n";
echo ' <lastmod>' . get_the_modified_date('c') . '</lastmod>' . "\n";
echo ' <changefreq>weekly</changefreq>' . "\n";
echo ' <priority>0.8</priority>' . "\n";
echo '</url>' . "\n";
}
// 获取所有页面
$args = array(
'post_type' => 'page',
'posts_per_page' => -1,
);
$query = new WP_Query($args);
while ($query->have_posts()) {
$query->the_post();
echo '<url>' . "\n";
echo ' <loc>' . get_permalink() . '</loc>' . "\n";
echo ' <lastmod>' . get_the_modified_date('c') . '</lastmod>' . "\n";
echo ' <changefreq>monthly</changefreq>' . "\n";
echo ' <priority>0.5</priority>' . "\n";
echo '</url>' . "\n";
}
echo '</urlset>';
?>
注意: 将此文件保存为
sitemap.xml并放置在 WordPress 根目录下,然后访问https://yourdomain.com/sitemap.xml查看效果。
| 步骤 | 操作 |
|------|------|
| 1 | 检查 sitemap.xml 文件内容是否为合法 XML |
| 2 | 确认文件路径和服务器返回内容是否正确 |
| 3 | 检查 HTTP 响应头中的 Content-Type 是否正确 |
| 4 | 删除或重命名错误的 sitemap.xml 文件 |
| 5 | 使用 WordPress 自带的站点地图功能 |
| 6 | 如需手动维护,使用上述 PHP 脚本动态生成 |
如果你能提供 sitemap.xml 的实际内容,我可以进一步帮你检查具体哪里出错。