如何使用正则表达式充分利用 Google Search Console API
已发表: 2022-11-02Google Search Console 是一个了不起的工具,它可以直接从 Google 为真实用户提供宝贵的搜索数据。 虽然图表和表格易于使用,但大部分数据无法从 UI 访问。
获取这些隐藏数据的唯一方法是使用 API 并提取所有可用的有价值的搜索数据——如果你知道怎么做的话。 这可以通过正则表达式实现。
PayPal 公司 Honey 的产品增长副总裁 Eric Wu 在 SMX Advanced 上发表讲话时说,这是使用正则表达式最大化 Google Search Console API 的方法。
使用 GSC 诊断 SEO 问题
在一个经历停滞或下降增长或核心更新下降的网站上工作?
大多数 SEO 专业人士求助于 Google Search Console (GSC) 来诊断此类问题。
(或者如果资源允许,您甚至可以使用 Ryte 之类的付费工具或构建自己的平台。)
对于 SEO 社区来说幸运的是,不乏可用于 GSC 分析的 Looker Studio 仪表板(以前称为 Google Data Studio),包括:
- Aleyda Solis 的免费仪表板,它使用 GSC 数据轻松识别最近几天来自 Google 核心更新的潜在排名变化。
- Google 的搜索流量监控仪表板,现在可以提取 Discover 和 Google News 流量数据。
- Hannah Butler 的 Search Console Explorer 工作室。 (如果您想亲自操作 GSC 数据并快速获得见解,您可以使用 Butler 的 Search Console Explorer 表。)
仪表板允许 SEO 查看不同趋势的概览,而不是使用 GSC 并进行多次点击以获取您需要的数据。
但是,如果您正在分析企业网站,您可能会遇到一些障碍。
- Looker Studio 和 Google 表格都加载缓慢,尤其是在处理大型网站时。
- GSC 的界面有 1,000 行的导出限制。
- GSC 有一个巨大的抽样问题。 根据 Similar.ai 的说法,企业 SEO 团队错过了 90% 的 GSC 关键字。 如果你知道如何提取数据,你实际上可以获得 14 倍的关键词。
克服 GSC 的抽样问题
Explorer for Search 是另一种可用于 GSC 分析的工具。 来自 Noah Learner 和 Two Octobers 的团队,它使用 GSC 的 API 使用数据管道构建,然后将数据输出到 BigQuery(基本上绕过 Google Sheets 并下载 CSV 文件),然后使用 Data Studio 可视化信息。
有了这个,您可以确信您可以访问几乎所有的数据。
由于 GSC 的抽样问题,仍然存在一个警告,特别是对于具有许多不同类别的大型电子商务网站。 GSC 不一定会显示来自这些目录的所有数据。
在进行各种测试以从 GSC API 中获取最多数据后,Similar.ai 团队发现了一种缩小 GSC 抽样差距的方法。
他们发现,通过在 GSC 仪表板中添加更多子目录作为不同的配置文件,您可以提取更多数据,因为 Google 会在较低级别为您提供更多信息。
例如,如果您正在查看 example.com/televisions,并且您在 GSC 个人资料中添加“televisions”作为子目录,Google 将只为您提供该子目录的关键字和点击信息。
通过添加许多不同的子目录,您可以提取更多信息。
这解决了采样问题,但您可以通过使用正则表达式获得更多数据。
使用正则表达式获取更多 GSC 数据
正则表达式或正则表达式是理解数据的强大工具。
2021 年 4 月,谷歌为 GSC 添加了正则表达式支持——为 SEO 提供了更多方式来分割有机搜索数据。
很多时候,除非你能理解,否则数据是没有用的。 正则表达式有助于从 GSC 的丰富数据中提取可操作的见解。
但尽管它可能很强大,但正则表达式可能很难学习。
了解和深入研究正则表达式的最佳地点是 Google 在 GitHub 上的官方文档。 (Google 在其产品中使用 RE2,这是一种正则表达式。)
虽然 regex 可用于各种不同的编程语言,但您几乎可以在任何地方找到它,即使是那些正在修改 .htaccess 文件的人。
在接下来的几节中,是利用 GSC 的正则表达式的用例。
正则表达式信息查询
在查看 GSC 中的实际信息搜索查询时,您通常需要了解:
- 人们实际上是如何访问您的网站的?
- 他们在提取什么问题?
从一次性的角度来看这些事情,在 GSC 中可能会很困难。
你总是在搜索“what”、“how”、“why”和“when”等词。
有几种方法可以减少使用正则表达式提取信息查询的繁琐。
Daniel K. Cheung 分享了一个正则表达式字符串,该字符串将显示所有包含“what”、“how”、“why”和“when”的查询,这些查询要么获得点击,要么获得印象:
-
"what|how|why|when"
Steve Toth 分享的这个正则表达式字符串将前面的例子提升了一个档次:
-
^(who|what|where|when|why|how)[" "]
如果要捕获以“谁”、“什么”、“哪里”、“何时”、“为什么”和“如何”开头,然后是空格的基于问题的查询,则可以使用此字符串。
当您正在寻找任何会引发问题的单词时,这是一个很好的列表:
- 是, 可以, 不能, 可以, 不能, 做过, 没有, 做, 做, 不, 如何, 如果, 是, 不是, 应该, 不应该, 是, 不是,是,不是,什么,何时,何地,谁,谁,谁,为什么,会,不会,不会,不会
将所有这些都放入正则表达式形式将如下所示:
-
^(are|can|can't|could|couldn't|did|didn't|do|does|doesn't|how|if|is|isn't|should|shouldn't|was|wasn't|were|weren't|what|when|where|who|whom|whose|why|will|won't|would|wouldn't)\s
在这个 178 个字符的字符串中:
- 您有插入符号 (
^
),它告诉您查询需要以这个词开头: - 单词用竖线(
|
)而不是逗号分隔。 - 所有单词都用括号括起来。
- 有一个反斜杠和“s”(
\s
)表示单词后面的空格。
这很好,但也可能会变得乏味。
下面,Wu 简化了之前的单词列表,使其更适合正则表达式且更短,非常适合复制和粘贴。 以这种方式维护它也有助于提高效率。
第一列是普通单词,第二列是压缩的正则表达式。
例如,单词“can”使用压缩版本can('t)?
.
问号表示括号内的任何内容都是可选的。 压缩语法允许您涵盖“can”和“can't”这两个词。
更有趣的是,您可以使用 can/could't、should/should't 和 would/would't 来执行此操作,其中单词的-ould部分是公共基础,例如(c|sh|w)ould(n't)?
. 这个简短的字符串涵盖了所有六种情况。
虽然简化了长长的单词列表会降低字符串的可读性,但很棒的是它更适合正则表达式字段并允许您更轻松地复制粘贴。
-
^(are|can('t)?|(c|sh|w)ould(n't)?|did(n't)?|do(es)?(n't)?|how|if|is(n't)?|was(n't)?|were(n't)?|wh(at|en|ere|y)who(m|se)?|will|won't)\s
如果你更进一步,你可以进一步压缩它。 在这种情况下,吴将字符数从 135 个字符减少到 113 个字符。
-
^(are|can('t)?|how|if|wh(at|en|ere|y)|who(m|se)?|will|won't|((c|sh|w)ould|did(n't)?|do(es)?|was|is|were)(n't)?)\s
正则表达式会变得非常复杂。 如果您从其他人那里得到一个正则表达式字符串,并且想消除正在做什么的歧义,您可以使用 Regexper 来帮助您将其可视化。
下面您将看到不同正则表达式字符串版本的比较。 维护第一个更容易,显然更难维护和阅读最后一个。
但有时字符数确实很重要,特别是当你有更长的正则表达式时。
根据 Google 搜索倡导者 Daniel Waisberg 的说法,GSC 的正则表达式过滤器限制为 4,096 个字符。
这似乎有点。 但是,如果您有一个电子商务网站并且必须添加域名、子域或更长的目录,那么您很可能会达到该限制。
正则表达式品牌查询
另一个在 GSC 中可能开始达到正则表达式字符限制的实例是当您将其用于品牌查询时。
当您考虑一个人可能键入的品牌名称的所有不同类型的拼写错误时,您很快就会遇到 4,096 个字符数。 例如:
- aamaung, damsung, mamsang, 三星, samsun g, samsunb, samsund, samsund, samsunh, samsunt ...
这就是理解正则表达式有帮助的地方。 使用此字符串,您可以捕获品牌名称“samsung”以及拼写错误:
-
(s+|a|d|z)[az\s]{1,4}m?[az\s]{1,6}(m|u|n|g|t|h|b|v)
很多时候,人们会拼错单词的中间部分。 但总的来说,它们的格式和长度是正确的,您可以通过这种方式处理您的语法。
对于品牌查询拼写错误,请考虑以下事项:
- 构成品牌查询的主要字母。
- 辅音。
- 围绕硬辅音的字母。
红色是人们在输入品牌名称时通常不会错过的硬辅音。 这些是构成该特定品牌的主要字母。 对于“samsung”,开头是“s”,中间是“m”,最后是“n”和“g”。
键盘上这些主要辅音周围的蓝色字母是人们通常打错的字母。 在示例中,在“s”周围,您会看到“a”、“d”和“z”。 (虽然国际键盘的布局不同,但概念仍然相同。)
上面的正则表达式字符串捕获了“samsung”的所有可能变体。
这里的另一个主要技巧是[az\s]{1,4}
。
在正则表达式形式中,这基本上是说,“我想匹配任何字母“a”到“z”,或者一个空格,一到四次。
这捕获了在品牌查询过程中可能发生的所有那些奇怪的拼写错误——一个人可能会多次按下同一个键或意外按下空格键。
此外,品牌名称有一定的长度(“三星”有七个字符)。 人们可能最终不会输入 20-50 个字符。
所以在这个正则表达式中,我们猜测在“samsung”中的“s”和“m”之间,有人会打错1-4个字符。 然后从“m”到最后的“g”,他们会打错 1-6 个字符,包括空格。
添加所有这些可以让您全面捕获品牌查询的许多变体。
另一件需要注意的是,品牌名称可能出现在查询的不同部分。
所以我们需要确保品牌名称本身被捕获。 它应该是:
- 在查询开始时。
- 在查询的中间(因此被空格包围)。
- 或在查询结束时。
正则表达式如下:
-
(^|\s)(s+|a|d|z)[az\s]{1,4}m?[az\s]{1,6}(m|u|n|g|t|h|b|v)(\s|$)
这将捕获品牌名称“samsung”位于开头、中间或结尾的所有查询。
- 字符串开头 =
^
- 被空格包围=
\s
- 字符串结束 =
$
JC Chouinard 的帖子,Google Search Console 中的正则表达式 (RegEx),更深入地探讨了正则表达式示例。
正则表达式和 GSC API 的实际应用
当 Wu 和他的团队与在核心更新后遇到流量下降的客户合作时,正则表达式非常有用。
在查看了电子商务网站的不同问题后,他们发现问题存在于某些产品详细信息页面中。
他们需要分割页面类型以在 GSC 中进行分析。 但这是一项复杂的任务,因为美国和国际产品的 URL 结构不同。
该网站的国际产品 URL 包括语言和国家/地区代码,而美国产品 URL 没有。
即使使用正则表达式语法也很棘手,因为字母和破折号存在于产品标签、类别和子类别中。 此外,他们需要过滤掉国际产品 URL 以仅捕获美国页面。
为了获得所有美国产品登陆 + 详细信息页面(不是i18n 页面),他们提出了以下正则表达式字符串:
包括: /([^/]+/){1,2}p?
排除: /[a-zA-Z]{2}|[a-zA-Z]{2}-[a-zA-Z]{2}/
这是一个细分:
该团队希望匹配类别、子类别和所有产品,因此它们包括:
- 任何不是斜线的字符 =
[^/]+
- 1 或 2 个目录 =
/){1,2}
- 有时后面跟着一个产品 slug =
p?
插入符号 ( ^
) 通常表示字符串的开头。 但是当它在括号内时(如[^/]
),它表示否定(即,“在此框中没有任何内容”)。
所以这个字符串/([^/]+/){1,2}p?
意思是“我想要任意数量的不是斜杠的字符,前导斜杠(表示目录),有时后跟字母 'p'(产品 slug 的前缀)。”
同时,团队不想匹配同样包含字母和破折号的国家和语言组合,因此他们排除了:
- 任何 2 个字母的目录 =
[a-zA-Z]{2}
- 2 个字母 + 2 个字母语言国家组合 =
[a-zA-Z]{2}-[a-zA-Z]{2}
由于所有可能的组合,他们自己创建一个正则表达式来匹配所有语言和国家代码将是乏味的,因此他们无法像信息查询那样处理这种情况(其中排除了每种单一类型的组合)。
但即使在创建了这些正则表达式字符串之后,他们也遇到了问题。
在 Google Search Console 中,只有一个字段可以粘贴正则表达式字符串。 您必须选择匹配正则表达式或不匹配正则表达式- 您不能同时使用两者。
这就是 GSC API 派上用场的地方,因为它允许加入正则表达式字符串。
在 Google Search Console API 文档中,有一个Try it now链接。
单击后,它将打开一个控制台,允许您选择一个站点并通过 Web 视图发出 API 请求。
但为了更好地管理 API 查询,Wu 建议在桌面上使用 Postman 或 Paw(Mac 原生)。
Postman 允许您创建查询并将其保存以备后用。 如果您可以访问其他网站,则不必每次都创建新查询。 您只需使用变量更改站点名称,然后发出多个请求。
另一方面,爪子更容易浏览和使用。
要访问 API,您需要获取 API 密钥。 (这是来自 Chouinard 的有用教程。)
获得此信息后,您将获得您的客户端 ID 和客户端机密,您将在 Postman 或 Paw 中将其添加到您的 OAuth 2.0 身份验证中。
从那里,您将能够使用您的普通帐户登录。
Wu 主要使用 Paw 中的正则表达式字符串发出 GSC API 请求。 在界面中间输入查询。
来自 Google 的响应类似于 GSC API 网络视图的响应。 然后可以导出数据进行处理。
由于数据采用 JSON 格式,因此信息可能很混乱且难以阅读。
为此,您可以使用名为 JQ 的免费开源命令行 JSON 处理器来漂亮地打印信息。
在您将数据放入电子表格之前,这些数据并不是那么有用。 管道输入您从 Paw 导出到 JQ 的文件。 打开它,然后遍历每一行——保存每个元素,以便您可以将它们输出到 CSV。
在这里,您需要转换浮动的点击次数和展示次数(有小数位的数字)。 两者都需要转换为与 CSV 兼容的字符串。
然后 JQ 将输出以下更简单的格式。
接下来,您将使用 Dasel 获取此格式,然后将其转换为 CSV。
这是最终结果。
让 Wu 的团队感到惊奇的是,他们能够使用 Google Search Console API 和正则表达式来:
- 过滤掉所有国际查询,只查看他们遇到主要问题的美国。
- 确定网站出现问题的日期。
观看:充分利用 Google Search Console API
以下是吴的 SMX 高级演示的完整视频。