构建工具以了解内容性能

已发表: 2020-09-03

内容是推动入站营销策略的主要力量之一,而搜索引擎优化是实现这一目标的一个组成部分。 通常,这将涵盖页面 SEO 的基础知识:文章结构、关键字放置、元标签、标题标签、替代文本、标题、结构化数据,以及使用格式在列表和表格中创建非正式结构化数据。

使用 OnCrawl 审核页面 SEO 作为内容管理的一部分。

当您开始大规模优化或监控时,这属于技术 SEO 的范畴,无论是通过站点审核还是定期爬网,通过机器生成的自然语言元描述、片段控制标签或结构化数据注入。

然而,在内容性能方面,技术 SEO 和内容营销的交叉点更大:我们查看相同的原始数据,例如 SERP 上的页面排名,或点击次数、印象数和会话数。 我们可能会实施相同类型的解决方案,或使用相同的工具。

什么是内容表现?

内容表现是观众如何与内容互动的可衡量结果。 如果内容正在推动入站流量,那么该流量的衡量标准会反映该内容的工作效果如何。 每个内容策略都应基于具体目标定义其特定的 KPI。 大多数将包括以下指标:

  • 内容在搜索中的可见度(SERP 中的展示次数)
  • 相关搜索引擎对内容的看法如何(在 SERP 上排名)
  • 相关搜索者认为内容的搜索列表如何(来自 SERP 的点击)
  • 有多少人查看内容(分析解决方案中的访问或会话)
  • 有多少人以促进业务目标的方式与内容交互(转化跟踪)

到现在为止还挺好。

困难在于放置光标:什么数字意味着你有好的内容表现? 什么是正常的? 你怎么知道什么时候做得不好?

下面,我将分享我的实验,以构建一个低技术工具的“概念证明”来帮助回答这些问题。

为什么需要内容性能标准?

以下是我想回答的一些问题,作为我自己对内容策略的审查的一部分:

  • 就表现而言,内部内容和客座帖子之间是否存在差异?
  • 有没有我们正在推动的科目表现​​不佳?
  • 我如何识别“常青”帖子而无需等待三年,看看它们是否仍在吸引每周流量?
  • 我如何识别来自第三方促销的小幅提升,例如当我们在促销雷达中发现的新闻通讯中的帖子时,以便立即调整我们自己的促销策略并利用增加的知名度?

但是,要回答这些问题中的任何一个,您需要知道您正在使用的网站上的“正常”内容性能是什么样的。 如果没有该基线,就不可能定量地说明特定内容或类型的内容是否表现良好(优于基线)。

设置基线的最简单方法是查看每篇文章发表后每天的平均会话数,其中第 0 天是发表日期。

这将产生一条看起来像这样的曲线,显示初始兴趣的峰值(如果您没有将分析限制在仅来自搜索引擎的会话,则可能是您所做的任何促销的结果),然后是长尾较低的利息:

典型帖子的真实数据:发布日期或发布日期之后不久的峰值,然后是长尾,在许多情况下,最终会带来比原始峰值更多的会话。

一旦您知道每个帖子的曲线是什么样子,您就可以将每条曲线与其他曲线进行比较,并确定什么是“正常”,什么不是。

如果您没有工具来执行此操作,那将是一件令人头疼的事情。

当我开始这个项目时,我的目标是使用 Google Sheets 来构建概念证明——在承诺学习足够多的 Python 来改变我检查内容性能的方式之前。

我们将把这个过程分解成几个阶段和步骤:

  1. 找到你的基线
    - 列出你想学习的内容
    – 了解每天收到的每条内容的会话数
    – 将会话列表中的日期替换为自发布以来的天数
    – 计算“正常”曲线以用作基线
  2. 识别看起来不像基线的内容
  3. 保持最新

找到您的内容性能基准

列出你想学习的内容

首先,您需要建立一个要检查的内容列表。 对于每条内容,您都需要 URL 和发布日期。

无论您是手动构建还是使用自动化方法,您都可以随心所欲地获取此列表。

