近年来,部分SEO专业人士和开发人员认为Google已能抓取JavaScript。然而事实并非总是如此,使用Angular及某些JavaScript技术的网站往往为此付出代价。
电商网站常采用AJAX、懒加载、单页应用(SPA)或Angular等现代JavaScript技术,本文将其统称为“复杂”JavaScript。尽管停止创新不可行,但理解其对SEO的风险至关重要。
2015年Google曾声明“通常能像现代浏览器一样渲染和理解网页”,但这并不意味着无需特殊指导即可索引复杂JS内容。随着技术演进,当前情况已与2015年大不相同。在本月Google I/O开发者大会上,John Mueller和Tom Greenaway就搜索友好的JS驱动网站发表了讲话。本文将用非技术性语言阐述复杂JavaScript索引的核心要点。
客户端与服务器端
网页在服务器端还是客户端渲染是SEO的核心问题之一。服务器端渲染是传统方式:用户点击链接后,服务器处理代码并交付完整页面。
随着页面变复杂,渲染工作逐渐转移至浏览器(客户端)。这虽节省服务器资源并提升加载速度,却可能降低搜索引擎友好性。Googlebot等资源有限,无法实时渲染解析每个页面。过去由服务器完成的工作现在需爬虫执行更多操作,它们会将复杂JavaScript暂存,待资源允许时再渲染。
索引延迟
“先抓取、后渲染”会导致索引延迟。Mueller指出:“大型动态网站的新内容可能需要一段时间才能被索引。”
若新产品线依赖客户端渲染或复杂JavaScript,上线后可能无法及时索引以推动收入。更严峻的是,当网站迁移至Angular等框架时,重发后的源代码除标题标签和元描述外可能无文本内容或可爬取链接,直到Google完成渲染。这意味着数天甚至数周的延迟(取决于网站权威性),期间搜索引擎看不到任何内容或链接。除非使用预渲染技术,否则排名和自然流量将会下降。
可爬取链接
JavaScript支持多种创建链接的方式(如span和onclick),但内部链接对SEO至关重要。除非同时包含锚点标签和href属性,否则Google不会将其视为链接进行爬取。Span标签或缺少href属性的onclick锚点均无法创建可爬取链接。
Greenaway明确表示:“在Google,我们只分析带有href属性的锚点标签,仅此而已。”
对Google而言,href是可爬取的链接,而onclick则不是。
较新的 JavaScript
Googlebot基于Chrome 41(2015年3月发布),仅支持ES5标准。而当前主流ES6标准于同年6月发布,意味着Googlebot不支持最新的JS函数和功能。Mueller强调:“Googlebot目前使用相对较旧的浏览器渲染页面。”
若依赖无法转译为ES5的现代JS库,建议使用优雅降级等替代方法辅助索引。简言之,现代复杂电商网站应假定搜索引擎索引会遇到困难。
自然搜索是在线业务获客的主要来源,但也十分脆弱。一次技术变更就可能切断流量,风险过高。建议将Mueller和Greenaway的演示视频分享给SEO及开发团队,直接从Google了解JS相关的SEO风险,防患于未然。

