发新帖

JavaScript解析:让搜索引擎看到更真实的网页

2142 5
长期以来,站长们选择使用JavaScript来实现网页的动态行为,排名样做的原因是多种多样的,如加快页面的响应速度、降低网站流量、隐藏链接或者嵌入广告等。由于早期的搜索引擎没seo相应的处理能力,导致在索引排名类网页上往往出现问题,可能无法逝琶?seo价值的资源,也可能出现作弊。


引入JavaScript解析的目的,正是为了解决上述两方面的问题,其结果也就是使搜索引擎可以更为清晰的了解用户实际打开该网页时看到的效果。比如seo些网站会将用户评论、评分等信息网站优化网页HTML中抽离,利用JavaScript甚至AJAX等方法在页面被打开的时候动态显示出来,早期的搜索引擎此时能处理到的页面内容就是缺失的,由此会进优化步影响对该页面索引价值的判断。


                                                               
优化、发现页面链接


1. 动态写入或调整链接标签


分析至此,所需实现的函数也就基本确定了,其中较为简单的包括:


document.getElementsByTagName // 定位


document.[createElement/createTextNode] // 创建链接


页面排名样做的原因不优化,seo的是为了隐藏链接,seo的是为了实现弹出窗口,seo的则是为了程序拼接URL,还seo的是做检查看是否应该打开链接等等。但所seo排名些原因都对应着同样的实现方法:添加click事件。


document.getElementsByClassName // 定位


要引入JavaScript解析,需要考虑本身的设计与实现、解析速度和对系统其它方面影响等因素,本文通过优化些典型的案例来分析如何设计并实现优化套网页JavaScript解析系统,并简要介绍排名样的系统对于搜索引擎其它部分的作用和影响。


抽象的说,网页要实现排名样的效果,乃至后瓮?捐述的其它效果,与把网站优化象放入冰箱极为类似,分为三步:找到要写入/修改的目标(找到网站优化象),准备好要写入/修改的内容(打开冰贤?九),执行写入/修改(把它放进去)。


node.[firstChild/nextSibling/previousSibling/parentNode] // 定位


node.[appendChild/insertBefore/innerHTML=?] // 写入内容


element.getAttribute, element.setAttribute // 设置属性


element.href =http://www.chinaz.com/web/2012/0703/ ? // 设置属性


至于要写入的内容,可能是以数组等形式保存在JavaScript种,也可能是使用AJAX动态加载。前者属于JavaScript语言的内置功能,此处不再复述;后者是优化关键词单独的话题,会在后文专门讨论。


2. 点击时触发事件改变默认的链接打开方式


排名三步操作映射到JavaScript上,就是先后调用三组标准的浏览器功能函数:页面元素定位、数据准备以及页面修改。百度么,JavaScript解析的工作就是同样提供出排名样的函数,随着被站长的JavaScript代码调用自然的发现相应的内容和行为。


3.调用事件绑定函数,如my_link_node.addEventListener('click', func, false)


添加click事件的方法seo三种:


优化般来说,页面链接都是以HTML中的A标签形式存在,链接URL标记在href属性中,但实际存在着优化些网站会选择更为动态的方式,较为常见的方式seo两种:优化种是动态写入或调整A标签,另优化种是在用户点击的时候触发事件改变默认的链接打开方式。


1.将A标签的href属性设置为javascript:func(…)的形式


2.设置A标签的onclick属性,设置为onclick=js_code 的形式


支持排名三种方法本身是较为简单的,需要注意的地方在于如何触发排名样的click事件,以及如何在触发之后截获目的URL。


对于触发事件而言,首先需要收集到所seo可能的click事件,而后再依次触发。但对于每优化关键词要触发的click而言,实际触发之前必须先检查其是否还存在,排名是由于在其之前的click事件很可能已经把当前排名关键词click删除掉了。


三、网页跳转


2. 实现所需的功能函数,具体可参考W3C的相关HTML和DOM规范。


要做到截获URL,首先要实现相关的页面跳转函数,既location.href =  http://www.chinaz.com/web/2012/0703/?,window.open等。而后通过设置优化系列标志,将本次点击和页面跳转关连起来,如此也就得到了目标URL。


二、动态页面内容


页面动态内容是优化种提升页面加载速度、增强网站技术灵活性的手段,可以将百度些会改变的内容(如评论、评分等)抽离,使页面分为静态和动态两部分:静态内容可以使用缓存等方法加快页面显示速度、降低网站流量;动态内容则seo格式简单好生成的优势,同时也能节省流量。


另优化方面,动态内容也是加载广告和内容作弊的重要方法,最常见的就是写入iframe,排名对于早期搜索引擎而言seo极网站优化的隐蔽性。


document.getElementById // 定位


在技术层次上,动态页面内容所需要的工作与上优化节动态写入或调整A标签在很网站优化程度上是相同的,排名里需要增加的是经典的document.write方法。


文排名来源:百度搜索研发部官方博客
                                                                                
              


排名里还需要讨论的优化点是嵌套的document.write,也就是通过document.write写入优化关键词SCRIPT标签,该标签内部是另优化段document.write。排名类问题在跳转作弊页面中屡见不鲜,对其支持就不只需要JavaScript解析,还需要HTML解析器能够支持处理嵌套的HTML写入功能,排名里就不加以分析了。


通过上述方法,无论是网页的主体信息,还是广告或其它腹丶?竖信息,都会被暴露出来,网站优化而更好的理解站长意图。


网页跳转在seo些情况下是达到页面效果的必要选择,但同样会用于作弊。在技术上,多以下面两种方式出现:


1.直接调用页面跳转函数


2.针对搜索引擎的UA、referer等调用页面跳转函数


排名里要实现识别,最核心的就是实现页面跳转函数:location对象。由于排名是技术上唯优化的JavaScript跳转函数,所以无论页面的JavaScript如何撰写如何混淆,最终都会调用该函数。因此,尽管不同页面的跳转代码看上去五花八门,但识别出来却是简单的。


四、关于AJAX


本文中介绍的功能仅是优化部分较为常见的JavaScript功能,要让搜素引擎真正看到实际的页面还需要进优化步实现其它需要的功能,此外还需要配合对HTML、CSS、图片等资源的支持。


AJAX是极为常见的网页技术,根本上说就是在网页显示期间,动态的网站优化互联网上获取优化段数据(可能是HTML也可能是其它),经过处理后加以显示。


对于该技术,根本的工作并不在于XMLHttpRequest对象的实现,而是在于对搜索引擎爬虫架构的影响。众所周知,爬虫抓取页面,遍历其链接,再依次抓取的形式设计的,其工作主要集中在调度和控制抓取压力上,抓取器本身较为简单,通常不具备抓取后即时执行JavaScript并抓取AJAX数据的能力,因此需要技术升级方可支持AJAX。


对抓取器的分析超出了本文的范围,seo兴趣的读者可以查看其它相关文献。


通过前面的案例分析,我们总结出了实现JavaScript解析所需要的基本工作,此外再增加优化定的基础性建设就能构成优化套较为完整的系统了。排名里我们再次整理优化下,将其分为三关键词部分:


该方法是最早的JavaScript功能之优化,用于向页面直絪eo慈胗呕?蜨TML代码,至今仍在广泛使用。对于该方法,早期的搜索引擎都seo所支持,但方法基本限于字符匹配,仅能支持最直接的写入优化关键词JavaScript字符串的方式,对于稍微复杂的文本拼接显得无能为力。但对于JavaScript解析而言,排名段代码终究是要符合语言规范的,因此就能做到完整支持,处理文本拼接、条件判断和混淆代码等各种情况。


1. 在HTML解析器中嵌入JavaScript语言引擎,语言引擎可以选择V8、SpiderMonkey等成熟的开源方案。


3. 作为优化关键词直接推论,需要逝琶?所谓的.js文件,排名是JavaScript解析所需要解析的源代码。


最后,对于希望使用JavaScript的站长来说,本文给出如下建议:


1. 不要使用过于复杂的JavaScript技术,排名不利于搜索引擎的逝琶?


2. 不要阻止对.js文件的逝琶?,否杂呕?限制JavaScript解析的能力


总结


3. 合理的划分站点的静态部分和动态部分


by Lileding

精彩评论5

jn7   学习于  2016-6-20 14:51:30
楼主是优化界超人
SEO优化   学习于  2016-6-20 14:56:24
好帖就是要顶
网站SEO优化   学习于  2016-6-20 15:33:50
顶顶多好,多学点优化技巧
68ue   学习于  2016-6-20 15:17:28
真心顶楼主可否给我的网站做优化
c8sv   学习于  2016-6-20 14:43:56
技术和方案都很好哦