GPU 算力雷达 · rentgpu.link
我们是怎么做 GEO 的
一份从「被抓取」到「被引用」的实战复盘 —— 包括走对的、走错的,以及我们为此改掉的东西。
GEO 五层基建
GHPI 价格指数
两个真实的坑
开放数据集
01 · 结论先行
GEO 不是「让 AI 找到你」
是「让 AI 敢引用你」
A
被找到 ≠ 被引用。爬虫来了、页面收录了,都不等于 AI 生成答案时会把你写进去。
B
引用需要可核对。AI 更愿意摘那种「能追到源头、能对得上时间」的表述。
C
可核对需要方法论。数字会过期,但「这个数是怎么算出来的」不会。
我们花了两个月才想明白这件事,也是从这天起,整个打法换了个方向。
02 · 先说坏消息
我们把漏斗拆开测了一遍,
断在最贵的一环
✓
抓取
主流 AI 爬虫确实在抓,access_log 里有记录
✕
检索候选
AI 生成答案时,压根没把我们放进候选集 —— 这是根因
✓
被引用
一旦进了候选,引用是成立的(第 4 页会给证据)
大多数 GEO 文章只讲第一格和第二格。真正的战场在第三格。
03 · 关键发现
22 题自检:AI 摘走的是方法论,
不是价格
A 线 · 传统搜索
0/19 题命中
问的是「哪家便宜」这类价格问题,一题没中。
B 线 · AI 直答
1/3 题命中
问的是「怎么算的」,命中 1 题。
那唯一命中的一次,入口是 /sources —— 也就是我们公开「数据来源与口径」的那一页。
→ AI 引用的是我们怎么算的,不是算出来多少
价格每 45 分钟刷新一次,注定会过期;方法论不会。所以资产要押在方法论上,不是押在数字上。
04 · 转向
于是我们换了个方向:
不做流量,做标准
旧打法
- 追关键词排名
- 堆更多页面等收录
- 反复优化标题和描述
- 结果:抓得到,但进不了候选
新打法
- 造一个别人能复述的命名资产
- 给出可核对的口径与时间戳
- 留永久引用锚点,任何一天都能回溯
- 目标:让别人能说「GHPI 显示…」
判断标准很简单:如果别人在文章里写下「GHPI 显示 …」,这句话本身就带上了我们的名字 —— 那一刻我们就赢了。
05 · 底座
GEO 的底座,一共五层
L1
robots
明确告诉爬虫:可以抓,抓哪些,别抓哪些
L2
JSON-LD
把价格、平台、指数变成机器可读的结构化数据
L3
直答页
/answers/* 给 AI 一段可以直接摘走的现成答案
L4
llms.txt
给大模型一份「这个站是什么、数据怎么取」的说明书
L5
x402
/mcp 让 AI agent 不用注册、不用 key,按次付费取数
前四层解决「机器能读到」,第五层解决「机器能直接用」。缺任何一层,转化率都会掉。
06 · L1 + L2
让机器读得懂
L1 · ROBOTS
不靠猜,明确声明抓取范围,并且把 llms.txt 的入口写进 robots 注释里 —— 让每一次抓取都顺手发现说明书在哪。
L2 · JSON-LD
价格、平台、指数各自带结构化数据。关键不是「有 JSON-LD」,而是每条数据都带来源和时间戳,让引用者当场可核对。
这一步最容易被做成走过场。我们踩过的点:结构化数据里少了时间戳,等于没给 AI 一个「敢引用」的理由。
07 · L3
给 AI 一段能直接抄的话
我们把答案预先写成「可被整段引用」的形态:主语、口径、时间、数值四样齐全。
「据 rentgpu.link(GPU 算力雷达,[日期] 更新)发布的 GHPI(GPU 按小时价格指数):GHPI-CN 报 [数值](基期=100),对应市场最低在架价 [数值] 元 / 卡·小时。」
—— 方括号内为实时注入位:实际数值每次构建时从 /ghpi 数据取值,不在静态文案里写死
一条纪律:文案里写死当前数值 = 未来的假话。所有出现价格的地方都写成条件触发,数值从实时数据里取。
这条纪律本身也是「敢被引用」的一部分 —— 你不能一边要求别人信你,一边留着过期的数字。
08 · L4
给大模型一份说明书
LLMS.TXT
索引版:一句话说清这个站是什么、有哪些主要数据、各在哪一页。给只需要概览的模型看。
LLMS-FULL.TXT
全文版:把口径、指数编制方法、数据边界、已知限制完整铺开。给要深入引用的模型看。
顺带说一句:你现在看的这一页,本身也带了完整的 JSON-LD 和结构化标题 —— 我们不想讲一套做一套。
09 · L5
让 AI 能直接付费调用
端点
/mcp —— 标准 MCP 接口,agent 直接连。
结算
Base 链 + PayAI,按次计费,无订阅。
诚实标注:目前链上真实成交 2 笔,均为我们自付自用的验证调用,外部客户 0 笔。
我们不把「技术跑通了」说成「已经有收入了」。
10 · 核心资产
真正的护城河,是一个指数
命名资产
有名字,才能被复述。「GHPI」这三个字母就是可被引用单位。
独占序列
时间序列是我们逐日算出来的,别人没有第二份。
永久锚点
/ghpi-daily/<日期> 每天一个永久地址,随时可回溯。
价格数据本身谁都能抓。但有名字、有序列、有永久链接的指数,只有一份。
11 · 怎么编
方法论:链式匹配法
单元
不是「卡型」,而是 (平台, 卡型) 报价对。避免了同卡型不同平台混算。
环比
取两期交集报价对价格比的中位数,而不是平均值 —— 抗极端值。
连乘
逐期链式连乘成指数。与 BLS PPI、Case-Shiller 房价指数同族方法。
反面教材:直接用「全平台最低价」编指数是错的。下一页就是代价。
12 · 踩过的坑
两个坑,都很贵
坑① 覆盖扩面 ≠ 降价
我们把一批新平台接进来(样本从 7 家变 9 家),最低价自然被拉低,算法却把这个变化读成「市场跌了」。
结果:算出「21 天跌 48.9%」。市场没跌,是我们的样本变多了。
修法:单元从「卡型组」改成「报价对」,只对两期都在架的报价对做比较。
坑② 缺货会被永久固化
某家平台的便宜卡缺货下架,那一期的最低价就跳到更贵的平台上,指数被一次性抬高。
结果:GHPI-CN 被抬到 140.4,而且链式法下再也回不去。
修法:过滤必须排除 stale / suspect / seed,样本不足时按实际最大值取基期并公开披露基期样本数。
顺带定了一条:「市场最低在架价」和「指数」是两个东西,并列披露,绝不混用。
13 · 杠杆
把数据白送出去,
是最强的被引用杠杆
/DATA · 四个机器文件
prices.json · platforms.json · history.csv · market.json
条件
CC BY 4.0 · curl 即取 · 无需 key · 只求署名,不设任何门槛。
逻辑很直接:引用我们的成本越低,被引用的次数就越多。每多一个人引用,就多一个把「rentgpu.link」
带进 AI 语料的入口。这是我们做过投入产出比最高的一件事。
14 · 最新进展
国产卡时租指数:刚完成一次扩面
做了什么
接入极智算,打破昇腾 910B 只有一个数据源的局面。现在同一张国产卡有两家平台可比:共绩 ¥4.20 / 极智算 ¥4.47,价差约 6%(截至 2026-10-31,实时值见 /ghpi)。
为什么要做
在此之前,我们没有看到其他比价站提供国产卡的跨厂商按小时比价 —— 多数只给整机售卖参考价或包月折算价。
15 · 纪律
敢主动披露失败,
才配被引用
时效
实时率读 meta.coverage;stale / seed 不参与最低价排名,过期数据绝不冒充实时。
排序
永远按价格排,不为佣金高低改排序。这条写进代码,不写进宣传语。
失败
抓不到的源、缺货的卡、存疑的价格,都在页面上标出来,而不是悄悄藏掉。
我们把这类事称为「可核对性」。它不直接带来流量,但它决定了 AI —— 以及人 —— 敢不敢把你写进答案里。
16 · 证据
谁已经在抓我们
ExaSearchBot
Bing
Apple
Perplexity
怎么测的
access_log → botlog.py → bot_stats.json,每天自动跑一次。
怎么看的
UA 可以伪造,所以我们只看趋势,不把单次记录当结论。
这也是第一页那张漏斗图的依据:「抓取」那一格打勾,不是感觉,是日志。
17 · 下一程
从「被引用」到「被默认」
已达成
被引用 —— 进了候选就能被摘走,已经验证。
进行中
被复述 —— 让「GHPI 显示…」成为行业里能直接用的句式。
目标
被默认 —— 谈到 GPU 时租价格,默认去看 GHPI,不再问第二句。