活動結構化資料日期不同步:網頁文案與 JSON-LD 比對流程

活動結構化資料日期不同步:網頁文案與 JSON-LD 比對流程

作者:平白設計編輯部|發布與最後查證:2026-09-29|適用:台灣(中華民國)|技術資訊,不保證搜尋排名

九月底至十月初檔期密集,活動頁面常因人工修改文案卻忘記同步更新結構化資料而產生落差。當網頁可見日期與 JSON-LD 裡的 startDate 不一致時,搜尋引擎可能誤判活動時效性。本文整理一套抽樣比對流程,協助技術人員定期檢查 Event 標記與頁面內容是否對應。這屬於基礎技術排查,不保證富摘要顯示或收錄結果。

文章重點

  • 秋季檔期密集,文案與結構化資料容易脫節
  • Event 的 startDate 需與頁面可見文字一致
  • 用 Rich Results Test 逐行比對 JSON-LD 區塊
  • CMS 外掛自動產出標記時須確認欄位映射

秋季檔期為何容易出現日期落差

每年九月底到十月初是活動網站最忙碌的時段。企劃人員為了配合宣傳節奏,經常直接在後台修改活動頁面的可見日期與地點資訊,但負責維護結構化資料的工程師未必能即時收到通知。這種跨部門協作的時間差,正是造成 JSON-LD 與頁面內容不同步的主因。

當搜尋引擎爬取頁面時,會同時讀取可見文字與隱藏的結構化標記。若兩邊給出的 startDate 或 endDate 互相矛盾,系統就無法判斷哪一個才是正確訊號。這類衝突不會直接導致懲罰,但會讓演算法降低對該頁面的信任度,進而影響呈現方式。

要減少這類問題,建議在每次更新活動文案時,把結構化資料的檢查列入標準作業流程。就像我們平時會關注 改版後 favicon 路徑怎麼抽樣 一樣,活動日期的同步也應該成為例行抽檢項目,而非事後補救。

石桌上兩個材質不同的陶瓷杯墊並排
丟進 Rich Results Test 先看 JSON-LD 有沒有報錯

Event 類型必填欄位的對應原則

Schema.org 的 Event 類型有幾個關鍵屬性:startDate、endDate 和 location。這些欄位必須與使用者在頁面上實際看到的資訊完全吻合。舉例來說,如果海報寫著十月五日開跑,JSON-LD 裡的 startDate 就不能還停留在舊版的九月二十日。

location 欄位同樣需要注意。有些活動從實體改為線上,或者更換了場地,文案更新了但標記沒改。搜尋引擎若根據錯誤的地點資訊建立索引,可能會把活動推播給錯誤地區的使用者,造成流量品質下降,也浪費了原本可以精準觸及的機會。

除了日期與地點,活動狀態(eventStatus)也應隨實際情況調整。若活動已取消或延期,記得同步更新 eventStatus 與新的 startDate。保持所有欄位的一致性,才能讓搜尋引擎正確解讀你的意圖,避免系統自行猜測而產生誤判。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "秋季設計工作坊",
  "startDate": "2026-10-05T19:00:00+08:00",
  "endDate": "2026-10-05T21:30:00+08:00",
  "eventStatus": "https://schema.org/EventScheduled"
}
</script>

當搜尋引擎發現頁面可見內容與 JSON-LD 提供的資訊不一致時,通常會優先採用它認為可信度較高的來源。但這套判斷機制並不透明,有時會選錯。因此,主動確保兩邊訊號一致,遠比依賴演算法自行取捨來得穩妥。

另一種常見情況是系統乾脆忽略整段結構化資料。一旦標記被判定為不可靠,該頁面就失去爭取富摘要展示的機會。這不代表排名會直接下跌,但你等於放棄了一個能讓搜尋結果更醒目的管道,在競爭激烈的秋季檔期尤其可惜。

要理解搜尋引擎如何解讀你的頁面,可以參考 改版後 og:locale 怎麼抽樣 的思路:定期驗證各種中繼資料是否與實際內容匹配。結構化資料的衝突排查本質上也是同樣的概念,只是對象換成了 Event 標記。

深色絨布上打開的黃銅懷錶與小沙漏
頁面上寫的日期跟標記裡的 startDate 必須一字不差

