JavaScript和SEO长期以来一直是开发人员和SEO专家之间争论不休的话题。
搜索引擎已经并且将继续在索引JavaScript网站方面做出重大改进。也就是说,主要搜索引擎是否可以正确呈现使用JavaScript创建的页面的问题仍然令人困惑。
优点:新的发展简化了兼容性
谷歌和必应去年发布了与JavaScript有关的最近的SEO公告,显示了简化兼容性方面的改进。
Google 宣布他们已开始使用最新版本的Google Chrome浏览器来渲染执行JavaScript,样式表等内容的网页。
Bing 宣布他们将采用新的Microsoft Edge作为Bing Engine来呈现页面。Bingbot现在将使用Googlebot,Google Chrome和其他基于Chromium的浏览器已经使用的相同的基础网络平台技术来呈现所有网页。
两家领先的搜索引擎还宣布将使他们的解决方案成为常青树,承诺定期将其网页渲染引擎更新为浏览器的最新稳定版本。这些常规更新将确保对最新功能的支持,这是对以前版本的重大飞跃。
搜索引擎通过利用相同的渲染技术来简化SEO
Google和Bing的这些开发使Web开发人员可以更轻松地确保其网站和Web内容管理系统可在两种浏览器上正常工作,而不必花费时间深入研究每种解决方案。
除了不允许使用robots.txt的文件外,搜索引擎还将体验并看到他们在新的Microsoft Edge浏览器或Google Chrome浏览器中看到的次要内容。对于SEO和开发人员而言,这可以节省时间和金钱。
例如,有:
- 不再需要保留Google Chrome 41来测试Googlebot。
- 不再需要升级到Bing。
- 不再需要维护每个搜索引擎可使用的JavaScript函数,样式表指令的兼容性列表。
这样的例子不胜枚举。有了所有这些好消息和空闲时间,这是否就意味着JavaScript的开绿灯?可能不是。
坏处:JavaScript仍然面临许多局限性和风险
长话短说,JavaScript会使搜索引擎阅读您的页面的能力复杂化,并留有出错的余地,这可能对SEO不利。
当搜索引擎下载Web文档并开始对其进行分析时,它所做的第一件事就是了解文档类型。如果文档是非HTML文件(例如:HTTP重定向,PDF,图像或视频),则无需利用JavaScript堆栈来呈现文档,因为这种类型的内容不包括JavaScript。
对于HTML文件,如果它们具有足够的资源,则它们将尝试使用其优化的浏览器呈现解决方案呈现文档。当JavaScript没有直接嵌入文档中时,问题开始浮出水面。搜索引擎必须下载该文件才能读取并执行。如果不允许的内容是robots.txt,则将无法执行。
如果允许,搜索引擎必须成功下载文件,面临每个站点的爬网配额和站点不可用的问题。搜索引擎通常不执行诸如单击按钮之类的复杂操作,因此最好使用基本HTML作为指向文件的JS 链接,如上面的示例。
另一个潜在的陷阱是JavaScript文件可能与网站的缓存版本不同步。搜索引擎通常会缓存较长的时间,以避免经常获取页面上的每个资源。JavaScript可能会通过HTTP调用发出HTTP请求以加载内容和其他资源文件,从而使前面说明的问题的变化倍增。
这些JavaScript文件或HTML中包含的JavaScript也可能与搜索引擎使用的JavaScript引擎不兼容。如果不兼容,搜索引擎将不会阅读它,如果我们无法阅读,我们将不会记住它。
随着最近搜索引擎使用相同技术并致力于更新其浏览器的举动,这将在将来变得更容易处理。另外,请不要忘记搜索引擎对JavaScript的处理受到限制:
- 使用#搜索规范化的URL。将所有参数放在#后面(遗留的#!Standard除外)。
- 搜索引擎通常不会单击按钮并执行其他复杂的操作。
- 搜索引擎无需等待很长时间即可呈现页面。
- 搜索引擎不会输出复杂的交互式网页。
JavaScript不应该是新的Flash!
请记住,必须读取JavaScript的每个实例。过度使用它会降低索引排名的页面速度。不确定性:要获得最佳SEO,请切实,少量或理想地使用JS,一点也不用
对于大型网站和想要最大程度利用搜索引擎的网站,最好根据用户代理(Bingbot,Googlebot)检测搜索引擎爬网程序,并输出不带JavaScript或有限JavaScript的基本HTML。
另外,允许搜寻器通过一个HTTP请求访问要索引的HTML和文本的内容。还有一种担心是,如果网站觉得有必要通过JavaScript或漫游器来区分使用体验,则它们可能因垃圾邮件散布者而受到惩罚。
好消息是Google和Bing都建议您不必担心输出的文字和内容与人类客户看到的文字和内容几乎相同。
Google说:“目前,很难处理JavaScript,并非所有搜索引擎抓取工具都能成功或立即处理JavaScript。…我们建议将动态渲染作为解决此问题的解决方法。动态渲染意味着在特定用户代理的客户端渲染内容和预渲染内容之间切换。”
必应说:“当专门为搜索引擎爬虫渲染内容时,我们不可避免地会被问到这是否被认为是伪装……对于SEO社区而言,没有什么比伪装而受到惩罚更可怕了……好消息是,只要您做得很好,我们坚信努力将相同的内容返回给所有访问者,唯一的不同是,内容是针对漫游器在服务器上呈现的,而对于真实用户而言是在客户端上呈现的,这是可以接受的,而不是伪装。
做还是不做?
对于SEO专家来说,最好是在搜索引擎爬网程序访问您的网页时不输出JavaScript,假设您返回的HTML文本内容和格式与访问网站的人所看到的几乎相同。如果JavaScript在网站和页面上具有目的,则可以使用它。确保了解技术含义,以便您的文档可以正确索引或咨询SEO技术专家。激励搜索引擎索引您的内容,以满足他们的客户。
如果您遇到问题,请使用搜索引擎网站管理员在线工具进行调查或与他们联系。