更新日志新功能

查看 ChatGPT 能读到你页面的多少内容

API
带有 POST /v1/geo-score 标签的 GEO Score,以及 OLIVE YOUNG 防晒霜页面的结果:GEO Score 29,ChatGPT 自己打开页面时 29,使用 AI Rendering 时 100,以及扣分最多的两个问题

把页面 URL 发给 GEO Score,即可得到 ChatGPT 搜索保存了该页面多少内容、ChatGPT 自己打开页面时收到什么,以及每处遗漏的原因和修复方法。

获得的结果

  • POST /v1/geo-score:一个任务为一个页面评分。发送页面的 url 和读者所在的 country(US 或 KR)。
  • score:人在页面上读到的内容(包括图片中的文字)中 ChatGPT 搜索保存的比例,0 到 100。direct 以 ChatGPT 自己打开页面时收到的内容给出同样的比例。
  • reading.items:页面的每个片段、它所在的位置,以及 ChatGPT 搜索漏掉它的原因:blocked、javascript_only、structured_data_only 或 image_only。
  • analysis:按扣分从高到低列出问题,每个问题附有原因和修复方法。potential 是修复已确认问题后的分数。
  • markdown 和 screenshot:人看到的页面,每个遗漏的片段都在原位置标出。rendering 给出为 AI 代理渲染的副本能包含的比例。
  • 在控制台的 Playground 中,GEO Score 标签页把访客看到的页面和机器人收到的内容并排显示。

工作原理

GEO Score 读取针对 OAI-SearchBot、ChatGPT-User 和 GPTBot 的 robots.txt,并分别以这些代理和浏览器的身份获取页面。位于 country 的浏览器渲染页面、滚动到底部,并读取大图中的文字。与页面主题相关的行成为片段;菜单、页脚、其他商品、评论、按钮和广告不计入分数。

ChatGPT 搜索的副本是从美国地址以 OAI-SearchBot 身份渲染的页面:包含 HTML 的文字和脚本根据该 HTML 绘制的文字,不包含图片中的文字和页面打开后才加载的内容。direct 像 ChatGPT 的阅读器一样读取 ChatGPT-User 收到的 HTML,并请正式环境的 ChatGPT 打开页面两次,以确认它能否打开。

每个片段都由代码判定,因此未变化的页面会得到相同的分数。15 个页面各测三次,其中 10 个的波动在 3 分以内。

应用场景

  • 上线前为商品页或落地页评分,修复 ChatGPT 看不到的内容,例如脚本加载的价格或只写在图片里的规格。
  • 把 ChatGPT 在你所在领域引用的竞品页面和你自己的页面并排评分。
  • 把 analysis 中的修复方法交给网站团队,改动上线后再为同一页面评分。
  • 检查你的网站是否拒绝 ChatGPT:access.verdict 和 blockedBy 会指出是谁阻止它打开页面。

发送请求

在 Authorization 请求头中带上 API 密钥发送请求。

curl -X POST https://api.querying.ai/v1/geo-score \
  -H "Authorization: Bearer $QUERYING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://global.oliveyoung.com/product/detail?prdtNo=GA240322874",
    "country": "US"
  }'

请求字段

urlstring必填
要评分的页面:公开主机、默认端口的 http 或 https URL,最多 2,048 个字符。
countrystring
读者所在的国家:US(默认)或 KR。页面从该国家的地址、以该国的语言和时区打开。
webhook.urlstring
你服务器上的 HTTPS 地址。任务完成后立即把结果推送到这里。
idempotencyKeystring
你为请求设定的 ID。每个键在账户内对应一个任务,因此重试发送后仍是同一个任务。

响应

完成的任务如下所示,已截取部分内容。

