JS应该动态生成metadata/the整个页面吗?

Should JS dynamically generate metadata/the whole page?

所以我会有很多页面,里面有一堆文本,一个 JS 和 CSS 文件将转换为彩色网页。我注意到文本通常会很长,而且由于会有很多网页,我应该减小文件大小。此外,由于我不想破坏文件质量,我决定我的 JS 文件将获取文本并从中制作网页。 旁注:我想做的是制作教程页面,所以我将使用 JS 生成每个教程页面上的许多内容,例如课程列表,以减小文件大小。

我注意到元数据(<head> 内容)通常占用 JS 可以生成的一些 space,所以我想,为什么我不直接生成它JS? 但随之而来的问题是有些浏览器可能无法解析,或者解析速度很慢。所以我在 Stack Overflow 上提问:

是否应该 JavaScript 生成元数据(可能几乎整个页面,比如完全删除 <head> 标签并用 JS 生成)?

这取决于你想要的结果。

Google 改进了它的 SEO 机制以在索引之前呈现您的页面,请参阅此处:

https://developers.google.com/search/docs/guides/javascript-seo-basics

但是其他机器人可能不会这样做,例如读取 Open Graph 元标记的 facebook 或 twitter 等社交媒体爬虫,或百度等其他搜索引擎。

如果机器人不呈现您的文档,则 javascript 不会执行并且您的元数据不存在。

此外,如果您的初始文档不包含样式表或其他 CDN,则客户端需要更长的时间。想象一下这个过程:

有头

  1. 获取文件
  2. 获取资源
  3. 渲染内容

无头

  1. 获取文件
  2. 渲染内容
  3. 获取资源
  4. 重新渲染

这过于简单化了,但它证明了我的观点。

选择:

如果您的内容非常动态,您可以考虑服务器端渲染 (SSR) 或预渲染

您将以编程方式构建您的页面并 store/serve 所有页面,或者根据请求在服务器端构建它们。

https://developers.google.com/web/updates/2019/02/rendering-on-the-web