学术科研
需要竞品 SEO、关键词、外链或流量估算时,用…
当你要做竞品分析、域名概览、关键词研究、外链检查或流量估算时,调用 SemRush API 拉取数据并整理成 SEO 竞争情报。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要竞品 SEO、关键词、外链或流量估算特定
解决思路
- 确认 `SEMRUSH_API_KEY` 已设置在 `.env`、`.env.local` 或 `~/.claude/.env.global` 中;用 `echo "SEMRUSH_API_KEY is ${SEMRUSH_API_KEY:+set}"` 验证。
- 若 key 未设置,告知用户:需要 SemRush API key,到 https://www.semrush.com/api/ 获取,然后把 `SEMRUSH_API_KEY=your_key` 加到 `.env` 文件。
- 所有请求发往 `https://api.semrush.com/`,并在 URL 中传 `&key={SEMRUSH_API_KEY}`;响应是分号分隔的 CSV,第一行是表头,按此解析。
- Domain Overview:请求 `https://api.semrush.com/?type=domain_ranks&key={KEY}&export_columns=Dn,Rk,Or,Ot,Oc,Ad,At,Ac&domain={domain}`。列含义:`Dn`=Domain,`Rk`=SemRush Rank,`Or`=Organic keywords count,`Ot`=Organic traffic estimate,`Oc`=Organic traffic cost ($),`Ad`=Paid keywords count,`At`=Paid traffic estimate,`Ac`=Paid traffic cost ($)。示例 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"`。解析:用 `awk -F';' 'NR==2 { ... }'` 读取第2行 $1-$8,输出 Domain、SemRush Rank、Organic Keywords、Organic Traffic、Organic Traffic Cost、Paid Keywords、Paid Traffic、Paid Traffic Cost。
- Keyword Overview:请求 `https://api.semrush.com/?type=phrase_all&key={KEY}&phrase={keyword}&database=us&export_columns=Ph,Nq,Cp,Co,Nr,Td`。列含义:`Ph`=Keyword phrase,`Nq`=Search volume (monthly),`Cp`=CPC (USD),`Co`=Competition (0-1),`Nr`=Number of results,`Td`=Trend (12 months, comma-separated)。示例 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`。
- Related Keywords:请求 `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"`。解析多行:用 `awk -F';' 'NR>1 { ... }'` 对每一行输出 $1 为关键词、$2 为 Vol、$3 为 CPC、$4 为 Comp。
- Keyword Difficulty:请求 `https://api.semrush.com/?type=phrase_kdi&key={KEY}&phrase={keyword}&database=us&export_columns=Ph,Kd`。列含义:`Ph`=Keyword,`Kd`=Keyword difficulty (0-100)。解读:0-29 Easy,30-49 Moderate,50-69 Hard,70-84 Very hard,85-100 Extremely hard。
- Domain Organic Keywords:请求 `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`=Keyword,`Po`=Position,`Nq`=Search volume,`Cp`=CPC,`Url`=Ranking URL,`Tr`=Traffic (%),`Tc`=Traffic cost。示例 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"`。
- Backlink Overview:请求 `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"`。
- Competitor Discovery:请求 `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`=Competitor domain,`Cr`=Competition level,`Np`=Common keywords,`Or`=Organic keywords,`Ot`=Organic traffic,`Oc`=Organic traffic cost,`Ad`=Paid keywords。示例 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"`。
- Traffic Analytics (Estimates):请求 `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`。
- Full Competitive Analysis 工作流:按顺序执行——(1) Domain Overview 获取目标域名指标;(2) Competitor Discovery 找 top 5-10 竞品;(3) 对每个竞品跑 Domain Overview 比较指标;(4) 对每个域名跑 Top Keywords 找 keyword gaps;(5) 对每个域名跑 Backlink Overview 比较 link profiles。
- 输出格式:呈现为对比表:列为 `Metric`、`target.com`、`competitor1.com`、`competitor2.com`;行包括 `SemRush Rank`、`Organic Keywords`、`Organic Traffic`、`Traffic Cost`、`Backlinks`、`Referring Domains`。
- 然后突出:`Keyword gaps`(关键词缺口:竞品排名但目标未排名的关键词);`Quick wins`(快速见效:目标排名 positions 5-20 的可改进关键词);`Content gaps`(内容缺口:竞品覆盖但目标未覆盖的主题);`Backlink opportunities`(外链机会:链接到竞品但未链接到目标的站点)。
- Rate Limits and Costs:每次 API call 消耗 API units(查看你的 plan);用 `&display_limit=` 控制返回数量(默认因 endpoint 而异);多步分析时本地 cache 结果,避免重复调用;Domain Overview 调用最便宜,Backlink 和 Traffic Analytics 更贵。
- Error Handling:`ERROR 50 :: NOTHING FOUND`=该查询无数据;`ERROR 120 :: WRONG KEY`=无效 API key;`ERROR 130 :: LIMIT EXCEEDED`=API unit 限额用尽;空响应=通常该查询参数无数据。遇到 NOTHING FOUND 时尝试:换不同 database(例如用 `uk` 代替 `us`);用 root domain 代替 subdomain;用更宽的 keyword phrase。
适用边界 · 注意事项
- 没有 SemRush API key 或无法承担 API unit 成本时不要用;可改用其他免费/自建数据源。
- 只需要非 SEO 数据,或不需要竞品、关键词、外链、流量情报时不要用。
- 目标数据 SemRush 不覆盖(小语种、极细分领域)且多次 NOTHING FOUND 时不要强用。