Code前端首页关于Code前端联系我们

AJAX 是否适合 SEO,如何让 Google 和其他搜索引擎正确抓取您的 AJAX 网站并将其编入索引

terry 1年前 (2024-01-17) 阅读数 423 #SEO
文章标签 AJAX

自万维网发明以来,网络开发领域已经取得了长足的进步。

工程师和网络开发人员用于构建网站的技术和技巧似乎随着频率的增加而发生巨大变化。像谷歌这样的搜索引擎对网站进行分类和理解的方式必须变得更加复杂才能跟上它的步伐。

AJAX 是开发人员用来改善用户体验并创建具有更多功能的网站的技术之一。它被互联网上的网站广泛使用。从历史上看,AJAX 对于搜索引擎来说处理起来非常困难,因此给寻求在 Google 上排名的网站所有者带来了问题。

AJAX 是否适合 SEO?如何让 Google 和其他搜索引擎正确抓取您的 AJAX 网站并将其编入索引?我们将探讨这些问题并提供一些建议。

想提高您的搜索引擎优化吗?下载免费的 SEO 技术指南以 优化抓取预算 ,并了解如何提高网站在搜索引擎上的可见度。

什么是 AJAX?

要理解为什么 AJAX 对于SEO 团队和网站所有者来说是一个如此大的问题,有助于了解 AJAX 是什么以及它的作用。

AJAX 代表异步 JavaScript 和 XML。它是一种允许浏览器向服务器发出 HTTP 请求而无需刷新页面的协议。

AJAX 可以通过以下方式发送和接收信息:

  • JSON

  • XML

  • 超文本标记语言

  • 文本文件

普通 Web 应用程序使用同步 HTTP 请求在您和服务器之间发送信息。这意味着每当页面获取新内容时,页面就必须停止并等待服务器响应重新加载。

与此同时, AJAX在您和服务器之间在后台异步加载 JavaScript,并在页面加载后实时检索新内容。AJAX 不是通过 URL 栏通过 HTTP 加载数据,而是使用 XMLHttpRequest 更新页面的各个部分,同时页面作为一个整体保持交互。

想象一下 Twitter feed 的工作方式。您关注的人可能一天多次发推文。通常,这是由源顶部或底部的“加载更多推文”按钮指示的。

想象一下,必须点击浏览器中的“刷新”按钮来更新 Twitter 源,而不是仅仅点击页面本身上的按钮并立即更新?这会令人沮丧、耗时并且不必要地令人厌烦。

这些都是 AJAX 解决的问题类型。它还有其他类似的应用程序。它使您在许多现代网站上看到的可折叠信息框或博客文章底部看到的“加载更多”功能成为可能。如果没有它,现代互联网将会非常不同。

也就是说,AJAX 也有它的陷阱。

AJAX SEO友好吗

Google 可以抓取 AJAX 内容吗?简短的回答是肯定的。更长的答案是肯定的,但有点复杂。

从 SEO 的角度来看,使用 AJAX 框架的单页 Web 应用程序历来存在很大问题,并导致以下问题:

  • 抓取问题:重要内容隐藏在未解析的 JavaScript 后面,仅在客户端呈现,这意味着 Google 基本上只会看到一个空白屏幕

  • 网站导航和导航栏损坏问题

  • 伪装:网站管理员可能会无意中为用户创建与网络爬虫看到的内容不同的内容,从而导致排名惩罚

多年来,Google 一直建议网站管理员利用 AJAX 抓取方案向 Google 发出信号,表明某个网站具有AJAX 内容,正如其 2009 年提案中所建议的那样。AJAX 抓取方案利用了 _escaped_fragment 参数。此参数指示 Google 获取网页的预渲染版本,其中包含 Google 可以解析和索引的静态、机器可读 HTML。服务器将指示网络爬虫抓取与源代码中可用的页面不同的页面,类似于当今动态渲染的工作方式。

然后,事情发生了变化。2015 年,Google 宣布 Google 现在普遍能够毫无问题地抓取、读取和解析 JavaScript,从而使 AJAX 抓取方案变得过时。这就是谷歌开始推荐动态渲染解决方案的时候。

AJAX 可能出现的 SEO 问题

