Open Graph 数据的最大消费者。使用 og:title、og:description 和 og:image。推荐图像为 1200×630 像素,宽高比 1.91:1,以便在动态消息中无裁剪显示。缓存非常积极——更改后使用分享调试器(Sharing Debugger)刷新。
使用 Open Graph 标签优化您的网站
什么是 Open Graph (OG)?
最佳 Open Graph 图像尺寸
轻松集成 Open Graph 标签
Open Graph在SEO中的重要性
<head> 内的 HTML <meta> 元素,用于描述当其 URL 在其他地方分享时(如 Facebook 信息流、X 帖子、LinkedIn 动态、WhatsApp 聊天、Discord 服务器、iMessage 会话或 Slack 频道)页面应如何显示。Open Graph 协议最初由 Facebook 在 2010 年推出,此后已成为几乎所有主要平台链接预览的事实标准。完整的 Open Graph 元标签集让您完全掌控丰富预览卡片中显示的标题、描述、图像、类型和规范 URL,将普通超链接变成引人注目的片段,其点击率始终优于纯链接。<meta property="og:title" content="Your Page Title" />
<meta property="og:description" content="A short, compelling summary of the page." />
<meta property="og:image" content="https://example.com/preview.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:url" content="https://example.com/article" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Example" />
<meta property="og:locale" content="en_US" />几乎所有主要社交网络和即时通讯工具都会读取 Open Graph 元数据,但每个平台都有自己的关于图像大小、缓存和回退的规则。满足最严格的要求,同一组图像就能在所有平台上正常显示。
Open Graph 数据的最大消费者。使用 og:title、og:description 和 og:image。推荐图像为 1200×630 像素,宽高比 1.91:1,以便在动态消息中无裁剪显示。缓存非常积极——更改后使用分享调试器(Sharing Debugger)刷新。
当 Twitter Card 元标签缺失时会回退到 Open Graph 标签,但要获得大型预览卡片,您还应声明 twitter:card 为 summary_large_image 和 twitter:image。图像必须小于 5 MB,至少 300×157 像素;1200×630 是安全的默认值。
读取 og:title、og:description、og:image 和 og:type。图像必须小于 5 MB,至少 1200×627 像素(比例 1.91:1)。LinkedIn 会将首次抓取缓存大约七天——发布更改后使用 Post Inspector 强制重新抓取。
两款即时通讯工具均通过 HTTPS 获取 Open Graph 标签,并对图像大小有严格限制。WhatsApp 会截断超过约 300 KB 的内容,因此请优化图像并声明 og:image:width 和 og:image:height 以加快渲染。iMessage 在可用时更倾向于 1:1 的方形图像,可以考虑通过多个 og:image 标签同时提供两种比例。
三者都从标准的 og:title、og:description 和 og:image 三件套渲染预览。Discord 还会识别 theme-color 用于侧边栏强调色。Telegram 会剥离 iframe 和 JS——请确保您的标签存在于初始服务器渲染的 HTML 中,而不是在运行时注入。
Pinterest 通过 article:author 和 Rich Pin 类型扩展了 Open Graph。Reddit 在提交链接时会获取 og:title 和 og:image,并将该图像用作帖子缩略图。两者都更青睐竖向或方形图像(2:3 到 1:1),而非宽幅的 1.91:1 横幅。
将这些代码片段放入您的项目,即可在最常见的技术栈中接入 Open Graph 标签。每个示例都在服务器端渲染相同的最小可用集合,以便爬虫在首次渲染时即可看到。
// app/page.tsx
export const metadata = {
title: 'Your Page Title',
description: 'A short, compelling summary of the page.',
openGraph: {
title: 'Your Page Title',
description: 'A short, compelling summary of the page.',
url: 'https://example.com/article',
siteName: 'Example',
images: [{ url: 'https://example.com/preview.png', width: 1200, height: 630 }],
locale: 'en_US',
type: 'website'
}
}<script setup lang="ts">
useSeoMeta({
title: 'Your Page Title',
description: 'A short, compelling summary of the page.',
ogTitle: 'Your Page Title',
ogDescription: 'A short, compelling summary of the page.',
ogImage: 'https://example.com/preview.png',
ogUrl: 'https://example.com/article',
ogType: 'website',
ogLocale: 'en_US'
})
</script>---
const { title, description, image, url } = Astro.props
---
<head>
<title>{title}</title>
<meta name="description" content={description} />
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<meta property="og:image" content={image} />
<meta property="og:url" content={url} />
<meta property="og:type" content="website" />
</head>// functions.php — works without an SEO plugin
add_action('wp_head', function () {
if (!is_singular()) return;
global $post;
$img = get_the_post_thumbnail_url($post->ID, 'full') ?: '';
printf('<meta property="og:title" content="%s" />', esc_attr(get_the_title($post)));
printf('<meta property="og:description" content="%s" />', esc_attr(wp_trim_words($post->post_excerpt ?: $post->post_content, 30)));
printf('<meta property="og:image" content="%s" />', esc_url($img));
printf('<meta property="og:url" content="%s" />', esc_url(get_permalink($post)));
echo '<meta property="og:type" content="article" />';
});对开发者和内容团队在实施 Open Graph 元标签时最常问到的问题的快速回答。
twitter:* 命名空间。当 Twitter 专属标签缺失时,X 会回退到 Open Graph,因此对大多数网站来说,只需发布 Open Graph 加上一条 twitter:card 声明,即可启用大图预览。og:image 上添加一个绕过缓存的查询字符串。<title>、meta description 以及在文档中找到的第一张较大图像。结果不可预测——通常是错误的图像、被截断的标题或根本没有预览。即便只添加三个标签(og:title、og:description、og:image)也能消除这种猜测。og:title,而不是 OG:Title。大多数爬虫会默默忽略大小写混用的属性名,这也是重构后预览突然失效最常见的原因之一。