og标签必须服务端直出在html head中,禁用js注入、相对路径、本地地址和漏写og:url;og:image需绝对url、200响应、正确content-type;og:url须规范去参;微信微博仅认部分字段,需额外meta适配;修改后需调试工具抓取并加版本参数破缓存。

OG标签不是“加了就能用”,而是“放对位置+配对参数+服务端直出”才生效。前端JS注入、相对路径、本地地址、漏写og:url——这四类错误占社交分享失效的87%。
OG标签必须硬编码在服务端HTML的里
Facebook、LinkedIn、Discord 等平台的爬虫(如 facebookexternalhit/1.1)只解析原始 HTML 的 ,且不执行 JavaScript。你在 React/Vue 里用 useEffect 或 mounted 动态插入 <meta property="og:title">,它们根本看不到。
- Next.js:必须用
generateMetadata函数返回对象,不能靠客户端document.head.appendChild - Nuxt 3:需确保
useSeoMeta在ssr: true上下文中运行,否则 SSR 输出为空 - 纯静态页或 PHP/Node 模板:直接写死在
中,<title></title>后、<link rel="canonical">前 - 常见错误:把所有
og:标签塞进,或用v-html渲染到页面任意位置——等于没写
og:image 加载失败的真正原因不是尺寸,而是可访问性
你设了 <meta property="og:image" content="/img/cover.jpg">,但分享出来还是默认图?大概率是路径不可达或响应头不对。
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
- URL 必须是绝对地址,如
https://example.com/img/cover.jpg;/img/cover.jpg或http://localhost:3000/cover.jpg都会失败 - 图片需返回 HTTP 200,不能是 302 重定向(CDN 配置不当常导致此问题)
- 响应头必须含
Content-Type: image/jpeg(或image/png),某些 Nginx 配置在 HTTP/2 下会吞掉该头 - 微信 iOS 端强制读取
og:image:alt,为空时提示“图片无说明”,建议始终补上
动态页面的 og:url 不能照搬当前 URL
og:url 是社交平台用于去重和缓存的权威地址,它必须是你希望用户分享出去的那个干净链接。
- 去掉调试参数:
https://site.com/post/123?debug=1&ref=test→ 应设为https://site.com/post/123 - 清理 hash 路由:
https://site.com/app#detail?id=456→ 应设为https://site.com/app/detail/456(需后端支持) - 避免协议混用:HTTPS 页面里
og:url写成http://,微信会直接屏蔽图片 - 多语言站点慎用
og:url自动取window.location.href,应显式指定主语言规范地址
微信和微博根本不认大部分 OG 字段
别以为配齐 og:title/og:description/og:image 就万事大吉。微信、微博有自己的一套优先级逻辑,且不公开完整规则。
- 微信:基本只读
og:title、og:description、og:image,其余如og:site_name、og:type全部忽略;想控制朋友圈文案,得额外加<meta name="wxshare:title" content=""> - 微博:倾向读
weibo:card、weibo:title,og:description被截断到 200 字以内;建议补<meta property="weibo:card" content="image">,否则降级为纯链接卡片 - 两者都不支持
og:video和og:audio,富媒体分享只能走平台 SDK
最常被忽略的是缓存——改完 OG 标签却一直显示旧卡片,不是代码没生效,而是 CDN、平台爬虫或浏览器缓存了旧 HTML。每次修改后,务必用 Facebook Sharing Debugger 强制抓取,并在 URL 后加 ?v=20260410 类似参数绕过缓存。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










