一款採用分離式範本模式的本地 JSON-LD 檢查器,絕不會擷取您的網頁、不會執行其中的腳本,也不會將您的原始碼傳送到任何地方。 結構化資料檢查與擷取工具完全在您的瀏覽器內執行。您貼上既有的 HTML,工具會在隔離的文件片段中解析該段文字。該片段與即時頁面分離,因此貼上的內容中沒有任何腳本能存取您的 Cookie、 session 或網路。工具不會跟隨連結、載入圖片、提交表單,也不會執行內嵌的 JavaScript。它同樣不會從遠端伺服器請求 URL,這代表不會有跨來源失敗、私網路呼叫,也不會有稽核到與搜尋爬蟲實際接收內容不同的標記的風險。您在結果中看到的一切,都是針對您所貼上文字的清單,而不是關於搜尋引擎將如何處理您頁面的承諾。
這個界線之所以重要,有兩個實際的原因。第一,即時擷取可能會回傳與您寫入範本的不同文件,因為框架、邊緣運算服務和個人化層會在初始回應之後注入標記。第二,任何會執行您腳本的工具,都可能觀察到您無意分享的行為或資料。純貼上的工作流程能讓稽核聚焦在您能掌控的原始碼,並一次排除這兩個變數。

「擷取」或「執行」實際上會對您的頁面造成什麼影響
擷取 URL 的工具會對伺服器發出 HTTP 請求、接收伺服器送出的回應主體,然後解析該主體。執行頁面的工具則做更多事:載入圖片和樣式表、執行 JavaScript、觸發事件、跟隨重新導向,甚至可能提交表單或觸發分析事件。對結構化資料稽核而言,這兩種行為都會產生與標記品質無關的問題。
下表摘要說明即時擷取或執行頁面工具,以及結構化資料檢查與擷取工具的純貼上做法之間的實際差異。
| 結構化資料稽核期間的行為 | 即時擷取或執行頁面工具 | 結構化資料檢查與擷取工具 |
|---|---|---|
| 對您的伺服器發出 HTTP 請求 | 是 | 否 |
| 執行文件中的腳本 | 是 | 否 |
| 載入圖片、樣式表及其他資源 | 是 | 否 |
| 可能提交表單或觸發分析信標 | 是 | 否 |
| 稽核到的標記可能與爬蟲可見的 HTML 不同 | 是 | 否,這是設計上的預期 |
| 從文件中解析 JSON-LD 與 Microdata | 是 | 是 |
| 依據已記載的設定檔報告聚焦的缺漏屬性警告 | 有時 | 是 |
即時擷取可能誤導您。一個對匿名請求回傳一份文件、對已登入使用者回傳另一份文件的頁面,會讓檢查器收到伺服器決定送出的那一個版本。爬蟲可見的 HTML、轉譯後的 DOM 與原始回應之間常常會有難以察覺的差異,特別是在仰賴用戶端轉譯的網站上。如果您的稽核跑在錯誤的版本上,您可能會新增實際上從未進入索引的欄位。
會執行您頁面的工具會帶來更廣泛的風險。貼上的 HTML 可能包含追蹤像素、第三方腳本和分析信標。即便是沙箱化的 iframe,也可能從檢查器內部發出網路請求。那些到達內部端點的請求,可能洩漏關於您測試環境、CMS 或訪客識別碼的資訊。純貼上的工具將文件視為惰性文字,因此不會產生任何這類副作用。
分離式瀏覽器範本如何維持本地解析
擷取引擎採用分離式範本模式。當您貼上 HTML 時,解析器會在您的瀏覽器分頁內建立一個隔離的文件片段。該片段並未掛載到即時 DOM,因此貼上文字中的任何 script 標籤會被解析為 script 元素,但永遠不會執行。該片段存在的時間僅夠解析器走訪其節點、收集 JSON-LD 區塊並讀取 Microdata 屬性。
JSON-LD 位於 <script type="application/ld+json"> 元素內部。檢查器會讀取這些元素的文字內容、執行 JSON 解析器,並將結果展開成個別項目。單一物件會變成一個項目;陣列會變成項目清單。@graph 節點則會展開為其所包含的項目,每個項目皆保留其宣告的 @type 與可見屬性。如果某個 script 區塊解析失敗,錯誤會分別回報,因此同一份文件中其他有效的項目不會被抹除。
Microdata 位於使用 itemscope、itemtype 與 itemprop 屬性的普通 HTML 之中。檢查器會走訪解析後的片段,並為每個頂層項目建構一個受限的屬性檢視。透過內容屬性、連結、媒體來源屬性、日期值與文字內容所暴露的值,皆會被讀取。巢狀項目在顯示時會保持巢狀結構,而不是被靜默地攞平為無關的字串,這讓您更容易察覺某個本應輸出具巢狀 NutritionInformation 的 Recipe 範本遺失了內部結構的情況。
輸入大小與項目數量皆受到限制,以避免一次意外的全站傾印讓分頁卡住。分離式片段的存在時間也很短:一旦解析完成,片段就會被捨棄。您貼上的文件中沒有任何內容會觸及網路、父頁面或 Lizely 伺服器。
檢視 JSON-LD 與 Microdata 而不暴露原始碼
- 在瀏覽器中開啟結構化資料檢查與擷取工具。無需帳號、登入或上傳步驟。
- 將已交付的 HTML 原始碼 (也就是您伺服器實際送出的回應主體) 貼到輸入區域中。若您的框架在載入後注入標記,請一併貼上一份可控的轉譯後 DOM 匯出檔與原始回應,以便進行比較。
- 執行擷取。工具會走訪分離式片段,找出每一個 JSON-LD 區塊與 Microdata 項目,並以清單形式呈現,而不是給出一個評分。
- 先讀取解析錯誤區段。格式錯誤的 JSON 區塊會以獨立的一行回報;在信任其餘清單之前,請先修正這些錯誤。
- 逐一檢視擷取出的項目。確認宣告的 @type 與頁面可見的內容相符、必填屬性皆已存在,以及您的範本未輸出重複的項目。
- 閱讀聚焦的缺漏屬性警告。警告代表支援的設定檔在您貼上的標記中找不到某個屬性;這並不證明搜尋引擎會拒絕該頁面。
- 檢查巢狀值。Microdata 的巢狀結構應反映您預期的關係,JSON-LD 的 @graph 節點亦應仍可暴露其內部類型。
如需進一步了解上傳與貼上的差別,請參閱 能在不上傳檔案的情況下使用 JSON-LD 檢查器嗎? — 它從不同角度說明了相同的本地解析界線。
使用官方工具驗證已部署的 URL
本地檢查器僅回報關於您貼上文件的事實。是否符合任何特定搜尋功能的資格,則是另一個問題,只有搜尋引擎本身能回答。在您根據本地清單修正完範本後,請部署變更,並透過對應的官方驗證工具執行公開 URL。
針對鎖定 Google 功能的所有類型,可參考 Google 的 結構化資料介紹,其中列出每項功能所需的格式與屬性。複合式結果測試工具 (Rich Results Test) 會執行已部署的 URL、執行該頁面,並回報是否適用特定的複合式結果功能。Search Console 的強化功能報告則能確認重新抓取是否已納入該變更,以及 Google 是否認為該標記符合資格。
針對 Microdata,WHATWG HTML Microdata 規格定義了 itemscope、itemtype 與 itemprop 彼此的互動方式。當本地檢查器回報 Microdata 的 URL 為空時,原因幾乎都是錯誤的元素上放了錯誤的屬性 — 該規格是確認解析器應當看到什麼內容的最快方式。
請在具有代表性的紀錄上測試實際的範本。單一產品頁可能通過驗證,而同站的類別頁卻輸出重複;食譜範本可能在某道菜上通過,在另一道菜上卻失敗。在您請 Google 重新抓取之前,本地擷取的速度快到足以在各種變體間重複進行。
值得了解的限制與邊界情況
本檢查器僅擷取 JSON-LD 與 Microdata。RDFa 不在目前的產品範圍內,且永遠不會被計為缺失或無效的結構化資料。若您的網站仰賴 RDFa,即使本地結果乾淨,也無法反映您的標記是否正確;您需要使用另一個針對該詞彙的驗證工具。
必填屬性的指引無法取代內容審查。標記應代表使用者實際看得到的內容,且應使用具體且正確的值。為了消音警告而新增欄位,反而可能降低實作品的可信度。少量完整且真實的屬性,通常優於一個塞滿籠統或捏造值的大型物件,因為搜尋產品公布的政策會看穿標記,直接檢視可見的頁面。
分離式範本解析器並不會模擬所有消費者。它會依據已記載的設定檔回報解析錯誤與聚焦的屬性缺口;但它不會像瀏覽器那樣執行頁面,也無法告訴您特定搜尋引擎是否會索引、排名或強化您的結果。請將本地清單視為透明的預檢工具,接著再用您實際目標搜尋功能對應的官方工具驗證已部署的回應。
延伸閱讀:避免使用 JSON-LD 檢查器時犯錯。