百度是如何记录点击行为的?

前言:

这篇文章想了很久,不知道该不该放出来,但是为了让更多SEOer了解点击、了解搜索引擎,未央代表未央宫外面的兄弟们在五一节假日放出来了。希望能给到大家做SEO优化时的一丝灵感。接上去,干货末尾!

当点击百度搜索结果的链接后,你将会被带去一个第三方网页。这一复杂的进程其实相当复杂,那么你能否了解在这几百毫秒之中发作了些什么呢?蜘蛛熊将带你探秘。

 

记载点击行为

这一进程经过调用一个w.gif的像素图片完成。这个图片会传递一些参数,详见下图。

点击结果后传递点击信息给百度

 

此处未央的检索词是“蜘蛛熊”,点击的结果是“百度指数”这条结果。url里就是中间页的链接,这个链接里?url=前面的值之后还会被用到。path里是百度以后结果页的地址。另外resource id为1599,说明是个自然搜索结果。

 

至此,百度已获取该点击信息。

 

从referer剥离参数wd

接上去百度会停止一步操作,这步操作将会隐去用户详细检索的关键字。举个例子,我在百度搜google,那么URL将是https://www.baidu.com/s?wd=google

 

当我点击第一个谷歌香港的结果后会跳去一个百度的中间页面,这个中间页面的URL是:

https://www.baidu.com/link?url=_qzTpXb2Yx6i8OvjybEol7DExwdmEjiEGCwsqKZ-38gGFi93MVamdx5ncxor-ayz&wd=&eqid=9fd2c68f0006060f000000045adc8632

 

百度央求这个中间页时,会用该中间页的URL作为referer的URL。这个URL并不是点击时发生的,但是referer的URL却是点击时赋予的。你会发现wd=后的值为空,而wd后放置的是检索词信息,这就是为什么你在Google Analytics中看不到用户检索词的缘由。

 

至此,百度很好地“维护了用户的隐私”。

 

新窗口翻开中间页面

第三步是在新窗口中翻开这个中间页面,至于为什么不是像谷歌或许必应那样在原窗口翻开,这关系到中国网民的习气效果。至少自从有target=”_blank”那年起,国际的搜索引擎就是这么玩的。或许检索效率不高还需回头点别的结果或许运用其他搜索词吧。但是由于新翻开窗口,出现了一些平安隐患,我们在前面详述。这个中间页基本上就是一个脚本。整理格式后,请见下图:

我们看到,这个脚本用了window.location.replace来停止跳转到目的地网址。这是一个罕见的JS跳转。

至此,百度新开了一个窗口并将要带你去目的地网页。

 

验证点击真实性

我们留意到,百度在这个中间页调用了window.opener.bds.pdc.sendLinkLog(); 回到搜索结果页,我们会发现这个页面调用了一个JS。详见下图:

 

我们看到这个央求发送了中间页的字符串参数作为url的值,假设没有这个央求以及没有之前w.gif的央求,那么这个点击很有能够是假的。虽然不能根绝虚伪模拟点击,这很大水平上过滤掉了许多爬虫和低级的虚伪点击。

 

至此,百度为点击数据真实性加了“双保险”。

 

剥离Opener,保证平安

在中间页代码的最后我们看到了window.opener=null; 这行代码假设不加,那么跳转到目的页后目的页就可以凭着window.opener对百度搜索结果页面停止各种操作。新规范HTML中虽然曾经添加了rel=noopener这样的属性来防止对opener赋值,但是旧版的阅读器并不支持。旧版阅读器只支持noreferrer,但是百度还是很自豪地想通知目的页“这是我度娘给您送的收费流量”的。总之,这就形成了平安隐患。在脚本的最后将opener赋为空值就是出于平安的思索,同时保管了referrer。

 

至此,百度曾经预备好带你去目的页面了。

 

跳转到目的页面

经过了上述五步的铺垫,百度终于可以带你去目的页面了。这个页面在新窗口中,它无法获取访客所检索的检索词,它无法对翻开它的百度搜索结果页窗口停止操作。

 

至此,未央曾经引见完了。

 

我们引见百度点击的目的只是想说明百度在数据和平安上确有周全的思索,作为SEO,我们还是尽量从基本着手,防止做一些为了诈骗引擎费力不讨好的事情。

 

提供最优质的资源集合

立即查看 了解详情