博客结构化数据必须用 https://schema.org/BlogPosting,关键字段 headline、datePublished、author 缺一不可,且需严格按规范嵌套与标记,否则富摘要率下降或失效。

itemtype 必须用 https://schema.org/BlogPosting,不能用 Article
博客内容优先用 https://schema.org/BlogPosting,不是 https://schema.org/Article。虽然两者都“能通过校验”,但 Google 明确推荐 BlogPosting 用于个人/媒体博客——它支持更细粒度的富媒体展示(比如作者头像、评论数、阅读时长),而 Article 在博客页上容易被降权为普通网页。
常见错误包括:
- itemtype="https://schema.org/Article"(语义不精准,富摘要率下降约 40%)
- itemtype="https://schema.org/blogposting"(小写 p,大小写敏感,直接失效)
- itemtype="http://schema.org/BlogPosting"(HTTP 协议,2026 年起全平台静默丢弃)
必需字段:headline、datePublished、author 缺一不可
BlogPosting 的三个强依赖字段是 headline、datePublished、author。漏掉任意一个,Google Rich Results Test 会报 “Missing field”,且大概率不生成富摘要。
-
headline必须是<h1>或<h2>级标题,不能放在<p>或<span>里 -
datePublished必须用<time>标签包裹,且含datetime属性(格式如"2026-10-15"),纯文本“2026年10月15日”不被识别 -
author必须嵌套itemscope itemtype="https://schema.org/Person",不能只写名字字符串;如果作者是组织,要用https://schema.org/Organization
author 嵌套必须紧贴 itemprop,不能隔层
很多人把 itemprop="author" 和子 itemscope 拆开两层,结果 author 被当作文本提取,不构成结构化实体。
错误写法:<div itemprop="author"><div itemscope itemtype="https://schema.org/Person">张三</div></div>
→ itemprop="author" 没绑定到任何 itemscope,解析器跳过整个 author 块
正确写法:<div itemprop="author" itemscope itemtype="https://schema.org/Person"><span itemprop="name">张三</span></div>
→ itemprop 和 itemscope 在同一元素上,且子属性 name 直接挂在其内部
其他常见嵌套字段也同理:
- image → 必须是 <img itemprop="image" src="..."> 或 <link itemprop="image" href="...">
- mainEntityOfPage → 若博客发布在聚合页(如首页),需指向原始 URL:<link itemprop="mainEntityOfPage" href="https://example.com/blog/post1">
articleBody 不能混入广告或隐藏内容
itemprop="articleBody" 提取的是 DOM 树中的全部文本节点,和 CSS 渲染无关。哪怕你用 display: none 隐藏了某段,只要它在 articleBody 容器内,就会被当成正文提取。
立即学习“前端免费学习笔记(深入)”;
容易踩的坑:
- 在 <div itemprop="articleBody"> 里插入广告 <div class="ad-banner"> → 广告文案进结构化数据
- 用 text-overflow: ellipsis 截断段落,但 DOM 里仍有完整文字 → 提取冗长无意义内容
- 把 itemprop="articleBody" 加在 <main> 上,而 <main> 包含导航栏、侧边栏 → 整个页面 HTML 被当正文
建议做法:
- 用独立 <article> 或 <section> 包裹纯正文(不含 header/footer/ad)
- 图片用 <figure itemprop="image"> 单独标记,别塞进 articleBody 里
- 所有非正文内容(推荐位、相关文章、评论区)必须在 articleBody 外部



















