跳转到主要内容
用 GEO Score 检查你希望 ChatGPT 引用的页面。分数是人在该页面上读到的内容(包括图片中的文字)中,ChatGPT 搜索 所持有的该页面副本里包含的比例。direct 是像有人给出 URL 时那样,ChatGPT 自己打开页面时收到的比例。ChatGPT 搜索遗漏的每个片段都附有原因,analysis 会把原因整理成修复方法。

为页面打分

任务被接受并进入队列:
用 GET /v1/async/task/{id} 读取结果,或在请求中加入 webhook.url,在任务完成时接收结果。大多数页面需要 1 到 3 分钟,因此每 10 到 15 秒轮询一次。它与其他异步任务的工作方式相同,结果在 response 中。 请求结构见 API 参考。

请求字段

其他字段返回 400 VALIDATION_ERROR。

打分方式

  1. 访问。 分别为 OAI-SearchBot、ChatGPT-User 和 GPTBot 判定 robots.txt。从 ChatGPT-User 抓取页面所用的美国 地址,以各个代理和浏览器的身份获取页面。
  2. 人读到的内容。 country 的浏览器渲染页面并滚动到底,逐行读取大图片中的文字。关于页面自身主题的行成为 片段。菜单、页脚、其他商品、顾客评论、按钮和广告不计入分数。
  3. ChatGPT 搜索保留的内容。 美国地址的浏览器以 OAI-SearchBot(为 ChatGPT 搜索抓取内容的爬虫)的身份渲染页面, 不放出任何数据请求。副本是服务器发送的 HTML 的文本,加上页面脚本用这份 HTML 绘制的文本,包括隐藏文本和图片的 alt 文本。图片中的文字和页面打开后才加载的内容不在 ChatGPT 搜索中,也不在这份副本中。
  4. ChatGPT 打开页面时收到的内容。 按 ChatGPT 阅读器的方式读取 ChatGPT-User 收到的 HTML:正文文本、隐藏文本和 图片 alt 文本,不运行脚本。只有 ChatGPT 能打开并读取的图片才计入:HTML 以 img src 给出该图片,格式为 JPEG、 PNG 或 WebP,且尺寸足以看清文字。
  5. ChatGPT 是否打开页面。 向生产环境的 ChatGPT 请求两次打开页面。不给回答打分,只看它是否打开了页面。
  6. 判定每个片段。 搜索副本中有的片段为 read,没有的为 missing 并附原因。direct 用 ChatGPT 打开页面时 收到的内容做同样的判定。所有片段都由代码判定,因此没有变化的页面得到相同的分数。

读取结果

上面的 OLIVE YOUNG 页面的结果,只保留主要字段如下:

score

ChatGPT 搜索保留的片段比例,从 0 到 100。每个片段权重相同。robots.txt 把页面排除在 ChatGPT 搜索之外时,以及网站 拒绝 ChatGPT 搜索的爬虫时,分数为 0。reading.score 保留 robots.txt 把分数设为 0 之前的比例。

direct

像有人给出 URL 时那样,ChatGPT 自己打开页面时收到的内容。direct.score 是 ChatGPT-User 收到的 HTML 和 ChatGPT 能打开的图片中所含片段的比例,direct.read 是其数量。ChatGPT 打不开页面时为 0。页面把文字写在图片里或用脚本 绘制时,两个分数会分开:ChatGPT 搜索不保留图片中的文字,但保留脚本用 HTML 绘制的内容;ChatGPT 的阅读器会打开 能读取的图片,但不运行脚本。一个营养成分标签为原尺寸 JPEG 的食品商品页面,搜索得 56 分,直接打开得 93 分。

access

网站拒绝 ChatGPT 搜索的爬虫时,search.refused 为 true,分数为 0。search.lines 是搜索副本的行数。 blockedBy 在网站从任何地址都拒绝 ChatGPT-User 代理时为 user_agent,接受来自我们地址的该代理但拒绝 OpenAI 地址时为 openai_addresses,连浏览器也拒绝时为 site。robots 给出为每个 OpenAI 代理作出判定的 robots.txt 行,noindex 报告 noindex 指令及其设置位置,probes 列出每次请求收到的状态。

