JS脚本与SEO优化

SEO优化技巧

读者lin在问答板块问了一个纯技术问题,关于网站JavaScript的使用和SEO注意事项。JS的SEO是近年越来越重要的问题,以前还没写过这方面的话题。无论是异步调用内容,还是增加页面互动,现在的网站几乎无法避免使用JS脚本。但JavaScript使用不当的话可能会对SEO造成非常大的影响。

lin的问题是:

一个网站,源码都封装在js里面,直接调用js来展示,这可咋搞

这是比较极端的情况,最后再回答。先说一下一般情况下,页面使用JS时要考虑的SEO问题。

搜索引擎怎样处理JS

首先,简单一句话,JS造成SEO问题的症结在于,搜索引擎不一定执行JS脚本。

做SEO的都知道,要有搜索流量,搜索引擎蜘蛛需要顺利爬行链接,抓取页面,解析并索引页面html代码中的内容,然后才谈得上排名和流量。在爬行、抓取、索引的过程中,如果JS造成障碍,就会导致问题。

浏览器执行JS、渲染页面是肯定的,使用用户访问一切正常。但问题就在于,搜索引擎蜘蛛抓取页面html代码时,如果遇到JS,不一定会去执行JS脚本,那么需要执行JS才能看到的内容,搜索引擎就不一定看得到。

Google遇到页面JS时,会在有计算资源、且页面有比较高价值时,尝试执行脚本、渲染页面。百度则基本上不执行JS脚本。所以做中文网站,使用JS上就更要谨慎。

重要链接不要用JS

搜索引擎爬行、抓取页面是靠跟踪链接的。如果重要链接需要运行JS脚本才能调用或解析出来,那搜索引擎就可能无法跟踪。

不是说链接就不能用JS调用,但重要的、想被收录的页面至少还要有最普通的格式链接提供抓取入口。比如,调用一些相关文章、相关产品链接,可以用JS,但这些链接在网站主导航中都已经有列表页面提供了入口才行。

主导航、菜单系统、栏目/产品列表,不要用JS,除非你确认有其它方法提供了入口。

想被收录的内容不要用JS调用

页面上的文字内容,凡是想被收录的,不要用JS调用,包括文章正文,产品说明,产品图片,评论等。

JS倒是可以用来调用那些不想被收录的文字,比如广告、某些侧栏内容等。

我见过用JS调用内容的各种千奇百怪的用法,比如还有用JS调用页面标题标签的。

慎用懒加载、瀑布流

图片懒加载,甚至文字内容懒加载,是现在网站经常使用的方法,在一定程度上有利于提高页面速度。但要注意,用JS实现懒加载时,是否需要用户互动才能加载,比如点击“更多”链接,或者向下拉页面,搜索引擎蜘蛛是不会做这些动作的,不会点击按钮,也不会下拉页面,所以就可能看不到懒加载后的内容。无论懒加载的是更多本页内容,还是更多其它页面列表,都可能造成爬行、索引问题。

列表页面使用瀑布流是社交媒体网站的主流方式,用户已经习惯,有的普通网站也学这种方式。同样,要考虑到社交媒体网站经常是主动屏蔽搜索引擎的,不想让搜索引擎索引,普通网站大概率是想被索引的,使用瀑布流时要想一想有没有提供搜索引擎可以跟踪链接的其它入口。

注意速度

一般来说,使用JS会拖慢页面打开和响应速度。

通常下载JS文件倒还不算大问题,除非用了几MB的JS文件。但浏览器执行JS有可能会很耗费设备资源,设计不周的JS可能会执行好几秒钟,浏览器在执行JS时不能处理其它事情,造成脚本阻塞,对用户来说就是个页面空白或卡死数秒钟的状态,这是非常急人的。

所以,尽量删除执行时间过长的JS,执行超过1-2秒的脚本需要慎重考虑。尽量合并JS脚本,减少