先查 schema.org 类型是否被支持,google 仅对 article、recipe、product、faqpage、howto 等特定类型提供富媒体展示,且必须通过 rich results test 验证,确保必填字段(如 datepublished 为 iso 8601 格式)、数据类型、内容可见性全部合规。

Google 搜索结果里不显示富媒体卡片?先查 schema.org 类型是否被支持
不是所有 schema.org 标记都会触发搜索结果增强。Google 只对特定类型(如 Article、Recipe、Product、FAQPage、HowTo)提供富媒体展示,且要求严格满足结构化数据测试工具的通过标准。
常见错误现象:Structured Data Testing Tool 或 Rich Results Test 报 Missing field(比如 datePublished 缺失导致 Article 不被识别),或报 Invalid value type(例如把字符串当日期传给 datePublished)。
-
datePublished必须是 ISO 8601 格式(如"2024-03-15T09:30:00+08:00"),不能是"2024年3月15日" -
image字段必须指向可公开访问、尺寸合规(推荐 ≥ 696×464 px)、返回200状态码的 URL,不能是相对路径或本地file:// -
Recipe类型中recipeIngredient必须是字符串数组,不能嵌套对象;recipeInstructions推荐用ItemList结构而非纯文本
JSON-LD 写在 还是 ?优先放 且确保无 JS 动态注入
Google 明确建议将 JSON-LD 放在 中,并在 HTML 初始加载时就存在——它不会执行 JS,也不会等待 DOMContentLoaded 后解析动态插入的标记。
使用场景:服务端渲染(SSR)或静态生成(如 Hugo/Jekyll)天然友好;但 React/Vue 项目若靠 useEffect 或 mounted 注入 JSON-LD,大概率失效。
- Next.js 用户应使用
next/head或next/script的strategy="beforeInteractive" - Vue 3 + SSR(如 Nuxt)需在
serverPrefetch或setup()中拼接字符串注入到head,避免依赖响应式数据异步获取后再写入 - 验证方式:禁用 JS 后查看网页源代码(Ctrl+U),确认 JSON-LD 已存在于原始 HTML 中
Article 和 BlogPosting 该选哪个?按内容实质选,别迷信名称
BlogPosting 是 Article 的子类型,但 Google 的富媒体文档中明确将两者归为同一展示逻辑(都可能触发“标题+摘要+发布时间+图片”卡片)。关键不在类型名,而在字段完备性。
性能 / 兼容性影响:用错类型不会报错,但字段缺失会直接降级为普通链接。例如新闻稿用 BlogPosting 却没填 articleSection,而用 NewsArticle 就能触发“Top Stories”轮播(需符合 Google News 发布商资格)。
- 普通博客文章 →
BlogPosting或Article均可,但必须含headline、datePublished、author(Person对象,含name)、description - 产品评测页 → 优先用
Review+itemReviewed指向Product,否则仅标Product无法体现评分信息 - 企业介绍页 →
Organization需包含sameAs(指向官方社交媒体)、logo(PNG/SVG,宽高比 1:1,尺寸 ≥ 112×112 px)才可能在知识图谱中展示
本地部署验证失败?绕过缓存和 CDN 直接测源站 HTML
即使 Rich Results Test 显示“Valid”,真实收录仍可能失败——原因常出在缓存层:CDN 返回旧 HTML、反向代理过滤了 <script type="application/ld+json"></script>、或 WAF 误判 JSON-LD 为攻击载荷而删掉整块 <script></script>。
容易踩的坑:开发环境测通了,上线后因 Nginx 配置了 sub_filter 替换 HTML 内容,意外删掉了 JSON-LD 脚本;或 Cloudflare 开启了“Minify HTML”选项,把换行压缩后导致 JSON 解析失败(虽然 JSON 允许压缩,但某些旧爬虫解析器敏感)。
- 用
curl -v https://yoursite.com/page直接抓取响应体,搜索application/ld+json确认内容完整存在 - 检查响应头是否有
X-Cache: HIT或类似字段,如有,临时关闭 CDN 或加 Cache-Control: no-cache 测试 - 若用 WordPress,禁用所有缓存插件再测;部分 SEO 插件(如 Rank Math)会自动重写 JSON-LD,需在插件设置中关闭“自动结构化数据”以保留自定义标记
robots.txt 或 noindex 阻止。最易被忽略的是:Google 不会为低质量或重复内容启用富媒体展示,哪怕标记 100% 正确。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











