SEO必须能够保证其技术实现并对搜索引擎友好
栏目: JavaScript · 发布时间: 6年前
内容简介:支持JavaScript的网站将继续存在。由于JavaScript在其众多框架中成为现代网站越来越受欢迎的资源,因此SEO必须能够保证其技术实现对搜索引擎友好。在本文中,我们将重点介绍如何针对Google优化JS网站(尽管Bing也推荐了相同的解决方案,动态呈现)。本文内容包括:
支持JavaScript的网站将继续存在。由于JavaScript在其众多框架中成为现代网站越来越受欢迎的资源,因此SEO必须能够保证其技术实现对搜索引擎友好。
在本文中,我们将重点介绍如何针对Google优化JS网站(尽管Bing也推荐了相同的解决方案,动态呈现)。
本文内容包括:
- SEO的 JavaScript挑战
2.客户端和服务器端呈现
- Google如何抓取网站
4.如何检测客户端呈现的内容
5.解决方案:混合渲染和动态渲染
-
SEO的JavaScript挑战
React,Vue,Angular,Node和Polymer。如果这些花哨的名字中至少有一个响铃,那么很可能你已经在处理一个由JavaScript驱动的网站了。
所有这些JavaScript框架都为现代网站提供了极大的灵活性和强大功能。
它们在客户端呈现(如允许浏览器而不是服务器呈现页面),页面加载功能,动态内容,用户交互和扩展功能方面开启了大量可能性。
如果我们只关注对SEO有什么影响,JavaScript框架可以为网站做以下事情:
根据用户的交互动态加载内容
外部化可见内容的加载(请参阅下面的客户端呈现)
外部化元内容或代码的加载(例如,结构化数据)
遗憾的是,如果在不使用一对SEO镜头的情况下实施,JavaScript框架可能会对页面性能构成严峻挑战,从速度缺陷到渲染阻塞问题,甚至阻碍内容和链接的可抓取性。
在审核JavaScript驱动的网页时,SEO必须遵循许多方面,可归纳如下:
Googlebot是否可以看到该内容?请记住,机器人不与页面交互(图像,选项卡等)。
链接是否可以抓取,因此遵循?始终使用锚点()和引用(href =),甚至与“onclick”事件一起使用。
渲染速度是否足够快?
它如何影响抓取效率和抓取预算?
要回答很多问题。那么SEO应该从哪里开始呢?
以下是优化JS网站的关键指南,以便在保持搜索引擎机器人满意的同时使用这些框架。
2.客户端和服务器端呈现:最好的“frenemies”
当他们必须应对JS驱动的网站时,所有SEO所需的最重要的知识可能是客户端和服务器端呈现的概念。
了解两者的差异,好处和缺点对于部署正确的SEO策略至关重要,而不是在与软件工程师(最终负责实施该策略的人)交谈时迷路。
让我们看一下Googlebot如何抓取和索引页面,将其作为一个非常基本的顺序过程:
googlebot如何抓取和索引页面
1.客户端(Web浏览器)向服务器发出多个请求,以便下载最终显示该页面的所有必要信息。通常,第一个请求涉及静态HTML文档。
2.然后下载HTML文档引用的CSS和JS文件:这些是有助于生成页面的样式,脚本和服务。
3.网站渲染服务(WRS)解析并执行JavaScript(可以管理全部或部分内容或仅仅是一个简单的功能)。
这个JavaScript可以通过两种不同的方式提供给bot:
客户端:所有工作基本上都“外包”给WRS,WRS现在负责加载所有脚本和必要的库来呈现该内容。服务器的优点是当真实用户请求页面时,它会节省大量资源,因为脚本的执行发生在浏览器端。
服务器端:服务器对所有内容进行预先烹饪(也称为渲染),最终结果发送到机器人,准备进行爬网和索引。这里的缺点是所有作业都由服务器在内部执行,而不是外部化到客户端,这可能导致进一步请求的呈现中的额外延迟。
- 咖啡因(Google的索引器)对找到的内容进行索引
在内容中发现新链接以进行进一步爬网
这是理论,但在现实世界中,Google没有无限的资源,必须在爬行中做一些优先级。
-
Google如何实际抓取网站
Google是一款非常智能的搜索引擎,拥有非常智能的抓取工具。
但是,当涉及应用于Web开发的新技术时,它通常采用被动方法。这意味着谷歌和它的机器人需要适应新的框架,因为它们变得越来越流行(JavaScript就是这种情况)。
出于这个原因,谷歌抓取JS驱动的网站的方式仍然远非完美,而且SEO和软件工程师需要以某种方式减轻盲点。
简而言之,谷歌实际抓取这些网站的方式如下:
googlebot如何抓取JS呈现的网站
上面的图表由Tom Greenaway在Google IO 2018会议上分享,它基本上说的是 – 如果您的网站严重依赖JavaScript,您最好快速加载JS内容,否则我们将无法在第一波期间渲染它(因此将其编入索引),并且它将被推迟到第二波,没有人知道何时可能发生。
因此,基于JavaScript的客户端呈现内容可能会由第二波中的机器人呈现,因为在第一波中它们将加载服务器端内容,这应该足够快。但是他们不想花太多资源来承担太多任务。
汤姆格林纳威的话:
“谷歌搜索中的JavaScript驱动网站的呈现推迟到Googlebot有可用于处理该内容的资源。”
对SEO的影响是巨大的,您的内容可能直到一周,两周甚至五周后才被发现,同时,只有您的无内容页面将被算法评估和排名。
在这一点上SEO最应该担心的是这个简单的等式:
没有找到内容=内容(可能)几乎不可索引
如何减少无内容的页面排名?很容易猜到任何SEO。
到现在为止还挺好。下一步是学习内容是在客户端还是在服务器端呈现(不需要软件工程师)。
4.如何检测客户端呈现的内容
选项一:文档对象模型(DOM)
有几种方法可以了解它,为此,我们需要介绍DOM的概念。
文档对象模型定义HTML(或XML)文档的结构,以及如何访问和操作这些文档。
在SEO和软件工程中,我们通常将DOM称为浏览器呈现的最终HTML文档,而不是生成在服务器中的原始静态HTML文档。
您可以将HTML视为树的主干。您可以向其添加分支,叶子,花和果实(即DOM)。
JavaScript所做的是操纵HTML并创建一个增加功能和内容的丰富DOM。
在实践中,您可以通过在您正在查看的任何页面上按“Ctrl + U”来检查静态HTML,并在完全加载后通过“检查”页面来检查DOM。
大多数情况下,对于现代网站,您会发现这两个文档完全不同。
选项二:免费的JS配置文件
在Chrome中创建新的个人资料,并通过内容设置禁止JavaScript(直接在此处访问它们 – Chrome://设置/内容)。
使用此配置文件浏览的任何URL都不会加载任何JS内容。因此,页面中的任何空白点都标识了客户端提供的一段内容。
选项三:在Google Search Console中以Google格式抓取
如果您的网站已在Google Search Console中注册(我无法想到它不会有任何正当理由),请使用旧版控制台中的“抓取为Google”工具。这将返回Googlebot查看页面的呈现方式以及普通用户如何看待该页面的呈现。有很多不同之处?
链接构建内容生成中的三个基本因素 如何进行品牌检索审核 如何为您的图像编写SEO友好的替代文字 如何完美平衡联盟营销和SEO
选项四:在无头模式下运行Chrome版本41(Chromium)
谷歌在2018年初正式声明他们使用旧版Chrome(特别是版本41,任何人都可以从这里下载)以无头模式呈现网站。主要含义是,在该版本的Chrome中无法很好地呈现的页面可能会遇到一些面向爬行的问题。
选项五:使用Googlebot在Screaming Frog上抓取页面
并禁用JavaScript呈现选项。检查机器人是否正确呈现了内容和元内容。
在完成所有这些检查之后,仍然请问您的软件工程师,因为您不想留下任何松散的结果。
5.解决方案:混合渲染和动态渲染
要求软件工程师回滚一项伟大的开发工作,因为它会伤害SEO可能是一项艰巨的任务。
经常发生的是,SEO不参与开发过程,只有在整个基础设施到位时才会调用它们。
我们的SEO应该致力于改善我们与软件工程师的关系,让他们意识到任何创新对SEO的巨大影响。
这就是从一开始就可以避免像无内容页面这样的问题。解决方案有两种方法。
混合渲染
这种方法也称为同构JavaScript,旨在最大限度地减少对客户端呈现的需求,并且不区分机器人和真实用户。
混合渲染表明以下内容:
一方面,所有非交互式代码(包括所有JavaScript)都在服务器端执行,以便呈现静态页面。爬虫和用户访问页面时都可以看到所有内容。
另一方面,客户端(浏览器)仅运行用户交互式资源。这有利于页面加载速度,因为需要更少的客户端呈现。
动态渲染
该方法旨在检测机器人发出的请求与用户放置的请求,并相应地提供页面。
如果请求来自用户:服务器提供静态HTML并利用客户端呈现来构建DOM并呈现页面。
如果请求来自机器人:服务器通过内部渲染器(例如Puppeteer)预渲染JavaScript,并将新的静态HTML(由JavaScript操纵的DOM)传递给机器人。
谷歌如何动态渲染JavaScript网站
两全其美的
结合这两种解决方案还可以为用户和机器人提供巨大的好处。
如果请求来自用户,请使用混合呈现
如果请求来自机器人,请使用服务器端呈现
结论
随着现代网站中JavaScript的使用日益增长,通过许多简单易用的框架,它要求软件工程师完全依赖HTML来搜索不实际也不可行的搜索引擎机器人。
但是,客户端渲染解决方案引发的SEO问题可以使用混合渲染和动态渲染以不同方式成功解决。
了解可用的技术,您的网站基础设施,工程师和解决方案可以保证您的SEO策略的成功,即使在JavaScript驱动的网站等复杂环境中也是如此。
免责声明:本文仅代表作者个人观点,与穷思笔记网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 如何能够保证自己应用数据的安全?|四月汇报
- 能够自动感知背景主色调的按钮
- IT厂商为什么能够成为优秀的存储厂商
- 8个能够提高Django开发效率的Python包
- 威胁情报的上下文、标示及能够执行的建议
- 商界领袖能够从贝索斯短信泄漏事件中学到什么?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Programming in Haskell
Graham Hutton / Cambridge University Press / 2007-1-18 / GBP 34.99
Haskell is one of the leading languages for teaching functional programming, enabling students to write simpler and cleaner code, and to learn how to structure and reason about programs. This introduc......一起来看看 《Programming in Haskell》 这本书的介绍吧!