open graph 实测:26 个首页里 19 个把四项必填写齐了

open graph 几乎人人都写,但很少写全。2026-08-20 抓的 26 个首页里 19 个四项必填齐全,25 个写了协议标为可选的 og:description,被漏得最多的是 og:url。

排名与引用5 分钟读完1208 次阅读
open graph 实测:26 个首页里 19 个把四项必填写齐了

实测 · 2026-08-20 · 30 个网站 · 单次抓取

样本与口径:自 2026-08-15 起一直在用的那 30 个站,与 robots.txt、sitemap、首页结构三轮普查同一个面板。每个首页发一次请求,浏览器 UA,跟随重定向,不执行 JavaScript,只解析返回体里的 <meta>,出口在日本。本批另外两篇实测共用这一次抓取。

open graph 在这批站上几乎人人都写,但很少有人写全。26 个交付了真实首页的站里,19 个把协议规定的四项必填写齐了;而协议标为「可选」的 og:description,25 个都写了。被漏掉最多的那一项是 og:url,5 个站没有。

怎么测的

规则在跑数之前写死,跑完一个字没改。

  1. https://<域名>/ 发一次请求,跟随重定向,保留返回体。
  2. 把返回体里所有 <meta>propertyname 分成三桶:og:*twitter:*、以及裸的 description
  3. 只有返回体确实是一张首页才计入样本,挑战页不算。

第三条踢掉了两个「返回 200 但没有内容」的站:www.canva.com 给了 3,038 字节、标题写着 Client Challenge 的挑战页,www.reddit.com 给了 8,393 字节的空壳,两个的 meta 一条都没有。另外 stackoverflow.commedium.com 直接返回 403。30 个站请求,28 个 200,可用 26。

open graph 的四项必填,各有多少人写

协议只规定了四项必填。26 个首页里四项同时齐全的有 19 个,而单看任何一项,覆盖率都在 21 以上。

字段必填站数
og:title25 / 26
og:description25 / 26
og:image24 / 26
og:type23 / 26
og:url21 / 26
og:site_name14 / 26
og:image:alt3 / 26

协议原文在 ogp.me,2026-08-20 抓下来逐字核过:「The four required properties for every page are: og:title … og:type … og:image … og:url」。og:description 排在更靠后的 Optional Metadata 那一段,开头写的是「The following properties are optional for any object and are generally recommended」。

写得最齐的那一项,恰好是规范里没要求的那一项。

谁缺了什么

没写齐的有 7 个站,其中 6 个只缺一到两项。

站点缺什么
news.ycombinator.com四项全无,一条 og: 都没有
linear.appog:typeog:url
developer.mozilla.orgog:type
www.bbc.comog:image
discord.comog:url
webflow.comog:url
www.netlify.comog:url

Hacker News 是面板里唯一一个彻底不参与的:没有 open graph、没有 twitter 标签,34,324 字节的页面配一个写着「Hacker News」的 <title>。机器能从这一页拿到的东西,全在正文里。

还有一处是写错而不是没写,出海站最容易踩:slack.comog:image 填的是 /dev-cdn/v/marketing/img/homepage/… —— 一个路径,不是地址。协议对这一项的定义原文是 An image URL。面板里其他写了这一项的站,填的全是绝对地址。自建站把图换到独立 CDN 之后,这一行最容易留成相对路径。

og:description 就是 meta description,一字不差

25 个两项都写了的站,两个字符串逐字相同。不是相近,是同一串文字在同一个文档里出现两遍。

这条能替你省掉半天。别再单独写一份「社交版描述」——这批站里没有一个这么做,包括那几家靠发内容吃饭的媒体。既然两处注定一样,真正该琢磨的就回到描述本身,那部分的长度分布在meta description 该写多长里量过。

og:title 和 title 不一样时,短的那个是 og:title

25 个写了 og:title 的站,21 个与 <title> 完全相同。剩下 4 个的差别是同一句话砍掉品牌后缀。

站点og:titletitle
arstechnica.comArs TechnicaArs Technica - Serving the Technologist since 1998…
www.wikipedia.orgWikipedia, the free encyclopediaWikipedia
github.com…GitHub keeps you ahead.…GitHub keeps you ahead. · GitHub
www.wired.comWIRED - The Latest in Technology…WIRED - The Latest in Technology… | WIRED

维基百科反着来:它的 og:title<title> 更长。三个砍品牌、一个加品牌 —— 这不是什么行业惯例,是四个各自拍的脑袋。这些标题串各有多长,量在网页标题该写多长那一篇。

twitter 标签还在,但基本只说一件事

26 个里 22 个写了 twitter:card,其中 20 个填 summary_large_image、2 个填 summary。往下依次是 twitter:description 20 个、twitter:title 20 个、twitter:image 19 个、twitter:site 15 个。

形态很一致:一整套 open graph,加一小撮 twitter 标签用来指定卡片形状,文案照抄。没有一个站为第二套单独写文案。

og:site_name 是那条实体信号,一半的站没写

26 个里 14 个声明了 og:site_name。它是 open graph 里唯一一个说「这个站是谁」而不是「这一页是什么」的字段 —— 想让答案引擎把页面挂到正确的机构名下,该在意的就是这一类字段。更硬的那份声明在结构化数据里,写法见品牌词:让答案引擎说对你是谁

这次抓取回答不了什么

我们没有测过任何 AI 引擎读不读 open graph。它本来是社交预览协议,把它当成「模型怎么描述你这一页」的替代指标是一个假设,这次测量既不支持也不否定它。

另一处局限是单次快照。canva 在前两批里一天给 3 KB 空壳、隔天给 436 KB 首页,同一个地址、同一套口径差了 143 倍。head 的快照,和它所在那一页一样脆。

自己的首页该查哪四件事

按这个顺序查最快出问题。

  • 确认 og:url 存在且是绝对地址。这是面板里被漏掉最多的必填项。
  • 确认 og:image 是完整的 https:// 地址。slack 那条相对路径就是反面样本。
  • 别在没确认有谁会单独渲染它之前,去写一份独立的社交描述。25 个站里 25 个是照抄。
  • 别因为返回了 200 就认为这一页机器读得到。这批里有两个站返回 200,head 一条能用的都没有。

把整站每一页都过一遍、而不是只看首页,是 QueryWin 正在做的事。

常见问题

你们是怎么测的?

每个首页一次 HTTPS 请求,浏览器 UA,跟随重定向,2026-08-20,出口在日本的单一节点。meta 从原始 HTML 里解析,不执行 JavaScript —— 客户端注入的标签一律算作不存在。

open graph 到底哪几项是必填?

四项:og:titleog:typeog:imageog:url。出处是 ogp.me 的协议文档,2026-08-20 访问,这份名单很多年没变过。

Google 会拿 open graph 当排名依据吗?

Google 从没把 open graph 写进任何排名文档,这次抓取也没有测任何与排名有关的东西。能说的只有更窄的一句:这批 25 个站把同一串描述文字放在了两个地方,所以它们在实践中并不是两条独立信号。

标为可选的 og:description,还值得写吗?

就这批数据而言,它的覆盖率高过四项必填里的三项,这说明发内容的人相信它有用。这个信念对不对是另一场测量,我们没有跑过。

open graph 实测:26 个首页里 19 个把四项必填写齐了