技术实现
robots、noindex、canonical:各自控制什么
抓取、索引、规范化和发现是四个问题,不能用一个标签解决全部。
四个概念不要混用
| 工具 | 主要作用 | 不负责什么 |
|---|---|---|
| robots.txt | 管理爬虫是否抓取路径 | 不是保密工具,也不保证 URL 不被索引 |
| noindex | 要求支持该指令的系统不要索引页面 | 不控制谁能访问页面 |
| canonical | 表达重复或相似页面的首选版本 | 不是删除、重定向或保密指令 |
| Sitemap | 提示重要、规范、希望被发现的 URL | 不保证抓取、索引或排名 |
抓取、索引、规范化和发现是四个问题,不能用一个标签解决全部。
一、robots.txt:门口的抓取规则
适合:减少不必要抓取、表达机器人路径政策。
不适合:保护敏感数据、强制移除搜索结果、设置规范 URL。
一个被 robots 禁止的 URL 仍可能因外部链接被系统知道;同时,爬虫无法读取页面里的 noindex 或 canonical。
二、noindex:页面级索引决定
HTML 示例:
<meta name="robots" content="noindex, follow">或 HTTP 响应头:
X-Robots-Tag: noindex适合登录页、内部搜索结果或不希望进入搜索的公开可访问页面。要让爬虫读取 noindex,页面通常不能先被 robots.txt 拦住。
三、canonical:选择代表版本
<link rel="canonical" href="https://example.com/product">Google 官方将永久重定向和 rel=canonical 视为较强的规范化信号,Sitemap 包含是较弱信号;多个信号一致更有效。Canonical 指南
典型用途:
- 跟踪参数产生的相同内容;
- 打印版与普通版;
- 多个 URL 展示高度相似页面。
不要把不同语言页全部 canonical 到英文页,否则可能让本地化页面失去独立资格。
四、Sitemap:只列规范、可索引 URL
不要把以下地址放进 Sitemap:
- noindex 页面;
- 301/302 地址;
- 404/410 页面;
- canonical 指向其他页面的重复 URL;
- 登录、内部搜索和测试页面。
五、决策示例
| 业务目标 | 推荐做法 |
|---|---|
| 页面必须保密 | 身份认证 / 授权,不依赖 robots |
| 页面公开但不进索引 | 允许抓取 + noindex |
| 两个 URL 内容重复 | 重定向或 canonical,并统一内链与 Sitemap |
| 页面已永久迁移 | 301/308 到新 URL |
| 页面永久删除且无替代 | 404/410,并从 Sitemap 与内链移除 |
六、常见冲突
- robots 禁止抓取,同时页面写 noindex;
- Sitemap 包含 noindex 页面;
- canonical 指向 404、登录页或不同内容;
- HTTP 头与 HTML 设置不同 canonical;
- 中英文页面 canonical 互相错误;
- 页面已重定向,Sitemap 仍列旧 URL。
本文行动清单
- 能解释每项工具控制的是抓取、索引、规范化还是发现。
- 私密内容使用认证与授权。
- noindex 页面可被目标爬虫读取,并已从 Sitemap 移除。
- canonical 目标返回 200、可索引且内容相符。
- Sitemap、内链、重定向和 canonical 信号一致。
- 多语言页面没有错误合并。
小结
技术信号最怕自相矛盾。正确做法不是增加更多标签,而是让每个 URL 的业务意图只有一个清楚答案。
先决定页面应该存在、被抓、被索引还是被合并,再选择对应工具。
最后更新于