我运营 IndieDex.gg,这是一个游戏发现站点。站内有约 120K 款游戏 × 2 种页面类型(详情页 +「类似 X 的游戏」)× 4 种语言,所以大约有 960K 个程序化页面。站点用 Next.js 部署在 Vercel 上,因此没被缓存的页面都要消耗算力。

先交代一下它在 SEO 方面的情况:

  • 第一个月大约 1K 次点击,其中大多数页面排在 2 页之后。
  • 只有大约 40% 的页面被收录。其余页面都通过程序化方式设置了 noindex,但 Google 仍会把抓取预算花在它们身上。
  • “类似 X 的游戏”这类页面是最受欢迎的 SEO 页面。

以下是其中比较棘手的部分,以及我从中得到的经验。

1- 你没法预测哪些页面能排上名次

这一点决定了其他所有事情。在 GSC 里,我看到不同的游戏会在不同时间火起来。新游戏上线后热几周,然后就彻底没人提了。某个热门主播玩了一款老游戏,它就会短暂地冒一下头。

所以任何「预先渲染/优先处理那些会排上名的页面」的计划都行不通。这 960K 个页面每一个都必须快、可抓取、内容完整,因为我根本不知道 Google(或者某个 LLM)下一个会挑中哪一个。

2- 渲染:我「为了保险起见」做了一处 SEO 改动,结果根本没必要

我的 React 配置把页面主体塞进了一个 里,要等 JS 跑起来才显示。我担心爬虫会看到空白页面,所以把它去掉了。

结果 Google 根本不在乎。那段标记上线的九周里,Google 照样抓取并给这些页面排了名。有 72 个游戏页面在 Sep 1–16 期间拿到了点击,其中一个页面整个主体都塞在 里,平均排名还停在 9.2。这和 Vercel/MERJ 的研究结论对得上:Googlebot 能完整渲染流式传输的 React Server Component 内容。

我把它改回去测试时,最糟的地方不是隐藏的正文。它把每一页的 title、canonical 和 robots 标签都挪出了 。对一个这种规模、靠 canonical 和 noindex 撑着的站点来说,这才是真正吓人的那一点。

3 - AEO/GEO:AI 爬虫是另一拨受众

像我这个站点,用户很可能会直接问 LLM「我玩了 X 很喜欢,还有哪些类似的游戏?」这正好对应我的「类似游戏」页面。所以能不能被引用,对我来说越来越重要。

我发现了这些:

  • AI 爬虫不跑 JavaScript。Vercel 自己的分析发现,主流爬虫没有一个会渲染 JS。Mozilla Readability 这类工具也会把隐藏元素整个丢掉。所以「等 JS 跑起来才显示」对 Google 没问题,但对 AI 可能反而害了你。现在 AI 机器人拿到的是完整的 HTML body,元数据在 里(通过 Next.js 的 htmlLimitedBots 实现,同时保留默认名单给 Googlebot 之类的爬虫)。
  • 训练爬虫和搜索/引用抓取器是两类不同的受众。GPTBot、ClaudeBot 和 CCBot 是为训练收集数据。OAI-SearchBot、ChatGPT-User、PerplexityBot、Claude-SearchBot 和 Claude-User 才是让你进入回答的那批。我把第一组限流,放行第二组。OpenAI 的文档说,屏蔽 OAI-SearchBot 会让你进不了 ChatGPT 的搜索回答,而屏蔽 GPTBot 只是让你退出训练。
  • 检查一下你的防火墙。我的 WAF 一直在悄悄拦截 Perplexity。它从 AWS 爬取,一条旧规则把整个网段都拦下来做验证,而机器人过不了验证。
  • 内链对 AI 发现内容同样重要。GPTBot 抓取的 URL 里有 94% 不在我的 sitemap 中。它是靠顺着内链找到这些页面的。

4- 不通知 Google 全部内容已变更,也能保持新鲜度

我的每周数据流水线原本每周日都会把大约 960K 个页面全部标记为过期,哪怕某个游戏根本没变过。现在每个游戏的页面只在该游戏发生变化时才刷新:每周大约 33K 个页面,而不是 960K 个。在这么大的站点上,我更愿意让爬虫把时间花在真正变过的页面上。

5——在成本与用户体验之间做平衡(以及为什么用户体验优先)

成本压力出现在 GPTBot 每天爬取约 26,600 个独立 URL、每次访问都变成约 500 KB 缓存写入的时候。一个更省钱的方案是不再缓存长尾页面,改为每次请求都重新渲染。

我说不行,因为 SEO。这是个发现类应用,你希望每个页面都在 1 秒内加载完。体验差 → 互动差 → 对 SEO 不利 → 流量更少。所以 CDN 得留着,机器人来的时候给它一个不走缓存的渲染结果。在长尾站点上,成本跟的是独立页面数 × 缓存重置次数,而不是流量规模,所以真实访客很便宜。要让真实访客的成本达到机器人那个水平,我得有当前 Google 流量的约 1,000 倍才行。