Google Search Console 站点地图提交与抓取完整教程

什么是站点地图,为什么要提交给谷歌

站点地图(Sitemap)是一个列出你网站所有页面的XML文件,相当于给谷歌爬虫一份"网站目录"。虽然谷歌爬虫也能通过链接自然发现你的页面,但提交站点地图有三个好处:加快新页面收录、确保深层页面不被遗漏、通过lastmod标签告诉谷歌哪些页面有更新。

Google Search Console(GSC)是提交站点地图的唯一官方渠道。验证网站所有权后,你就能在GSC中提交sitemap并查看抓取状态。

适合谁看?
本文适合刚接触Google Search Console、站点地图提交后显示"无法抓取"或"未知"类型、想搞清楚谷歌到底怎么识别sitemap的站长。所有命令和配置都基于实际操作验证。

站点地图的XML格式标准

谷歌只识别符合 sitemaps.org 协议的XML文件。格式不对,谷歌直接报"无法抓取"。

基础格式(单文件URL列表)

网站页面不多时(5万条以内),用这种最简单的 <urlset> 格式:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.example.com/</loc>
    <lastmod>2026-10-07T08:00:00+08:00</lastmod>
  </url>
  <url>
    <loc>https://www.example.com/post-1.html</loc>
    <lastmod>2026-10-06T12:00:00+08:00</lastmod>
  </url>
</urlset>

索引格式(URL数量大时用)

当页面超过5万条,单个文件装不下,就要用 <sitemapindex> 索引文件,里面引用多个子地图:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://www.example.com/post-sitemap.xml</loc>
    <lastmod>2026-10-07T06:33:18+00:00</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://www.example.com/page-sitemap.xml</loc>
    <lastmod>2026-10-06T01:42:44+00:00</lastmod>
  </sitemap>
</sitemapindex>

关键格式要求

要求 说明
XML声明必须第一行 <?xml version="1.0" encoding="UTF-8"?> 前面不能有任何字符,包括空格、BOM头、PHP警告
Content-Type头 服务器必须返回 application/xml; charset=utf-8
单文件上限 不超过50MB、50,000条URL,超出必须拆分
lastmod格式 推荐ISO 8601格式:2026-10-07T08:00:00+08:00
URL必须完整 <loc>里必须写完整URL,含https和域名

在GSC中提交站点地图

前提:先验证网站所有权

提交站点地图的前提是你已经在GSC完成了网站所有权验证。如果你还没验证,先看这篇:Google Search Console站点验证完整教程。

