mcpField
S
seo-social-cards

seo-social-cards

github.com/hainrixzマーケティング・グロース79203 回インストール4 日前に更新
リポジトリ

seo-social-cards について

seo-social-cards は、共有リンクのプレビューに使われる Open Graph と Twitter/X のメタデータを確認する SEO 監査スキルです。不足または到達不能なカード要素を特定し、ページ内容に基づくメタデータを追加できます。検索順位ではなく、共有表示とクリック率を対象とします。

主な機能

  1. 01必須の Open Graph フィールドを確認
  2. 02ソーシャルカード画像の到達性を確認
  3. 03Twitter/X カードメタデータを確認
  4. 04クローラーが生成する代替プレビューを説明
  5. 05ページ内容に基づくカードタグの追加

活用シーン

  1. 01ページの共有リンクプレビューの監査
  2. 02不足または到達不能なカード画像の特定
  3. 03Twitter/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 アシスタントで共有されたときの表示を制御します。これは CTR/共有に関するシグナルであり、ランキングに関するシグナルではありません(「誠実さ」を参照)。Open Graph メタデータは、references/schema-tier1.md の構造化データ作業と同じ <head> レベルの基本整備に当たるため、このモジュールと併せて監査してください。

入力

ディスパッチエンベロープで指定された PageSnapshot を使用します。<run_dir>/pages/<slug>.json から parsed を読み込み(og:*/twitter:* の metas[]、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)。

  1. OG コンテンツ:og:title、og:description、og:url、og:type が存在し、値が空でないこと。og:url が canonical と一致していること。og:type がページに適切であること(例:article と website の使い分け)。
  2. OG 画像:og:image が存在し、約 1200x630(1.91:1)かつ 200x200 以上で、取得可能であること(HTTP 200、画像の Content-Type、絶対 URL)。
  3. Twitter/X:twitter:card(summary_large_image を推奨)、twitter:title、twitter:description、twitter:image。これらがない場合、Twitter は OG にフォールバックします。OG に依存している場合はその旨を記録してください。
  4. フォールバック動作:OG がまったくない場合、クローラーが取得する内容(<title>、meta description、最初のコンテンツ内 <img>)を記録し、推測ではなく実際に劣化したカードの状態を検出結果に示してください。

修正

  • 自動(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 が画像の Content-Type を伴って 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 アシスタントのプレビュー表示を改善するものであり、ページのランキングを上げるものではありません。CTR とブランドの一貫性のために修正し、SERP の順位上昇を期待して過剰に投資しないでください。

コメント