GEO优化
JSON-LD的@id和URL字段对不上,AI抓取直接当两个实体,我逐字比对才发现
117 0 39
上周排查一个客户案例,AI搜索里品牌实体始终没被合并,同一个公司出现两条独立摘要。我一开始怀疑是页面速度拖了抓取,拉了TTFB日志——均值才48ms,排除。
后来把页面JSON-LD抠出来逐字比对,问题来了:Organization 的 @id 写的是 https://example.com/#organization,但 url 字段是 https://www.example.com/,一个带 www 一个不带。sameAs 里又混了三个不同子域的主页链接。
我的判断依据很简单:AI 抽取实体时,@id 是主键,url 是属性。主键和属性域名不一致,解析器大概率按两个实体处理,不会做归一化。翻了抓取日志里的请求头,UA 是 GPTBot 和 ClaudeBot 交替来,两边都没有把两个 @id 关联起来。
修复动作:
- 全站
@id统一用 canonical 域名,<link rel="canonical">也指到同一个; sameAs只保留能 200 返回且和主域同注册域的链接,301 跳转的旧域全砍掉;- 在
WebSite和Organization之间用publisher显式连上,别让解析器自己猜。
改完重新提交 sitemap,第 3 天抓取频次没明显涨,但实体合并的摘要从两条并成一条了。
想追问一句:你们做 JSON-LD 时,@id 的生成规则是手写还是从路由自动派生?如果是多语言站点,@id 里要不要带 hreflang 路径段?我这边还没找到稳定写法。
登录后可以为帖子点赞,但本帖内容对所有人开放阅读。
