2019趋势:JavaScript SEO-上级SEO应该知道哪些?
对于高级SEO来说,需要掌握的知识比SEO入门者要多得多。其中深刻理解搜索引擎与网站服务器的互动是关键部分,这里包含了许多HTTP协议的知识点以及前后端开发的技术。
JavaScript SEO是SEO中的上乘武功
笔者从事SEO近二十年,可以体会到所有上级SEO的难点都在于一些最底层而细节的东西。如果我们把TDK(Title-Description-Keywords)作为SEO中最Low的内容,SEO中的内容营销部分和外链建设作为中下级部分,技术SEO( Technical SEO)作为SEO中中上级的部分,那么JavaScript对于SEO的影响便在金字塔的顶部。本文,我们仅仅从结论来介绍SEO中的JavaScript到底怎么玩。
[notification type=”alert-danger” close=”false” ] Technical SEO有多重要?听说最近SearchEngineLand的索引被清空的故事了吗?[/notification]
相对应地有些引擎处在顶部如Google,它更好更聪明地理解你的JS资源,并知道哪些需要运用到渲染中;接下来是Bing,它并不能像Google那样好地进行JS的支持,据说只对部分网站进行渲染;然后是像百度那样的引擎,还未支持JS加入渲染,通常只渲染CSS,只是特定于某些负面算法对一些恶意站点进行检测时才使用部分JS。(如果你发现access.log中有访问js的百度蜘蛛,那么请通过IP验证其真实性。)
在听极诣介绍之前,请注意本文全部内容仅仅适用于当下情况。SEO是发展飞速的行业,今天的不支持并不代表明天一样不适用。如果你不想花时间听天书,那么只要记住这个结论:为了你的网站能最好地普遍地被各个大大小小的搜索引擎所爬行、索引、渲染、排名,那么请避免使用JavaScript来生成任何网页中的内容。
JavaScript和(Google)SEO,顶级SEO从业者必须要知道的15点
- Googlebot会毫无意外地请求你的js文件。
- Googlebot可以包含js和css渲染你的页面并发现隐藏内容,但并不保证会这么做。
- Googlebot目前使用的是相当于Chrome 41(一个三年前的版本)的一个Headless Browser,而不是最新的内核来进行渲染。
- Google把这个Headless Browser成为WRS,Web Rendering Service。
- 如果Googlebot发现你的网站相应变慢会减少爬行预算(Crawl Budget),包括减少对js文件的请求。
- 如果Googlebot在渲染过程中执行你的脚本并发现消耗太多资源,则会放弃。建议5秒钟是执行js脚本的上限。
- Googlebot由于需要等待索引的文件资源和处理资源会进行“两波索引”。见下图:
- Google SERP上的 cache的页面只能代表第一波时被缓存的页面HTML。
- js中的链接可以被Googlebot发现。但是当js相当复杂时,其中链接并不一定能被Googlebot从js脚本中生成。
- 所有的js链接都不传递页面权重!
- Googlebot不会去“点击”,因此“显示更多”后通过ajax请求的内容并不会被Google发现。
- Onclick属性必须要在<a>标签中并且具有href属性时才能让Google运行js脚本发现新链接。
- js渲染出的Canonical链接对Googlebot基本无效,可信度低。
- js经常伴随着在URL中使用#(井号),Googlebot在索引过程中会抛弃#后面的内容。
- Google再三确认并推荐使用Dynamic Rendering,并不再视其为Cloaking。你可以为Googlebot准备一份已经渲染好的版本。
你以为JavaScript是SEO的最终大Boss?Naive!
在笔者领导和参与的众多大大小小的SEO项目中,只存在一个失败的原因:“傲娇的网站攻城狮们”。
如果你觉得下面这些反馈听起来很耳熟,那么你一定能体会到为什么这么说:
- 不改。就不改。
- 影响性能,不改。
- 没空改,等空下来。
- 你怎么证明非要这么改?
- 不是我们的KPI,先放放
- 怎么做网站要你教?
- 你说的都对,你自己改吧。
遗憾的是SEO是数字营销中和技术部门最紧密联系的部分,如果没有高层管理者的参与并提供优先级,技术SEO和JS SEO很难有所建树。顶级SEO要掌握的远比SEO工作本身多得多。唉……