结构化数据 · 类型图鉴 第 9 篇

活动 Event:时间、地点、线上线下与活动卡片

约 13 分钟阅读 更新于 2026-06-24 MagicSEO 编辑部 · 人工审核 类型图鉴

活动结构化数据让演唱会、展会、讲座、赛事等以「活动卡片」出现在 Google 搜索和活动体验里,展示时间、地点、票务入口。它的难点不在字段多,而在准确表达三件事:什么时候、在哪里(线下还是线上)、现在是什么状态(正常、取消还是改期)。

Event 是什么#

Event 描述一个有明确发生时间的具体活动。Google 用它在搜索结果中生成活动富媒体卡片,并可能汇入活动相关的搜索体验,展示日期、地点、票务链接等。

官方文档入口:Google Search Central:Event structured data

Event 不是营业时间只给真正的、有起止时间的活动标 Event。不要把门店营业时间、长期开放设施、促销时段伪装成 Event。

必填与推荐字段#

字段必填说明
name必填活动名称
startDate必填带时区的 ISO 8601 日期时间
location必填线下用 Place,线上用 VirtualLocation
endDate推荐结束时间,带时区
eventAttendanceMode推荐线下/线上/混合
eventStatus推荐正常/取消/改期/转线上
image推荐活动海报或图片
offers推荐票务 Offer,含价格与购票链接
performer / organizer推荐表演者与主办方

线下活动示例#

event.json
{
  "@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"
  }
}

线上与混合活动#

形式eventAttendanceModelocation
纯线下OfflineEventAttendanceModePlace + 地址
纯线上OnlineEventAttendanceModeVirtualLocation + url
线上线下混合MixedEventAttendanceMode同时给 Place 和 VirtualLocation
online-event-location.json
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"location": {
  "@type": "VirtualLocation",
  "url": "https://example.com/live/seo-summit"
}

状态:取消与改期#

eventStatus含义配套动作
EventScheduled正常举办默认状态
EventCancelled取消及时更新,保留页面说明
EventRescheduled改期更新 startDate,可留 previousStartDate
EventMovedOnline改为线上改 attendanceMode + VirtualLocation

状态一旦变化要尽快同步到结构化数据和页面,避免给用户错误的时间地点信息。

日期格式#

  • startDateendDate 用带时区的 ISO 8601 日期时间,如 2026-09-12T09:30:00+08:00
  • 带时区能避免不同地区用户看到错误时间;
  • 多日活动用 startDate/endDate 表达跨度,不要拆成假活动。

本站为什么暂不实装 Event#

这篇文章没有举办任何真实活动。给一篇没有活动的页面标 Event,等于标记了不存在的内容。

本站示范等本站真正举办线上或线下活动,并有独立活动页时,再为那个页面添加 Event。本页保持 Article、BreadcrumbList、FAQPage。

验证和监控#

  1. Rich Results Test 检查 name、startDate、location 等必填字段。
  2. 确认 attendanceMode 与 location 类型匹配(线上用 VirtualLocation)。
  3. 核对日期、地点、票价与页面可见内容一致。
  4. 活动取消/改期后立即更新 eventStatus 与日期。
  5. 上线后在 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,也不要给一个页面上其实不存在的活动凭空标记。日期、地点必须与页面可见信息一致。