mcpField
S
seo-freshness

seo-freshness

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

seo-freshness について

seo-freshness は、ページの日付とコンテンツの鮮度を確認する SEO 監査スキルです。表示日付、Article 構造化データ、トピックの変化速度を評価し、鮮度を確実なランキング向上とは扱わず、限定的な日付修正を提案または適用します。

主な機能

  1. 01表示日付とスキーマ日付の確認
  2. 02日付の不一致と解析問題の検出
  3. 03トピックの変化速度に応じた陳腐化評価
  4. 04スキーマへの dateModified 追加
  5. 05ページとヘッダーによる日付検証

活用シーン

  1. 01表示日付とスキーマ日付が食い違う記事の監査
  2. 02変化の速い分野で古くなったページの特定
  3. 03Article スキーマへの検証可能な更新日の追加

インストール

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

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

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

詳細

seo-freshness(M13)

鮮度は、従来のランキングシステム(Query Deserves Freshness)とAI回答エンジンの両方が重視する新しさのシグナルです。特にPerplexityは、引用元として最近更新された情報源を優先します。日付フィールドはArticleスキーマに直接関係します(M5と照合してください)。日付のルールについては、references/schema-tier1.mdを参照してください。

入力

ディスパッチエンベロープで指定されたPageSnapshotを使用します。<run_dir>/pages/<slug>.jsonのparsed(jsonld[]、article:published_time/modified_timeのmetas[])と、headers.last-modifiedを読み込みます。逐語的な根拠は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. 表示される日付:「Published」/「Updated on」/「Last reviewed」などのパターンと、その値(ISO形式または人が読み取れる形式)をページ上で検出します。
  2. スキーマの日付:JSON-LDのArticle/BlogPosting/NewsArticleからdatePublished/dateModifiedを解析します。
  3. 一致確認:表示される日付とスキーマの日付が一致している必要があります。不一致、および対応する表示日付のないスキーマ日付にフラグを立てます(AIエンジンは非表示の日付のみを信頼しません)。
  4. 古さ:コンテンツの経過期間(最も新しい信頼性の高い日付)を、トピックの変化の速さと照らして推定します。変化の速いトピック(価格、ツール、「2026年のおすすめX」、規制)は、常緑の参考コンテンツよりも早く古くなります。単に古いだけでなく、陳腐化している場合に報告します。
  5. パターンの健全性:実質的な内容変更がないのに「updated on」と表示するのは鮮度に関するアンチパターンです。指摘はしますが、決して推奨してはいけません。

修正

  • AUTO(fixable: auto):既存のArticleスキーマに欠けているdateModifiedを、fix用の追加差分として挿入します。決して誤った日付に遡って設定しないでください。検証可能な最終変更日(例:Last-Modifiedヘッダー/リポジトリのmtime/今日)を使用するか、ユーザーが確認する明確なTODOプレースホルダーを残してください。
  • PROPOSED(fixable: proposed):表示日付とスキーマの日付の不一致について、修正値を下書きとして提示し、項目ごとの承認を求めます。ユーザーによる確認が必要な日付を自動で書き換えてはいけません。
  • ADVISORY(fixable: advisory):変化の速いトピックを扱うページが陳腐化している場合、実質的なコンテンツ更新を推奨します。このツールが編集コンテンツを書き込むことはありません。日付を決して捏造せず、実際には行われていない更新を作り上げないでください。

検証

  • dom_assert:表示日付の文字列が存在し、解析可能で、スキーマの値と一致します。
  • schema_validator:datePublished/dateModifiedが存在し、有効なISO 8601形式で、dateModified >= datePublishedを満たします。
  • header_check:HTTPのLast-Modifiedヘッダーが、申告された変更日を裏付けます。
  • ライブティア(ヘッダー取得/バリデーター)が利用できない場合、ステータスはpassではなく、必ずneeds_apiになります。

検出結果

検出結果は schema/finding.schema.json に準拠します。軸は both、確信度はすべて directional です。重大度ポリシー:5 は、サイト/テンプレートの範囲で適格性を損なう壊滅的な事実に限ります。4 は重大、3 は中程度、2 は軽微、1 は表面的、0 は情報提供のみです。また、スコアを上限設定できるのは、有効なカテゴリーにおける established の重大度 5 の fail のみです(references/scoring-model.md)。鮮度によって上限が設定されることはありません。

  • M13.datemodified.missing — datePublished はあるものの dateModified がない記事スキーマ(fail、重大度 3、fixable: auto)。
  • M13.dates.visible_schema_mismatch — 表示上の「Updated May 2025」と、スキーマの dateModified: 2023-01-10 が一致しないケース(warn、重大度 3、fixable: proposed)。
  • M13.content.stale_volatile — 変化の速いトピックを扱う「best X 2024」ページが 2 年間更新されていないケース(warn、重大度 2、fixable: advisory)。
  • M13.schema.date_unparseable — 日付フィールドは存在するものの ISO 8601 として解析できないケース、または dateModified の値が複数あるページ(最新の値が採用され、競合が報告されます)(warn、重大度 2、fixable: proposed)。不一致ではなく、こちらを出力します。読み取れない日付は解析上の不足であり、日付が食い違っている証拠ではありません。 各検出結果では、evidence.observed にページからの引用(日時文字列とセレクター)を記載します。verification.reproduce は実行可能なアサーションです(例:node "${CLAUDE_PLUGIN_ROOT}/scripts/check-freshness.mjs" --snapshot <pages/<slug>.json> [--lang en|es|auto](または --url <u>))。expected_impact は区分と確信度タグを付け、公開されている数値を記載する場合は、引用とともに rationale のみに含めます。

誠実性

  • 鮮度は文脈に応じたシグナルであり、普遍的なランキング向上要因ではありません。エバーグリーンコンテンツを更新してもランキングが上がることはほとんどなく、実際のコンテンツ変更を伴わない dateModified の更新は検出される可能性があり、長期的な価値もありません。ここでの確信度は方向性を示すものであり、established にはなりません。日付の編集をランキング向上が保証されるかのように示したり、最近更新されたように見せるために日付を遡らせたりしてはいけません。
  • 日付の解析は言語に依存します。スペイン語の月名と article:published_time/article:modified_time は読み取られますが、認識されない形式の場合は、不一致を捏造せず M13.schema.date_unparseable を出力します。

コメント