Google 可能声称它能够抓取和解析 AJAX 网站,但仅仅相信它的话并让网站的自然流量听天由命是有风险的。尽管 Google通常可以索引动态 AJAX 内容,但事情并不总是那么简单。

一些可能出错的事情包括:

隐藏的 HTML

如果重要的内容隐藏在 AJAX JavaScript 之下,爬虫可能会更难以访问它。这可能会将爬网、渲染、索引和排名过程延迟一周或更长时间。

为了确保您的内容在 Google 上有效排名,请确保您的重要内容存储在 HTML 中,以便 Google 和其他搜索引擎将其编入索引,或者确保您的内容经过预渲染,以便 Google 可以轻松访问它。

缺失的链接

Google 使用您网站的内部链接来了解您的内容之间的相互关系,并使用您的外部链接来证明您的内容使用权威、可信和值得信赖的信息来证实它。

因此,所有链接都必须可读且不被埋藏在 AJAX JavaScript 下,这一点非常重要。

AJAX 如何影响 SEO

那么这是否意味着您无需担心Google 是否可以抓取您的 AJAX 网站?不必要。

虽然 2009 年提出的 AJAX 爬行方案现在确实已经过时,但我们只有 Google 保证其网络爬虫现在可以爬行和解析 JavaScript 网站。

如果我们看一下 Google 弃用 AJAX 抓取方案的具体措辞,它是这样写的:

“……只要您不阻止 Googlebot 抓取您的 JavaScript 或 CSS 文件,我们通常就能够像现代浏览器一样呈现和理解您的网页。”

这里的关键词是一般。这本质上是 Google 掩盖其踪迹的方式,在涉及 AJAX 网站时耸耸肩,并说“这不是我们的问题”。

因此,虽然您不再需要使用特殊的解决方法来确保 Google 可以抓取您的网站,但作为网站所有者,确保 Google 可以抓取您的网站仍然符合您的最佳利益。

那么,现在的规则是什么?

一方面,谷歌现在提倡使用渐进增强,这是一种网络开发哲学,首先强调内容本身的重要性。

遵守这些标准的一种方法是使用 History API 和 PushState() 函数,该函数会更改客户端地址栏中显示的 URL 的路径。

使用pushState 使您能够获得AJAX 的速度和性能优势,同时仍然可抓取。URL 准确地反映了网页的“真实”位置,从而更准确地描述了内容。

Google 现在关注的另一件事是所谓的 #! 或“hashbang”标记。

Google 寻找 #! 参数来识别动态 URL 并区别对待它们。它获取主题标签之后的所有内容并将其作为 URL 参数传递到网站,然后请求它可以读取、索引和排名的页面的静态版本。

如何使您的 AJAX 网站可抓取

完全有可能优化一个 JavaScript 网站,不仅可以正确显示,而且可以被 Google 索引和排名,而不会丢失任何内容、抓取错误或任何其他可能影响搜索排名的问题。

需要注意的一些事项包括:

优化网址结构

强烈建议您使用 PushState History API 代替 _escaped_fragment 协议。该函数会更新地址栏中的 URL,以便显示任何 JavaScript 内容而不会出现任何问题。

干净的 URL 意味着使用简短的短语和文本,以便轻松了解页面的内容。

优化网站速度

当客户端浏览器创建 DOM 时,它最终可能会在 HTML 中创建大量臃肿的代码,从而降低页面速度,从而使 Googlebot 更难一次性抓取您的内容。确保删除所有渲染阻塞资源,以便 Google 可以有效地解析您的 CSS 和脚本。

AJAX 网站可以为您服务

对于想要为用户提供最佳用户体验的网站所有者来说,AJAX 网站一直是一个令人头疼的问题。大多数历史上一直存在的问题似乎已经得到解决,但 AJAX 对于网站的维护来说仍然很麻烦,并且不利于网站 SEO 的健康。

使用 History API 功能,您可以获得 AJAX 的性能优势和用户体验优势,同时仍然确保您的网站能够在 Google 搜索结果中排名靠前。

更好的是,使用 Prerender 确保每次 Google 访问您的网站时都能无缝抓取您的 AJAX 网站。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门