DataForSEO 替代方案,作为操作术语表阅读
一个可以放在笔记本旁随时查阅的参考。首先是操作及其价格,然后是当链接表进入 R 语言时容易让人困惑的词汇。
CranSEO 研究团队 ·

找到你需要的操作,记下其信用成本,然后查看下方的术语列表以了解任何不熟悉的术语。我们在此不列出列名,因为你应该从自己的 glimpse() 输出中读取它们。
操作:一次调用能带来什么
| 操作 | 信用 | 你获得的内容 |
|---|---|---|
| domain, overview, stats, suggest | 免费 | 域名的快速概况和建议;无需密钥 |
| bulk_dr | 1 | 每次调用最多查询 2,000 个域名的 DR |
| compare | 1 | 最多 20 个域名的并列数据 |
| top, dr_distribution, tld_breakdown | 1 | 排名和索引分布 |
| refdomains, backlinks | 2 | 引用域名或单个链接的行 |
| anchors, toppages, anchor_cloud | 2 | 锚文本和最多链接的页面 |
| intersect | 2 | 同时链接到 2 到 10 个目标的域名 |
| search, keyword | 3 | 对锚文本、标题和 URL 的全文搜索;精确锚文本查找 |
在数据框中让人困惑的术语
| 术语 | 字面含义 |
|---|---|
| 引用域名 | 链接到你的独立站点,无论它发送多少链接,只计算一次 |
| 反向链接 | 从一个页面到另一个页面的一个链接;许多链接可以来自同一个引用域名 |
| DR | round(100 log(ref_domains + 1) / log(2 10^7));对数刻度,因此 10 到 20 比 70 到 80 更容易理解 |
| 锚文本 | 链接的可点击文本,作为分类列很有用 |
| 链接图 | 我们自己的爬虫的域名间链接地图:2,774,625,913 个链接 |
| 快照 | 索引的月度状态;在每次提取时记录其日期 |
| 信用 | 计费单位,每个 $0.0001;无论行数多少,一次调用只计费一次 |

每个操作中一行的含义
如果你是因搜索 DataForSEO 替代方案而来到这里,本术语表展示了纯链接操作在行级别返回的内容。行的含义至关重要。大多数人一开始都会搞错,而这部分也是成本最高的。
引用域名与反向链接
引用域名无论发送多少链接都只计算一次。反向链接是一个页面到另一个页面的一个链接,因此单个站点可以贡献多个反向链接。如果你的图表显示的是链接,但行是域名,那么该数字是域名计数,应以此方式标记。
在第一次连接之前确定粒度。上面的操作表是参考,用于确定哪个调用返回哪种粒度。
混合这两种粒度的表格看起来像是链接计数,而实际上是站点计数。在汇总任何内容之前,先通过肉眼检查前几行。
将锚文本作为分类,而非键
锚文本作为分类列效果很好。你可以将锚文本分为品牌、通用和裸 URL 类别,然后按引用域名计算每个类别的数量。它不是一个好的键,因为相同的词会出现在不相关的链接中。
保持锚文本为文本格式,在导入时将其转换为小写一次,并且不要基于它连接两个表。
快照日期
快照是索引的月度状态。在每次提取时,将日期存储在文件名或列旁边,以便跨月比较时能够进行正确的对比。
具有不同快照日期的两次提取,在检查日期是否与图表声称的一致之前,不能视为趋势。
一个有用的习惯是将快照日期写入每份报告的第一行,这样打印出来的页面也会包含它。读者可能会忘记日期在文件中的位置,但他们确实会阅读第一行。
平均值掩盖了尾部
对数刻度上的平均值会产生误导。20 和 60 的平均值是 40,但这个数字既不能描述任何一个站点,也不能说明分布情况。
在任何平均值旁边保留最小值和最大值。一个非常大的域名可能会拉高平均值,而图表读者无法仅从平均值中看出这一点。
像数据模型一样阅读操作表
每个操作都以特定级别返回行,混合级别是重复计数的最快方式,因此要考虑粒度。
refdomains 为每个链接站点提供一行,backlinks 为每个链接提供一行,anchors 为每个不同的锚文本提供一行。前两者之间的连接会倍增行数,因此在合并之前进行聚合,并在合并前后检查 nrow()。
分页在所有地方都相同:page 和 per,per 在 10 到 5000 之间,按 sort 和 order=asc|desc 排序。每次调用最多返回 1,000 行,深度分页在 50,000 处停止,因此请求将答案排在前面的排序方式。
长表而不是每次提取一个工作表
为每个月打开一个新工作表的习惯很常见。偏差就在那里开始,而且很难撤销。单个长表更容易保持正确。它也更容易检查。
这样思考。每个月向一个表添加行,而不是创建一个新的对象来维护。表会变长,但没有任何单个数字需要手动复制。然后,每一行都携带自己的快照、来源和粒度,读者可以一目了然地进行检查。
带有快照列的单个长表
许多人每个月开始一个新工作表。带有快照列的长表将每个月的都保存在一个地方,过滤器可以替代复制和粘贴。假设你在六个月内为 30 个站点提取引用域名。那是一个要检查的表,而不是六个要核对的工作表。
然后汇总变成一个 group_by() 调用,而不是每个月一个工作表。保持原始提取不变,以便可以随时从头重建表。
相同的列,否则连接会静默失败
只有当多个人的文件共享列名、类型和编码时,它们才能干净地组合。在绑定它们之前检查每个文件的标题行,如果其中一个不同,则停止脚本。
将旧名称映射到术语表名称的重命名步骤需要几行代码。它可以节省在因不匹配而产生的每张图表上进行二次检查的时间。
保留一个笔记本期望的列名简短列表,并在运行任何其他内容之前将每个新文件与之进行比较。

