EP04. “Sitemap、robots.txt 与重复内容(canonical)”
🔒 登录后可标记已读- Sitemap 是「网站的目录清单」,告诉 Google 你有哪些页面值得收录;新站、改版、页面很多时特别重要
- robots.txt 是「门口的告示牌」,告诉爬虫哪些路径不要去抓——它不是保密工具,挡不住有心人
- 同一篇内容有好几个网址(有无
www、有无/、带?utm_参数)就是重复内容,要用 canonical 指定哪一个是正本 - 这三件事做对,GSC 的收录报告会干净很多,Google 的抓取预算也不会浪费在没用的网址上
重点内容
Sitemap
长什么样: 一个 XML 档案,列出网址与最后修改时间,通常在 https://example.com.my/sitemap.xml 或 /sitemap_index.xml。
| 网站类型 | 怎么产生 |
|---|---|
| WordPress + Rank Math / Yoast | 插件自动产生并更新 |
| WordPress 原生 | /wp-sitemap.xml |
| 静态网站 | 产生器工具或手写 |
| 自己写的网站 | 用程式产生,或列一份纯文字清单(一行一个网址) |
提交: GSC 左边 Indexing → Sitemaps → 贴上 Sitemap 网址 → Submit。
提交后看什么:
| 栏位 | 意思 |
|---|---|
| Status | Success(成功)/ Has errors(有错误)/ Couldn't fetch(抓不到) |
| Discovered pages | 从这份 Sitemap 发现了几个网址 |
⚠️ Sitemap 里不要放 noindex 的页面、404、跳转页——会出现「Sitemap 里有被排除的网址」这类警告,也浪费抓取资源。
💡 Sitemap 只是「建议」,不保证收录;但它能让 Google 更快发现新页面,改版后尤其有用。
robots.txt
放在网站根目录:https://example.com.my/robots.txt
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /cart/
Disallow: /checkout/
Sitemap: https://example.com.my/sitemap_index.xml
| 指令 | 意思 |
|---|---|
User-agent | 针对哪个爬虫(* = 全部) |
Disallow | 不要抓这个路径 |
Allow | 例外:这个可以抓 |
Sitemap | 告诉爬虫 Sitemap 在哪里 |
GSC 的 robots.txt 报告: Settings → robots.txt,可以看 Google 抓到的版本、上次抓取时间与错误。
⚠️ 重要观念:
| robots.txt | noindex |
|---|---|
| 「不要来抓」 | 「可以抓,但不要收录」 |
| 被挡的网址可能还是被收录(只凭外部链接,显示没有说明) | 确实不会出现在搜索结果 |
| 适合:后台、购物车、搜索结果页等不需要抓的路径 | 适合:感谢页、重复的分页等不该出现在搜索的页面 |
❌ 不要用 robots.txt 挡住含敏感资料的页面——网址本身公开可见,真正要保密要用登录或权限控制。
重复内容与 canonical
同一篇文章常见的重复网址:
| 网址 | 问题 |
|---|---|
http:// 与 https:// | 协定不同 |
example.com 与 www.example.com | 子网域不同 |
/services 与 /services/ | 结尾斜线 |
/services?utm_source=fb | 追踪参数 |
/services?replytocom=123 | WordPress 留言参数 |
分类分页 /blog/page/2/ | 内容部分重复 |
处理方式:
| 做法 | 说明 |
|---|---|
| canonical 标签 | 在页面 <head> 放 <link rel="canonical" href="正本网址">;WordPress 的 SEO 插件会自动加 |
| 301 跳转 | 把 http → https、非 www → www(或反过来)统一;在主机或 Cloudflare 设定 |
| 统一内部链接 | 网站内部一律连到正本网址,不要混用 |
📌 GSC 的 URL Inspection 会显示 「Google-selected canonical」(Google 选的正本)和 「User-declared canonical」(你宣告的)。两者不同,就是 Google 不同意你的宣告——通常是内容太相似或内部链接指向别处。
改版 / 换网址时
| 情况 | 做法 |
|---|---|
| 单页换网址 | 旧网址 301 跳到新网址,更新内部链接与 Sitemap |
| 整站换网域 | 做 301,并在 GSC 使用 Change of Address(变更网址) 工具 |
| 暂时下架某页 | GSC Removals → Temporary removals(约半年),同时在页面加 noindex 或移除内容 |
学完你会
- ✅ 产生并提交 Sitemap,看懂提交状态
- ✅ 写基本的 robots.txt 并在 GSC 检查
- ✅ 分得清 robots.txt 与
noindex的用途 - ✅ 用 canonical 与 301 处理重复内容
常见错误
- ❌ 用 robots.txt 挡住想要
noindex的页面:Google 读不到标签。 - ❌ Sitemap 里放了 noindex 页面、404 和跳转页:报告一堆警告。
- ❌ http、https、www、非 www 四种网址都能开:流量和排名被分散,要用 301 统一。
- ❌ 以为 robots.txt 可以保护私密内容:robots.txt 本身是公开的,等于列出你不想被看的路径。
- ❌ 换网址没做 301:旧网址的排名与外部链接全部浪费掉。
Sources
官方文档: