結構化資料 (JSON-LD)
依據:Google Search Central 結構化資料文件與 Naver Search Advisor 結構化資料指南(2026-11-04 確認)。若需判斷,請重新參閱原文。
共同原則
- 僅填入與可見本文相符的值。不知道的價格、時間、庫存、評分請留空,不要自行編造(Google AI 功能文件也建議「結構化資料應與可見文字一致」)。
- 即使加入標記,也不保證能顯示為豐富結果或曝光(Google 與 Naver 皆已明確說明)。
- 格式預設使用 JSON-LD(Google 支援,Naver 建議使用 Microdata 或 JSON-LD)。置於
<head>或<body>的<script type="application/ld+json">中。 - 驗證工具:Google 結構化資料測試工具、Schema Markup Validator(Naver 指南建議使用 schema.org 工具)、以及
seo-orchestratorSkill 中的scripts/seo-check.mjs(僅檢查 JSON 解析與必要屬性)。
支援差異 (2026-11-04)
| 類型 | Naver | |
|---|---|---|
| Event | 有事件搜尋環境文件。⚠️ 支援地區列表中無韓國(澳洲、巴西、加拿大、德國、印度、拉丁美洲、西班牙、英國、美國) | 無指南 |
| Organization/Person + sameAs | 組織資訊 | 網站關聯頻道(根頁面,name、url、sameAs 為必填) |
| WebSite | 網站名稱(首頁) | — |
| BreadcrumbList | 支援 | 支援(name 必填,position 選填) |
| ItemList(輪播) | 僅部分類型 | 有輪播(ListItem)指南 |
若為韓國地區的活動網站:Event 標記仍可保留,以確保資料正確整理並因應未來其他地區或擴展需求,但目前不應假設韓國 Google 搜尋會顯示活動豐富結果。成效應依一般搜尋結果(標題、摘要)與 Search Console 判斷。
Event(依 Google 規範)
規則(Google 結構化事件資料):
- 每個事件應在其**專屬 URL(詳細頁面)**上標記,而非事件列表或行程頁面。
- 必填:
name(活動名稱,禁止使用場地名稱、價格或「立即購票」等宣傳用語)、startDate(ISO-8601)、location(Place+name+address)。 - 建議填寫:
endDate、eventStatus、description(活動內容,勿重複日期或場地)、image(建議寬度 1,920px、最小 720px,提供 16:9、4:3、1:1 等多種尺寸)、offers、organizer、performer、previousStartDate。 - 日期:若不知道時間,只填日期(如
"2026-12-04")。請勿填入T00:00:00。若有時間,需包含 UTC 偏移(如2026-12-04T10:00:00+09:00)。 - 若活動持續多天,請同時填寫
startDate與endDate。若每天需獨立售票,則為每天建立一個 Event。 - 若活動同時在多個場地舉行,則為每個場地建立一個 Event。
- 僅在正式確認免費入場時,才將
offers.price設為0。若尚未開始銷售,可省略availability,validFrom則填入開始銷售時間。 - 變更狀態時,僅更新
eventStatus,其他值保持不變:- 取消:
EventCancelled(禁止刪除 startDate 與 location) - 延期、日期未定:
EventPostponed(保留原始 startDate) - 確定新日期:
EventRescheduled+ 新的startDate/endDate+ 選擇性填入previousStartDate
- 取消:
- 請勿將非活動項目(如優惠券、營業時間、折扣販售)標記為 Event。會員或邀請制活動也不屬於事件環境的範疇。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"name": "<官方活動名稱與屆數>",
"startDate": "<YYYY-MM-DD 或 YYYY-MM-DDThh:mm:ss+09:00>",
"endDate": "<YYYY-MM-DD>",
"eventStatus": "https://schema.org/EventScheduled",
"location": {
"@type": "Place",
"name": "<場地名稱>",
"address": {
"@type": "PostalAddress",
"streetAddress": "<道路名地址>",
"addressLocality": "<市/區>",
"addressRegion": "<市/道>",
"postalCode": "<郵遞區號>",
"addressCountry": "KR"
}
},
"image": ["<https://.../16x9.jpg>", "<https://.../4x3.jpg>", "<https://.../1x1.jpg>"],
"description": "<活動內容摘要,請勿重複日期與場地>",
"organizer": { "@type": "Organization", "name": "<主辦單位>", "url": "<主辦單位官方 URL>" }
}
</script>
僅在價格與銷售資訊經官方確認後,才加入 offers。
列表頁面
- 地區或月份列表頁面中,請勿放入多個 Event(Google 僅支援單一活動頁面)。請改用
BreadcrumbList,並在必要時加入包含詳細 URL 的ItemList。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ItemList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "url": "https://example.com/events/<id-1>" },
{ "@type": "ListItem", "position": 2, "url": "https://example.com/events/<id-2>" }
]
}
</script>
WebSite(Google 網站名稱,僅限首頁)
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "<網站名稱>",
"alternateName": ["<縮寫>"],
"url": "https://example.com/"
}
</script>
請使用與 og:site_name 及首頁 <title> 相同的名稱。來源:網站名稱
Organization + sameAs(Naver 網站關聯頻道,根頁面)
Naver 用於分析的關聯頻道網域(2026-11-04):Naver 部落格、SmartStore、知識 iN、Chzzk、Clip、Karrot、Threads、Instagram、YouTube、KakaoStory、KakaoTalk 頻道、Tistory、TikTok、Facebook、X(Twitter)。不保證一定會曝光。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "<網站名稱>",
"url": "https://example.com/",
"sameAs": [
"https://cafe.naver.com/<咖啡廳>",
"https://pf.kakao.com/<頻道>",
"https://x.com/<帳號>"
]
}
</script>
- 僅加入實際營運中的頻道,請勿預先放入尚未開通的頻道 URL。
- Daum 也使用相同格式(Person/Organization + sameAs),但支援的網域不同:YouTube、Facebook、X、Instagram、Google Play、Apple Store、KakaoStory、Daum Cafe、KakaoTV、Tistory、Brunch(
daum-search)。可將兩個搜尋引擎的實際頻道放入同一個區塊。 - Naver Cafe 目前未列在上方關聯頻道清單中(2026-11-04)。仍可加入,但不應假設 Naver 會將其視為關聯頻道。
- 來源:網站關聯頻道
BreadcrumbList(Google 與 Naver 共通)
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "<上層分類名稱>", "item": "https://example.com/<上層>" },
{ "@type": "ListItem", "position": 2, "name": "<下層分類名稱>", "item": "https://example.com/<上層>/<下層>" }
]
}
</script>
- Naver:請勿使用「首頁」、「top」等通用詞,應使用能說明頁面的名稱,依範圍由大至小排序,並避免使用過長文字、僅含數字或特殊字元的名稱。
- 來源:Naver BreadcrumbList、Google 麵包屑導覽