在任何建模之前的两个警告
因为 DR 是我们的自有指标,仅基于引用域名计数构建,所以它不是 Moz DA。永远不要将其与 Ahrefs DR 混合在一个回归分析中。
计数也取决于爬取。在 2024 年 3 月核心更新后突然激增的站点可能只是本月爬取得更彻底,所以在告诉客户任何事情之前,请检查快照日期。
将术语表视为与未来自己的契约。如果六个月后某列让你感到惊讶,上面的定义就是你应该假设的内容。
自己列名的习惯
在导入时重命名,并且只做一次。
在连接任何内容之前,按操作对列进行前缀命名,例如 refdomains 或 anchors,以便合并永远不会产生两个在不同名称下含义不同的列。将重命名步骤写入函数,并在每次触及 API 的笔记本中重用。
这需要五行代码,但可以避免关于列含义的争论,这是链接报告中错误数字的最常见来源。
分五步阅读链接表
查看粒度
在读取任何数字之前,使用上面的操作表检查一行代表什么。
检查快照
在文件名或列中找到快照日期,并确认它与你打算提取的日期匹配。
计算行数
将 nrow() 与你预期的计数进行比较,并在读取旁边的注释中写下差异。
读取范围
查看 DR 和计数的最小值和最大值。DR 在 0 到 100 之外表明是解析问题,而不是发现。
命名列
在连接任何内容之前,将每列重命名为其操作前缀,例如 refdomains 或 anchors。
关于操作和术语的问题
这些是第一次将链接表带入 R 语言时往往会遇到的问题。
我应该从哪个操作开始?
从 domain 或 overview 开始,因为它们都是免费的且不需要密钥。它们可以在你花费信用之前展示响应的形状。
一旦形状清晰,就转向 bulk_dr,因为单次调用只需一个信用即可为多达 2,000 个域名评分。
为什么我的计数与其他工具不同?
每个提供商按照自己的时间表爬取网络并以不同的方式计算链接。我们的链接图大约每月刷新一次,这里的 DR 是我们自己的对数刻度数字。
比较跨月的趋势,而不是精确匹配。
DR 是如何计算的?
DR 等于 round(100 log(ref_domains + 1) / log(2 10^7))。
它取决于一个输入,因此你可以从引用域名提取中重新计算它。
每个操作都需要密钥吗?
免费操作无需密钥即可运行。付费操作将密钥作为查询参数或在 Authorization Bearer 标头中获取。
缺失或错误的密钥会返回 HTTP 401,这是调用失败时要检查的第一个错误。