robots.txt、noindex、canonical 解决的是三个不同问题:robots.txt 主要管“能不能抓”,noindex 管“要不要进索引”,canonical 管“重复页面里更偏好哪一个”。外贸站把这三者混用,常见结果是产品页抓不到、感谢页删不掉、筛选页乱收录、重复产品页信号分散。
做外贸 AI SEO,很多技术问题不是难在代码,而是难在概念混了。比如:
- 想让 RFQ thank-you 页面不出现在搜索结果里,却在
robots.txt里Disallow。 - 想合并重复产品页,却给所有变体页加
noindex。 - 想阻止搜索引擎抓取后台,却只写 canonical。
- 想从 Google 删除页面,却在
robots.txt里写Noindex:。
这些做法看起来都在“控制搜索引擎”,但实际效果完全不同。
三者对比表
| 工具 | 主要控制什么 | 放在哪里 | 是否阻止抓取 | 是否阻止索引 | 外贸站常见用途 |
|---|---|---|---|---|---|
robots.txt |
抓取访问 | 站点根目录 | 是 | 不是可靠方式 | 限制后台、无价值参数、内部搜索页 |
noindex |
索引展示 | HTML meta 或 HTTP header | 否 | 是 | thank-you 页、站内搜索页、低价值页面 |
canonical |
规范化偏好 | HTML link 或 HTTP header | 否 | 否,属于信号 | 重复产品页、参数 URL、同款多路径页面 |
一句话记忆:
robots.txt = 别来抓这个路径
noindex = 可以来抓,但不要把这个页面放进索引
canonical = 这几个相似页面里,我更希望你认这个 URL
robots.txt:主要管抓取,不是可靠隐藏收录工具
robots.txt 位于网站根目录,例如:
https://www.example.com/robots.txt
示例:
User-agent: *
Disallow: /wp-admin/
Disallow: /internal-search/
Disallow: /*?sort=
Allow: /
Sitemap: https://www.example.com/sitemap.xml
它适合控制不希望 crawler 消耗资源的路径,比如后台、站内搜索结果、无穷筛选参数、测试目录。
但要注意:robots.txt 不是可靠的隐藏收录工具。页面被 robots 禁止抓取后,搜索引擎可能看不到页面内容,也看不到页面里的 noindex。如果外部链接指向这个 URL,它仍可能以 URL 形式出现在搜索结果中。
外贸站常见误用是:
User-agent: *
Disallow: /thank-you/
如果你的目标是“RFQ 提交成功页不要出现在搜索结果”,更适合用 noindex,并允许搜索引擎抓到这个指令。
另外,Google 不支持在 robots.txt 里写 Noindex:。不要这样写:
User-agent: *
Disallow:
Noindex: /thank-you/
这不是可依赖的 Google 控制方式。
noindex:控制索引,但前提是crawler能看到
noindex 的意思是:这个页面可以被访问,但不要出现在搜索结果中。以 Google 为例,Googlebot 抓取页面并看到 meta tag 或 X-Robots-Tag 后,Google 会在重新抓取处理后把该页面从搜索结果中移除。
HTML meta 示例:
<head>
<meta name="robots" content="noindex, follow">
</head>
只针对 Googlebot 的示例:
<head>
<meta name="googlebot" content="noindex, follow">
</head>
对于 PDF、图片、文件下载页,不能方便写 HTML meta 时,可以用 HTTP Header。注意,noindex 不是安全保护;私密文件仍然要靠鉴权或服务器访问控制:
X-Robots-Tag: noindex
Nginx 示例:
location /downloads/old-catalog/ {
add_header X-Robots-Tag "noindex, nofollow";
}
Apache 示例:
<FilesMatch "\.pdf$">
Header set X-Robots-Tag "noindex"
</FilesMatch>
关键点:noindex 要被抓取到才有效。如果你同时在 robots.txt 里禁止 crawler 访问这个 URL,crawler 可能永远看不到页面里的 noindex。
这就是为什么“Disallow + noindex”不是双保险,反而经常互相打架。
错误示例:
User-agent: *
Disallow: /thank-you/
同时页面里写:
<meta name="robots" content="noindex">
更合理的做法是:不要在 robots 里挡住 thank-you 页,让 crawler 能看到 noindex。
<head>
<meta name="robots" content="noindex, follow">
</head>
canonical:规范化信号,不是删除指令
canonical 用来告诉搜索引擎:当前页面与另一个页面重复或高度相似时,我更希望把那个 URL 当作规范版本。
HTML 示例:
<link rel="canonical" href="https://www.example.com/products/industrial-valve/" />
它适合这些外贸场景:
| 场景 | 示例 | 建议 |
|---|---|---|
| 同一产品多个路径 | /products/valve-a/ 与 /category/valves/valve-a/ |
canonical 到主产品 URL |
| 追踪参数 URL | ?utm_source=linkedin |
canonical 到无参数 URL |
| 排序参数 | ?sort=price |
canonical 到默认分类页 |
| 颜色/尺寸轻微变体 | 同款产品参数差异很小 | 视搜索需求决定合并或独立 |
| 多语言页面 | 英文、西语、德语版本 | 不要互相 canonical,应评估 hreflang 等国际化配置 |
canonical 不是强制删除,也不是禁止索引。Google 会把它作为强信号之一,但搜索引擎仍会结合重定向、链接、sitemap、内容相似度等因素判断规范 URL。
Sitemap 也能作为规范化信号之一,但不要把它理解成 rel="canonical" 的放置位置。真正的 canonical 标记通常在 HTML link 或 HTTP header 里。
不要用 canonical 处理私密页面、感谢页、后台页。你想“不显示”,用 noindex;你想“不抓取”,用 robots.txt;你想“重复内容归一”,才用 canonical。
外贸页面类型怎么选
| 页面类型 | 推荐处理 | 原因 |
|---|---|---|
| 首页 | 允许抓取、允许索引、自 canonical | 品牌和主营品类入口 |
| 公开产品页 | 允许抓取、允许索引、自 canonical | AI 搜索需要产品规格、用途、采购信息 |
| 产品分类页 | 允许抓取、允许索引、自 canonical | 承接品类词和采购场景词 |
| 有搜索价值的筛选页 | 允许抓取、可索引、自 canonical | 如 material、application、industry 明确 |
| 无价值筛选组合 | 重复 / 排序参数可 canonical 到主分类;非重复低价值页按情况用 robots 或 noindex | 避免无限参数消耗抓取资源 |
| 重复产品页 | canonical 到主产品页,或合并内容 | 归一重复信号 |
| RFQ 询盘页 | 允许抓取、允许索引 | 说明采购流程和提交要求 |
| RFQ thank-you 页 | noindex |
不应作为搜索入口 |
| 站内搜索结果页 | 通常 noindex,必要时 robots 控制抓取 |
防止低质结果页泛滥 |
| 登录/账户/后台 | 鉴权 + robots 辅助 | 不应依赖 SEO 标签保护安全 |
| 案例页 | 允许抓取、允许索引、自 canonical | 对供应商可信度很有价值 |
| FAQ 页 | 允许抓取、允许索引 | 适合回答采购疑问 |
四个典型外贸场景
1. RFQ thank-you页
目标:不进入搜索结果。
推荐:
<head>
<meta name="robots" content="noindex, follow">
</head>
不要只写:
User-agent: *
Disallow: /thank-you/
因为 crawler 被挡住后,可能看不到 noindex。
2. 重复产品页
比如同一个产品有两个 URL:
/products/stainless-steel-ball-valve/
/valves/stainless-steel-ball-valve/
保留主 URL:
<link rel="canonical" href="https://www.example.com/products/stainless-steel-ball-valve/" />
如果两个页面完全重复,更好的工程处理可能是 301 到主 URL,而不是长期保留两份内容。
3. 产品筛选页
有价值的筛选页可以保留,例如:
/valves/stainless-steel/
/valves/for-chemical-industry/
这类页面有明确采购意图,可以写独立正文、FAQ、产品列表和 canonical 到自己。
无价值组合可以限制:
User-agent: *
Disallow: /*?sort=
Disallow: /*?view=
Disallow: /*?price_min=
但不要把所有参数一刀切。某些参数页可能正是买家搜索的长尾入口,比如材质、压力等级、应用行业。
4. 公开产品页
公开产品页通常应保持:
<link rel="canonical" href="https://www.example.com/products/industrial-pump/" />
并避免:
<meta name="robots" content="noindex">
也避免在 robots 里误挡:
User-agent: *
Disallow: /products/
产品页是外贸 AI SEO 的核心资产。规格、材质、认证、应用场景、MOQ、交期、定制能力、包装方式、出口市场,这些都应该能被搜索和 AI 系统读取。
快速排查命令
检查 robots:
curl https://www.example.com/robots.txt
检查页面是否被 robots meta 标记:
curl -L https://www.example.com/products/industrial-pump/ | grep -i "robots"
检查 canonical:
curl -L https://www.example.com/products/industrial-pump/ | grep -i "canonical"
检查 HTTP Header 里的 X-Robots-Tag:
curl -I https://www.example.com/downloads/catalog.pdf
检查状态码:
curl -I https://www.example.com/request-a-quote/thank-you/
如果一个页面要从索引中移除,它应能被 crawler 访问,并返回可见的 noindex,而不是被 robots 或 WAF 直接挡住。
常见误用清单
| 误用 | 问题 | 更合理做法 |
|---|---|---|
| 用 robots 隐藏 thank-you 页 | 不保证从索引消失 | 用 noindex |
robots 里写 Noindex: |
Google 不支持 | 用 meta robots 或 X-Robots-Tag |
| 所有参数页 canonical 到分类页 | 可能误伤有价值长尾页 | 区分有无搜索价值 |
| 重复产品页全部 noindex | 可能浪费可合并的信号 | canonical 或 301 |
| 用 canonical 保护后台 | canonical 不管安全 | 鉴权、403、robots 辅助 |
| 产品页误加 noindex | 核心页面无法展示 | 移除 noindex,保持可抓取 |
| Disallow + noindex 同时用 | crawler 可能看不到 noindex | 需要去索引时允许抓取 noindex |
| 把 canonical 当强制命令 | 搜索引擎可能不采纳 | 保持内容、链接、sitemap 一致 |
一个简单决策法
遇到 URL 控制问题,先问三个问题:
1. 我是不想让 crawler 抓这个 URL?
是 -> robots.txt 或鉴权/WAF
2. 我是允许抓,但不想让它出现在搜索结果?
是 -> noindex
3. 我是有多个相似 URL,想指定首选版本?
是 -> canonical 或 301
对外贸站来说,最重要的是别把商业内容误伤。产品页、供应商介绍页、案例页、FAQ 页、RFQ 说明页,是 AI 搜索理解你业务的材料;后台、提交接口、感谢页、无价值筛选组合,才是需要控制的对象。