Google 搜尋嘅工程副總裁 Gary Illyes 喺 LinkedIn 上公布咗一個對技術 SEO 有深遠影響嘅變更:Googlebot 已更改 JSON-LD 結構化數據嘅提取方式,由原本兩次 HTML unescaping 減為只做一次。呢個改動看似細微,但對於使用 CMS 系統或者有程式自動生成結構化數據嘅香港網站嚟講,可能會導致 Rich Results 突然消失、Google Search Console 出現大量解析錯誤。本文會詳細解釋呢個變化嘅技術背景,以及香港企業應該點樣應對。
一、Google 改變咗啲咩?
一直以嚟,Googlebot 喺讀取網站上嘅 JSON-LD script 標籤嗰陣,會自動執行兩次 HTML unescaping。呢個「寬容」嘅做法令唔少網站即使結構化數據嘅格式唔完全符合 JSON 標準,Google 仍然可以正確解讀。但 Illyes 表示,Google 為咗「將解析器提升至符合 JSON 及其他標準」,決定改為只做一次 HTML unescaping。
佢特別指出:「如果你想知道 JSON 嘅『正確跳脫』方法係咩,我有好消息——RFC 8259 第 7 節已經有非常清晰嘅定義。」換句話說,Google 以後會嚴格跟隨 JSON 標準,唔再幫網站「執漏」。
二、呢個改動實際影響啲咩?
簡單講,如果你嘅 JSON-LD 入面有 雙重跳脫嘅 HTML 實體(例如 & 或者 ✔),Googlebot 而家唔會再幫你「解開」佢哋。實際例子:
- ❌ 舊寫法(而家會出錯):
{ "description": "我哋提供專業&可靠嘅服務" }—— Google 會睇到「&」而唔係「&」 - ✅ 正確寫法:
{ "description": "我哋提供專業\u0026可靠嘅服務" }—— 用 Unicode 十六進制跳脫 - ✅ 亦可以:
{ "description": "我哋提供專業&可靠嘅服務" }—— 直接使用原始字元
呢個問題尤其常見於:
- CMS 系統自動生成嘅 JSON-LD——例如 WordPress 嘅 SEO plugins(Yoast、Rank Math 等)可能會將內容先跳脫一次,再放入 JSON-LD,形成雙重跳脫
- 手寫嘅結構化數據模板——開發者習慣用 PHP/JS 嘅 htmlspecialchars() 之類嘅函數處理文字,然後再放入 JSON,同樣會造成雙重跳脫
- 第三方 API 輸出嘅數據——由外部系統匯入嘅產品資料、評價內容,可能本身已經含有跳脫字元
三、對香港中小企嘅實際影響評估
根據 Google Search Console 嘅數據,香港大約 30-40% 嘅中小企網站有使用結構化數據(主要係 LocalBusiness、Product、FAQ 同 Article Schema)。其中唔少網站透過以下方式產生 JSON-LD:
- Shopify、WordPress 等平台嘅自動 Schema 生成功能
- 香港本地網頁設計公司開發嘅自訂 CMS
- Google Tag Manager 透過自訂 HTML 標籤注入嘅結構化數據
如果呢啲系統有使用雙重跳脫,你可能會發現:
- Google Search Console 嘅「增強功能」報表出現大量「無法解析」或者「缺少必要欄位」錯誤
- Google 搜尋結果中嘅 Rich Results(星級評價、FAQ 摺疊、產品價格)突然消失
- 結構化數據測試工具顯示 JSON 格式錯誤
四、點樣檢查你嘅網站有冇受影響?
1. 用 Google Search Console 檢查
入去 Search Console > 「增強功能」報表,檢查有冇出現任何新的錯誤或者警告。特別留意「解析錯誤」或者「缺少欄位」嘅類別,呢啲可能係 JSON-LD 提取失敗嘅跡象。
2. 用 Rich Results Test 檢查
將你嘅網頁 URL 放入 Google Rich Results Test,如果測試工具回報 JSON 解析錯誤,咁就係受影響。
3. 直接檢查 JSON-LD 原始碼
打開你嘅網頁原始碼,搵出 <script type="application/ld+json"> 區塊,檢查入面有冇 &、<、>、"、&#xxxx; 之類嘅 HTML 實體編碼。如果有的話,就需要修正。
五、修正方法(按技術程度排序)
選項 1:直接改為標準 JSON 跳脫(推薦)
將所有 HTML 實體編碼(如 &)改為 JSON 標準嘅 Unicode 跳脫(如 \u0026),或者直接使用原始字元(確保 JSON-LD 嘅字串係合法 UTF-8)。呢個係最徹底嘅解決方案。
選項 2:更新 CMS 插件
如果你用緊 WordPress 嘅 Yoast SEO 或者 Rank Math,檢查有冇更新。呢啲主流插件通常會好快適應 Google 嘅變更。同樣,Shopify 用戶可以檢查主題開發者有冇發布更新。
選項 3:透過 GTM 修正
如果你用 Google Tag Manager 注入結構化數據,檢查自訂 HTML 標籤入面嘅 JSON-LD,確保輸出嘅時候冇多餘嘅 HTML 跳脫。
選項 4:用 JavaScript 動態生成
如果靜態 JSON-LD 經常有跳脫問題,可以考慮改用 JavaScript 喺客戶端動態生成結構化數據。咁樣可以避免伺服器端嘅雙重跳脫問題。
六、預防未來類似問題嘅建議
- ✅ 建立 JSON-LD 嘅自動化測試流程,每次更新後用 Rich Results Test 檢查
- ✅ 喺開發流程中加入結構化數據驗證步驟
- ✅ 避免使用 HTML 專用嘅跳脫函數(如 htmlspecialchars)處理 JSON-LD 內容
- ✅ 直接用 JSON 標準嘅跳脫規則:雙引號用 \u0022、反斜線用 \\、& 符號直接用原始字元或者 \u0026
- ✅ 訂閱 Google Search Central 嘅更新通知,呢類改動通常會喺 LinkedIn 或者官方 Blog 公布
七、仲有一個問題:Google 會唔會修復已收集嘅數據?
Barry Schwartz 喺 Search Engine Roundtable 嘅報導中問咗呢個問題——如果 Google 之前已經成功爬取咗雙重跳脫嘅 JSON-LD,呢啲數據會唔會突然失效?Illyes 嘅回應係,新規則只影響之後嘅爬取。但因為 Google 會定期重新爬取網頁,所以如果唔修正,下次 Googlebot 再訪時就可能會讀取失敗。建議盡快修正。
需要幫手檢查網站嘅結構化數據?
我哋為香港企業提供全面嘅技術 SEO 審計服務,包括結構化數據診斷、JSON-LD 錯誤修正同 Rich Results 優化。立即預約免費諮詢,確保你嘅網站繼續享有 Google 搜尋嘅增強顯示功能。
預約免費諮詢