mcpField
S
seo-entity-linking

seo-entity-linking

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

seo-entity-linking について

seo-entity-linking は、構造化データの識別リンク、ページの主要エンティティ定義、ローカルビジネス情報の整合性を確認する SEO 監査スキルです。推測や捏造を避け、ユーザーが確認した URL だけを識別リンクに使用します。

主な機能

  1. 01Person と Organization の sameAs を確認
  2. 02ページの主要エンティティを検証
  3. 03ローカルビジネスの名称・住所・電話を照合
  4. 04エンティティ参照の網羅性を評価
  5. 05識別リンクとリンク先を検証

活用シーン

  1. 01組織マークアップに確認済みの識別リンクを追加
  2. 02主要エンティティが明確でないページを発見
  3. 03ローカルビジネスのマークアップと表示情報を照合

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/hainrixz/claude-seo-ai --skill seo-entity-linking

インストール後、Claude Code で/seo-entity-linkingを入力して読み込まれたか確認します。

詳細

seo-entity-linking (M6)

エンティティの紐付けにより、ページがどの現実世界の対象についてのものかを検索エンジンや AI システムに伝え、ナレッジグラフと結び付けます。参照先:references/schema-tier1.md(sameAs/@id/Person+Organization のルール)。このモジュールは、M5 がここに委ねている sameAs の詳細を担当します。

入力

ディスパッチエンベロープで指定された PageSnapshot を使用します。<run_dir>/pages/<slug>.json から parsed(jsonld[]、anchors[])を読み取り、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. sameAs アイデンティティリンク:Organization/Person エンティティについて、sameAs[] が正規のアイデンティティ(Wikidata QID、Wikipedia、LinkedIn、Crunchbase、公式ソーシャル/企業プロフィール)に解決されるか確認します。ナレッジグラフの参照先としては Wikidata が最も有力です。
  2. 主エンティティの定義:ページごとに明確な主エンティティが 1 つだけ存在すること(@id と mainEntity/mainEntityOfPage による)を確認します。曖昧な対象や対象の欠落がないことを確認してください。
  3. エンティティの整合性(ローカル):LocalBusiness について、スキーマの NAP(名称、住所、電話番号)がページ上で表示される NAP と一致し、ブロック間で一貫していることを確認します。
  4. エンティティ密度:リンクまたはマークアップされたエンティティ(@id 付きノード、sameAs の参照先、about/mentions)の数を数え、解決可能なエンティティ参照がない薄いページにフラグを立てます。

修正

  • AUTO(fixable: auto):ユーザーが確認した URL のみを使用して、Organization/Person に sameAs[] 配列を挿入し、既存のスキーマに about/mentions のエンティティ参照を追加します。fix では追加のみの決定的な差分を作成します。アイデンティティリンクを決して捏造しないでください。URL が未確認の場合は、ユーザーが入力する、明示的な TODO プレースホルダーを残してください。
  • PROPOSED(fixable: proposed):検索で見つかった Wikidata/LinkedIn の候補一致です。項目ごとに人が承認するための下書きとして提示し、自動では書き込みません。
  • ADVISORY(fixable: advisory):該当するものがない場合に、「Wikidata エンティティを作成する/プロフィールを申請する」よう案内します。ガイダンスのみで、ツールは何も書き込みません。

検証

  • dom_assert:解析済み JSON-LD に sameAs/@id/mainEntity が存在し、形式が正しいことを確認します。
  • 各 sameAs URL を解決し、Tier 1 の Wikidata ルックアップで有効であり、表明されたエンティティを指していることを確認します。リンク切れまたは不一致は合格ではなく失敗です。
  • ライブ検索のティアが利用できない場合、ステータスは pass ではなく、必ず needs_api になります。

調査結果

schema/finding.schema.json に従って調査結果を出力します。axis は ai、confidence はすべて directional です。これらのいずれもベンダーによって文書化されていません。重大度の方針:5 は、サイト/テンプレートのスコープにおける、適格性を失わせる壊滅的な事実に限ります。4 は重大、3 は中程度、2 は軽微、1 は表面的、0 は情報提供のみです。また、アクティブなカテゴリで established とされた severity-5 の fail のみがスコアに上限を設定できます(references/scoring-model.md)。

  • M6.organization.missing_sameas — sameAs[] のない Organization(fail、severity 3、fixable: proposed)。
  • M6.page.no_primary_entity — ページ上に単一の定義済みプライマリエンティティ(@id / mainEntity)がない(warn、severity 3、fixable: advisory)。
  • M6.entity.thin_density — 実在する組織、人、製品を挙げているページのマークアップ内に、解決可能なエンティティ参照がない(warn、severity 3、fixable: advisory)。
  • M6.person.no_wikidata_link — Wikidata/LinkedIn の識別リンクがない著者 Person(warn、severity 2、fixable: proposed)。
  • M6.sameas.unresolvable — 404 を返す、または別のエンティティを指す、宣言済みの sameAs URL(fail、severity 3、fixable: proposed)。 各調査結果では、evidence.observed にページの内容(エンティティブロック、またはその不在)を引用し、verification.reproduce に実行可能なアサーション/検索を記載します。expected_impact は範囲と信頼度タグを付けて示します(単独の % は不可)。

誠実さ

  • sameAs リンクを指定しても、ナレッジグラフへの登録が保証されるわけではなく、ランキング向上も保証されません。これはエンジンにエンティティを識別させるためのシグナルなので、影響度は directional にとどまり、established にはなりません。
  • エンティティの密度を高めるために、識別 URL を捏造したり、推測したり、「最善努力」で補ったりしてはいけません。誤った sameAs はエンジンを積極的に誤解させるため、空の配列よりも悪影響があります。確認済みのものだけを使うか、TODO のままにしてください。
  • エンティティの密度は、「このページは特定可能で解決可能な何かについて説明している」ことを示す代替指標であり、エンジンが公表している指標ではありません。数値そのものを追い求めないでください。

コメント