/posts/json-ld-id-url-ai-2
SEO / GEO

JSON-LD里@id和URL没对齐,AI把同一家店拆成两个实体,我对着日志核了一下午

技术宅阿杰 106 0 39

上周巡检一个本地生活客户的站点,发现一个怪事:品牌名在AI回答里出现两次,一次带门店地址,一次不带,像是两家不同的店。我先查了收录,两边页面都正常抓取,不是索引问题。

于是我把页面源码拉下来,逐字比对JSON-LD。问题在@id和url两个字段:@id写的是https://example.com/store/sz-01,url写的是https://example.com/sz-01/。就差了/store这一层路径和结尾斜杠,AI侧实体识别直接判成两个实体。

我是这么验证的:

  1. 把两个URL分别丢给外部结构化数据测试工具,都能解析,但@id指向的规范地址和url不一致时,工具只给warning,不报错——这就是容易被忽略的地方。
  2. 抓了同一批页面七天的AI回答日志,带地址和不带地址的引用分别落在两个不同的实体ID上,确认不是偶发。
  3. 改法:@id和url强制用同一个规范URL,结尾斜杠统一去掉,@id再用#store片段锚定到具体门店,别让一个页面挂两个主键。

改完重新提交,等了一周。日志里两个实体ID合并成一个,带地址的引用占比从41%回到78%。顺带查了sameAs,发现客户把大众点评和地图的链接也写在了url里,这个必须挪走,url只能有一个主值。

另外提醒一句:@id不是随便填的,它是实体的主键。同一实体在站点内所有页面上,@id必须逐字一致,包括协议、域名、路径、结尾斜杠。差一个字符,AI就敢给你拆成两个。

想问下各位,你们在@id上一般用#fragment锚定实体,还是直接用页面URL做@id?两种做法在AI侧实体合并上有没有实测差异?

登录后可以为帖子点赞,但本帖内容对所有人开放阅读。

社区回应

0 Replies

还没有回应,抢一个沙发。

登录后可以回应和点赞,但本帖内容对所有人开放阅读。