我使用 Apps 脚本使用 API 直接从 CMS(在本例中为 WordPress)中提取每个内容 URL 及其发布日期,并将结果写入 Google 表格。 如果您对脚本或 API 不满意,这仍然相对容易; 您可以在网上找到多个关于如何为 WordPress 执行此操作的示例。

请记住,您需要将此数据与每个帖子的会话数据进行比较,因此您需要确保此表上的“slug”与您的分析解决方案提供的 URL 路径的格式相匹配。

我发现在上面的 E 列中构建完整的 slug(URL 路径)比修改从 Google Analytics 中提取的数据更容易。 它的计算量也更少:这个列表中的行更少!

为该站点创建完整 URL 的示例公式:在表格中查找 CMS 提供的类别编号并返回类别名称,该名称位于文章 slug 之前,与该站点的 URL 模式匹配 (https://site .com/categoryName/articleSlug/)

如果您无权访问后端,则可以通过从您的网站本身抓取此信息来创建您的列表,例如,在抓取期间。 然后,您可以导出所需数据的 CSV 文件,并将其导入 Google 表格。

在 OnCrawl 中设置数据字段以从网站的博客中抓取发布日期。

OnCrawl 的数据资源管理器中的数据,包括 URL 和抓取的发布日期,可供导出。

了解每条内容每天获得的会话次数

接下来,您需要每个内容片段和每天的会话列表。 换句话说,如果一段内容存在 30 天,并且在此期间每天都有访问量,那么您希望它有 30 行,以此类推其他内容。

为此,您需要在同一文档中使用单独的表格。

谷歌表格的谷歌分析插件使这相对容易。

从包含所需数据的 Google Analytics(分析)视图中,您可以请求以下报告:

日期指标方面
从 1000 天前
直到昨天。今天的数据还没有完成,因为这一天还没有结束。 如果你把它包括在内,它看起来不会像“正常”的完整一天,并且会降低你所有的统计数据。
会话

我们对会话的数量感兴趣。

登陆页面
这会分别列出每个着陆页的会话。日期
这会分别列出每个日期的会话,而不是给我们一个 1000 天的总数。

在此阶段使用您的 Google Analytics(分析)数据片段非常有帮助。 例如,您可以将报告限制为仅包含您有兴趣分析的内容 URL 的分段,而不是整个站点。 这显着减少了生成报告中的行数,并使数据在 Google 表格中的处理更加简单。

此外,如果您打算仅出于严格的 SEO 目的查看有机性能,则您的细分应排除不能归因于 SEO 工作的获取渠道:推荐、电子邮件、社交……

不要忘记确保限制足够高,以免错误地截断数据。

计算发布后的天数

为了计算文章中每个数据点的发布天数,我们必须将会话报告中的数据加入(或者,如果您是 Data Studio 用户,“混合”)到您的内容列表中的数据.

为此,请使用 URL 或 URL 路径作为键。 这意味着在 CMS 表格和 Google Analytics(分析)报告中,URL 路径的格式需要相同。

我创建了一个单独的表格,这样我就可以在我的分析报告中从登陆页面中删除任何参数。 这是我设置列的方式:

  • 登陆页面
    从 Analytics 报告中的 URL slug 清除参数
    示例公式:

  • 日期
    记录会话的日期,来自 Analytics 报告
    示例公式:

  • 会话
    记录会话的日期,来自 Analytics 报告
    示例公式:

  • 发表后的天数
    在我们刚刚创建的 CSM 表的列中查找此 URL 的发布日期,然后从记录这些会话的日期中减去它。 如果在 CMS 表中找不到 URL,则报告空字符串而不是错误。
    示例公式:

请注意,我的查找键——完整的 URL 路径——不是我数据中最左边的列; 出于 VLOOKUP 的目的,我不得不将 E 列移到 C 列之前。

如果您有太多行无法手动填写,您可以使用如下脚本复制第一行的内容并填写接下来的 3450 左右:

 函数 FillDown() {
    var 电子表格 = SpreadsheetApp.getActive();
    电子表格.getRange('F2').activate();
    电子表格.getActiveRange().autoFill(spreadsheet.getRange('F2:F3450), SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
};

计算发布后每天的“正常”会话数

为了计算正常会话数,我使用了一个非常简单的数据透视表,并配以图表。 为简单起见,我首先查看了发布后每天的平均会话数。

这是发布后 1000 天内会话的平均值与中位数。 在这里,我们开始 (?) 了解 Google 表格作为数据可视化项目的局限性:

这是一个 B2B 网站,整个网站的工作日会话高峰; 它每周发表几次文章,但总是在同一天。 你几乎可以看到每周的模式。

在这种情况下,出于可视化目的,最好查看滚动的 7 天平均值,但这里有一个快速版本,自发布以来仅平滑了几周:

尽管有这种长期观点,但对于接下来的步骤,我会将图表限制在发布后 90 天,以便以后保持在 Google 表格的限制范围内:

寻找异常

既然我们知道了任何一天的平均帖子是什么样的,我们就可以将任何帖子与基线进行比较,以确定它是表现出色还是表现不佳。

如果您手动操作,这很快就会“失控”。 除了双关语,让我们至少尝试自动化其中的一些。

每个帖子(不到 90 天)都需要与我们刚刚为 90 天窗口中的每一天建立的基线进行比较。

对于这个概念验证,我计算了与每日平均值的百分比差异。

为了进行严格的分析,您需要查看每天会话的标准偏差,并确定单个内容片段的性能与基线有多少标准偏差。 与平均性能相差三个标准差的会话计数比与当天平均值相差超过 X% 的会话计数更有可能是异常情况。

我使用数据透视表来选择在此期间至少有一天异常的每条内容(过去 90 天内的会话):

在 Google 表格中,数据透视表不能创建超过 100 列。 因此,此分析的限制为 90 天。

我绘制了这张表。 (理想情况下,我想为每篇文章绘制整个 90 天的曲线,但如果我点击一条曲线,我也希望工作表能够做出响应。)

保持最新:自动更新

这里有三个主要元素:

  1. 基线
  2. 您要跟踪的内容
  3. 这些内容的表现

不幸的是,这些都不是静态的。

从理论上讲,随着您更好地定位和推广您的内容,平均性能会不断变化。 这意味着您需要经常重新计算基线。

如果您的网站有季节性高峰和低谷,则可能值得查看较短时间段或每年同一时期的平均值,而不是像我们在这里所做的那样创建合并。

随着您发布更多内容,您也需要跟踪新内容。

当我们想查看下周的会议日期时,我们不会有它。

换句话说,这个模型需要或多或少地更新。 有多种方法可以自动更新,而不是每次您有兴趣查看时都从头开始重新构建整个工具。

最容易实施的可能是安排每周更新一次分析会话,同时拉出新帖子(及其发布日期)。

我们使用的 Google Analytics(分析)报告可以轻松安排为定期自动运行。 缺点是它会覆盖过去的报告。 如果您不想运行和管理完整报告,可以将其限制在较短的时间段内。

出于我的目的,我发现查看 7 天的窗口可以为我提供足够的信息来处理,而不会过时。

密切关注 90 天窗口之外的常青帖子

使用我们之前生成的数据,假设可以确定大多数帖子平均每周大约 50 个会话。

因此,无论发布日期如何,关注每周会话超过 50 的任何帖子都是有意义的:

文章按出版时间着色:过去 90 天(蓝色)、过去一年(橙色)和旧版(灰色)。 每周总数通过将它们与会话目标 50 进行比较来进行颜色编码。

分解一周中每天的总会话数可以很容易地快速区分性能相当一致的常绿帖子与性能不均匀的事件驱动活动:

常绿含量(±20/天的持续性能)

可能的外部晋升(短期高峰之外的普遍低绩效)

您如何处理这些信息将取决于您的内容策略。 您可能想考虑这些帖子如何转换您网站上的潜在客户,或将它们与您的反向链接配置文件进行比较。

用于内容分析的 Google 表格的限制

正如您此时可能已经注意到的那样,Google 表格是用于此类分析的极其强大但有限的工具。 这些限制是我不愿与您共享模板的原因:根据您的情况调整它需要大量工作——但您可以获得的结果仍然只是粗略绘制的近似值。

以下是该模型未能提供的一些要点:

  • 公式太多了。
    如果您有很多(例如,数千个)活动内容 URL,它可能会非常慢。 在我的每周更新脚本中,我会在计算出许多公式后将其替换为它们的值,以便文件在我稍后打开它进行分析时真正响应。
  • 静态基线。
    随着我的内容表现的提高,我只是有更多的内容片段“表现出色”。 基线需要每隔几个月重新计算一次以解释进化。 使用无监督机器学习模型来计算平均值(甚至跳过此步骤并直接识别异常)很容易解决这个问题。
  • “不准确”的基线。
    基线不考虑季节性变化或站点范围内的事件。 它对极端事件也非常敏感,特别是如果您将计算限制在较短的时间段内:

统计上不合理的异常值分析。
特别是如果每​​个内容项每天没有很多会话,声称与平均值相差 10% 就构成了不寻常的表现,这有点粗略。

任意限制为 90 天的分析。
任何任意限制都是一个问题。 在这种情况下,它使我无法理解常青内容的性能,并使我对其性能的任何峰值视而不见——尽管我从谷歌分析知道非常老的文章偶尔会突然引起关注,或者某些文章稳步获得关注他们老了。 这在工具中是不可见的,但如果您绘制它们的曲线,则它是:

  • 纸张长度问题。
    我的一些公式和脚本需要一系列单元格。 随着会话报告中的站点和行的增长,这些范围需要更新。 (但它们不能超过工作表上存在的行数,否则其中一些会产生错误。)
  • 无法为每条内容绘制完整曲线。
    来吧,我想看到一切!
  • 与图形结果的交互性有限。
    如果您曾经尝试在 Google 表格中的多曲线图上选择一个点(或曲线)……您就会知道我在说什么。 当您在同一张图上有超过 20 条曲线并且颜色开始看起来都一样时,情况会更糟。
  • 在没有会话的情况下忽略表现不佳的内容的可能性。
    使用我在这里介绍的方法,很难识别始终没有会话的内容。 因为它从未出现在 Google Analytics(分析)报告中,所以它不会在工作流程的其余部分(目前)中被提取出来。 持续表现不佳的内容几乎没有价值,因此除非您正在寻找要修剪的页面,否则表现不佳的内容可能不会在性能报告中占有一席之地。
  • 无法适应实时分析。
    虽然重新运行报告、平均和更新后脚本并不是特别费力,但这些仍然是每周编程更新之外的手动操作。 如果每周更新是在星期三,而你在星期二问我情况如何,我不能只查阅表格。
  • 扩展的限制。
    在此报告中添加分析轴(例如排名或关键字跟踪,甚至按地理区域过滤选项)将是繁重的。 它不仅会加剧一些现有问题,而且实现可读、可操作的可视化也将非常困难。

结论?

在机器学习或编程环境中运行相同类型的计算可以解决几乎所有这些问题。 这将是对大量数据运行半复杂操作的更好方法。 此外,还有一些优秀的库使用机器学习来可靠地检测基于给定数据集的异常情况; 有更好的数据可视化工具。

内容性能要点

内容性能分析,即使使用原始和有缺陷的方法,也会加强内容策略中的警报和数据驱动决策。

具体来说,了解内容性能可以让您:

  • 了解初始促销与长尾活动的价值
  • 快速发现表现不佳的帖子
  • 利用外部促销活动来扩大影响力
  • 轻松识别是什么让某些帖子如此成功
  • 确定始终优于其他人的某些作者或某些主题
  • 确定 SEO 何时开始对会话产生影响

这些数据推动了明智的决策,以促进内容——以及何时和如何——、主题选择、受众分析等。

最后,像这样的实验表明,您可以获得数据的任何领域都可能用于编码、脚本和机器学习技能。 但是,如果您不具备所有这些技能,则不必放弃制作自己的工具。

开始免费试用