JSON
{
  "success": true,
  "task": {
    "id": "bcb7e1a2-26eb-422f-9f60-31a5e39ee400",
    "taskType": "GEO_SCORE",
    "status": "COMPLETED",
    "createdAt": "2026-10-23T00:02:42.974Z"
  },
  "credits": { "creditsToCharge": 60, "creditsCharged": 60 },
  "response": {
    "url": "https://global.oliveyoung.com/product/detail?prdtNo=GA240322874",
    "pageType": "product",
    "score": 29,
    "direct": { "score": 29, "read": 16 },
    "rendering": { "score": 100, "read": 55 },
    "access": {
      "verdict": "open",
      "chatgpt": { "opened": true, "lines": 819 }
    },
    "reading": {
      "facts": 55,
      "read": 16,
      "locations": { "html": 16, "rendered_only": 13, "image": 26 },
      "items": [
        {
          "label": "COSRX Vitamin E Vitalizing Sunscreen SPF 50+",
          "where": "html",
          "status": "read"
        },
        {
          "label": "US$16.80",
          "where": "rendered_only",
          "status": "missing",
          "reason": "javascript_only"
        },
        {
          "label": "Key Ingredients",
          "where": "image",
          "status": "missing",
          "reason": "image_only"
        },
        "…"
      ]
    },
    "analysis": {
      "summary": "ChatGPT search keeps 16 of 55 facts of the page. The biggest issue: 26 facts are written only inside an image, among them Strong and effective sun protection; Key Ingredients; Tocopherol (Vitamin E) (47 points). Fixing the confirmed issues could raise the score to about 100.",
      "potential": 100,
      "issues": [
        {
          "code": "image_only",
          "points": 47,
          "title": "26 facts are written only inside an image",
          "fix": "Write this content as text in the page's HTML, next to the image or in place of it …"
        },
        {
          "code": "javascript_only",
          "points": 24,
          "title": "13 facts are loaded only after the page opens",
          "…": "…"
        }
      ]
    },
    "images": { "read": 10, "reused": 0, "unread": 0 },
    "markdown": "…",
    "screenshot": { "status": "ok", "url": "…", "expiresAt": "…" }
  }
}
task.statusstring
依次为 QUEUED、PROCESSING,最终为附带回答的 COMPLETED 或附带 error 的 FAILED。
credits.creditsChargedinteger
已完成任务扣除的积分。失败的任务为 0。
response.scorenumber
人在页面上读到的内容(包括图片中的文字)中,ChatGPT 搜索保存的页面副本所包含的比例,0 到 100。robots.txt 或网站拒绝 ChatGPT 搜索的爬虫时为 0。
response.directobject
ChatGPT 自己打开页面时(例如有人给它 URL)收到的内容:score 和收到的片段数 read。ChatGPT 无法打开页面时分数为 0。
response.renderingobject
为 AI 代理渲染的页面副本以文字形式包含的片段比例。副本是浏览器绘制的 HTML,去掉脚本,并把图片中的文字写进 alt 文本。
response.reading.itemsarray
页面的每个片段一项:label、所在位置 where(html、rendered_only、image 等)、status(read 或 missing),以及 ChatGPT 搜索漏掉它的原因 reason:blocked、javascript_only、structured_data_only 或 image_only。
response.analysisobject
summary、potential(修复已确认问题后的分数)和按扣分排序的 issues。每个问题附有原因(detail)、修复方法(fix)和受影响的片段。文字为英文。

获取结果

请求会立即返回 status 为 QUEUED 的任务。用 GET /v1/async/task/{id} 轮询,直到 status 变为 COMPLETED 或 FAILED;或者加上 webhook.url,在服务器上接收同样的 task、credits 和 response。任务结束后,结果保留 24 小时供查询。

curl https://api.querying.ai/v1/async/task/$TASK_ID \
  -H "Authorization: Bearer $QUERYING_API_KEY"

错误

VALIDATION_ERRORHTTP 422
缺少 url,或不是 http 或 https,或指向私有主机或端口。details 会指明该字段。
USE_DEDICATED_ENDPOINTHTTP 400
GEO_SCORE 被发送到了 /v1/async/task。请发送到 /v1/geo-score。
REGION_UNSUPPORTEDHTTP 422
country 不是 US 或 KR。
MISSING_API_KEYHTTP 401
缺少 Authorization 请求头,或密钥有误、已过期或已吊销。
INSUFFICIENT_CREDITSHTTP 402
余额低于单个页面的最高费用 70 积分。充值积分或升级套餐后再发送。

价格

每次完成的评分,页面扣 10 积分,每张读取了文字的图片扣 5 积分,最多 12 张图片。账户在过去 90 天内读取过的图片每张 2 积分,无法读取的图片免费。提交时预留单个页面的最高费用 70 积分,完成后只扣实际用量。

失败的任务不扣费。没有浏览器能显示页面时,任务以 PAGE_UNAVAILABLE 结束并附上原因。

更多更新

接收最新消息

通过邮件接收产品更新。

RSS 订阅