首页 » 网络营销 » SEO » 正文

SEO落地页跳失率优化之AB test 如何做

这几年一直在做SEO相关的项目,接触了不少SEO方面的优化技巧和经验,但今天我们不聊SEO优化的技巧,聊一聊SEO流量引过来如何承接住流量,如何优化SEO落地页的体验,如何做AB test 测试

什么是A B test 


首先要了解什么是 分桶测试(bucket testing),简称BTS  :

谓的分桶测试,是让不同的用户在访问特定的互联网产品的时候,由系统来决定用户的分组号(我们称为bucket id),然后根据分组号,令用户看到的是不同的产品版本,用户在不同版本产品下的行为将被记录下来,这些行为数据通过数据分析形成一系列指标,而通过这些指标的比较,最后就形成了各版本之间孰优孰劣的结论。

分桶测试的最简单形式,称为A/B testing。即设定一个基准桶,再设定一个或以上的测试桶。然后考察测试桶与基准桶之间在各项指标上的差异,最后确定测试桶的效果

A/B测试将用户映射到“实验桶(treatment bucket)”。“控制桶(control bucket)”(“A”)是当前产品体验;实验桶(“B”)实现被测试的变更。你可以构建多个实验桶。

tianmao1

分桶算法


 

  •  服务器端分桶逻辑, 获取标识用户信息cookie值,然后做模运算,模N,平均分配到N个桶中
  • nginx 配置层分桶,利用 nginx   split_clients 模块实现分桶,好处是不用修改代码逻辑,直接在配置中调配, 缺点是需要部署多套代码环境
  • 按照集群机器分桶,利用了lvs的流量平均分发
  • 服务器端随机random算法分桶
  • 客户端js实现分桶,适用于页面全部由js渲染,分桶逻辑在客户端维护,后端不需要关注
  • 客户端可以根据设备id以及用户信息做分桶

 

SEO 页面的分桶问题


 

大家都知道 SEO 的页面大部分的流量都来自于百度等搜索引擎的新用户,新用户占比在80%以上。那问题来了,如果按照用户数据做分桶算法做AB test的话就会造成流量分配不均匀,测试对比效果不明显的问题,因为大部分都是新用户,好多都没有注册,没法知道获取用户的cookie信息,自然第一种的方案不适用

nginx的分桶其实也是基于cookie等参考信息做比较好,逻辑和第一种相似

第三种和第四种方式会有一个比较大的问题就是,一个用户在页面上点击可能会出现多个版本的展现,可能一会看到A 一会看到B。没办法很好的评估测试的效果

第四种就更不用说了, SEO的页面基本上都是服务器端渲染,js的方式就暂时不提了

 

如何解决


 

那我们怎么办,我最后的办法是也是采用了第四种方案,但是稍微改造加入cookie,之前的简单逻辑:

if (random() < 0.5) then A else B

不能满足需求,

我们在用户访问的时候根据随机算法种相应版本的cookie在客户端,然后根据cookie的值判断是展现A 版本 还是B 版本, 这样就可以解决一个用户一会看到A 一会看到B的问题,又能保证分配的平均性,是个不错的办法。

 

题外话


 

解决这个问题之前还看了一些资料,总结在这里

多变量测试 (Multivariate Testing)

分桶测试的高级形式,是多变量测试。在多变量测试中,每个可以改变的地方称为因素,而每种因素的可能具有的状态称为水平。比如,你想同时改变某个产品的按钮颜色、排序算法、索引数据这3个地方,那你需要一个3因素的多变量测试。如果,按钮的颜色为3种,那“按钮颜色”这个因素是3水平的。多变量测试允许你在同一时间测试多个要素处于不同水平时对于搜索产品的影响。通过多变量测试,你能十分清楚的看到不同的变化组合,对最终效果的影响。

举例而言,如果对某个产品进行BTS测试的范围为:3种按钮颜色、2种排序算法和2种索引数据,那么该如何确定效果最佳的搭配呢?一般,我们会进行排列组合,产生不同的版本,使得每个版本对应一种水平的组合,这样我们就要构造3*2*2=12种版本参加BTS测试。接下来我们只要确定好每个版本的流量分配即可,即哪些桶对应哪个版本。

 

参考资料:

http://blog.sina.com.cn/s/blog_49ce42ea0101aao0.html

https://www.douban.com/group/topic/72253978/

http://www.infoq.com/cn/articles/twitter-ab-test-practise-part03

http://www.infoq.com/cn/articles/tmall-app-ab-test