mcpField
S
solo-seo-audit

solo-seo-audit

github.com/fortunto2マーケティング・グロース1843 回インストール今日更新
リポジトリ

solo-seo-audit について

URL やプロジェクトのランディングページを監査する SEO スキルです。メタデータやインデックス関連の設定を確認し、検索での可視性を評価して、スコア付きのレポートを作成します。

主な機能

  1. 01メタデータとソーシャル共有タグの確認
  2. 02JSON-LD、sitemap、robots.txt の確認
  3. 03見出し構成とページ基盤の点検
  4. 04対象キーワードの検索順位確認
  5. 05スコア付き監査レポートの作成

活用シーン

  1. 01ランディングページ公開前の SEO 評価
  2. 02メタデータやインデックス用ファイルの不足確認
  3. 03対象キーワードでの検索可視性の確認

MCP 対応

検索結果の順位確認やプロジェクト URL の特定に MCP ツールを利用できます。利用できない場合は、Web 検索またはプロジェクトファイルの確認に切り替えます。

インストール

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

$npx skills add https://github.com/fortunto2/solo-factory --skill solo-seo-audit

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

詳細

/seo-audit

任意の URL またはプロジェクトのランディングページの SEO 健全性をチェックします。ページを取得し、メタタグ、OG、JSON-LD、サイトマップ、robots.txt を分析し、指定したキーワードの SERP 順位を確認して、スコア付きレポートを出力します。

seo-cli(利用可能な場合に使用)

専用の SEO CLI — リポジトリ:https://github.com/fortunto2/seo-cli

# Install (one-time)
git clone https://github.com/fortunto2/seo-cli.git ~/startups/shared/seo-cli
cd ~/startups/shared/seo-cli && uv venv && uv pip install -e .
cp config.example.yaml config.yaml  # add credentials (GSC, Bing, Yandex, IndexNow)
# Detect seo-cli
python ~/startups/shared/seo-cli/cli.py --help 2>/dev/null

利用可能な場合は、手動の WebFetch より seo-cli コマンドを優先してください。

  • python ~/startups/shared/seo-cli/cli.py audit <url> — ページの詳細監査(メタ、OG、JSON-LD、キーワード、読みやすさ)
  • python ~/startups/shared/seo-cli/cli.py status — 登録済みサイトすべてのダッシュボード
  • python ~/startups/shared/seo-cli/cli.py analytics <site> — GSC データ(クエリ、表示回数、CTR)
  • python ~/startups/shared/seo-cli/cli.py monitor <site> — スナップショットによる順位追跡
  • python ~/startups/shared/seo-cli/cli.py reindex <url> — Google Indexing API と IndexNow による即時再インデックス
  • python ~/startups/shared/seo-cli/cli.py competitors <keyword> — SERP と競合の分析
  • python ~/startups/shared/seo-cli/cli.py launch <site> — 新しいサイトの総合プロモーションワークフロー

seo-cli を利用できない場合は、以下の WebFetch ベースの監査に切り替えてください。

MCP ツール(利用可能な場合に使用)

  • web_search(query, engines, include_raw_content) — SERP 順位の確認、競合分析
  • project_info(name) — プロジェクト名から監査対象の URL を取得

MCP ツールを利用できない場合は、代わりに Claude WebSearch/WebFetch を使用してください。

