Post by account_disabled on Dec 9, 2023 7:27:55 GMT
Angular:如何使这个框架对 SEO 友好? 马丁·萨姆科 ( Martin SAMKO) 撰写 于2022年2月23日 鸣叫 分享 分享 节省 [第 1 次发布于 01/28/2022 – 文章更新于 02/23/2022] Angular是一个JavaScript框架 ,特别用于在网站或应用程序上开发动态交互。它最初是一个Google项目,但如今它是一个非常流行的框架。尽管Angular提供了良好的用户体验,但应该注意的是,从SEO 的角度来看,该解决方案可能会遇到障碍。 Google 如何解释 Angular 下的网站? 谷歌在其指南中指出,目前:“ JavaScript很难处理,并不是所有的搜索引擎爬虫都能正确或立即处理它。”。然而,Angular是一个框架…… JavaScript!这是禁用JavaScript时Angular下网站的样子;无法显示页面的任何元素: 在禁用JavaScript的情况下在Angular 下显示站点(使用的工具:Web Developer) 在大多数情况下,当Google检查Angular下的网站时,它只会看到一个空壳:没有内容、没有链接、没有SEO标签等。因此,被充分引用的机会非常渺茫! CSR(客户端渲染)对搜索引擎和SEO的影响: 为了让搜索引擎了解运行Angular的网站,它必须知道如何运行JavaScript。然而,许多搜索引擎无法执行JavaScript;本质上,这即使不是不可能,也是很复杂的: 搜索引擎与JavaScript的兼容性汇总表(来源) 默认情况下, Angular站点使用客户端渲染(称为客户端渲染或CSR),当用户与其交互时,它会在文档对象模型( DOM ) 中渲染页面。提醒一下,DOM是一个编程接口,它是网页HTML的表示形式,允许您访问该网页的元素并使用JavaScript语言修改它们。爬虫无法理解高度交互的Angular页面的内容或结构。 客户端渲染包括让浏览器解释JavaScript以生成站点的HTML内容。
因此,当浏览器向服务器发出请求时,您不会获得HTML文档本身的所有内容,而是会获得一个简单的HTML文档,其中包含一个JavaScript文件,该文件允许浏览器生成网站的其余部分。换句话说,该网站只包含一个脚本,该脚本将呈现所有内容并 工作职能邮件数据库 用它为页面“换肤”(从某种意义上说,该页面是一个空的HTML shell )。 以下是 CSR(客户端渲染)的工作原理: 客户端渲染(CSR )操作图(来源) 因此,搜索引擎在对Angular站点上存在的任何内容进行索引时会遇到困难。如果SEO优化是你的目标,最好避免这种渲染方法。事实上,在大多数情况下, JavaScript资源会被索引机器人忽略(因为它们渲染/执行的时间太长),从SEO 的角度来看,CSR可能会成为一种障碍。然而,应该指出的是,Google爬虫现在能够解释使用JavaScript框架设计的应用程序/网站。然而,这还不是最佳的;这可能会导致呈现给访问者的站点与呈现给机器人的站点之间存在差距,这可能是有害的。 当首选具有标准客户端渲染的Angular站点时,搜索引擎Bing、Yahoo、DuckDuckGo和Yandex将不会索引 URL。后者只会看到空的HTML页面,因为他们的机器人无法执行动态内容;社交媒体机器人也不知道该怎么做。 Angular 和 SEO 在 Google 上的定位: 如果Google是对您的项目重要的唯一搜索引擎,那么您的动态页面很有可能被索引。但是,您没有任何保证。Google 搜索中心文档列出了可能导致JavaScript 呈现的内容无法正确快速编入索引的几个原因: 由Googlebot渲染引擎排队导致的动态内容索引延迟。 JavaScript代码加载缓慢或延迟,尤其是由页面上的操作触发时。 复杂的JavaScript代码运行成本昂贵,并且超出了Googlebot的渲染预算。
过程中出现渲染错误,导致部分内容无法进入索引。 提醒一下,以下是Google在SERP中定位 URL 的流程: 用于抓取、渲染和索引页面的Googlebot进程(来源) 帮助 Google 抓取/探索 Angular 的方法: 只有一种方法可以确保您的网站被索引和排名:网站上的每个 URL 都必须返回完全呈现的HTML页面,其中包含加载时可用的元数据和内容。 为了达到这个目的,有3种方法: 服务器端渲染(= SSR或服务器端渲染) 预渲染(=预渲染) 动态渲染_ _ 这三种方法达到了预期的结果:爬虫在加载时获取整个内容(静态HTML内容)并像普通HTML页面一样对其进行索引。然而,这些方法的工作原理不同: SSR /服务器端渲染:每个HTML页面在执行期间在服务器上渲染,然后完全渲染到客户端(浏览器)。这意味着在页面加载之前,服务器需要一些时间来根据请求呈现 HTML并将其发送到浏览器。此方法可能会降低页面加载速度,特别是在同时发出许多请求的情况下。 预渲染:在构建时为每个 URL 渲染一个HTML文件。这意味着网站上的所有HTML文件都是预先构建的,以便页面可以根据需要快速加载。缺点是每次更改这些页面都需要重新构建它们。 动态呈现:该站点具有预呈现的HTML页面,并且仅将其提供给爬虫。真实用户与客户端呈现的正常版本的网站进行交互。 是的,Angular 因此可以变得对 SEO 友好: 每个JavaScript框架 都有其工具和手段来实现上述方法之一以消除SEO障碍。Angular提供了完整的SSR(服务器端渲染)和预渲染解决方案,称为Angular Universal。 Angular Universal是一种可以从单的解决方案。它预先从所有 URL检索HTML页面这些页面提供给搜索引擎机器人,内容的抓取没有任何问题。对于真实用户, Angular Universal使用静态HTML发送客户端渲染的站点代码。页面的初始内容从静态HTML代码加载,然后站点控制页面并保证客户端的交互式用户体验。 在您的网站上使用 Angular Universal 的原因: 为了使您的Angular网站SEO 友好,您可以从一开始或逐步在现有网站上实施Universal 。
因此,当浏览器向服务器发出请求时,您不会获得HTML文档本身的所有内容,而是会获得一个简单的HTML文档,其中包含一个JavaScript文件,该文件允许浏览器生成网站的其余部分。换句话说,该网站只包含一个脚本,该脚本将呈现所有内容并 工作职能邮件数据库 用它为页面“换肤”(从某种意义上说,该页面是一个空的HTML shell )。 以下是 CSR(客户端渲染)的工作原理: 客户端渲染(CSR )操作图(来源) 因此,搜索引擎在对Angular站点上存在的任何内容进行索引时会遇到困难。如果SEO优化是你的目标,最好避免这种渲染方法。事实上,在大多数情况下, JavaScript资源会被索引机器人忽略(因为它们渲染/执行的时间太长),从SEO 的角度来看,CSR可能会成为一种障碍。然而,应该指出的是,Google爬虫现在能够解释使用JavaScript框架设计的应用程序/网站。然而,这还不是最佳的;这可能会导致呈现给访问者的站点与呈现给机器人的站点之间存在差距,这可能是有害的。 当首选具有标准客户端渲染的Angular站点时,搜索引擎Bing、Yahoo、DuckDuckGo和Yandex将不会索引 URL。后者只会看到空的HTML页面,因为他们的机器人无法执行动态内容;社交媒体机器人也不知道该怎么做。 Angular 和 SEO 在 Google 上的定位: 如果Google是对您的项目重要的唯一搜索引擎,那么您的动态页面很有可能被索引。但是,您没有任何保证。Google 搜索中心文档列出了可能导致JavaScript 呈现的内容无法正确快速编入索引的几个原因: 由Googlebot渲染引擎排队导致的动态内容索引延迟。 JavaScript代码加载缓慢或延迟,尤其是由页面上的操作触发时。 复杂的JavaScript代码运行成本昂贵,并且超出了Googlebot的渲染预算。
过程中出现渲染错误,导致部分内容无法进入索引。 提醒一下,以下是Google在SERP中定位 URL 的流程: 用于抓取、渲染和索引页面的Googlebot进程(来源) 帮助 Google 抓取/探索 Angular 的方法: 只有一种方法可以确保您的网站被索引和排名:网站上的每个 URL 都必须返回完全呈现的HTML页面,其中包含加载时可用的元数据和内容。 为了达到这个目的,有3种方法: 服务器端渲染(= SSR或服务器端渲染) 预渲染(=预渲染) 动态渲染_ _ 这三种方法达到了预期的结果:爬虫在加载时获取整个内容(静态HTML内容)并像普通HTML页面一样对其进行索引。然而,这些方法的工作原理不同: SSR /服务器端渲染:每个HTML页面在执行期间在服务器上渲染,然后完全渲染到客户端(浏览器)。这意味着在页面加载之前,服务器需要一些时间来根据请求呈现 HTML并将其发送到浏览器。此方法可能会降低页面加载速度,特别是在同时发出许多请求的情况下。 预渲染:在构建时为每个 URL 渲染一个HTML文件。这意味着网站上的所有HTML文件都是预先构建的,以便页面可以根据需要快速加载。缺点是每次更改这些页面都需要重新构建它们。 动态呈现:该站点具有预呈现的HTML页面,并且仅将其提供给爬虫。真实用户与客户端呈现的正常版本的网站进行交互。 是的,Angular 因此可以变得对 SEO 友好: 每个JavaScript框架 都有其工具和手段来实现上述方法之一以消除SEO障碍。Angular提供了完整的SSR(服务器端渲染)和预渲染解决方案,称为Angular Universal。 Angular Universal是一种可以从单的解决方案。它预先从所有 URL检索HTML页面这些页面提供给搜索引擎机器人,内容的抓取没有任何问题。对于真实用户, Angular Universal使用静态HTML发送客户端渲染的站点代码。页面的初始内容从静态HTML代码加载,然后站点控制页面并保证客户端的交互式用户体验。 在您的网站上使用 Angular Universal 的原因: 为了使您的Angular网站SEO 友好,您可以从一开始或逐步在现有网站上实施Universal 。