semrush-research について
SemRush APIからSEOと競合調査のデータを取得するリサーチ用スキルです。ドメイン、キーワード、被リンク、競合、トラフィックの調査と比較分析を扱います。
主な機能
- 01ドメインの検索実績を確認
- 02キーワードの検索量と難易度を調査
- 03関連語と順位獲得キーワードの検索
- 04被リンクプロフィールの要約
- 05自然検索の競合を特定
- 06トラフィックとエンゲージメントの推定
活用シーン
- 01ドメインと競合サイトの比較
- 02コンテンツ企画向けのキーワード機会の発見
- 03ドメインの自然検索順位の確認
- 04複数サイトの被リンクプロフィールの評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ openclaudia/ openclaudia-skills --skill semrush-researchインストール後、Claude Code で/semrush-researchを入力して読み込まれたか確認します。
詳細
SemRush リサーチ
SemRush API から、最新の SEO および競合分析データを取得します。
前提条件
.env、.env.local、または ~/.claude/.env.global に SEMRUSH_API_KEY が設定されている必要があります。
# Verify the key is available
echo "SEMRUSH_API_KEY is ${SEMRUSH_API_KEY:+set}"
キーが設定されていない場合は、ユーザーに次のように案内してください。
SemRush API キーが必要です。https://www.semrush.com/api/ から取得してください。 その後、
.envファイルにSEMRUSH_API_KEY=your_keyを追加してください。
API ベース
すべてのリクエストは https://api.semrush.com/ に送信し、API キーを &key={SEMRUSH_API_KEY} として渡します。
レスポンスはセミコロン区切りの CSV です。1 行目がヘッダー行です。それに従って解析してください。
1. ドメインの概要
任意のドメインのオーガニック検索と有料検索のパフォーマンスを、大まかに把握します。
エンドポイント
https://api.semrush.com/?type=domain_ranks&key={KEY}&export_columns=Dn,Rk,Or,Ot,Oc,Ad,At,Ac&domain={domain}
エクスポート列
| 列 | 意味 |
|---|---|
Dn | ドメイン |
Rk | SemRush ランク |
Or | オーガニックキーワード数 |
Ot | オーガニックトラフィックの推定値 |
Oc | オーガニックトラフィックのコスト($) |
Ad | 有料キーワード数 |
At | 有料トラフィックの推定値 |
Ac | 有料トラフィックのコスト($) |
curl の例
curl -s "https://api.semrush.com/?type=domain_ranks&key=${SEMRUSH_API_KEY}&export_columns=Dn,Rk,Or,Ot,Oc,Ad,At,Ac&domain=example.com"
レスポンスの解析
# Response format (semicolon-delimited):
# Dn;Rk;Or;Ot;Oc;Ad;At;Ac
# example.com;12345;8234;145000;234500;120;3400;5600
# Parse with awk
curl -s "..." | awk -F';' 'NR==2 {
printf "Domain: %s\nSemRush Rank: %s\nOrganic Keywords: %s\nOrganic Traffic: %s\nOrganic Traffic Cost: $%s\nPaid Keywords: %s\nPaid Traffic: %s\nPaid Traffic Cost: $%s\n",
$1,$2,$3,$4,$5,$6,$7,$8
}'
2. キーワードの概要
キーワードの検索ボリューム、CPC、競合状況、SERP 機能を取得します。
エンドポイント
https://api.semrush.com/?type=phrase_all&key={KEY}&phrase={keyword}&database=us&export_columns=Ph,Nq,Cp,Co,Nr,Td
エクスポート列
| 列 | 意味 |
|---|---|
Ph | キーワードフレーズ |
Nq | 検索ボリューム(月間) |
Cp | CPC(USD) |
Co | 競合状況(0-1) |
Nr | 検索結果数 |
Td | トレンド(12 か月分、カンマ区切り) |
curl の例
curl -s "https://api.semrush.com/?type=phrase_all&key=${SEMRUSH_API_KEY}&phrase=content+marketing&database=us&export_columns=Ph,Nq,Cp,Co,Nr,Td"
対応データベース
&database=XX を使用します。XX に指定できる値は、us、uk、ca、au、de、fr、es、it、br、in、jp です。
3. 関連キーワード
コンテンツ計画とギャップ分析のために、意味的に関連するキーワードを見つけます。
エンドポイント
https://api.semrush.com/?type=phrase_related&key={KEY}&phrase={keyword}&database=us&export_columns=Ph,Nq,Cp,Co,Nr,Td&display_limit=20
curl の例
curl -s "https://api.semrush.com/?type=phrase_related&key=${SEMRUSH_API_KEY}&phrase=project+management&database=us&export_columns=Ph,Nq,Cp,Co,Nr,Td&display_limit=20"
複数行の解析
curl -s "..." | awk -F';' 'NR>1 { printf "%-40s Vol: %-8s CPC: $%-6s Comp: %s\n", $1, $2, $3, $4 }'
4. キーワード難易度
キーワードで上位表示する難易度を推定します。
エンドポイント
https://api.semrush.com/?type=phrase_kdi&key={KEY}&phrase={keyword}&database=us&export_columns=Ph,Kd
| 列 | 意味 |
|---|---|
Ph | キーワード |
Kd | キーワード難易度(0-100) |
解釈:
- 0-29:簡単 — 質の高いコンテンツで達成可能です
- 30-49:中程度 — 充実したコンテンツと、ある程度のバックリンクが必要です
- 50-69:難しい — 強いドメインオーソリティとバックリンクが必要です
- 70-84:非常に難しい — 確立されたオーソリティが必要です
- 85-100:極めて難しい — 最上位のドメインが上位を占めています
5. ドメインのオーガニックキーワード
あるドメインがオーガニック検索でランクインしているキーワードを確認します。
エンドポイント
https://api.semrush.com/?type=domain_organic&key={KEY}&domain={domain}&database=us&export_columns=Ph,Po,Nq,Cp,Url,Tr,Tc&display_limit=50&display_sort=tr_desc
| 列 | 意味 |
|---|---|
Ph | キーワード |
Po | 順位 |
Nq | 検索ボリューム |
Cp | CPC |
Url | ランクインしている URL |
Tr | トラフィック(%) |
Tc | トラフィックコスト |
curl の例
curl -s "https://api.semrush.com/?type=domain_organic&key=${SEMRUSH_API_KEY}&domain=hubspot.com&database=us&export_columns=Ph,Po,Nq,Cp,Url,Tr,Tc&display_limit=20&display_sort=tr_desc"
6. バックリンクの概要
ドメインのバックリンクプロファイルの概要を取得します。
エンドポイント
https://api.semrush.com/analytics/v1/?key={KEY}&type=backlinks_overview&target={domain}&target_type=root_domain&export_columns=total,domains_num,urls_num,ips_num,follows_num,nofollows_num,texts_num,images_num
curl の例
curl -s "https://api.semrush.com/analytics/v1/?key=${SEMRUSH_API_KEY}&type=backlinks_overview&target=example.com&target_type=root_domain&export_columns=total,domains_num,urls_num,ips_num,follows_num,nofollows_num,texts_num,images_num"
7. 競合の特定
同じオーガニックキーワードで競合するドメインを見つけます。
エンドポイント
https://api.semrush.com/?type=domain_organic_organic&key={KEY}&domain={domain}&database=us&export_columns=Dn,Cr,Np,Or,Ot,Oc,Ad&display_limit=10
| 列 | 意味 |
|---|---|
Dn | 競合ドメイン |
Cr | 競合レベル |
Np | 共通キーワード |
Or | オーガニックキーワード |
Ot | オーガニックトラフィック |
Oc | オーガニックトラフィックコスト |
Ad | 有料キーワード |
curl の例
curl -s "https://api.semrush.com/?type=domain_organic_organic&key=${SEMRUSH_API_KEY}&domain=notion.so&database=us&export_columns=Dn,Cr,Np,Or,Ot,Oc,Ad&display_limit=10"
8. トラフィック分析(推定値)
ドメイン全体のトラフィックソースとエンゲージメントを推定します。
エンドポイント
https://api.semrush.com/analytics/ta/api/v3/summary?key={KEY}&targets={domain}&display_date=2024-01-01&country=us&export_columns=target,visits,users,bounce_rate,pages_per_visit,avg_visit_duration
ワークフロー:競合分析の全手順
ユーザーから競合分析全体を依頼された場合は、次の手順を順番に実行します。
- ドメインの概要 - 対象ドメインの指標を取得します
- 競合の特定 - 上位 5~10 件の競合を見つけます
- 各競合のドメインの概要 - 指標を比較します
- 各ドメインの上位キーワード - キーワードのギャップを見つけます
- 各ドメインのバックリンクの概要 - リンクプロファイルを比較します
出力形式
結果を比較表として提示します:
| Metric | target.com | competitor1.com | competitor2.com |
|---------------------|-----------|-----------------|-----------------|
| SemRush Rank | ... | ... | ... |
| Organic Keywords | ... | ... | ... |
| Organic Traffic | ... | ... | ... |
| Traffic Cost | ... | ... | ... |
| Backlinks | ... | ... | ... |
| Referring Domains | ... | ... | ... |
次に、以下を強調します:
- キーワードのギャップ:競合他社は上位表示されているものの、対象サイトは上位表示されていないキーワード
- クイックウィン:対象サイトが5〜20位にランクインしているキーワード(改善の機会)
- コンテンツのギャップ:競合他社は取り上げているものの、対象サイトは取り上げていないトピック
- 被リンクの機会:対象サイトにはリンクしていないものの、競合他社にはリンクしているサイト
レート制限と費用
- API 呼び出しごとに API ユニットを消費します(ご利用のプランをご確認ください)
&display_limit=を使用して結果数を制御します(デフォルト値はエンドポイントによって異なります)- 複数ステップの分析で重複した呼び出しを避けるため、結果をローカルにキャッシュしてください
- ドメイン概要の呼び出しは最も低コストです。被リンクとトラフィックの分析はより多くのコストがかかります
エラー処理
| エラー | 意味 |
|---|---|
ERROR 50 :: NOTHING FOUND | このクエリのデータがありません |
ERROR 120 :: WRONG KEY | API キーが無効です |
ERROR 130 :: LIMIT EXCEEDED | API ユニットの上限に達しました |
| 空のレスポンス | 通常、クエリパラメーターに該当するデータがありません |
「NOTHING FOUND」が表示された場合は、以下を試してください:
- 別のデータベース(例:
usではなくuk) - サブドメインではなくルートドメイン
- より広いキーワードフレーズ