【问题标题】:PageSpeed Insights: Server-side rendering or Client-side rendering?PageSpeed Insights:服务器端渲染还是客户端渲染?
【发布时间】:2020-10-19 12:21:39
【问题描述】:

我的网站有一个条件访问规则:如果访问是由 Googlebot 进行的,我会提供一个完全由服务器渲染的页面(服务器端渲染)。

否则,如果访问是由人进行的,我会提供一个具有 SPA 功能的页面(客户端呈现)。

我的问题是:在我上次使用 PageSpeed Insights (Lighthouse) 进行的分析中,我注意到结果基于客户端呈现版本。在这种情况下,我是否应该考虑将网站性能结果由谷歌以客户端版本来判断?

我对这种行为有点困惑。

谢谢:)

【问题讨论】:

    标签: reactjs google-crawlers pagespeed-insights


    【解决方案1】:

    Lighthouse 与 googlebot 不同,所以你可能没有正确检查它。

    做了一个快速检查,我发现这个用户代理字符串是我的案例:

    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4143.7 Safari/537.36 Chrome-Lighthouse
    

    但无论如何:不要这样做。这种技术称为cloaking,被 Google 禁止。

    您的页面可能会从索引中删除或受到严重处罚。

    您必须为您的用户通常访问的内容提供服务。

    【讨论】:

    • 你好,库尔!我使用动态呈现,Googlebot 通常不会将动态呈现视为伪装。
    • @RafaelaLemos 使用用户代理示例编辑了我的答案。我不确定动态渲染是什么意思。如果您提供的是完整的 SSR(带有预加载器或类似 Next.js 的东西),为什么您不总是提供服务器端渲染的版本?