claude-seo
CLI ツールAgriciDaniel/claude-seo
オープンソースの Claude Code プラグインで、19個の AI エージェントを使ってサイト全体の SEO 監査を実行。
概要
オープンソースの Claude Code SEO 監査プラグイン。26 のサブスキルと 19 のエキスパートエージェントで構成。テクニカル SEO、コアウェブバイタル、E-E-A-T、構造化データ、AI 検索の可視性(GEO)、ローカル、EC、国際 SEO をカバー。優先度順に並べられたアクションプランを出力し、PDF/Excel レポートとリアルタイムデータ拡張をサポート。
README プレビュー
\n\n\n\nClaude SEO\n\n\n Free, open-source SEO audits inside Claude Code.\n Rank higher in Google and get cited by AI search.\n\n\n\n Install ·\n Demo ·\n Results ·\n Team ·\n Commands ·\n Pricing ·\n FAQ\n\n\n\n \n \n \n \n \n \n \n\n\n\n \n\n\n**Claude SEO is a free SEO plugin for Claude Code.** Give it any website and it runs a full SEO audit in 10 to 15 minutes, then hands you a clear action plan, sorted by what matters most.\n\nIt checks everything a good SEO consultant would:\n\n- **Technical SEO.** Crawlability, indexing, sitemaps, robots.txt, redirects, page speed and Core Web Vitals.\n- **Content quality.** E-E-A-T (experience, expertise, authority and trust), thin pages and topic coverage.\n- **Structured data.** Finds, validates and writes Schema.org markup for rich results.\n- **AI search (GEO).** How likely Google AI Overviews, AI Mode, ChatGPT, Perplexity and Gemini are to cite your pages.\n- **Local and e-commerce SEO.** Google Business Profile, reviews, map pack, product pages and international sites.\n\nClaude SEO is built from 26 sub-skills and 19 specialist agents, and up to 17 agents work on your site at the same time. Every recommendation explains why it matters and how you will know it worked.\n\n## See it in action\n\nType `/seo` in Claude Code to see every command:\n\n\n\nRun a full audit and watch the agents fan out across the site:\n\n\n\n[Watch the full demo on YouTube](https://www.youtube.com/watch?v=COMnNlUakQk)\n\n## Real results\n\nThe project's own site, [claude-seo.md](https://claude-seo.md), audited with Claude SEO from day one: 10.8K Search Console clicks in its first 12 weeks and a 99 mobile PageSpeed score.\n\n\n\n## Meet the team\n\n\n\n\nAll 19 agents\n\n\n| Agent | Role | Model | Command |\n|---|---|---|---|\n| `seo-technical` | Technical SEO Lead | Sonnet | `/seo technical` |\n| `seo-content` | Content Editor | Opus | `/seo content` |\n| `seo-schema` | Structured Data Engineer | Sonnet | `/seo schema` |\n| `s
FAQ (5)
トラブル対応claude-seo v2.3.1で有効なopr_live APIキーがあるにもかかわらず、keywordseverywhere_api.py(Open PageRank)からのHTTP 404を修正する方法
404は認証エラーではありません — スクリプトが廃止されたレガシーDomCopエンドポイントを呼び出しています。scripts/keywordseverywhere_api.pyを修正してください: 1) KWE_BASEをhttps://openpagerank.keywordseverywhere.com/api/v1.0/getPageRankからhttps://openpagerank.keywordseverywhere.com/v1/domains/bulkに変更します。2) domains[]クエリパラメータを繰り返し指定するGETから、JSONボディ{"domains": ["example.com"]}を送信するPOSTに切り替えます(1回の呼び出しにつき最大100ドメイン)。3) API-OPR: <key>ヘッダーをAuthorization: Bearer opr_live_...に置き換えます。4) 削除されたresponse[]キーの代わりにresults[]をパースし、error/status_codeフィールドを処理します。新しいペイロードにはreferring_domainsと月次のhistory配列も追加されています。まずポジティブコントロールでキーを確認してください: curl -X POST https://openpagerank.keywordseverywhere.com/v1/domains/bulk -H "Authorization: Bearer <key>" -H "Content-Type: application/json" -d '{"domains":["example.com"]}' — JSONを含むHTTP 200が返れば、キーが有効であり、(HTMLの404を返す)古いパスのみが壊れていることが確認できます。なお、レガシーDomCopキーは2026-09-30に失効します。代替案: https://openpagerank.keywordseverywhere.com/mcpにある公式MCPサーバーを使用します(同じBearer認証、ツールはget_domain_rank、get_domain_history、bulk_domain_rank)。そのinitialize/tools/listはキーなしで応答するため、CIスモークテストに利用できます。
トラブル対応なぜ claude-seo はフランス語や UTF-8 のページでアクセント記号付き文字が文字化け(é のような mojibake)して表示されるのですか?
これは claude-seo v2.4.0 で修正された既知のバグです。requests は charset ヘッダーを持たない text/* レスポンスを(RFC 2616 に従い)ISO-8859-1 としてデコードし、ページの <meta charset="UTF-8"> を無視するため、UTF-8 のアクセント付き文字が render_page.py、parse_html.py、nlp_analyze.py およびその他4つのスクリプトで文字化けしていました。修正方法:claude-seo v2.4.0 以降にアップグレードしてください。そこでは、7つすべてのスクリプトが、BOM、ヘッダーの charset、HTML の meta charset、そして UTF-8 フォールバックの順にチェックする単一のデコーダーを共有しています。scripts/url_safety.py に手動でパッチを適用する場合は、メンテナーが resp.apparent_encoding を意図的に避けたことに注意してください。これを読み取ると、ストリームされたレスポンスボディが消費されてしまうためです。
トラブル対応Claudeデスクトップアプリからプラグインをインストールする際の「MARKETPLACE_ERROR:REMOTE_SYNC_FAILED」(marketplace_sync_bin_directory_not_allowed) の修正方法
プラグイン/マーケットプレイスを v2.2.6 以降に更新してから、Claude デスクトップアプリで再追加してください(Customize > Plugins > Add marketplace)。同期が失敗するのは、claude.ai でホストされているプラグインがトップレベルの bin/ ディレクトリを同梱できない場合があるためです。これらの実行ファイルは CLI では PATH に追加されますが、管理者承認の画面には表示されません。デスクトップ UI のメッセージ「Marketplace sync failed. Check the repository URL and try again」は誤解を招くものです。本当の理由(marketplace_sync_bin_directory_not_allowed)はアプリのログにのみ表示されます。claude-seo v2.2.6 では、この修正によってランチャーが bin/claude-seo から scripts/claude-seo に移動され、スキルは ${CLAUDE_PLUGIN_ROOT} 経由でそれを呼び出します。プラグインまたはマーケットプレイスをメンテナンスしている場合:実行ファイルを bin/ から scripts/ に移動して(${CLAUDE_PLUGIN_ROOT} 経由で参照する)、または代わりに hooks、commands、mcpServers を通じてエントリーポイントを宣言してください。旧バージョンでの回避策:この制限の影響を受けない Claude Code CLI(claude plugin marketplace add + claude plugin install)経由でインストールしてください。
トラブル対応claude-seoで'fetch_page.py: error: unrecognized arguments: --json'を修正する方法
--json サポートは claude-seo v2.3.0 (PR #297) で fetch_page.py に追加されました。v2.3.0 以降にアップグレードしてから、次を実行してください:
./bin/claude-seo run fetch_page.py https://example.com --json
JSON 出力は render_page.py と同じコントラクトを共有しており、url、status_code、content、headers、redirect_chain などのフィールドを返します。さらに、本文サイズを制限する --max-text オプションも用意されています。
**v2.2.5 以前の回避策:** 代わりに render_page.py を使用してください。こちらは構造化された取得のための --json をすでにサポートしています:
./bin/claude-seo run render_page.py https://example.com --json
fetch_page.py のプレーンテキスト出力(URL: / Status: ヘッダー)をプログラムで解析することは避けてください。これは脆弱であり、レスポンスヘッダーやリダイレクトチェーンが含まれていません。
トラブル対応ローカルHTTPプロキシの背後でurl_safetyのsafe_requests_getを使用する際に発生する「refused to resolve 127.0.0.1 to non-public IP」というProxyErrorを修正するにはどうすればよいですか?
これは HTTPS_PROXY=http://127.0.0.1:<port> が設定されている場合に発生します(サンドボックス/CI環境でよく見られます)。url_safety.py のDNSピニングを行う _pin_dns() がプロキシ自体のホスト名解決を横取りし、is_safe_ip('127.0.0.1') がそれをループバックとして拒否した結果、すべての対象URLに対して requests.exceptions.ProxyError ... Failed to resolve '127.0.0.1' が発生していました。これにより、fetch_page.py、sitemap_discovery.py、indexnow_submit.py を含む約18本のスクリプトが動作しなくなり、これらのスクリプトは誤解を招く一般的な 'Request failed' エラーを報告していました。修正方法: v2.3.0にアップグレードしてください。PR #295とそのフォローアップにより、設定されたプロキシホストはDNSリバインディングチェックの対象外となります。ただし、これはプロキシホストをブロックリストと照合して検証し、名前解決時に再チェックを行った後に限られるため、HTTPS_PROXY に含まれるメタデータアドレスがSSRFガードをバイパスすることはできません。アップグレード後はコードの変更や回避策は不要で、同じ HTTPS_PROXY 設定がそのまま機能します。