你将完成什么
读完这篇指南,你将拥有:
- 一个搜索引擎可以读取的有效 XML Sitemap
- 通过 2026 年正确渠道提交到 Google 和 Bing 的 Sitemap
- 一个基础的 llms.txt 文件,让 AI 爬虫可以发现你的内容
- 可选:一个可复用的 Claude Code Skill,可以为任何网站生成和验证 Sitemap
适合谁读: 任何拥有或管理网站的人——无论你的网站运行在 WordPress、现代 JavaScript 框架、Shopify 还是静态 HTML 文件上。不需要技术 SEO 经验。
所需时间: 15–30 分钟,取决于你的平台。
前提条件: 访问你网站的管理后台或代码库,以及一个已验证的 Google Search Console 资产。如果还没设置 Search Console,先创建资产并验证所有权再继续。
开始之前:你的网站适合哪条路径?
Sitemap 的创建方式完全取决于你的网站是如何构建的。选择你的路径:
你的网站运行在… | 前往… |
|---|---|
WordPress | |
Wix、Squarespace 或 Shopify | |
Next.js、Nuxt、Astro 或其他框架 | |
静态 HTML、无 CMS 或自定义构建 |
不确定?在浏览器中打开你的网站,右键点击,选择"查看页面源代码"。寻找线索:wp-content 意味着 WordPress;next 或 __NEXT 意味着 Next.js;shopify 意味着 Shopify。如果都看不到,那很可能是静态网站或自定义构建——路径 D。