reading.items[]

每个片段一项: reading.locations 按 where 统计片段,显示 ChatGPT 能打开页面之后仍需修复的问题。causes[] 按原因归组遗漏的片段。

analysis

summary 说明分数、最大的问题,以及修复已确认问题后的分数(potential)。direct 说明 ChatGPT 自己打开页面时 收到什么,或者打不开时是谁阻止了它以及修复方法。issues[] 的每一项包含原因(detail)、修复方法(fix)、因此 遗漏的片段(facts)、证据,以及它扣掉的分数。把分数卡在 0 的访问问题排在前面,其余按扣分多少排列。basis 为 confirmed,表示问题由我们自己读取页面(HTML、渲染、图片、robots.txt、HTTP 响应)确认。analysis 的文字是英文。

markdown

人看到的页面整理成的 Markdown,图片中的文字放在图片所在的位置。分数检查的页面自身内容放在其标题和标签之下。 菜单、评论等内容周围的部分每段折叠成一行。ChatGPT 搜索遗漏的每个片段都在原位用 _(missing: …)_ 标注原因,开头 还写出 ChatGPT 打开页面时收到的片段数。开头和标注使用页面的语言:英语、韩语、日语、中文、西班牙语、法语、德语或 葡萄牙语,其他语言用英语。中文页面写作 _(缺失: …)_。以下是英文 OLIVE YOUNG 页面的一段:

screenshot

人看到的页面前四屏的 JPEG。在 1366×900 的窗口中把页面滚动到底后,回到顶部截取。url 本身就是访问密钥,在 expiresAt (任务后 30 天)之前可以打开。无法截图的页面不含 screenshot,无法保存的截图为 status: "failed"。

rendering

为 AI 代理渲染的页面。副本是人的浏览器绘制的 HTML,去掉脚本,并把每张图片里的文字加入其 alt,即 WCAG 对文字图片要求的替代文本。 rendering.score 是副本文本包含的片段比例,即收到副本的 AI 代理无需打开图片就能收到的内容。rendering.read 是这些片段的数量, reading.items[].rendering 是每个片段的判定。副本本身不在结果中。上面的 OLIVE YOUNG 页面在副本中包含全部 55 个片段,得分 100:成分和 FAQ 图片中的文字进入 alt,脚本加载的价格和评分进入正文。
浏览器无法显示页面,或绘制的 HTML 过大时,没有 rendering。

正确解读分数

  • ChatGPT 搜索依据其爬虫制作的页面副本工作:副本包含 HTML 的文本和脚本用这份 HTML 绘制的内容,不含图片中的文字 和页面打开后才加载的内容。副本来自最近一次抓取,因此对页面的修改要在爬虫重新抓取页面之后才进入 ChatGPT 搜索。
  • ChatGPT 自己打开页面时,读取服务器发送的 HTML。它不运行脚本,读取图片的 alt 文本,并且只通过该 HTML 给出的 img src 打开图片。OpenAI 会把打开过的页面重复使用约 30 分钟。
  • 只有页面或其渲染方式改变时,分数才会变化。15 个页面各打分三次,其中 10 个的差距在 3 分以内。每次访问绘制不同 部分的页面变化更大。
  • GEO Score 衡量 ChatGPT 拥有单个页面的多少内容。ChatGPT 搜索针对某个问题会选哪些页面,由 GEO 监控追踪。

错误与计费

完成的任务按页面收取 10 积分,每读取一张图片中的文字再收 5 积分,最多 12 张(结果中的 images.read)。主机拒绝或无法读取的图片(images.unread)不收费。账户在 90 天内读取过同一图片时会复用该结果(images.reused),每张收 2 积分。提交时预留一个页面的上限 70 积分,任务完成时只扣除实际用量。失败的任务不扣费。见积分与限制。

提交时被拒绝

认证、并发和速率错误与其他任务相同。见错误。

失败的任务

失败的任务为 status: "FAILED",error 字符串以代码开头:

下一步

Citation Analysis

查看哪些来源塑造了一条回答。

GEO 监控

按计划在各 AI 引擎上追踪你的品牌。