solo-seo-audit について
URL やプロジェクトのランディングページを監査する SEO スキルです。メタデータやインデックス関連の設定を確認し、検索での可視性を評価して、スコア付きのレポートを作成します。
主な機能
- 01メタデータとソーシャル共有タグの確認
- 02JSON-LD、sitemap、robots.txt の確認
- 03見出し構成とページ基盤の点検
- 04対象キーワードの検索順位確認
- 05スコア付き監査レポートの作成
活用シーン
- 01ランディングページ公開前の SEO 評価
- 02メタデータやインデックス用ファイルの不足確認
- 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 を使用してください。
手順
-
対象を解析します。
$ARGUMENTSから対象を取得します。- URLの場合(
httpで始まる場合):そのまま使用します。 - プロジェクト名の場合:プロジェクトのREADME、CLAUDE.md、または
docs/prd.mdからURLを調べます。 - 空の場合:AskUserQuestionを使って「監査するURLまたはプロジェクトはどれですか?」と尋ねます。
- URLの場合(
-
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の階層
-
インフラ関連ファイルを確認します。
{origin}/sitemap.xmlを取得 — 存在するか。有効なXMLか。ページ数はいくつか。{origin}/robots.txtを取得 — 存在するか。Disallowルールはあるか。サイトマップの参照はあるか。{origin}/favicon.icoを取得 — 存在するか。
-
採点の前に、必ず評価内容を明記します。 続行する前に、以下を書き出します。
- 存在する項目:[見つかった要素の一覧]
- 不足している項目:[見つからなかった要素の一覧]
- 重大な問題:[インデックス登録や共有を妨げる要因]
-
SERP順位を確認します — キーワード3~5個について:
- ページタイトル、メタディスクリプション、H1からキーワードを抽出します。
- 各キーワードについて、MCP
web_search(query="{keyword}")またはWebSearchで検索します。 - 対象URLの検索結果での順位を記録します(1~10位、または「見つからない」)。
- 各キーワードについて、競合上位3件を記録します。
-
スコアを計算します(0~100点)。
チェック項目 最高点 基準 Titleタグ 10 存在し、50~60文字で、主要キーワードを含む Meta description 10 存在し、150~160文字で、魅力的である OGタグ 10 og:title、og:description、og:imageがすべて存在する JSON-LD 10 有効な構造化データが存在する Canonical 5 存在し、正しい Sitemap 10 存在し、有効で、robots.txtから参照されている Robots.txt 5 存在し、範囲が広すぎるDisallowがない H1構造 5 H1が正確に1つで、内容を適切に表している HTTPS 5 サイトがHTTPSを使用している モバイルメタ 5 viewportタグが存在する 言語 5 <html>にlang属性があるFavicon 5 存在する SERP掲載状況 15 対象キーワードで検索結果の上位10件に見つかる -
レポートを
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} -
概要を出力します — スコアと改善案の上位3件を表示します。
注意事項
- スコアは相対評価です。ランディングページでは80点以上が良好、90点以上が非常に優秀です。
- SERPチェックは概算であり、リアルタイムの順位データではありません。
- コンテンツの変更後や公開前に、定期的に実行してください。
注意点
- SSRなしのSPAは0点になります — クライアント側だけでレンダリングされるページ(Next.js SSRを使わないReact SPAなど)では、検索エンジンに空の
<div id="root">が表示されます。HTMLに実際のコンテンツが含まれていることをview-source:で確認してください。 - robots.txtでのサイトマップ指定は必須です — Googleはrobots.txtの
Sitemap:ディレクティブからサイトマップを見つけます。指定がない場合、新しいサイトでは内部リンクのクロールに頼ることになり、インデックス登録に時間がかかります。 - JSON-LDのエラーは表面化しません — JSON-LDの形式が不正でもページは壊れませんが、Googleは完全に無視します。公開前にhttps://search.google.com/test/rich-resultsで検証してください。
- H1タグが複数あるとクローラーが混乱します — 多くのUIフレームワークでは、コンポーネントのタイトルがH1としてレンダリングされます。実際のDOMを監査し、ページごとにH1が正確に1つだけあることを確認してください。セクション見出しにはH2~H3を使用します。
- 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 構造化データを追加してください。