手順

  1. 対象を解析します。$ARGUMENTSから対象を取得します。

    • URLの場合(httpで始まる場合):そのまま使用します。
    • プロジェクト名の場合:プロジェクトのREADME、CLAUDE.md、またはdocs/prd.mdからURLを調べます。
    • 空の場合:AskUserQuestionを使って「監査するURLまたはプロジェクトはどれですか?」と尋ねます。
  2. WebFetchでページを取得します。以下を抽出します。

    • <title>タグ(長さの目安:50~60文字)
    • <meta name="description">(長さの目安:150~160文字)
    • Open Graphタグ:og:title、og:description、og:image、og:url、og:type
    • Twitterカードタグ:twitter:card、twitter:title、twitter:image
    • JSON-LD構造化データ(<script type="application/ld+json">)
    • <link rel="canonical"> — 正規URL
    • <html lang="..."> — 言語タグ
    • <link rel="alternate" hreflang="..."> — i18nタグ
    • 見出し構造:H1の数(正確に1つであること)、H2~H3の階層
  3. インフラ関連ファイルを確認します。

    • {origin}/sitemap.xmlを取得 — 存在するか。有効なXMLか。ページ数はいくつか。
    • {origin}/robots.txtを取得 — 存在するか。Disallowルールはあるか。サイトマップの参照はあるか。
    • {origin}/favicon.icoを取得 — 存在するか。
  4. 採点の前に、必ず評価内容を明記します。 続行する前に、以下を書き出します。

    • 存在する項目:[見つかった要素の一覧]
    • 不足している項目:[見つからなかった要素の一覧]
    • 重大な問題:[インデックス登録や共有を妨げる要因]
  5. SERP順位を確認します — キーワード3~5個について:

    • ページタイトル、メタディスクリプション、H1からキーワードを抽出します。
    • 各キーワードについて、MCP web_search(query="{keyword}")またはWebSearchで検索します。
    • 対象URLの検索結果での順位を記録します(1~10位、または「見つからない」)。
    • 各キーワードについて、競合上位3件を記録します。
  6. スコアを計算します(0~100点)。

    チェック項目最高点基準
    Titleタグ10存在し、50~60文字で、主要キーワードを含む
    Meta description10存在し、150~160文字で、魅力的である
    OGタグ10og:title、og:description、og:imageがすべて存在する
    JSON-LD10有効な構造化データが存在する
    Canonical5存在し、正しい
    Sitemap10存在し、有効で、robots.txtから参照されている
    Robots.txt5存在し、範囲が広すぎるDisallowがない
    H1構造5H1が正確に1つで、内容を適切に表している
    HTTPS5サイトがHTTPSを使用している
    モバイルメタ5viewportタグが存在する
    言語5<html>にlang属性がある
    Favicon5存在する
    SERP掲載状況15対象キーワードで検索結果の上位10件に見つかる
  7. レポートをdocs/seo-audit.md(プロジェクトのコンテキスト内)に書き込むか、コンソールに出力します。

    # SEO Audit: {URL}
    
    **Date:** {YYYY-MM-DD}
    **Score:** {N}/100
    
    ## Summary
    {2-3 sentence overview of SEO health}
    
    ## Checks
    
    | Check | Status | Score | Details |
    |-------|--------|-------|---------|
    | Title | pass/fail | X/10 | "{actual title}" (N chars) |
    | ... | ... | ... | ... |
    
    ## SERP Positions
    
    | Keyword | Position | Top Competitors |
    |---------|----------|----------------|
    | {kw} | #N or N/A | competitor1, competitor2, competitor3 |
    
    ## Critical Issues
    - {issue with fix recommendation}
    
    ## Recommendations (Top 3)
    1. {highest impact fix}
    2. {second priority}
    3. {third priority}
    
  8. 概要を出力します — スコアと改善案の上位3件を表示します。

注意事項

  • スコアは相対評価です。ランディングページでは80点以上が良好、90点以上が非常に優秀です。
  • SERPチェックは概算であり、リアルタイムの順位データではありません。
  • コンテンツの変更後や公開前に、定期的に実行してください。

注意点

  1. SSRなしのSPAは0点になります — クライアント側だけでレンダリングされるページ(Next.js SSRを使わないReact SPAなど)では、検索エンジンに空の<div id="root">が表示されます。HTMLに実際のコンテンツが含まれていることをview-source:で確認してください。
  2. robots.txtでのサイトマップ指定は必須です — Googleはrobots.txtのSitemap:ディレクティブからサイトマップを見つけます。指定がない場合、新しいサイトでは内部リンクのクロールに頼ることになり、インデックス登録に時間がかかります。
  3. JSON-LDのエラーは表面化しません — JSON-LDの形式が不正でもページは壊れませんが、Googleは完全に無視します。公開前にhttps://search.google.com/test/rich-resultsで検証してください。
  4. H1タグが複数あるとクローラーが混乱します — 多くのUIフレームワークでは、コンポーネントのタイトルがH1としてレンダリングされます。実際のDOMを監査し、ページごとにH1が正確に1つだけあることを確認してください。セクション見出しにはH2~H3を使用します。
  5. Core Web Vitalsは順位に影響します — LCP(Largest Contentful Paint)< 2.5s、FID(First Input Delay)< 100ms、CLS(Cumulative Layout Shift)< 0.1です。lighthouseが利用可能な場合は、npx lighthouse {url} --output=jsonで確認してください。

よくある問題

ページの取得に失敗する

原因: URL が認証、CORS の背後にあるか、HTML 以外を返しています。 対処法: URL が一般にアクセス可能であることを確認してください。SPA の場合は、コンテンツがサーバー側でレンダリングされているか確認してください。

SERP の順位が「見つかりません」と表示される

原因: サイトが新しいか、検索エンジンにインデックスされていません。 対処法: 新しいサイトでは想定される状態です。サイトマップを Google Search Console に送信し、2~4 週間後に再度監査してください。

コンテンツの質が高いのにスコアが低い

原因: インフラストラクチャファイル(sitemap.xml、robots.txt、JSON-LD)が不足しています。 対処法: これらは最も効果の高い改善策です。サイトマップを生成し、サイトマップへの参照を含む robots.txt を追加して、JSON-LD 構造化データを追加してください。

コメント