关于 seo-social-cards
seo-social-cards 是一项 SEO 审计技能,用于检查 Open Graph 和 Twitter/X 元数据如何呈现分享链接预览。它可发现缺失或无法访问的卡片元素,并根据页面内容补充元数据;重点在分享展示和点击率,而非搜索排名。
主要功能
- 01检查必需的 Open Graph 字段
- 02检查社交卡片图像是否可访问
- 03检查 Twitter/X 卡片元数据
- 04说明爬虫的预览回退内容
- 05根据页面内容添加卡片标签
适用场景
- 01审计页面的分享链接预览
- 02查找缺失或无法访问的社交卡片图像
- 03检查 Twitter/X 元数据及 Open Graph 回退
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ hainrixz/ claude-seo-ai --skill seo-social-cards安装后在 Claude Code 中输入/seo-social-cards确认已加载。
详细介绍
seo-social-cards (M8)
社交卡片决定 URL 在社交平台、聊天工具和 AI 助手中分享时的呈现方式——它是点击率/分享信号,而非排名信号(参见「诚实说明」)。Open Graph 元数据与 references/schema-tier1.md 中的结构化数据工作一样,属于 <head> 级别的基础维护,因此应与该模块一并审计。
输入
根据分派信封中指定的 PageSnapshot 操作:从 <run_dir>/pages/<slug>.json 中读取 parsed(metas[] 中的 og:*/twitter:*、canonicals[]、images[]);在 pages/<slug>.html 中使用 Grep 查找原文证据;站点工件位于 <run_dir>/site/{robots.json,sitemaps.json,discovery.json}。audit.mjs 已输出的确定性发现列在 <run_dir>/findings.deterministic.json 中——不要重复输出这些 ID;只添加由模型判定的发现。如果直接传入 URL/路径且不存在快照,请先运行 node "${CLAUDE_PLUGIN_ROOT}/scripts/snapshot.mjs" <target> --out "${CLAUDE_PLUGIN_DATA}/runs",并使用打印出的快照路径。
审计
基于 PageSnapshot 操作(当 render.used 不为 none 时使用 parsed_rendered,否则使用 parsed):
- OG 内容:
og:title、og:description、og:url、og:type均存在且非空;og:url与 canonical 一致;og:type符合页面类型(例如,article与website)。 - OG 图片:存在
og:image,尺寸约为 1200x630(1.91:1)且不小于 200x200,并且可访问(HTTP 200、图片内容类型、绝对 URL)。 - Twitter/X:检查
twitter:card(优先使用summary_large_image)、twitter:title、twitter:description、twitter:image。如果这些标签缺失,Twitter 会回退使用 OG——请注明其依赖 OG 的情况。 - 回退行为:如果 OG 完全缺失,记录爬虫会如何生成卡片(
<title>、meta description、首张内容<img>),确保发现反映实际降级卡片,而非猜测。
修复
- AUTO(
fixable: auto):根据页面的<title>/<h1>、meta description、canonical URL 和首张正文图片,注入完整的 OG + Twitter 卡片代码块。此操作为增量式、确定性操作,并会为fix输出差异。 - 工具无法创建图片资源。只有在存在真实路径时,才会写入
og:image/twitter:image;在此之前会保留清晰标记的TODO占位符(不得编造 URL 或尺寸)。绝不可捏造标题/描述文本——应根据页面内容提取,或留下TODO提示用户。
验证
dom_assert:必需的<meta property="og:*">/<meta name="twitter:*">标签存在且非空。header_check:og:image返回 200,且内容类型为图片,尺寸约为 1200x630。- 如果图片抓取或尺寸探测受阻(无网络/外网访问受限),状态应为
needs_api,绝不可错误地标记为pass。
发现
按照 schema/finding.schema.json 输出发现。示例:
M8.og.missing_image— 缺少og:image(状态fail,严重性 2,fixable: auto,轴search,置信度established)。M8.og.image_unreachable— 已设置og:image,但返回非 200 状态码/错误的内容类型(状态fail,严重性 2,fixable: proposed,轴search,置信度established)。M8.twitter.no_card— 缺少twitter:card,页面仅回退使用 OG(状态warn,严重性 2,fixable: auto,轴search,置信度directional)。 每项发现:evidence.observed引用页面上的标签(或其缺失情况);verification.reproduce是可运行的dom_assert/header_check命令;expected_impact应按区间标注并带有置信度标签(不得只给出百分比)。
诚实说明
社交卡片是分享/点击率信号,对排名的直接影响几乎为零——Google 不会将 OG 标签用作排名因素。它们能改善分享链接和 AI 助手预览的呈现效果,但不会影响页面排名。修复它们是为了提升点击率和保持品牌一致性;不要过度投入并期待搜索结果页排名变化。