OGP 与 Meta 标签验证器
粘贴 HTML 源代码,即可一次性验证 Open Graph Protocol(OGP)和 Twitter Card 的 meta 标签。检测缺失的标签以及不是绝对路径的 og:image,并以卡片形式预览在社交媒体上分享时的效果。
检视决定分享外观的元标签
把链接贴到社交网络时所显示的标题、说明与图片,是由页面 `
` 里的 Open Graph 与 Twitter Card 元标签所决定的。本工具会从您贴入的 HTML 中把它们抽出来,指出缺失的标签与有误的取值,并以接近实际卡片的样子预览出来。**最常见的毛病,莫过于把 `og:image` 写成相对路径。** 各家的爬虫是从自己的服务器去取图的,像 `/img/ogp.png` 这样的路径解析不了,**卡片送到时图片便缺了一块。** 请务必写成以 `https://` 开头的绝对网址。**另一件值得知道的事是:这些服务会把爬取的结果缓存起来。** 改了标签,显示的仍可能是旧的内容,这时便须借各家的调试工具促其重新抓取。另外,Twitter Card 在没有 `twitter:` 标签时会回落到 `og:`,故不必两套都写。
使用方法
- 贴入 HTML 源码 只放 `` 的内容即可,整页贴进来也无妨。
- 先试一试样例 好例与坏例都已备好,动手之前便可看出判定的分别。
- 阅读所提出的各点 **缺失的标签,以及并非绝对网址的 `og:image`,都会被点名。**
- 在预览里确认外观 贴出去之前,便可看出标题如何折行、说明在何处被截断。
用好本工具的小技巧
- og:image 推荐尺寸为 1200×630px(宽高比 1.91:1)。尺寸过小或比例不对的图片,在社交平台上可能会被意外裁剪。
- Facebook、LINE、Slack 等平台的爬虫读取的是 og:title/og:description,而 X(Twitter)使用的是独立的 twitter:title/twitter:description。两者都设置好,才能在各平台上都正确显示。
- 如果没有设置 twitter:card,X 会尝试回退到 og:title/og:description,但图片可能无法正确显示,因此建议明确设置该标签。
- og:url 应填写页面的规范化绝对路径(https:// 开头)。这也有助于避免带参数的 URL 被误判为重复内容。
- 刚修改完 meta 标签后立即分享,社交平台可能仍显示旧的缓存预览。可以使用各平台提供的重新抓取工具(例如 Facebook 的分享调试器)来刷新缓存。
这些场景会用到
文章发布前先行确认
**一旦发出去才发现链接显示错乱,因有缓存在,改了也未必挽得回。** 先看一眼才稳妥。
检验模板的产出
把 CMS 或框架所输出的 `
` 贴上,便可确认所期望的标签是否都在。检视图片的更换
**新的 `og:image` 是否为绝对网址,正是最容易被漏看的地方。**
借鉴他人站点的写法
把显示良好的页面源码贴上,看看它把哪些标签备齐了。
Open Graph 的术语
- og:title
- 卡片上所显示的标题。**它可与 `
` 不同,从而为社交媒体改写得更简短。** - og:description
- 卡片上的说明文字。过长会被截断,故应把要紧的放在前头。
- og:image
- 卡片上的图片。**务必以绝对网址给出。** 约 1200×630 像素是便于处理的尺寸。
- og:type
- 页面的种类。文章通常用 `article`,其余则用 `website`。
- twitter:card
- 卡片的形态。设为 `summary_large_image`,图片便以大图显示。
- og:url
- 该页面的规范网址。**分享的权重会归拢到此处,故切莫写上带查询参数的网址。**
常见问题
/img/a.png)。大多数爬虫无法解析相对路径,请务必使用以 https:// 开头的绝对路径。此外,服务器屏蔽了爬虫的 User-Agent,或图片尺寸过小,也可能导致无法显示。<title> 用于搜索结果标题和浏览器标签页,og:title 用于社交媒体分享时的卡片标题。若缺少 og:title,多数爬虫会回退使用 <title>,但结果未必符合预期。summary_large_image。如果只需要小图缩略图,可使用 summary。app 和 player 分别用于引导下载应用和嵌入视频/音频,通常不适用于普通网页。<title> 和 meta description 生成预览,但不会显示图片,呈现出朴素的链接加文字效果。由于这会影响点击率,建议至少设置 og:title、og:description、og:image 这三项。
闲话 ― OGP 诞生的原因 ― Facebook 为了让「赞」按钮发挥作用而创造的机制
Open Graph Protocol(OGP)是 Facebook 于 2010 年为推广自家「赞」按钮而制定的规范。当时的网页在 Facebook 上被分享后,往往只显示一个简单的链接和标题,点击率难以提升。Facebook 的思路是:如果页面本身能够声明在社交媒体上应呈现的内容,就能打造更具吸引力的分享体验。于是他们设计了 <meta property="og:xxx"> 这一独立命名空间,追加到普通 HTML 之上。
有趣的是,OGP 实际上建立在 RDFa(一种用于在 HTML 中嵌入结构化数据的 W3C 规范)之上。通过沿用已有标准,Facebook 无需浏览器厂商或其他公司的配合,只需在现有 HTML 中追加几个 meta 标签即可实现新功能。这种「不破坏向后兼容性的扩展」思路取得了成功,OGP 逐渐成为事实标准,被 Slack、LINE、Discord 等 Facebook 以外的平台广泛采用。
X(Twitter)最初并未直接采用 OGP,而是设立了独立的命名空间 Twitter Cards(twitter:xxx)。据说这与其说是技术上的必然,不如说也带有「不想直接采用竞争对手 Facebook 制定的规范」的考量。结果是,如今大多数网站仍需要同时重复书写 og: 系和 twitter: 系标签,这也是本类验证工具至今仍然有用的原因之一。