很多站点在頁面上加過 Structured Data,最常见的形式是 JSON-LD。上线那天測試通過,之後就再没人看過。等到某天發現搜尋结果里的评分、價格、作者或者面包屑和頁面對不上,才回头去翻那段代碼。结构化資料本质上是给搜尋引擎的一份“頁面說明书”,寫错了不會让整站崩掉,但會让這份說明书的可信度一点点流失。下面這套自查流程,大部分环节不需要寫代碼就能完成。
先確認一條底线:标记里寫的,頁面上要能找到
這是所有問题的根源。搜尋引擎不要求标记和頁面一字不差,但要求两者不矛盾。逐項對照时重点看這几類字段:
- 评分與评论數:頁面上有真實的评论区吗?數字對得上吗?如果评论模块已经被下线,标记還在輸出舊資料,就该一起删掉。
- 價格與库存:电商站点尤其常见。商品調價、下架之後,标记里的數字往往還停在几個月前。
- 面包屑:要和頁面可见的路径、以及 URL 的层級一致。別出現頁面上寫“首頁 > 教程 > 入门”,标记里却是另一條路径。
- 問答與操作步骤:FAQ、HowTo 這類内容必须真的顯示在頁面上,藏在代碼里不算。
不要為了争取展示样式而编造评分、作者或更新時間。這類字段一旦被判定為不實,轻則该條目不再被采用,重則影响整站對标记的信任。
一次完整的自查步骤
- 打開頁面源碼,搜尋 ld+json,把所有标记块找出来。一個頁面出現三四個块很正常,但要確認它們之間不冲突。
- 检查语法:括号是否成對、字段之間有没有多余的逗号、引号有没有混用。JSON 解析失敗时,整块标记都是無效的。
- 用结构化資料測試工具或富媒体測試跑一遍,重点看“檢測到的項目”列表和所有警告,而不是只看有没有报错。
- 逐字段和頁面内容對照:名稱、图片、作者、發布時間、更新時間、所属栏目。
- 检查必填項是否缺失,尤其是 @context、@type、url、name 或 headline 這几個基础字段。
- 检查同一頁面是否輸出了两份互相打架的标记,例如两個 Product、两個 Article、两個 Organization。
- 检查模板批量輸出时有没有把預設值带出来:預設作者寫成 admin、預設時間停在很久以前、預設價格是 0、預設图片指向一張占位图。
- 抽样不同栏目、不同模板的頁面各三五個,不要只看首頁和一篇手工調過的文章。
几個容易被忽略的坑
時間字段
發布時間和更新時間要和頁面上顯示的一致。更新舊文章时,如果只改了頁面文字却没動标记,标记會持續輸出舊時間;反過来,有些模板會把更新時間自動刷成“目前時間”,让一篇舊文看起来像刚發的。两種都不理想,建议以頁面實际展示的時間為准。
图片與連結地址
标记里的图片地址尽量用绝對路径,避免带跟踪參數和缩略图裁切參數。图片被替換、防盗鏈規則調整、CDN 目錄變更之後,标记里指向的地址可能已经 404,這類問题不會报错,只會静默失效。
聚合頁與列表頁
列表頁塞 ItemList 时,條目要和頁面上真實存在的連結對應。篩選條件把列表清空了、或者分頁翻到後面没有内容时,就不要繼續輸出空的條目列表。
把它變成一件例行的事
- 模板改動上线後,抽一两個頁面回归驗證,別等改版整包上线再回头补。
- 内容批量導入、迁移之後,抽样检查時間、作者、图片三類字段。
- 把每次修改记在同一個地方:改了哪個字段、為什么改、什么时候驗證過。
结构化資料不保證任何展示效果,它只是把頁面上已有的信息,用搜尋引擎能讀懂的方式再说一遍。把“说的”和“做的”對齐,剩下的事情交给時間和内容本身。