Google 5月4日核心更新对Discourse论坛的影响

我今天早些时候正在查看我们的 Google 搜索结果,我们也发现,自 5 月 4 日以来,从搜索结果到我们 Discourse 实例(discourse.julialang.org)的流量显著下降了(约 30%)。我之前没有注意到,因为 Discourse 仅占我们页面浏览量的约一半,而网站其余部分在此次更新后流量有所增长,因此整体影响只是略微为负。但如果在同一域名下将 Discourse 与非 Discourse 内容分开来看,情况就非常明显了。流量正在缓慢回升,但增长速度与网站其余部分基本一致。关于 LCP(最大内容绘制)问题,有什么可以解决的吗?这似乎是 Google 惩罚的一个主要因素(我在 Search Console 中也看到了数万起 LCP 投诉)。Google 的指标显示,我们许多 Discourse 页面的移动端 LCP 约为 3 秒,这似乎相当高。这看起来是 Discourse 的普遍问题。例如,如果我对当前这个线程运行报告,得到的 LCP 为 3.3 秒。不幸的是,我不是网页开发者,所以提不出具体的建议,但希望对此更了解的人能给出一些建议。如果能找回那 30% 的流量,那就太好了 :slight_smile:

10 个赞

这是我们带有每周平滑处理的搜索展示量图表,按 Discourse 和域内其余部分(我假设其具有相同的全站信任评级)分开显示。5 月的更新非常明显。具有讽刺意味的是,在同一周,我们网站的其余部分出现了一次与 Discourse 无关的流量激增,但整体来看,Discourse 的展示量明显下降,而网站其余部分的展示量则基本保持稳定(忽略那次无关的流量激增)。

5 个赞

这正是我几个月来一直在抱怨的问题,但管理员们并没有认真对待 @Keno

我们也开始尝试使用 Vue.js,通过 Nuxt 提供部分内容,以改善 Discourse 的预渲染性能。我们可以看到,这次更新发布还不到一个月,而在过去 2-3 天里,我们的展示量已经翻倍,回到了 5 月更新之前的水平。

不确定这是否是巧合,但可能与 LCP(最大内容绘制)有关。我还会继续监控几周,然后再下结论。

3 个赞

读完这篇博客文章后,感觉……建议太过泛泛了。基本上可以总结为“拥有高质量内容”。我甚至不确定根据这篇博客文章,我们能在 Discourse 上具体做出哪些改变?:thinking:

3 个赞

不确定这是否仅与内容质量有关,它可能确实与较高的 LCP 时间有关,我认为这可以在 Ember 上修复,但我真的还不确定,仍在尝试其他解决方案以查看……

4 个赞

我认为你对单一指标的关注有点过度了。你对此的关注甚至超过了谷歌。

谷歌于 5 月 28 日发布了关于 LCP 的公告,他们表示“我们将在实施这些更改前提供 6 个月的通知”。而截至今天,这一通知甚至尚未发布。

7 个赞

正如我所说,我没有证据,也不打算专注于此。我仍在尝试其他方法。从昨天开始,曝光量又回升到了之前的水平。我会密切关注接下来的几周,看看情况如何发展。

2 个赞

是的,完全不确定 LCP 是否真的有问题,但它在搜索控制台中非常显眼,为我们标记了约 2 万个与大型 LCP 相关的页面错误。无论对 SEO 有何影响,优化 LCP 时间似乎都是一个值得追求的目标。当然,Google 的指标在多大程度上反映实际情况仍存疑问,但如果确实如此,那么 5 秒的初始加载时间确实偏长,肯定有办法做得更好。特别是针对未登录用户、直接从 Google 访问的场景,通过 CDN 提供预渲染页面似乎会非常有用。

4 个赞

它正在指出LCP,但我认为问题可能出在FCP……注意两者的时间完全相同

Discourse 的首次加载比后续加载更慢,因为此时需要加载整个应用,而不仅仅是第一个页面。因此,要将初始加载时间缩短至谷歌“良好”标准(移动端 FCP < 1 秒),可以说是一件说起来容易做起来难的事情。

10 个赞

我认为你们过于关注“技术”层面的硬性指标。Google 不会告诉你们的是,他们实际上也在衡量网站的“感知”性能。

Discourse 完全有潜力提升“感知性能”,而且理应如此。

https://thepathforward.io/web-performance-how-to-affect-perceived-performance/

实现这一目标的方法有很多,例如在完整应用加载之前进行骨架屏预渲染。

基本上,任何在应用完全加载之前显示出来的内容都有助于提升感知性能。哪怕只是先渲染出页头(不含具体内容,仅保留正确的颜色)以及带有页面加载转圈的背景,在完整应用尚未就绪时,也能改善初次页面浏览的体验。任何分阶段呈现的内容都能让用户知道……即使在慢速设备上,系统也正在运行。

例如,对于 Meta 这样的平台,类似下图的内容应该能够(可以通过简单的关键 CSS 实现)在完整应用加载到浏览器之前就立即渲染出来:

关于提升单个 Web 应用感知性能的文章有数百篇。或许值得 @team 深入研究一下?

3 个赞

如果您愿意,可以通过主题组件实现一个“加载中”页面。不妨试试看,并反馈一下这对您的网站是否有影响?

8 个赞

我认为仅靠一个简单的主题组件无法实现预期效果。为此,我需要在头部放置一个关键的内联 CSS 代码块,且该代码块必须位于其他脚本和 CSS 元标签之前。此外,<body> 标签仅在完整应用加载完成后才会渲染。我看不出主题组件如何实现预期目标,例如在头部包含关键 CSS 代码块,并在应用完全加载前至少在 <body> 中渲染部分 <div> 元素。

