活动 Event:时间、地点、线上线下与活动卡片
活动结构化数据让演唱会、展会、讲座、赛事等以「活动卡片」出现在 Google 搜索和活动体验里,展示时间、地点、票务入口。它的难点不在字段多,而在准确表达三件事:什么时候、在哪里(线下还是线上)、现在是什么状态(正常、取消还是改期)。
Event 是什么#
Event 描述一个有明确发生时间的具体活动。Google 用它在搜索结果中生成活动富媒体卡片,并可能汇入活动相关的搜索体验,展示日期、地点、票务链接等。
官方文档入口:Google Search Central:Event structured data。
必填与推荐字段#
| 字段 | 必填 | 说明 |
|---|---|---|
name | 必填 | 活动名称 |
startDate | 必填 | 带时区的 ISO 8601 日期时间 |
location | 必填 | 线下用 Place,线上用 VirtualLocation |
endDate | 推荐 | 结束时间,带时区 |
eventAttendanceMode | 推荐 | 线下/线上/混合 |
eventStatus | 推荐 | 正常/取消/改期/转线上 |
image | 推荐 | 活动海报或图片 |
offers | 推荐 | 票务 Offer,含价格与购票链接 |
performer / organizer | 推荐 | 表演者与主办方 |
线下活动示例#
{
"@context": "https://schema.org",
"@type": "Event",
"name": "2026 中文 SEO 大会",
"startDate": "2026-09-12T09:30:00+08:00",
"endDate": "2026-09-12T18:00:00+08:00",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled",
"image": "https://example.com/events/seo-summit.webp",
"location": {
"@type": "Place",
"name": "国家会议中心",
"address": {
"@type": "PostalAddress",
"streetAddress": "天辰东路 7 号",
"addressLocality": "北京市",
"addressCountry": "CN"
}
},
"organizer": {
"@type": "Organization",
"name": "MagicSEO",
"url": "https://magic-seo.com/"
},
"offers": {
"@type": "Offer",
"price": 399,
"priceCurrency": "CNY",
"availability": "https://schema.org/InStock",
"url": "https://example.com/events/seo-summit/tickets",
"validFrom": "2026-07-01T10:00:00+08:00"
}
}
线上与混合活动#
| 形式 | eventAttendanceMode | location |
|---|---|---|
| 纯线下 | OfflineEventAttendanceMode | Place + 地址 |
| 纯线上 | OnlineEventAttendanceMode | VirtualLocation + url |
| 线上线下混合 | MixedEventAttendanceMode | 同时给 Place 和 VirtualLocation |
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"location": {
"@type": "VirtualLocation",
"url": "https://example.com/live/seo-summit"
}
状态:取消与改期#
| eventStatus | 含义 | 配套动作 |
|---|---|---|
EventScheduled | 正常举办 | 默认状态 |
EventCancelled | 取消 | 及时更新,保留页面说明 |
EventRescheduled | 改期 | 更新 startDate,可留 previousStartDate |
EventMovedOnline | 改为线上 | 改 attendanceMode + VirtualLocation |
状态一旦变化要尽快同步到结构化数据和页面,避免给用户错误的时间地点信息。
日期格式#
startDate、endDate用带时区的 ISO 8601 日期时间,如2026-09-12T09:30:00+08:00;- 带时区能避免不同地区用户看到错误时间;
- 多日活动用 startDate/endDate 表达跨度,不要拆成假活动。
本站为什么暂不实装 Event#
这篇文章没有举办任何真实活动。给一篇没有活动的页面标 Event,等于标记了不存在的内容。
验证和监控#
- 用 Rich Results Test 检查 name、startDate、location 等必填字段。
- 确认 attendanceMode 与 location 类型匹配(线上用 VirtualLocation)。
- 核对日期、地点、票价与页面可见内容一致。
- 活动取消/改期后立即更新 eventStatus 与日期。
- 上线后在 Search Console 的活动增强报告里监控无效项。
常见错误#
| 错误 | 为什么危险 | 修正 |
|---|---|---|
| 日期不带时区 | 跨区时间错乱 | 用带时区的 ISO 8601 |
| 线上活动用 Place | 地点类型不符 | 线上用 VirtualLocation |
| 把营业时间当 Event | 非具体活动 | 仅标真实有时间的活动 |
| 取消/改期不更新 | 误导用户 | 及时更新 eventStatus 与日期 |
| 一个活动拆成多条假活动 | 夸大数量 | 多日活动用 start/endDate |
Event 上线清单#
- name、startDate、location 三项齐全
- startDate/endDate 带时区
- eventAttendanceMode 与 location 类型匹配
- 线上用 VirtualLocation,混合给两个 location
- eventStatus 反映真实状态
- offers 提供价格、币种、购票链接
- performer/organizer 视情况补充
- 取消改期后及时更新
- 页面可见内容与 JSON-LD 一致
- Rich Results Test 无关键错误
常见问题#
Event 结构化数据必填哪些字段?
Google 对 Event 的必填字段是 name、startDate 和 location。线下活动的 location 用 Place 加 PostalAddress;线上活动用 VirtualLocation 加 url。强烈建议补充 endDate、eventAttendanceMode、eventStatus、image、description、offers、performer、organizer 等推荐字段。
线上活动的 location 怎么写?
线上活动把 eventAttendanceMode 设为 OnlineEventAttendanceMode,并用 VirtualLocation 作为 location,其 url 指向观看或参与的地址。线上线下混合的活动 eventAttendanceMode 设为 MixedEventAttendanceMode,并同时提供实体 Place 和 VirtualLocation 两个 location。
活动取消或改期怎么标记?
用 eventStatus 表达状态:取消为 EventCancelled、改期为 EventRescheduled、改为线上为 EventMovedOnline。改期时应更新 startDate 为新日期,并视情况保留 previousStartDate。状态变化要及时同步,避免给用户错误的时间地点。
什么样的页面适合标 Event?
标记的应是有明确发生时间的具体活动,如演唱会、展会、讲座、赛事。不要把营业时间、长期开放的设施、优惠促销时段当成 Event,也不要给一个页面上其实不存在的活动凭空标记。日期、地点必须与页面可见信息一致。