外贸站的图片和 PDF,不是一律开放,也不是一律屏蔽。产品图、公开目录、规格书和可展示证书可以帮助买家判断;报价单、客户图纸、合同、未公开测试报告必须做权限保护。
robots.txt、noindex、X-Robots-Tag都不是保密方案。
这篇不写“图片 SEO 技巧大全”,也不写“PDF SEO 全教程”。
只解决一个外贸企业上线前会遇到的判断题:图片和 PDF 资源要不要开放抓取?
先分清三种需求
很多资源策略写错,是因为把三件事混在一起:
| 需求 | 应该用什么处理 | 不能靠什么处理 |
|---|---|---|
| 不想被抓取 | robots.txt、平台 crawler 规则、WAF 策略 |
不能当成保密 |
| 不想被索引 | HTML robots meta 或 HTTP X-Robots-Tag: noindex |
不能阻止别人访问 |
| 不能被外部访问 | 登录、权限、服务器访问控制、私有存储 | 不能只靠 robots.txt 或 noindex |
外贸站最常见的风险,不是少做一个 alt 标签,而是把本来不该公开的资料上传成了公开 URL。
先盘点资源,不要凭感觉开放
建议先列一个 assets.txt,把准备上线或已经上线的图片、PDF、下载文件放进去。
cat > assets.txt <<'EOF'
https://www.example.com/wp-content/uploads/products/industrial-valve-main.webp
https://www.example.com/wp-content/uploads/products/industrial-valve-application.webp
https://www.example.com/downloads/industrial-valve-catalog.pdf
https://www.example.com/downloads/industrial-valve-datasheet.pdf
https://www.example.com/certificates/iso-9001-public.pdf
https://www.example.com/manuals/industrial-valve-installation-guide.pdf
# https://www.example.com/private-quotes/customer-a-price-list.pdf
# https://www.example.com/customer-drawings/client-project-drawing.pdf
EOF
资源盘点时,不要只看文件后缀。要看它承担什么业务角色。
| 资源类型 | 开放价值 | 风险点 | 初步处理 |
|---|---|---|---|
| 产品主图 | 帮买家确认产品形态 | 图片上只有型号,没有文字版说明 | 通常开放 |
| 应用场景图 | 说明使用环境 | 暴露客户现场、设备编号、车牌、人员 | 脱敏后开放 |
| 产品目录 PDF | 买家下载选型 | 旧版本、价格、内部备注混入 | 公开版可开放 |
| Datasheet / 规格书 | 支持工程选型 | 参数过细或定制资料外泄 | 按产品线判断 |
| 安装说明 PDF | 降低售前沟通成本 | 包含内部工艺、供应商信息 | 公开版可开放 |
| 证书图片 / PDF | 支撑供应商可信度 | 编号滥用、客户名、非公开范围 | 只放可公开版本 |
| 报价单 | 不适合公开 | 价格、客户、付款条款 | 权限保护 |
| 客户图纸 / 合同 | 不适合公开 | 商业机密、客户信息 | 权限保护 |
| 内部测试报告 | 通常不公开 | 未脱敏数据、实验条件、客户项目 | 权限保护或脱敏摘要 |
图片:开放前先看它是不是公开营销资产
产品图、应用图、工厂图可以开放,但前提是它们本来就是公开营销资产。
适合开放的图片通常有这些特点:
| 图片 | 适合开放的前提 |
|---|---|
| 产品主图 | 不含未发布型号、客户定制标识、内部编号 |
| 参数示意图 | 页面正文也有文字版参数 |
| 应用场景图 | 客户现场和敏感设备已脱敏 |
| 工厂设备图 | 不暴露未公开工艺、门禁、人员隐私 |
| 证书展示图 | 只展示可公开字段 |
先检查页面里图片是否真实出现在 HTML 中:
PAGE="https://www.example.com/products/industrial-valve/"
curl -fsSL "$PAGE" |
tr '<' '\n' |
grep -Ein '^img|^picture|srcset|alt=' |
sed -n '1,120p'
再查图片本身的状态:
IMAGE="https://www.example.com/wp-content/uploads/products/industrial-valve-main.webp"
curl -sSIL -A "Googlebot-Image" "$IMAGE" |
grep -Ei '^(HTTP/|content-type:|content-length:|x-robots-tag:|location:)'
如果公开产品图返回 403、404、429,或者被全站加了 X-Robots-Tag: noindex,就要查 CDN、WAF、媒体目录和服务器响应头。
但这里要加一句很重要的话:图片可以被抓取,不代表 AI 搜索一定会引用它;它只是让公开产品资料更完整。
PDF:公开目录和私密文件要分开
Google 文档列出的可索引文件类型里包含 PDF;图片也有专门的图片搜索和图片 sitemap 文档。也就是说,公开 PDF 和图片不是“搜索系统完全看不到”的资源。
但外贸站不能因此把所有 PDF 都开放。
| PDF 类型 | 建议 |
|---|---|
| 公开产品目录 | 可开放,但确认版本、语言、品牌和产品范围正确 |
| 公开 datasheet | 可开放,页面正文要有摘要和入口 |
| 安装说明 | 可开放,避免内部工艺或供应商资料混入 |
| 公开证书 | 可开放公开版,不放敏感编号和客户信息 |
| 过期资料 | 如果仍需下载但不想作为搜索结果,可考虑 noindex |
| 报价单 | 不公开,必须权限保护 |
| 客户图纸 | 不公开,必须权限保护 |
| 合同、发票、付款资料 | 不公开,必须权限保护 |
检查 PDF 响应头:
PDF="https://www.example.com/downloads/industrial-valve-catalog.pdf"
curl -sSIL "$PDF" |
grep -Ei '^(HTTP/|content-type:|content-length:|content-disposition:|x-robots-tag:|location:)'
公开 PDF 常见的正常信号:
HTTP/2 200
content-type: application/pdf
如果是不希望进入搜索结果、但仍允许公开下载的旧目录或重复资料,可以用 HTTP Header 表达索引控制:
X-Robots-Tag: noindex, noarchive, nosnippet
如果是 Nginx,可以对单个旧文件或旧目录设置,而不是全站 PDF 一刀切:
location = /downloads/old-catalog-2024.pdf {
add_header X-Robots-Tag "noindex, noarchive, nosnippet" always;
}
注意,这只能表达“不要索引”。
如果文件不能给外部访问,就应该直接做权限控制:
location ^~ /private-assets/ {
return 403;
}
更严谨的做法是用登录鉴权、私有对象存储、短期授权链接或客户门户,而不是把敏感文件放在公开路径下再补一个 Disallow。
查 robots.txt 是否误挡公开资源
很多 WordPress 外贸站会误挡上传目录,导致产品图、目录 PDF、证书图片一起受影响。
SITE="https://www.example.com"
curl -fsSL "$SITE/robots.txt" |
grep -Ein 'user-agent|allow|disallow|wp-content|uploads|downloads|pdf|jpg|png|webp|private'
风险写法示例:
User-agent: *
Disallow: /wp-content/uploads/
如果 /wp-content/uploads/ 里既有公开产品图,又有不该公开的客户资料,那问题不是“robots 怎么写”,而是资源目录分层本身就错了。
更稳妥的目录策略是:
/wp-content/uploads/public-products/
/downloads/public-catalogs/
/downloads/public-certificates/
/private-assets/
/customer-files/
公开目录按 SEO 和买家体验处理,私密目录按权限和审计处理。
检查文件名、URL 和内容有没有泄露信息
Google 关于脱敏内容的文档提醒过:仅用黑块遮盖不等于可靠脱敏,URL 本身也可能泄露信息。外贸站做资源开放前,文件名、URL、PDF 文本和元数据都要看。
先扫文件 URL:
ASSETS="assets.txt"
grep -Ein \
'confidential|internal|private|draft|contract|invoice|quotation|price|passport|bank|iban|swift|报价|合同|发票|银行|内部|草稿|客户' \
"$ASSETS"
如果本地有 PDF 文本工具,可以抽查 PDF 正文:
PDF_URL="https://www.example.com/downloads/industrial-valve-catalog.pdf"
curl -fsSL "$PDF_URL" -o /tmp/catalog-check.pdf
pdftotext /tmp/catalog-check.pdf - |
grep -Ein \
'confidential|internal|contract|invoice|quotation|price|bank|客户|报价|合同|发票|银行|内部'
如果团队有元数据检查工具,也可以查 PDF 或图片元数据:
LOCAL_FILE="catalog-check.pdf"
exiftool "$LOCAL_FILE" |
grep -Ein 'author|creator|company|comment|software|producer|title|subject|gps'
没有这些工具也没关系,至少要人工打开公开文件,检查页面文字、文件名、页眉页脚、水印、客户信息、隐藏备注和版本号。
资源开放判断矩阵
可以用这张表做最终判断:
| 判断问题 | 开放抓取 | 可公开但 noindex | 权限保护 |
|---|---|---|---|
| 买家是否需要它做采购判断 | 是 | 不一定 | 否 |
| 是否本来就是公开营销资产 | 是 | 是 | 否 |
| 是否包含客户名、报价、合同、图纸 | 否 | 否 | 是 |
| 是否包含内部测试、未发布型号、非公开工艺 | 否 | 谨慎 | 是 |
| 是否应该出现在 sitemap | 可放 | 通常不放 | 不放 |
| 是否可被搜索结果展示 | 可以 | 不希望 | 不允许公开 |
| 技术处理 | 允许抓取,页面中有文字说明 | X-Robots-Tag: noindex |
登录、权限、403、私有存储 |
几个外贸场景可以这样判断:
| 场景 | 建议 |
|---|---|
| 产品页主图 | 开放,确保页面正文有型号、材质、应用、规格 |
| 公开 catalog PDF | 开放,放在产品页或资料页,文件名清楚 |
| ISO 证书展示 | 放公开版,说明证书范围和有效状态 |
| 客户验厂报告 | 不公开;如果要展示,只写脱敏摘要 |
| 客户定制图纸 | 不公开,必须权限保护 |
| 报价单下载 | 不公开,放在客户门户或邮件流程里 |
| 旧版目录 | 可下载但不希望被索引时,用 X-Robots-Tag: noindex |
| WordPress File block 附件 | 当成公开链接检查,不要默认它是私密文件 |
WordPress 外贸站要额外查什么
WordPress 的 File block 可以在页面里创建文件链接或下载按钮。这个功能本身没问题,但发布前要确认链接指向的是公开资料,而不是误传的内部文件。
PAGE="https://www.example.com/downloads/"
curl -fsSL "$PAGE" |
tr '<' '\n' |
grep -Ein 'href=.*\.(pdf|doc|docx|xls|xlsx|zip)|wp-block-file|download'
还要查全站是否仍处在“阻止搜索引擎索引”的上线遗留状态:
PAGE="https://www.example.com/"
curl -fsSL "$PAGE" |
tr '>' '>\n' |
grep -Ein 'name=.robots.|noindex|nofollow'
如果 WordPress 后台勾选了阻止搜索引擎索引,它可能影响整站页面。这个问题要和单个 PDF 的 X-Robots-Tag 分开查。
不要把开放抓取写成开放一切
外贸 AI SEO 的资源策略,应该服务两个目标:
- 公开采购资料让买家和搜索系统能理解。
- 敏感商务资料不要公开暴露。
这两个目标不冲突,前提是目录、权限和索引控制分清楚。
| 错误做法 | 风险 | 更稳妥做法 |
|---|---|---|
| 为了 AI SEO 开放所有 PDF | 泄露价格、客户、图纸、合同 | 只开放公开营销和技术资料 |
用 Disallow 保护报价单 |
文件可能仍可被直接访问 | 登录、权限、私有存储 |
| 公开图片只放在幻灯片里 | crawler 可能缺少上下文 | 页面正文写出关键参数和应用 |
| 证书原件全部上传 | 编号、客户、范围可能被滥用 | 做公开展示版或脱敏摘要 |
全站 PDF 都加 noindex |
公开目录和说明书也失去搜索机会 | 按目录或文件类型细分 |
| 旧文件换名不删旧 URL | CDN、旧链接仍可能访问 | 清理旧路径并复查响应 |
开放图片和 PDF 的正确问题不是“对 AI 有没有好处”。
更好的问法是:这份资源本来是否应该公开?公开后是否能帮助买家理解产品?里面有没有不能被外部访问的信息?技术控制是否和业务判断一致?
参考资料
- Google Search Central: Google Images best practices
- Google Search Central: Image sitemaps
- Google Search Central: Indexable file types
- Google Search Central: Robots meta tag and X-Robots-Tag specifications
- Google Search Central: Introduction to robots.txt
- Google Search Central: Keep redacted information out of Google Search
- OpenAI: Overview of OpenAI crawlers
- Perplexity Docs: Perplexity crawlers
- Anthropic Help Center: Anthropic crawlers and robots.txt
- WordPress Documentation: File block
- WordPress Documentation: Reading Settings