一、海外买家的采购调研已经交给 AI
做外贸独立站的团队最近应该有个直观感受:Google 自然流量的询盘占比在缓慢下滑,而客户开发信里开始出现"我问了 ChatGPT / Perplexity"这样的表述。海外 B2B 买家用 AI 做供应商筛选,已经不是新鲜事。
问题在于,绝大多数独立站是给 Google 排名设计的:关键词密度、外链、TDK 优化做了一轮又一轮,但 AI 引擎来抓取内容时,看到的还是一堆没有结构、没有事实、没有知识索引的营销页面。结果就是:AI 根本不知道你是谁、能做什么、凭什么推荐你。
GEO(生成式引擎优化)在出海场景下的核心工程就三件事:多语言 llms.txt、Product/Organization Schema、AI 爬虫授权。这三件事都可以用 Python 脚本自动化,一次配置,长期受益。
二、为什么出海站必须做多语言 llms.txt
llms.txt 是放在网站根目录的纯文本知识索引,AI 引擎(尤其 Perplexity、Claude)会优先读取它来快速理解站点结构。中文站可以这样写,但出海站必须按语言拆分,原因有两个:
| 因素 | 单语言 llms.txt | 多语言 llms.txt |
|---|---|---|
| AI 语言匹配 | 回答英语提问时只能引中文事实 | 按 Accept-Language 引对应语言事实 |
| 品牌事实一致性 | 多语言页面互相矛盾时 AI 无所适从 | 以主语言版本为权威源 |
| 维护成本 | 改一次全站生效 | 需要生成流水线 |
用 Python 从 CMS 数据自动生成是最稳的方案:
python
import json, pathlib
# 从商品库拉取数据(示例为 JSON 数据源,实际可换成 API / 数据库)
products = json.load(open("products_zh.json", encoding="utf-8"))
def build_llms_txt(lang: str, company: dict) -> str:
lines = [f"# {company['name_en']} --- AI Knowledge Graph ({lang})", ""]
lines += ["## Company Overview"]
lines += [f"- Founded {company['founded']}, {company['capacity']}"]
lines += [f"- Certifications: {', '.join(company['certs'])}", ""]
lines += ["## Core Products"]
for p in products:
lines.append(f"- [{p['name_' + lang]}]({p['url_' + lang]}): {p['spec_' + lang]}")
lines += ["", "## Technical Documents"]
for doc in company["docs"]:
lines.append(f"- {doc[lang]}")
return "\n".join(lines)
company = json.load(open("company.json", encoding="utf-8"))
for lang in ("en", "es", "de"):
pathlib.Path(f"public/llms-{lang}.txt").write_text(
build_llms_txt(lang, company), encoding="utf-8")
print("llms.txt generated for 3 languages")
关键细节 :主语言版本同时输出一份无后缀的 llms.txt(AI 引擎默认只认这个路径),其余语言通过主文件里的链接引导。
三、Product Schema 批量注入:别手写 JSON
独立站商品页动辄几百上千个,Schema 必须模板化注入。推荐直接在服务端渲染时拼装:
python
def product_schema(p: dict) -> str:
import json
return json.dumps({
"@context": "https://schema.org",
"@type": "Product",
"name": p["name_en"],
"description": p["spec_en"],
"sku": p["sku"],
"brand": {"@type": "Brand", "name": p["brand"]},
"offers": {
"@type": "Offer",
"price": p["price_usd"],
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
},
}, ensure_ascii=False)
| 踩坑点 | 现象 | 解法 |
|---|---|---|
| 中文/特殊字符转义 | \uXXXX 串,AI 解析率下降 |
ensure_ascii=False |
| 价格精度丢失 | 1.1 变 1.0999999 |
用字符串或 Decimal 转 str |
| 库存状态写死 | 下架商品仍标 InStock | 与 ERP 库存定时同步 |
| 多语言内容混装 | 英语 Schema 引中文描述 | 按 URL 语言路由生成 |
四、AI 爬虫授权:出海站要放行这几种
Googlebot 都会放行,但很多站对 AI 爬虫是默认拦截的------这是出海站最大的隐性损失。建议 robots.txt 至少覆盖:
text
User-agent: GPTBot
Allow: /
Crawl-delay: 2
User-agent: PerplexityBot
Allow: /
Crawl-delay: 1
User-agent: ClaudeBot
Allow: /
Crawl-delay: 2
User-agent: Google-Extended
Allow: /
User-agent: Bytespider
Allow: /
Crawl-delay: 1
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /account/
五、效果:一家机械配件独立站的 8 周变化
某浙江机械配件独立站(月 SKU 约 400)按上述方案改造后的内部统计:
| 指标 | 改造前 | 8 周后 |
|---|---|---|
| Perplexity 引用站点次数/周 | 0 | 17 |
| ChatGPT 联网搜索命中品牌 | 0 次 | 进入推荐列表 |
| AI 渠道询盘占比 | 0% | 11% |
| 站点 AI 可读性自评 | 15/100 | 78/100 |
验证方式:固定 20 个英文采购提问(如 "reliable CNC parts supplier in China"),每周跑一轮 ChatGPT + Perplexity + Gemini,记录品牌出现次数。
六、结语
出海站的 GEO 不是玄学,是三件确定性的工程活:多语言 llms.txt、模板化 Schema、AI 爬虫授权。用 Python 把它们接进 CI/CD,每次商品更新自动同步,AI 引擎对站点的理解就会随内容一起生长。如果你的独立站也在做 GEO 改造,欢迎评论区交流爬虫日志里的观察。
本文关键词:GEO生成式引擎优化、AI优化AIO、llms.txt、Product Schema、外贸独立站、Python自动化、AI搜索