seo-page について
seo-pageは、単一ページのSEOを分析するスキルです。ページ内容、技術メタデータ、構造化データ、画像を確認し、スコアカード、優先度付きの課題、具体的な改善案を作成します。
主な機能
- 01ページSEOとコンテンツの確認
- 02技術メタデータのチェック
- 03構造化データの分析
- 04画像と読み込み方式の確認
- 05スコアカードと優先度付き提案
活用シーン
- 01公開前のページ監査
- 02メタデータや見出しの問題発見
- 03構造化データと画像の改善点特定
MCP 対応
DataForSEO MCPツールが利用可能な場合、ライブ検索順位とバックリンクデータの取得に使用できます。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ agricidaniel/ claude-seo --skill seo-pageインストール後、Claude Code で/seo-pageを入力して読み込まれたか確認します。
同梱ファイルLICENSE.txt
詳細
1 ページの分析
分析対象
ページ内 SEO
- タイトルタグ:50~60 文字で、主要キーワードを含み、固有の内容にする
- メタディスクリプション:150~160 文字で、魅力的かつキーワードを含む内容にする
- メタディスクリプションをタイトルの言い換えにしない:次を実行します
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run metadata_template.py --title "<title>" --description "<desc>" --json(ヒューリスティックによる、決定論的な文字列比較)。タイトルを繰り返す書き出しと、定型的な CTA(「今すぐ無料でお試しください。」「無料で始めましょう!」など)で締めくくられた説明文は、テンプレート化されたメタデータです。この形式はサイト全体で一括生成されるコンテンツの特徴であり、本文がどれほど独創的であっても、メタデータの重複やテンプレート化は、文書化されたコンテンツ品質上の問題です - H1:ページの意図に合致し、キーワードを含むものを 1 つだけにする
- H2~H6:論理的な階層構造にし(レベルを飛ばさない)、内容が分かる見出しにする
- URL:短く、内容が分かりやすく、ハイフン区切りで、パラメーターを含めない
- 内部リンク:十分な数を設置し、アンカーテキストを関連性のあるものにし、孤立したページをなくす
- 外部リンク:信頼できる情報源へのリンクを、適切な数だけ設置する
コンテンツ品質
- ページの種類に応じた最低語数(quality-gates.md を参照)
- 読みやすさ:Flesch Reading Ease スコア、学年レベル
- キーワード密度:自然な範囲(1~3%)にし、意味的なバリエーションも含める
- E-E-A-T のシグナル:著者の略歴、資格、実体験を示す要素
- コンテンツの鮮度:公開日、最終更新日
技術要素
- Canonical タグ:存在し、自己参照または正しい URL を指定している
- Meta robots:意図的にブロックしていない限り、index/follow にする
- Open Graph:og:title、og:description、og:image、og:url
- Twitter Card:twitter:card、twitter:title、twitter:description
- Hreflang:多言語対応の場合、正しく実装する
スキーママークアップ
- すべてのタイプを検出する(JSON-LD を推奨)
- 必須プロパティを検証する
- 不足している機会を特定する
- HowTo(非推奨)や、リッチリザルト向けの FAQ(2026 年 5 月に廃止)を推奨しない。既存の FAQPage を削除する必要はありません。実際の質疑応答には QAPage を使用してください
画像
- Alt テキスト:設定され、内容を具体的に説明し、自然な範囲でキーワードを含む
- ファイルサイズ:200KB 超は警告、500KB 超は重大な問題として指摘する
- 形式:JPEG/PNG より WebP/AVIF を推奨する
- 寸法:CLS 防止のため、width/height を設定する
- 遅延読み込み:画像ごとに
lazy_method(native | perfmatters | ewww | js-generic | none)を報告する。JS による遅延読み込み(Perfmatters、EWWW、lazysizes)が検出された場合、「遅延読み込みされていない」と指摘しないでください。これらは意図的にネイティブのloading="lazy"属性を削除し、data-srcプレースホルダーを使用します
Core Web Vitals(参考のみ。HTML だけからは測定できません)
- LCP の潜在的な問題を指摘する(非常に大きなヒーロー画像、レンダリングをブロックするリソース)
- INP の潜在的な問題を指摘する(負荷の高い JS、async/defer がない)
- CLS の潜在的な問題を指摘する(画像の寸法が未設定、コンテンツの挿入)
出力
ページスコアカード
Overall Score: XX/100
On-Page SEO: XX/100 ████████░░
Content Quality: XX/100 ██████████
Technical: XX/100 ███████░░░
Schema: XX/100 █████░░░░░
Images: XX/100 ████████░░
検出された問題
優先度順に整理します:重大 -> 高 -> 中 -> 低
推奨事項
期待される効果を含む、具体的で実行可能な改善案
スキーマの提案
検出された機会にすぐ使える JSON-LD コード
DataForSEO との連携(任意)
DataForSEO MCP ツールを利用できる場合は、実際の SERP 順位に serp_organic_live_advanced を、被リンクデータとスパムスコアに backlinks_summary を使用します。
エラー処理
| シナリオ | 対応 |
|---|---|
| URL にアクセスできない(DNS 失敗、接続拒否) | エラーを明確に報告します。ページの内容を推測しないでください。URL を確認して再度試すようユーザーに案内します。 |
| ページで認証が必要(401/403) | ページが認証で保護されていることを報告します。レンダリング済み HTML を直接提供するか、誰でもアクセスできる URL を指定するようユーザーに案内します。 |
| JavaScript でレンダリングされたコンテンツ(HTML の本文が空) | 重要なコンテンツがクライアント側でレンダリングされている可能性があることを伝えます。利用可能な HTML を分析し、結果が不完全な場合があることを指摘します。利用可能であれば、ブラウザーでレンダリングしたスナップショットを使用するよう提案します。 |
コメント
Markdown 対応