SeerMarTech 文档控制台

外链对比分析

对比自己与竞品的外链数量、引用域质量、锚文本分布,找出链接建设差距与机会。

涉及 API

API用途
引用域查询 Live宏观对比引用域数量与质量
外链查询 Live深入分析高权重外链来源
锚文本 Live锚文本分布与过度优化检测

需要 API Key 具备 backlinks scope,见 外链分析 API 概览

工作流

1. 确定对比对象(自己 + 2–3 竞品) 2. referring_domains → 引用域数量 & Top 域对比 3. backlinks → 竞品有、自己没有的高权重来源 4. anchors → 锚文本健康度对比 5. 输出 gap 报告 + 外链建设优先级

Python 对比脚本

import requests from dataclasses import dataclass API_KEY = "smt_live_YOUR_KEY" BASE = "https://api.seermartech.cn/v3/backlinks" HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"} DOMAINS = { "mine": "mysite.com", "competitor_a": "competitor-a.com", "competitor_b": "competitor-b.com", } @dataclass class DomainProfile: domain: str referring_domains: int top_domains: list top_anchors: list def get_referring_domains(target: str, limit: int = 100) -> list: resp = requests.post( f"{BASE}/referring_domains/live", headers=HEADERS, json=[{"target": target, "limit": limit, "order_by": ["rank,desc"]}], timeout=120, ) resp.raise_for_status() return resp.json()["tasks"][0]["result"][0]["items"] def get_anchors(target: str, limit: int = 20) -> list: resp = requests.post( f"{BASE}/anchors/live", headers=HEADERS, json=[{"target": target, "limit": limit, "order_by": ["backlinks,desc"]}], timeout=120, ) resp.raise_for_status() return resp.json()["tasks"][0]["result"][0]["items"] def profile(label: str, domain: str) -> DomainProfile: refs = get_referring_domains(domain) anchors = get_anchors(domain) return DomainProfile( domain=domain, referring_domains=len(refs), top_domains=[r.get("domain") for r in refs[:5]], top_anchors=[a.get("anchor") for a in anchors[:5]], ) def find_gap(mine: DomainProfile, competitor: DomainProfile) -> list[str]: """找出竞品有、自己没有的引用域""" my_refs = set(get_referring_domains(mine.domain, 200)) my_domains = {r.get("domain") for r in my_refs} comp_refs = get_referring_domains(competitor.domain, 200) return [r.get("domain") for r in comp_refs if r.get("domain") not in my_domains][:20] # 运行对比 profiles = {label: profile(label, domain) for label, domain in DOMAINS.items()} print("=== 引用域对比 ===") for label, p in profiles.items(): print(f"{label:15} {p.domain:25} refs={p.referring_domains:4} top={p.top_domains[:3]}") print("\n=== 锚文本 Top 5 ===") for label, p in profiles.items(): print(f"{label}: {p.top_anchors}") gap = find_gap(profiles["mine"], profiles["competitor_a"]) print(f"\n=== Gap 机会(竞品 A 有、我没有的域)===\n{gap[:10]}")

TypeScript

const API_KEY = "smt_live_YOUR_KEY"; const BASE = "https://api.seermartech.cn/v3/backlinks"; async function getReferringDomains(target: string) { const resp = await fetch(`${BASE}/referring_domains/live`, { method: "POST", headers: { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify([{ target, limit: 100, order_by: ["rank,desc"] }]), }); const data = await resp.json(); return data.tasks[0].result[0].items; } async function compareDomains(mine: string, competitors: string[]) { const myRefs = new Set((await getReferringDomains(mine)).map((r: { domain: string }) => r.domain)); for (const comp of competitors) { const compRefs = await getReferringDomains(comp); const gap = compRefs.filter((r: { domain: string }) => !myRefs.has(r.domain)); console.log(`Gap vs ${comp}:`, gap.slice(0, 10).map((r: { domain: string }) => r.domain)); } }

报告输出建议

模块内容
引用域概览自己 vs 竞品引用域数、高质量域(rank > 50)占比
Gap 列表竞品有、自己没有的 Top 20 引用域
锚文本健康度品牌词 / 商业词 / 通用词比例对比
行动建议优先 outreach 的域名类型(行业媒体、工具目录等)

成本估算

操作调用次数参考费用
3 域 × referring_domains3≈ ¥0.96 each
3 域 × anchors3≈ ¥0.96 each
1 次 gap backlinks 深挖1–5≈ ¥0.96–5
完整对比~9 次≈ ¥9–16

最佳实践

  1. 定期对比:建议每季度跑一次完整外链对比
  2. limit 控制:初步对比 limit: 100 足够;深挖 gap 时提高到 200–500
  3. nofollow 过滤:outreach 目标优先 dofollow 外链
  4. 结合 SERP:引用域 gap 大的竞品,往往 SERP 表现也更好,见 竞品 SERP 分析
  5. 权限:确保 Key 已开通 backlinks scope

相关文档