验证方式分两种资源类型:

  • 域名属性(输入 example.com):仅支持DNS TXT记录验证,覆盖所有子域名
  • 网址前缀资源(输入 https://www.example.com):支持Meta标签、HTML文件等多种验证方式

提交步骤

  1. 登录 Google Search Console
  2. 左侧菜单点击「站点地图」
  3. 在"添加新的站点地图"输入框中,输入sitemap的完整URL(如 sitemap.xml)
  4. 点击「提交」
注意提交格式
输入框前面会自动显示你的域名前缀,你只需要补充后面的路径。比如已有前缀 https://www.example.com/,你就输入 sitemap.xml,不要重复写完整域名,否则会变成 https://www.example.com/https://www.example.com/sitemap.xml 导致404。

状态说明:成功 / 无法抓取 / 未知

提交后GSC会显示三种状态,很多人被"无法抓取"吓到,其实大部分情况是正常的:

状态 含义 处理方式
成功 谷歌已正常读取sitemap,识别到URL数量 无需操作,等待收录即可
无法抓取 刚提交还没轮到抓取,或文件有问题 刚提交时是正常的,等几小时到一天再看
类型:未知 XML内容有问题,谷歌无法解析 检查XML格式,见下文排查
经验之谈
"无法抓取"刚提交时基本都会显示,这不是报错,就是谷歌还没排到你。等几小时刷新,大部分会自动变成"成功"。不要一看到红色就急着改文件。

本地CMD验证:提交前先自查

在提交到GSC之前,先用Windows CMD本地验证sitemap是否正常,避免提交后白等。

1. 检查文件能否访问、状态码是否200

curl -I https://www.example.com/sitemap.xml

必须看到 HTTP/1.1 200 OK 和 Content-Type: application/xml; charset=utf-8。

2. 模拟Googlebot爬虫访问

普通curl用的是你本机的User-Agent,和谷歌爬虫不一样。加上 -A "Googlebot" 模拟谷歌爬虫:

curl -A "Googlebot" -I https://www.example.com/sitemap.xml

如果你的服务器WAF或防火墙拦截了谷歌爬虫,普通curl可能200正常,但模拟Googlebot后返回403。这是国内服务器最常见的坑。

3. 检查XML内容是否干净

curl -A "Googlebot" https://www.example.com/sitemap.xml

看返回内容的第一个字符是不是 <(即 <?xml ...?>)。前面不能有任何空格、换行、PHP警告、错误信息。如果第一行是 PHP 报错或 Deprecated 警告,谷歌解析器直接罢工,类型显示"未知"。

常见问题排查

问题1:类型显示"未知"

这是最常见的问题,原因几乎都是XML文件被污染:

  • PHP错误输出污染:自己写PHP生成sitemap时,开了 display_errors=1,任何PHP notice/warning都会打印在XML前面
  • BOM头:文件用UTF-8 with BOM编码保存,前3个字节不是XML内容
  • Content-Type不对:服务器返回了 text/html 而不是 application/xml
  • XML语法错误:未转义的特殊字符(&、<、>)、标签未闭合
PHP生成sitemap的正确写法
PHP开头必须做三件事:关闭错误显示、清空输出缓冲、header在任何echo之前。关键代码:

error_reporting(0);
ini_set('display_errors', 0);
while (ob_get_level() > 0) { ob_end_clean(); }
header('Content-Type: application/xml; charset=utf-8');

少任何一步,都可能导致谷歌解析失败。

问题2:GSC显示"已发现的网页 0"

如果提交的是 <sitemapindex> 索引文件,GSC显示"已发现的网页 0"是正常的——因为索引文件本身不含URL,URL在子地图里。谷歌会自动去读子地图,不需要你手动提交每个子地图。

问题3:提交了两个sitemap,内容重复

建议只保留一个。WordPress用AIOSEO/Yoast插件自动生成的 sitemap.xml 就够了,不需要再额外提交静态文件。重复提交不会提高收录速度,反而浪费谷歌抓取预算。

问题4:robots.txt相关

确保 robots.txt 没有禁止抓取sitemap文件本身,并在末尾声明sitemap地址:

Sitemap: https://www.example.com/sitemap.xml

动态生成 vs 静态文件:怎么选

对比项 动态PHP生成 静态XML文件
维护成本 发文章自动更新,零维护 每次发文章需重新生成上传
服务器资源 每次请求执行PHP查询数据库 纯静态,不占PHP进程
出错概率 PHP错误容易污染XML 文件固定,不会变
推荐场景 文章频繁更新、不想手动维护 文章很少变动、追求稳定

WordPress用户直接用AIOSEO或Yoast插件自动生成即可,这两个插件的sitemap格式是谷歌最认可的,不需要自己折腾PHP。

提交后还能做什么

  • 在GSC左侧「网址检查」工具中,输入你的文章URL,点击"请求编入索引",加快单篇文章收录
  • 每周查看GSC的「网页索引」报告,看哪些页面收录成功、哪些被排除
  • 如果页面内容有大更新,更新sitemap中对应的lastmod日期,提醒谷歌重新抓取
  • 不要频繁重复提交同一个sitemap,谷歌有自己的抓取节奏

发布日期:

所属分类: 网站运营 SEO 标签: