Skip to content

这次针对 Photo Tidy 官网(phototidy.pxspice.com)解决 Cloudflare 流量高但 Google Search Console(GSC)索引几乎为零的排查与优化全过程,为你整理了一份清晰、规范的文档记录。

你可以直接复制并保存:


Photo Tidy 官网 SEO 与 GSC 索引优化操作记录 ​

项目域名:[https://phototidy.pxspice.com](https://phototidy.pxspice.com)

技术栈:VitePress + Cloudflare Pages

核心目标:修复 GSC 不收录/未编入索引问题,打通搜索引擎(Google/Bing)及 AI 引擎(OpenAI/Claude/Perplexity)的自动化抓取与多语言全域索引。


一、 核心阻碍与根因诊断 ​

  1. 防火墙误杀:Cloudflare 的 WAF 防火墙及安全机制(如 Browser Integrity Check)将 Googlebot 的实时抓取及测试请求拦截,导致 GSC 报“提交索引编制请求时出现了问题”。
  2. 多语言规范缺失:VitePress 页面 head 中缺失规范网址 canonical 及多语言 hreflang / x-default 映射,导致 Google 将非英文版误判为重复内容或孤立页面。
  3. 搜索引擎与 AI 爬虫协议不完整:robots.txt 缺少对主流 AI 搜索引擎(GPTBot、ClaudeBot 等)的显式许可声明。

二、 优化实施步骤与核心要点 ​

Step 1:调整 VitePress 多语言 SEO 配置 (config.mts) ​

  • 核心操作:在 .vitepress/config.mts 中优化 head 配置,引入规范网址与全域多语言标记。
  • 修改要点:
  1. 使用双字母泛语言代码(en, fr, de, ja, th)实现全球同语系国家/地区的自动匹配(例如 en 自动覆盖 en-US, en-GB, en-AU)。
  2. 中文引入 ISO 15924 书写体规范:zh-Hans(简体中文全域,覆盖大陆及新加坡 zh-SG)和 zh-Hant(繁体中文全域,覆盖台湾及香港 zh-HK)。
  3. 配置 x-default 指向英文首页,作为全球非受支持语言地区的兜底页面。
  4. 为每个语言版本页面动态注入 <link rel="canonical" href="..." /> 标签。
typescript
// config.mts head 配置核心代码片段
head: [
  // 1. 全球未匹配语言保底
  ['link', { rel: 'alternate', hreflang: 'x-default', href: `${siteUrl}/` }],

  // 2. 泛语言配置(覆盖全球该语系所有国家/地区)
  ['link', { rel: 'alternate', hreflang: 'en', href: `${siteUrl}/` }],
  ['link', { rel: 'alternate', hreflang: 'fr', href: `${siteUrl}/fr/` }],
  ['link', { rel: 'alternate', hreflang: 'de', href: `${siteUrl}/de/` }],
  ['link', { rel: 'alternate', hreflang: 'ja', href: `${siteUrl}/ja/` }],
  ['link', { rel: 'alternate', hreflang: 'th', href: `${siteUrl}/th/` }],

  // 3. 中文全域书写体配置
  ['link', { rel: 'alternate', hreflang: 'zh-Hans', href: `${siteUrl}/zh-CN/` }],
  ['link', { rel: 'alternate', hreflang: 'zh-Hant', href: `${siteUrl}/zh-TW/` }],
  ['link', { rel: 'alternate', hreflang: 'zh-CN', href: `${siteUrl}/zh-CN/` }],
  ['link', { rel: 'alternate', hreflang: 'zh-TW', href: `${siteUrl}/zh-TW/` }],
]

Step 2:补充并部署静态 robots.txt ​

  • 核心操作:在 docs/public/robots.txt 中创建文件(打包时自动输出至 dist/robots.txt)。
  • 配置要点:放行各大搜索引擎与 AI 检索机器人,并显式暴露 Sitemap 路径。
text
User-agent: *
Allow: /

# 搜索引擎 Bot
User-agent: Googlebot
Allow: /
User-agent: Bingbot
Allow: /
User-agent: Applebot
Allow: /

# AI 引擎与大模型检索 Bot
User-agent: GPTBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: anthropic-ai
Allow: /

Sitemap: https://phototidy.pxspice.com/sitemap.xml

Step 3:配置 Cloudflare WAF 放行白名单 ​

  • 核心操作:登录 Cloudflare Dashboard -> pxspice.com -> Security -> WAF -> Custom rules,创建加急放行规则。
  • 规则表达式 (Expression):
text
(http.user_agent contains "Googlebot") or (http.user_agent contains "bingbot") or (http.user_agent contains "GPTBot") or (http.user_agent contains "ChatGPT-User") or (http.user_agent contains "PerplexityBot") or (http.user_agent contains "ClaudeBot") or (http.user_agent contains "anthropic-ai") or (http.user_agent contains "Applebot")
  • 处置动作 (Action):选择 Skip。
  • 跳过组件:勾选 User Agent Blocking、Browser Integrity Check、Security Level、All managed rules、All Super Bot Fight Mode Rules。
  • 预警处理:忽略 Cloudflare 关于 php2shell 托管规则被跳过的风险提示(静态网站无 PHP 后端,该攻击无效)。

Step 4:构建部署与 GSC 优先抓取验证 ​

  1. 重新编译部署:执行 npm run docs:build 生成完整带静态文字的 HTML 产物并推送到 Cloudflare Pages。
  2. 确认 Cloudflare 日志:在 Cloudflare Security -> Events 日志中确认捕获到 User agent: Googlebot 访问 /robots.txt 且动作结果为 Skip(放行)。
  3. 提交 GSC 优先抓取:在 Google Search Console 顶部输入 [https://phototidy.pxspice.com](https://phototidy.pxspice.com) 进入网址检查,提交“请求编入索引”,系统成功提示“已将网址添加到优先抓取队列中”。

三、 验证与观测结论 ​

  1. 通路闭环:Sitemap 提交为“成功”,Cloudflare WAF 放行日志验证正常,GSC 优先抓取队列提交成功。
  2. 后续自动化策略:
  • 不需要在 GSC 中手动逐个提交子页面,Googlebot 将顺着 sitemap.xml 及首页内部超链接在 3~7 天内 完成全站 7 种语言版本与文档页面的自动化爬行与建库。
  • OpenAI / ChatGPT 等 AI 平台将随着 robots.txt 与 WAF 规则的开放,在进行网络搜索提问及更新知识库时完成自动化抓取与引用。