路径 A:WordPress
WordPress 支撑着全球超过 40% 的网站,Sitemap 生成在这里是一个已经解决的问题。你有三个稳定的选择——都不差,但各自适合不同的需求。
选项 1:WordPress 原生 Sitemap(零插件)
自 WordPress 5.5(2020 年 8 月发布)起,每个 WordPress 网站都会自动生成一个 XML Sitemap,地址在:
你的域名.com/wp-sitemap.xml在浏览器中打开这个 URL。你应该能看到一个 Sitemap 索引,列出了文章、页面、分类和作者的子 Sitemap。
优点: 零设置。WordPress 自动处理一切——你不需要动任何设置。
限制: 你无法排除单个页面或整个内容类型。没有图片 Sitemap,没有视频 Sitemap,也没有优先级控制。如果你的网站有作者归档页面或标签页面你不想让它们出现在搜索结果中,原生 Sitemap 仍会将它们包含在内。
最适合: 每个页面都值得被索引的简单博客和小型网站。
✅ 质量检查:访问 你的域名.com/wp-sitemap.xml。你应该看到有效的 XML 文件,而不是 404。
🔧 如果看到 404:你的主题或另一个插件可能禁用了原生 Sitemap。检查 设置 > 阅读,确保"阻止搜索引擎索引本站"没有被勾选。选项 2:Yoast SEO
Yoast SEO 是使用最广泛的 WordPress SEO 插件。它的 Sitemap 生成器干净、可靠,会自动遵循你的 noindex 设置。
设置步骤:
- 从 插件 > 安装插件 安装 Yoast SEO
- 前往 Yoast SEO > 设置 > 站点功能
- 滚动到"API"部分,确保"XML Sitemaps"已开启
- 访问
你的域名.com/sitemap_index.xml确认它正常工作
免费版能获得什么: 一个 Sitemap 索引,包含文章、页面、分类和自定义内容类型的子 Sitemap。Yoast 会自动排除 noindex 内容,并在 Sitemap 中包含文章里引用的图片。每当你发布或更新内容时,Sitemap 会自动重新生成。
Premium 版本($99/年)才能获得: 从 Sitemap 中排除单个 URL、HTML Sitemap 以及新闻/视频 Sitemap 扩展。
最适合: 想要一个成熟、文档完善的插件,同时享受 Yoast 可读性分析功能的内容团队。
选项 3:Rank Math
Rank Math 比 Yoast 提供更多免费功能,包括单个 URL 排除、HTML Sitemap 以及优先级/更新频率控制——全部免费。
设置步骤:
- 从 插件 > 安装插件 安装 Rank Math
- 完成设置向导(它会检测你的网站类型并配置默认值)
- 前往 Rank Math > Sitemap 设置
- 确认 Sitemap 已在
你的域名.com/sitemap_index.xml启用
突出的免费功能: 你可以在免费版中排除任何单个文章、页面或分类法。Rank Math 还免费包含 WooCommerce 产品 Sitemap、本地 SEO Sitemap 和 Google 新闻 Sitemap。
最适合: 想要精细控制但不想购买付费许可证的开发者、代理机构和网站所有者。
WordPress:该选哪个?
标准 | 原生 WP Sitemap | Yoast SEO(免费) | Rank Math(免费) |
|---|---|---|---|
设置工作量 | 无需 | 2 分钟 | 3 分钟 |
按内容类型排除 | 否 | 是 | 是 |
排除单个 URL | 否 | 仅 Premium | 是 |
图片 Sitemap | 否 | 是 | 是 |
视频 Sitemap | 否 | Premium 附加 | 包含 |
WooCommerce 支持 | 否 | 单独插件($79/年) | 包含 |
最佳适用 | 简单站点 | 内容优先团队 | 功能丰富的站点 |
✅ 质量检查:安装任一插件后,访问你的 Sitemap URL。每个子 Sitemap 都应返回 200 状态码。如果你已登录,使用无痕窗口——某些缓存插件对登录用户提供不同的内容。路径 B:托管 CMS 平台
Wix、Squarespace 和 Shopify 都会自动生成 Sitemap。你不能自定义太多,但也不会搞坏它们。
Wix
你的 Sitemap 位于 你的wix网站.com/sitemap.xml。当你添加或删除页面时,它会自动更新。
从搜索结果(以及 Sitemap)中排除一个页面:
- 前往 网站页面
- 点击页面上的三点菜单
- 选择 SEO 基础设置
- 关闭"在搜索结果中显示此页面"
注意: 如果你在 Wix 中 canonicalize 一个 URL(将页面 A 的 canonical 指向页面 B),Wix 不会从 Sitemap 中删除页面 A。这会发送矛盾信号——Google 看到 Sitemap 中有一个页面,但它的 canonical 标签说"忽略我"。如果你 canonicalize 了一个页面,也要同时关闭它的搜索可见性。
Squarespace
你的 Sitemap 位于 你的squarespace网站.com/sitemap.xml。Squarespace 自动生成,你无法手动编辑。
排除一个页面: 打开页面设置,前往 SEO 选项卡,关闭搜索可见性。这会将该页面同时从 Sitemap 和搜索结果中移除。
限制: Squarespace 的 Sitemap 包含每个可索引的页面。你无法添加自定义 URL(如托管在其他地方的页面),也无法在不完全隐藏分类页面的情况下移除分类。
Shopify
你的 Sitemap 位于 你的店铺.com/sitemap.xml。Shopify 自动为产品、集合、页面和博客文章生成单独的 Sitemap,全部从主 Sitemap 索引中引用。
排除一个页面: Shopify 不提供简单的一键开关。你需要编辑主题的 theme.liquid 文件并向特定模板添加 noindex meta 标签,或者使用 Shopify App Store 中的 SEO 应用。
电商特别建议: 注意分面导航 URL(如 /collections/shirts?color=red)。这些 URL 可能生成数千个近乎重复的 Sitemap 条目。大多数 Shopify SEO 应用允许你阻止基于参数的 URL 出现在 Sitemap 中。如果不用应用,则在 Google Search Console 中添加参数处理规则。
✅ 质量检查:打开你的 Sitemap URL。数一下子 Sitemap 的数量或扫描 URL 数量。如果你有 500 个产品却看到 3,000 个 URL,检查是否有基于参数的重复。路径 C:现代 JavaScript 框架
如果你的网站使用 Next.js、Nuxt、Astro 或类似框架构建,Sitemap 生成在构建时通过插件或内置模块完成。
Next.js(App Router)
Next.js 14+ 包含内置的 sitemap.ts 路由处理器。创建 app/sitemap.ts:
import type { MetadataRoute } from 'next'
export default function sitemap(): MetadataRoute.Sitemap {
const baseUrl = 'https://你的域名.com'
return [
{ url: baseUrl, lastModified: new Date(), changeFrequency: 'monthly', priority: 1 },
{ url: `${baseUrl}/about`, lastModified: new Date(), changeFrequency: 'yearly', priority: 0.5 },
{ url: `${baseUrl}/blog`, lastModified: new Date(), changeFrequency: 'weekly', priority: 0.8 },
// 在此处添加来自 CMS 或数据库的动态路由
]
}对于有数千页面的网站,使用 generateSitemaps() 自动拆分为多个 Sitemap 文件。
社区替代方案: next-sitemap(npm 包)扫描你的 pages 目录,支持动态路由,并自动更新 robots.txt。
Nuxt
安装官方模块:
npx nuxi@latest module add sitemap在 nuxt.config.ts 中添加基本配置:
export default defineNuxtConfig({
site: { url: 'https://你的域名.com' },
sitemap: {
autoLastmod: true,
credits: false, // 移除"由...生成"的注释
},
})该模块会自动发现 pages/ 目录中的所有路由,包括动态路由。
Astro
安装官方集成:
npx astro add sitemap在 astro.config.mjs 中设置网站 URL:
import { defineConfig } from 'astro/config'
import sitemap from '@astrojs/sitemap'
export default defineConfig({
site: 'https://你的域名.com',
integrations: [sitemap()],
})Astro 在构建时生成 sitemap-index.xml 和 sitemap-0.xml。
限制: SSR 模式下的动态路由不会出现在 Sitemap 中。如果你使用 Astro 的 Server Islands 做个性化内容,需要手动为公开页面生成静态 Sitemap 条目。
Sitemap 生成参考表
框架 | 包 / 模块 | 安装命令 | 自动拆分 50k URL? |
|---|---|---|---|
Next.js 14+ | 内置 | 无需 | 是,通过 |
Next.js(Pages Router) |
|
| 是 |
Nuxt 3/4 |
|
| 是 |
Astro 4+ |
|
| 是 |
Vite(通用) |
|
| 是 |
SvelteKit |
|
| 手动 |
✅ 质量检查:构建网站后,打开生成的 Sitemap。验证每个 URL 都返回 200 状态码。检查 noindex 页面、重定向和 404 是否都不存在。如果看到 `/page/2`、`/page/3` 等,考虑排除分页归档页面。路径 D:静态网站和自定义构建
如果你不使用 CMS,也没有构建时 Sitemap 生成器,你有三种实用选择:CLI 工具、桌面爬虫或 AI 代理。
选项 1:Static Sitemap CLI(本地文件最快)
static-sitemap-cli 工具扫描你本地文件系统中的 HTML 文件并生成 Sitemap:
npx static-sitemap-cli --base-url https://你的域名.com --source ./public这会在当前目录生成 sitemap.xml。将它上传到你网站的根目录。
最适合: 所有 HTML 文件都在本地的静态网站(Hugo、Jekyll、11ty 或纯 HTML)。
选项 2:桌面爬虫(Screaming Frog)
Screaming Frog SEO Spider 爬取你的在线网站并导出 Sitemap。免费版最多爬取 500 个 URL。
- 下载并安装 Screaming Frog SEO Spider
- 设置 Mode > Spider
- 输入你的首页 URL,点击 Start
- 等待爬取完成
- 前往 Sitemaps > XML Sitemap
- 取消选中
<priority>和<changefreq>(Google 忽略这两者) - 导出文件
注意: 免费的在线 Sitemap 生成器不可靠。独立测试发现它们经常包含 canonical 指向其他 URL 的页面、noindex 页面、3xx 重定向和 404。如果使用,在提交给 Google 之前请验证输出中的每一个 URL。
选项 3:Claude Code / AI 代理(2026 年的新方式)
如果你时间不够(或者没有耐心手动爬取),有一个更好的选择:让 Claude Code 处理整个事情。给它你的域名,它会爬取、过滤、验证并写入文件。以下是让它运行的 Skill。
将此文件保存为 sitemap-generator.md 到你的 Claude Code skills 目录:
---
name: sitemap-generator
description: 为任何网站生成干净的 XML Sitemap。爬取网站,过滤低价值 URL,输出 Search Console 就绪的 sitemap.xml 文件。
---
## 输入
告诉代理你的网站 URL、要排除的页面或 URL 模式,以及是否需要在 Sitemap 旁边生成 llms.txt 文件。
## 代理指令
### 步骤 1:发现 URL
使用 Playwright 或基于 curl 的爬虫发现网站上的所有页面。不要使用 Sitemap 作为起点——从首页爬取并跟踪内部链接。
对找到的每个 URL 记录:
- 完整的绝对 URL
- HTTP 状态码
- 是否有 `<meta name="robots" content="noindex">` 标签
- canonial 标签是否指向不同的 URL
- 是否为重定向(3xx)
- 页面标题和字数(用于质量过滤)
### 步骤 2:过滤问题 URL
从最终 Sitemap 中排除所有这些:
- 返回 4xx 或 5xx 状态码的 URL
- 重定向的 URL(3xx)
- 有 noindex meta 标签或 X-Robots-Tag 头的 URL
- canonical 标签指向不同 URL 的页面
- 分页 URL 匹配 `*/page/*`、`*/paged/*`、`*?page=*` 等
- 包含追踪参数的 URL(`utm_source`、`fbclid`、`gclid`、`ref=`)
- 登录页、购物车页、结账页、账户页
- 可见文本内容少于 50 字的页面(薄内容)
- PDF、图片和其他非 HTML 文件,除非你明确希望它们被索引
### 步骤 3:构建 Sitemap XML
按 Sitemap Protocol 0.90 生成有效的 XML Sitemap:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.90">
<url>
<loc>https://你的域名.com/页面-url/</loc>
<lastmod>2026-07-30</lastmod>
</url>
</urlset>
```
规则:
- 每个 URL 必须是绝对路径(以 `https://` 开头)
- 每个 URL 必须有 `<loc>` 标签和 `<lastmod>` 标签
- `<lastmod>` 应使用页面的实际修改日期(YYYY-MM-DD 格式),如果不知道真实日期则使用爬取日期
- 不要包含 `<priority>` 或 `<changefreq>`——Google 忽略这两者
- 如果 Sitemap 超过 50,000 个 URL 或 50MB,将其拆分为多个文件并创建 Sitemap 索引
### 步骤 4:写入文件
1. 将 `sitemap.xml` 写入项目目录
2. 写入或更新 `robots.txt`,包含此行:`Sitemap: https://你的域名.com/sitemap.xml`
### 步骤 5:生成 llms.txt(可选)
另外按照 [llms-txt.org](https://llms-txt.org) 标准创建一个 `llms.txt` 文件:
```text
# 你的网站名称
> 网站用途的一句话描述。
## 文档
- [页面标题](https://你的域名.com/页面-url/):一句话描述。
## 博客
- [文章标题](https://你的域名.com/blog/文章-slug/):一句话摘要。
## 资源
- [资源名称](https://你的域名.com/资源/):描述。
```
### 步骤 6:打印验证报告
生成文件后,打印摘要:
```
Sitemap 已生成:sitemap.xml
包含的 URL 总数:247
排除的 URL 总数:89
- Noindex:12
- 重定向:8
- Canonical 指向其他 URL:15
- 薄内容(<50 字):23
- 分页:18
- 其他(登录、购物车、参数):13
Robots.txt:已更新 Sitemap 指令
llms.txt:已创建,包含 15 个分类
下一步:将 sitemap.xml 上传到网站根目录,然后在 Google Search Console 中提交。
```
## 输出
- `sitemap.xml` — 准备上传到网站根目录
- 更新后的 `robots.txt`,包含 Sitemap 引用
- 可选的 `llms.txt`,供 AI 爬虫发现
- 验证报告,显示包含和排除的内容
## 限制
- 此代理无法将文件上传到你的服务器。你必须手动将 `sitemap.xml` 放置到网站的根目录。
- 此代理无法访问你的 Google Search Console。提交必须手动完成或通过单独配置的工作流完成。
- 如果你的网站大量使用 JavaScript,爬取可能会遗漏客户端渲染的页面。这种情况下,优先使用框架原生的 Sitemap 生成器(路径 C)。如何在 Claude Code 中使用这个 Skill:
- 将 Skill 文件保存到
~/.claude/skills/sitemap-generator.md - 在项目目录中启动 Claude Code
- 运行:
/sitemap-generator,在提示时提供你的域名 - 检查验证报告,然后将生成的
sitemap.xml上传到网站根目录
这种方法真正的优势在于过滤。你跳过了最繁琐的部分——手动检查每个 URL 的 noindex 标签、canonical 不匹配和重定向——直接得到一个可以放心提交给 Google 的 Sitemap。
Sitemap 大小限制:当一个文件不够用时
Google 对每个 Sitemap 文件强制执行两个硬性限制:
- 最多 50,000 个 URL
- 未压缩文件大小最多 50 MB
如果你的网站超出任一限制,你需要一个 Sitemap 索引——一个列出多个 Sitemap 文件的文件。
Sitemap 索引看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.90">
<sitemap>
<loc>https://你的域名.com/sitemap-posts-1.xml</loc>
<lastmod>2026-07-30</lastmod>
</sitemap>
<sitemap>
<loc>https://你的域名.com/sitemap-products-1.xml</loc>
<lastmod>2026-07-30</lastmod>
</sitemap>
<sitemap>
<loc>https://你的域名.com/sitemap-pages.xml</loc>
<lastmod>2026-07-29</lastmod>
</sitemap>
</sitemapindex>如何拆分: 按逻辑分组 URL——按内容类型(文章、产品、分类)、按日期范围(2024-文章、2025-文章)或按语言。然后只提交 Sitemap 索引给 Google Search Console。所有现代 CMS 插件和框架 Sitemap 工具都会自动处理拆分。
✅ 质量检查:索引中列出的每个子 Sitemap 必须托管在同一个域名上,且位于同一目录(或子目录)中。你不能在索引文件中引用不同域名上的 Sitemap。哪些标签重要(以及两个不重要的标签)
一个最小的 Sitemap 每个 URL 只需要两个标签:<loc> 和 <lastmod>。以下是每个标签在 2026 年的实际作用:
<loc> — 必需。绝对规范 URL。
每个 Sitemap 条目必须有一个。使用以 https:// 开头的完整 URL,并使用每个页面的规范版本。如果 https://你的网站.com/page 和 https://www.你的网站.com/page 同时存在,选择一个并在所有地方保持一致——在你的 Sitemap、canonical 标签和内部链接中。
<lastmod> — 可选但在 2026 年很重要。
由于 Google 在 2023 年 6 月废弃了 Sitemap ping 端点,<lastmod> 已成为 Google 决定重新爬取哪些页面的主要信号。Google 的 Gary Illyes 已确认他们会使用 <lastmod>——但仅在它持续准确的情况下。
要做: 当页面的主要内容有实质性更改时(新信息、改写的章节、更新的数据),更新 <lastmod>。
不要做: 为琐碎的更改自动更新 <lastmod>,如更新页脚的版权年份、通过 CMS 重新生成页面,或更改侧边栏小部件。
如果你无法维护准确的时间戳,完全省略 <lastmod>。缺少时间戳比误导性的时间戳更好。
<priority> 和 <changefreq> — 被 Google 忽略。
Google 已公开声明他们忽略这两个标签。John Mueller 称优先级和更新频率标签"不再起太大作用"。Gary Illyes 将 <priority> 描述为"一袋噪音"。
你仍然可以包含它们——它们不会造成任何损害——但不要花时间调整没有主流搜索引擎使用的值。
如何在 2026 年将 Sitemap 提交给搜索引擎
生成 Sitemap 只是工作的一半。搜索引擎需要知道它的存在。
提交给 Google
方法 1:Google Search Console(主要方式)
- 前往 Google Search Console
- 选择你的资产
- 在左侧边栏中,前往 索引 > Sitemap
- 在"添加新 Sitemap"字段中,输入你的 Sitemap URL(如
sitemap.xml或sitemap_index.xml) - 点击提交
Google 会在几分钟内抓取你的 Sitemap。一两天后回来检查状态:"成功"表示 Google 已处理它。"无法获取"或"有错误"意味着出了问题——打开报告查看哪些 URL 失败了。
方法 2:robots.txt(次要但推荐)
将此行添加到你的 robots.txt 文件(通常位于 你的域名.com/robots.txt):
Sitemap: https://你的域名.com/sitemap.xml如果你有多个 Sitemap 或 Sitemap 索引:
Sitemap: https://你的域名.com/sitemap_index.xml这让任何合规的爬虫——不仅仅是 Google——都能自动发现你的 Sitemap。
Sitemap ping 发生了什么? Google 的 ping 端点(http://www.google.com/ping?sitemap=...)已于 2023 年 6 月废弃,现在返回 404。如果你使用的旧版 SEO 插件仍然向这个 URL 发送 ping,这个 ping 不会产生任何效果。没有惩罚——只是一个无操作。确保你的提交工作流使用 Search Console 和 robots.txt。
提交给 Bing(以及 Yahoo,通过 IndexNow)
Bing 更推荐使用 IndexNow 协议提交 Sitemap。IndexNow 会在你添加、更新或删除页面时立即通知 Bing——无需等待计划的重爬。
通过你的 SEO 插件设置: Rank Math、Yoast SEO 和 AIOSEO 都支持 IndexNow。在插件设置中启用它,它们会自动生成 API 密钥并在内容变更时提交 URL。
非插件网站的手动设置:
- 生成一个 API 密钥(8-128 个字符的任意字符串)
- 将密钥文件托管在
https://你的域名.com/{你的密钥}.txt,文件内容为密钥 - 通过 POST 请求提交 URL:
curl -X POST "https://api.indexnow.org/indexnow" \
-H "Content-Type: application/json" \
-d '{
"host": "你的域名.com",
"key": "你的-api-密钥",
"keyLocation": "https://你的域名.com/你的-api-密钥.txt",
"urlList": [
"https://你的域名.com/新页面/",
"https://你的域名.com/更新页面/"
]
}'同时也在 Bing Webmaster Tools 中提交你的 Sitemap 作为备选。前往 Sitemaps > 提交 Sitemap,输入你的 Sitemap URL。
快速参考:在哪里提交
搜索引擎 | 主要渠道 | 次要渠道 |
|---|---|---|
Search Console | robots.txt | |
Bing | IndexNow(通过插件或 API) | Bing Webmaster Tools |
Yahoo | 由 Bing 覆盖 | — |
Yandex | IndexNow | Yandex Webmaster |
Naver | IndexNow | Naver Webmaster |
DuckDuckGo | robots.txt | 使用 Bing 索引 |
超越 XML:llms.txt 助力 AI 搜索可见性
在 2025–2026 年,一个名为 llms.txt 的新标准已经出现,用于帮助 AI 驱动的爬虫——如 ChatGPT、Perplexity、Claude 和 Google AI Overviews 背后的爬虫——发现和理解你的内容。
什么是 llms.txt?
它是一个纯文本文件,放置在 你的域名.com/llms.txt,提供网站关键页面的结构化、人机可读摘要。可以把它想象成"AI 爬虫的目录页"。
一个最小化的 llms.txt 文件:
# 你的网站名称
> 你的网站提供什么的简短描述,一句话。
## 主要页面
- [首页](https://你的域名.com/):你的网站做什么,一句话。
- [关于](https://你的域名.com/about/):你是谁,你涵盖什么。
- [博客](https://你的域名.com/blog/):关于 [主题] 的文章和指南。
## 核心指南
- [如何创建 Sitemap](https://你的域名.com/blog/sitemap/):2026 年完整的 Sitemap 指南。
- [SEO 基础](https://你的域名.com/blog/seo-basics/):搜索引擎优化入门。
## 资源
- [免费工具](https://你的域名.com/tools/):SEO 工具和计算器。可选地,你可以创建一个 llms-full.txt 文件,包含关键页面的完整文本内容,供更深入的 AI 处理。
你需要 llms.txt 吗?
可能需要,但不紧急。 这个标准还很新,没有主流 AI 平台公开声明 llms.txt 会直接影响引用率。然而,OpenAI 的文档确认 GPTBot 遵循 robots.txt 指令进行发现,清晰的内容地图能让任何爬虫——无论是人类还是 AI——更容易理解你的网站。
如果你的内容策略包含 AI 搜索可见性,在生成 XML Sitemap 的同时生成 llms.txt 是一个低成本、有前瞻性的举措。如果你想跳过手动格式化,Auspia 的 LLMs.txt 生成器 可以扫描你的网站并为你构建文件。
常见的 Sitemap 错误(以及如何修复)
即使使用自动化生成,Sitemap 也可能出问题。以下是最常见的问题及检测方法:
问题 | 为什么重要 | 如何检测 | 如何修复 |
|---|---|---|---|
Sitemap 中有 noindex 页面 | 发送矛盾信号:Sitemap 中"索引此页",meta 标签中"不要索引"。Google 通常遵循 noindex 标签,但浪费了爬取预算。 | 在 Search Console 中,前往 Pages > "Submitted in sitemap",查找"Excluded by noindex tag"。 | 从 Sitemap 中移除。在 WordPress 中,检查单个文章设置。在框架中,在 Sitemap 生成前添加过滤器。 |
Sitemap 中有重定向(3xx) | Google 会跟随重定向,但在额外的跳转上浪费爬取预算。 | 爬取你的 Sitemap URL 并检查 3xx 状态码。大多数 SEO 爬虫都会标记此问题。 | 将 Sitemap 条目更新为最终目标 URL。 |
Sitemap 中有 404 页面 | 爬取预算浪费在死链接上。 | Search Console 在"Submitted URL not found (404)"下报告这些。 | 从 Sitemap 中删除该 URL,或者如果 404 是意外造成的,恢复该页面。 |
Sitemap 中有 canonical 指向其他 URL 的页面 | Sitemap 说"索引这个",canonical 说"真正的版本在那边"。搜索引擎可能忽略该 Sitemap 条目。 | 将你的 Sitemap URL 与它们的 canonical 标签进行比对。免费的在线生成器是此问题最大的元凶。 | 移除非规范 URL。只有每个页面的规范版本才应出现在 Sitemap 中。 |
低质量或薄内容页面 | 它们不会排名,浪费爬取预算,稀释网站的整体质量信号。 | 检查内容少于 200 字的页面、自动生成的标签页或几乎重复的产品页面。 | 要么显著改进页面内容,noindex 它,要么完全删除它。 |
缺少 `<lastmod>` 或自动生成的时间戳 | 没有准确的 lastmod,Google 必须猜测哪些页面发生了变化。 | 检查你的 Sitemap 是否在每次构建时为每个 URL 都将 | 只有当页面内容实际发生变化时才更新 |
robots.txt 中未引用 Sitemap | 爬虫可能无法发现它。 | 打开 | 在底部添加 |
提交了 Sitemap URL 而非 Sitemap 索引 | 如果你有 Sitemap 索引,直接提交子 Sitemap 意味着 Google 不知道其他子 Sitemap 的存在。 | 检查 Search Console > Sitemaps。如果你看到的是单个 Sitemap 文件名而非索引,重新提交索引。 | 提交 Sitemap 索引 URL( |
🔍 快速审计:打开 Google Search Console > Indexing > Sitemaps。查看"已发现 URL"与"已索引 URL"列。如果已发现的数量远高于已索引的数量,你的 Sitemap 可能存在问题。深入报告查看哪些 URL 被排除以及原因。验证你完成的 Sitemap
在宣告完成之前,逐项检查:
- [ ] Sitemap 可访问:
你的域名.com/sitemap.xml(或sitemap_index.xml)返回 200 状态码和有效的 XML - [ ] 所有 URL 都是绝对的: 每个
<loc>以https://开头 - [ ] 所有 URL 都是规范的: Sitemap 中没有 URL 的 canonial 标签指向其他地方
- [ ] 没有 noindex 页面: 在 Search Console 中检查提交的 Sitemap 页面中"Excluded by noindex"的情况
- [ ] 没有重定向或 404: 对 Sitemap URL 进行快速爬取以验证
- [ ] 没有分页或参数 URL: 过滤器页面、搜索结果和追踪 URL 已被排除
- [ ] `<lastmod>` 是准确的: 时间戳反映实际内容更改,而非构建日期
- [ ] Sitemap 已提交到 Google Search Console: 状态显示"成功"
- [ ] robots.txt 已更新: 包含
Sitemap:指令 - [ ] IndexNow 已配置(可选): 通过 SEO 插件或手动 API 设置启用
- [ ] llms.txt 已生成(可选): 在
你的域名.com/llms.txt可获取清晰的内容地图
常见问题
我的网站只有几个页面,还需要 Sitemap 吗?
如果你的网站有正确的内部链接,所有页面都可以从首页到达,Google 很可能无需 Sitemap 也能找到你的内容。但是有一个 Sitemap 没有任何坏处,而且它可以帮助 Google 更快地发现新页面。一个包含 10 个 URL 的 Sitemap 只需五分钟即可设置——做就是了。
Sitemap 能帮助我的页面排名更高吗?
不能。Google 已多次确认 Sitemap 与排名无关。Sitemap 帮助发现和索引——这是排名成为可能之前的必要步骤——但它不影响排名位置。
我可以用 Sitemap 让新内容更快被索引吗?
可以,但需要结合准确的 <lastmod> 值和正确的提交流程。如果你在新内容上线时更新 <lastmod> 并在 Search Console 中提交 Sitemap,Google 会比等待自然爬取更快地发现新 URL。对于 Bing 的实时通知,使用 IndexNow。
我应该多久更新一次 Sitemap?
你的 Sitemap 应该反映网站的当前状态。使用 CMS 或框架插件时,这会在每次发布或构建时自动完成。如果你手动生成 Sitemap,在每次添加或删除重要页面时更新它们。没有固定的时间表。
XML Sitemap 和 HTML Sitemap 有什么区别?
XML Sitemap 是给搜索引擎读取的机器可读文件。HTML Sitemap 是给人类可读的页面(像目录页),列出了网站上所有重要页面的链接。HTML Sitemap 是 15 年前的常见 SEO 做法,但现在很少需要——结构良好的导航和页脚起到了同样的作用。
我应该在 Sitemap 中包含图片和视频吗?
如果你的图片是通过 JavaScript 加载的(因此 Google 更难发现),或者如果图片搜索对你有意义的流量来源,就包含图片 Sitemap 条目。如果你托管视频内容并希望它们出现在 Google 视频搜索结果中,就包含视频 Sitemap 条目。对于大多数基于文本的博客,Sitemap 中的标准页面 URL 就足够了——Google 会自动从页面内容中提取图片。
我需要为不同语言设置单独的 Sitemap 吗?
如果你的多语言网站使用子目录(/en/、/fr/、/de/),所有语言版本可以放在同一个 Sitemap 中,使用 <xhtml:link rel="alternate"> 标签在它们之间指向。如果你使用单独的域名(.com、.fr、.de),每个域名需要自己的 Sitemap 分别提交到 Search Console。
如果我已经有 XML Sitemap,还需要 llms.txt 吗?
不同的用途。XML Sitemap 告诉爬虫"这些 URL 存在"。llms.txt 文件总结内容,让 AI 模型可以决定要深入阅读什么。它们相互补充,如果你已经在构建 Sitemap,生成两者只需很少的额外努力。
作者:Julian Mercer,Auspia 14 年技术 SEO 从业者。Julian 撰写关于可爬取性、网站架构、Sitemap 以及使 SEO 和 AI 搜索可见性成为可能的技术基础的文章。