使用 Rich Results Test 逐行比對

排查工具首選 Google 的 Rich Results Test。輸入活動網址後,展開測試結果中的 JSON-LD 區塊,你會看到系統解析出的所有屬性值。接著開啟原始網頁,把 startDate、endDate、location 等欄位逐一跟畫面上的文字做交叉比對。

比對時特別留意時區格式。JSON-LD 要求 ISO 8601 格式,例如 2026-09-29T19:00:00+08:00,但頁面上可能只寫「晚上七點」。你需要確認兩者代表的是同一個時間點。若網站服務跨時區使用者,時區偏移量的標示就更不能省略。

如果測試工具回報錯誤或警告,先別急著修改程式碼。回到頁面確認是哪一處文案與標記脫節,有時候問題出在企劃改了日期卻沒通知工程端。釐清源頭後再決定要改文案還是改 JSON-LD,避免來回修改造成更多混亂。

CMS 外掛映射與過期標記清理

許多網站使用 CMS 外掛自動產生結構化資料。這類工具通常會把自訂欄位映射到對應的 Schema 屬性。但若你在後台新增了一個「備用日期」欄位,外掛未必知道該把它對應到 startDate。上線前務必進入原始碼確認映射結果是否正確。

另一個容易被忽略的環節是過期活動的標記清理。活動結束後,若 JSON-LD 仍留在頁面上且未更新 eventStatus,搜尋引擎可能會繼續嘗試索引這段已失效的資訊。建議在活動結束當天或隔日,將狀態改為 EventPostponed 或 EventCancelled。

定期清理也能避免累積過多無效標記拖累網站整體的結構化資料品質分數。你可以搭配 改版後 web manifest 怎麼抽樣 的排程,把 Event 標記的有效性檢查納入每月的技術巡檢清單中,形成固定的維護節奏。

Event 結構化資料常見欄位比對清單
欄位名稱 頁面可見內容範例 JSON-LD 對應值
startDate 2026年10月5日晚上七點 2026-10-05T19:00:00+08:00
endDate 2026年10月5日晚上九點半 2026-10-05T21:30:00+08:00
location 台北華山文創園區 Place 物件含地址字串
eventStatus 活動照常舉行 EventScheduled
name 秋季設計工作坊 秋季設計工作坊

可以先做

  • 每週抽樣三個活動頁比對日期與 JSON-LD 是否一致
  • 在 CMS 後台設定提醒,修改文案時同步檢查標記
  • 活動結束四十八小時內更新 eventStatus 為已結束
  • 用 Rich Results Test 匯出報告留存供團隊複查

不要當成已完成

  • 不要以為加了結構化資料就一定會有富摘要顯示
  • 不要在活動延期後只改文案卻忘記更新 startDate
  • 不要把多個不同活動塞進同一個 Event 標記裡
  • 不要忽略測試工具回報的警告訊息而不處理

常見問題

為什麼我的活動頁面有 JSON-LD 但搜尋結果沒顯示?

結構化資料只是提供訊號,搜尋引擎會根據多項因素決定是否展示富摘要。確保標記無誤且與頁面內容一致是基本前提,但無法保證一定出現。

startDate 可以用純日期不加時間嗎?

技術上可行,但建議加上具體時間與時區。這樣搜尋引擎能更精確判斷活動何時開始,尤其跨時區使用者較多的情況下更為重要。

CMS 外掛產生的標記需要手動檢查嗎?

需要。外掛的欄位映射可能跟不上你自訂的內容結構。每次新增或修改欄位後,都應檢視原始碼確認 JSON-LD 輸出是否符合預期。

過期活動的 JSON-LD 應該直接刪除嗎?

不建議直接刪除。更好的做法是把 eventStatus 更新為 EventEnded 或 EventCancelled,保留歷史紀錄同時告知搜尋引擎活動已結束。

重點摘要

  1. 秋季檔期文案與結構化資料易脫節需定期比對
  2. Event 的日期地點欄位必須與可見內容完全對應
  3. Rich Results Test 可逐行驗證 JSON-LD 正確性
  4. CMS 外掛映射與過期標記清理應納入例行維護

撰文:SEO顧問MARS