4 个赞

这里有一个方案,可以稍微提前一点显示加载器……

你是否有来源说明感知性能对搜索排名的影响?或者你指的是 FCP/LCP?尽管 FCP 和 LCP 是基于感知的概念,但它们有具体的定义和技术要求。另外请注意,FCP 并不属于 Google 的“核心网页指标”(但 LCP 是)。

以下是来自 Largest Contentful Paint (LCP)  |  Articles  |  web.dev 的更多细节:

根据 最大内容绘制 API 的当前规范,用于计算最大内容绘制的元素类型包括:

  • <img> 元素
  • <svg> 元素内的 <image> 元素
  • <video> 元素(使用 poster 图像)
  • 通过 url() 函数加载背景图像的元素(而非 CSS 渐变
  • 包含文本节点或其他行内级文本元素子元素的 块级 元素。

如果页面从 DOM 中移除某个元素,该元素将不再被考虑。同样,如果元素的关联图像资源发生变化(例如通过 JavaScript 修改 img.src),则该元素将停止被考虑,直到新图像加载完成。

这些要求使得实现变得有些困难,也许 如果加载元素包含大图像或文本,并且不从 DOM 中移除而是通过其他方式隐藏,可能会奏效?上面的加载器使用 z-index 来隐藏自身,所以这种方法或许可行……但加载器本身还不够,因为它不是图像或文本(它是 CSS 实现的)。

同意对于慢速连接的用户来说,某种加载器是有益的,但要满足 Google 的要求需要跨越一些特定的门槛(而且我们也不知道这是否能解决 OP 所提出的问题)。

7 个赞

这需要从头开始重写 Discourse 的底层架构,所以别抱太大希望了。

4 个赞

我查看了该组件,但认为它带来的影响不大,因为它加载得太晚,即大部分应用已经启动。Google 并未公开说明他们具体考虑哪些因素。除了内容之外,主观的用户体验(UX)肯定也是他们衡量的指标之一,即使是通过间接方式,例如用户返回其搜索引擎的跳出行为。感知上的加载时间过长会导致首次访问时的跳出率升高。此外,即使根据 Google 的官方说法,这并非 100% 与 SEO 相关,但从用户体验和流量的角度来看,它仍然具有重要意义。因为如果首次页面加载的感知性能不够好,用户就会跳出。

我完全理解这一点。而且我得承认,我目前还不完全了解该应用的渲染过程。

1 个赞

说真的,如果你想在这个指标上胜出,那就去搞一个静态预生成的网站,比如整个 Google AMP 项目。

因为你永远无法超越那些拥有静态页面的网站。

7 个赞

在跟我说话吗?不不不,我对 Discourse 非常满意:+1:!良好的用户体验并不仅仅取决于首屏加载速度。也许首屏加载会稍慢一些,但一旦应用加载完成,用户停留的时间会更长,回访频率也更高,这比那些枯燥的静态页面要好得多。我相信 Google 也会将这一因素纳入考量。

此外,自从我们切换到 Discourse 后,没有任何用户抱怨速度问题。与之前那个经过极致优化的 Drupal 页面相比(该页面通过 Fastly 全量 HTML 缓存和关键 CSS 实现了闪电般的首屏加载速度),我们的搜索流量反而在持续增长。

4 个赞

@codinghorror 各位,我对自己拥有的两个域名做了一些测试,

这两个域名都受到了 5 月 4 日更新的影响:

案例一:完全专注于内容质量(正如上面许多人建议的那样)

在第一个案例中,我专注于改进内容、关键词,移除任何不良链接,进行内部链接,添加大量具有潜力的新内容……等等,等等。

正如您在上图中所见,所有的努力都付诸东流。尽管新文章被很好地收录,薄内容被移除,旧文章也得到了改进,但您几乎看不到任何改善。感觉就像谷歌只是将网站收录到足以获得少量流量的程度,但流量远不够多!

案例二:迁移到 Vue+Nuxt(略微改善结构 + LCP 和渲染速度)

在第二个网站中,我只是将部分页面迁移到我们自己的自定义 Vue+Nuxt 应用中,通过 API 提供相同的内容,结构几乎没有变化。除此之外,没有其他改进措施(尽管在这种情况下,实际上将社区从 community.something.com 迁移并直接在主网站上提供服务,弊大于利,这一点在短期内确实发生了)。

我不确定您能从上述情况中得出什么结论,但我将继续测试并观察。当然,那个突然的激增很有趣。顺便提一下,我在 5 月之前、5 月之后以及最近的激增之后都进行了检查,我注意到在所有这些情况下,许多文章失去了展示量,而随后几乎完全相同的文章又重新获得了相同数量的展示量。因此,受影响的并非一两篇文章或页面,而是某种导致谷歌对整个网站进行惩罚的因素,并且无论我们在内容质量上投入了多少努力,这种惩罚都一直停留在整个网站上。

希望以上内容讲得通,如有任何问题,欢迎随时告知,

祝好!

9 个赞

如果我没记错的话,Discourse 会尝试向爬虫提供页面的静态版本,对吗?是否有可能向所有未登录用户也提供这个静态版本?这些 LCP 罚分表明 Google 看到的可能是我们论坛的非静态版本。

几个月来,我们断断续续地一直在深入排查这个问题,甚至聘请了外部顾问,但所有分析结果都指向同一个结论:自 5 月 4 日的更新以来,我们的论坛因 LCP 违规而受到 Google 的严重惩罚。

6 个赞