询盘表单页面做 AI 搜索准入,公开的应该是业务说明和采购上下文,不是买家提交的数据。产品范围、MOQ、样品、交期、附件要求、隐私说明可以公开;姓名、邮箱、电话、预算、图纸、报价记录、thank-you 页面和提交接口必须保护。
这篇只讲询盘表单隐私和 AI 准入平衡。
不写法律合规结论,不写表单转化率优化,也不把 robots 或 noindex 写成隐私保护方案。
先拆成两层:公开说明层和提交数据层
公开说明层:
/contact/
/request-a-quote/
/privacy/
提交数据层:
/contact/submit
/thank-you/
/uploads/inquiries/
CRM 记录
邮件通知
后台表单记录
外贸站要给搜索和 AI crawler 看的,是第一层:你是谁、能做什么、买家怎么询盘、提交前需要准备什么。
第二层是客户数据,不能公开。
| 内容 | 是否适合公开 | 原因 |
|---|---|---|
| 产品范围 | 适合 | 买家需要判断是否匹配 |
| OEM / ODM 能力 | 适合 | 属于公开服务能力 |
| MOQ、样品、交期说明 | 适合 | 属于采购上下文 |
| 可上传哪些资料 | 适合 | 帮买家准备询盘 |
| 隐私说明入口 | 适合 | 告诉买家数据用途 |
| 客户姓名、邮箱、电话 | 不适合公开 | 属于提交数据 |
| 采购预算、项目图纸 | 不适合公开 | 商业敏感 |
| 报价单、合同、邮件内容 | 不适合公开 | 商业记录 |
| thank-you 页面 | 通常不适合索引 | 无公开搜索价值 |
公开页面可以被读,提交动作要保护
公开 RFQ 页面可以这样处理:
<link rel="canonical" href="https://www.example.com/request-a-quote/" />
<meta name="robots" content="index,follow,max-snippet:-1,max-image-preview:large" />
thank-you 页面通常不需要进入搜索结果:
<link rel="canonical" href="https://www.example.com/thank-you/" />
<meta name="robots" content="noindex,nofollow,noarchive" />
提交接口、上传目录和后台记录要按安全边界处理,而不是只靠搜索标签:
X-Robots-Tag: noindex, nofollow, noarchive
Cache-Control: private, no-store
再次强调:noindex 和 X-Robots-Tag 是索引控制,不是访问权限。
客户图纸、报价单、表单提交记录要用登录、权限、服务器访问控制、私有存储和必要的反滥用措施保护。
用命令抽查三个关键 URL
先查公开表单页、thank-you 页和上传探测路径:
FORM_PAGE="https://www.example.com/request-a-quote/"
THANK_YOU="https://www.example.com/thank-you/"
UPLOAD_PROBE="https://www.example.com/uploads/inquiries/example.pdf"
for url in "$FORM_PAGE" "$THANK_YOU" "$UPLOAD_PROBE"; do
echo "== $url =="
curl -sSIL "$url" |
grep -Ei '^(HTTP/|content-type:|location:|x-robots-tag:|cache-control:)'
done
理想方向:
| URL | 期望 |
|---|---|
| RFQ / Contact 页面 | 200,公开说明可读 |
| Thank-you 页面 | noindex,不作为搜索入口 |
| 提交接口 | 不作为公开内容页 |
| 上传目录 | 未授权用户不应直接访问客户文件 |
如果上传目录能匿名返回客户附件,那不是 SEO 问题,是数据暴露问题。
表单字段要收集必要信息,不要公开展示
外贸询盘常见字段可以这样分:
| 字段 | 页面能不能展示字段名 | 提交值能不能公开 |
|---|---|---|
| Name | 可以 | 不公开 |
| Business email | 可以 | 不公开 |
| Company | 可以 | 不公开 |
| Country / Region | 可以 | 不公开 |
| Product interest | 可以 | 不公开 |
| Message | 可以 | 不公开 |
| Attachment | 可以 | 不公开 |
表单可以是 POST 到固定 action,不要把姓名、邮箱、电话、预算放进 URL 参数。
<form method="post" action="/request-a-quote/submit" enctype="multipart/form-data">
<input type="text" name="name" autocomplete="name" />
<input type="email" name="email" autocomplete="email" />
<input type="text" name="company" autocomplete="organization" />
<input type="text" name="country" autocomplete="country-name" />
<input type="text" name="product_interest" />
<textarea name="message"></textarea>
<input type="file" name="attachment" accept=".pdf,.doc,.docx,.jpg,.jpeg,.png" />
<button type="submit">Submit</button>
</form>
这段只是结构示例。真实站点还要结合服务端校验、权限、反垃圾提交和文件安全策略。
查表单 action 和字段名,不打印客户值
如果要做技术复查,检查结构即可,不要把客户提交内容打印到终端或日志里。
FORM_PAGE="https://www.example.com/request-a-quote/"
curl -fsSL "$FORM_PAGE" |
tr '<' '\n' |
grep -Ein '^form|^input|^textarea|^select' |
sed -E 's/value="[^"]*"/value="[hidden]"/g'
重点看:
| 检查项 | 风险 |
|---|---|
method="get" |
提交值可能进 URL |
| action 带大量参数 | 日志和分享链接可能暴露信息 |
| 上传路径公开 | 客户附件可能被直接访问 |
| 隐藏字段塞敏感信息 | HTML 里仍可见 |
| thank-you 页面展示客户邮箱/项目 | 可能被缓存或抓取 |
robots.txt 可以表达抓取边界,但不是隐私保护
可以用 robots 表达“哪些路径不作为搜索入口”:
User-agent: *
Allow: /request-a-quote/
Allow: /contact/
Allow: /privacy/
Disallow: /request-a-quote/submit
Disallow: /thank-you/
Disallow: /uploads/inquiries/
Sitemap: https://www.example.com/sitemap.xml
这只能减少愿意遵守 robots 的 crawler 访问。
不能访问的客户数据,应该从权限层阻止匿名访问。
公开内容应该写什么
RFQ 页面真正应该公开的,是买家判断和搜索系统理解所需的上下文:
| 模块 | 可以写什么 |
|---|---|
| 采购范围 | 适用产品、材质、行业、定制能力 |
| 提交前准备 | 型号、数量、目标市场、应用场景、附件要求 |
| 响应流程 | 初步确认、技术沟通、报价、样品或交期确认 |
| 公开联系方式 | 业务邮箱或联系表单入口,按企业选择 |
| 隐私提示 | 收集哪些信息、用于回复询盘、不会公开展示 |
| 资料上传说明 | 只上传必要资料,不上传合同、付款或敏感个人文件 |
不要把买家提交后的内容拿来做“案例”或“评价”。
如果要展示案例,应做脱敏、授权、编辑后的公开案例页,而不是引用表单记录。
Schema 只标公开信息
联系页可以考虑 ContactPage、Organization、ContactPoint、BreadcrumbList,但只能标页面上真实可见、企业愿意公开的信息。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ContactPage",
"name": "Request a Quote",
"url": "https://www.example.com/request-a-quote/"
}
</script>
不要把客户邮箱、电话、采购预算、项目名称放进 Schema。
结构化数据不是隐藏通道,也不是隐私工具。
一张最终判断表
| 对象 | 公开访问 | 抓取 | 索引 | 处理 |
|---|---|---|---|---|
| RFQ 说明页 | 是 | 是 | 通常可以 | 写清业务上下文 |
| 隐私说明页 | 是 | 是 | 通常可以 | 链接到表单附近 |
| 表单提交接口 | 否/受限 | 不作为内容页 | 不索引 | 权限、校验、反滥用 |
| Thank-you 页面 | 可访问但不推广 | 可让 crawler 看到 noindex | 不索引 | noindex |
| 上传附件 | 否/受限 | 否 | 不索引 | 私有存储或权限 |
| CRM / 后台记录 | 否 | 否 | 不索引 | 后台权限 |
常见错误
| 错误做法 | 更稳的做法 |
|---|---|
| 为了 AI SEO 公开所有询盘信息 | 只公开业务说明,不公开提交数据 |
| 用 robots.txt 保护客户附件 | 用权限和私有存储 |
| thank-you 页面可索引 | 加 noindex,不要当落地页 |
| 表单用 GET 提交敏感字段 | 用 POST,并控制日志和缓存 |
| Schema 里写客户信息 | 只标企业公开信息 |
| 把验证码写成隐私合规方案 | 它主要防滥用,不是隐私结论 |
询盘表单页面的平衡点很简单:公开的是“如何询盘”的说明,保护的是“谁来询盘、问了什么、传了什么文件”。
参考资料
- Google: Introduction to robots.txt
- Google: Block Search indexing with noindex
- Google: Robots meta tag, data-nosnippet, and X-Robots-Tag specifications
- Google: General structured data guidelines
- Bing Webmaster Guidelines
- OpenAI: Overview of OpenAI crawlers
- Schema.org: ContactPage
- Schema.org: ContactPoint
- WordPress Developer Resources: Nonces
- WordPress Developer Resources: Validating data
- WordPress Developer Resources: Sanitizing data