公众号截流,关键词的竞争度,直接决定能否截流成功。

注册此类关键词的公众号越多,排名第一的时间和成本也越高。

所以,在一堆热搜关键词中,获知这批词,在微信公众号中有多少个搜索结果,是判断竞争度的关键手段,<=10个基本就是没竞争了,流量白捡的。

获取这个数据,追准确的,自然是抓微信客户端的数据,but,微信的风控使我劝退,账号被封了就尴尬了。

有一些曲线救国的方法:

搜狗微信搜索

But,搜狗公众号搜索最多只有192个搜索结果

Snipaste_2020-11-24_14-20-31.png

比如SEO,大约接近400个公众号(我人肉挨个数了),这数据就不全。

那么,还有另外两个数据源

新榜

新榜有JS反爬措施

第一,必须登录才能获取数据,需要将cookie中的token传上去,才能返回正常结果

Snipaste_2020-11-24_14-23-24.png

第二,post的参数中,每次请求xyz和nonce是不同的,这两个参数是通过两端js函数生成,逻辑不复杂,可用过python来生成这两个参数

Snipaste_2020-11-24_14-24-54.png

清博大数据

Snipaste_2020-11-24_14-30-25.png


从爱站导出热搜词,包含PC和mobile的搜索量,再配合上面3个数据源的公众号搜索结果数,便可快速判断哪个词,可以优先截流。

Snipaste_2020-11-24_14-40-27.png

哪个数据更准确

本渣人肉检查了十几个词,其实都不是绝对准确。

搜狗和新榜的数据,会略小于真实的搜索数量,清博会出现数值大于实际值的情况,估计是把被删除的账号也算进去了。

总之,建议主要靠搜狗和新榜两个数据综合来看,这两个数据,更接近真实情况。

平台的反爬措施

  • 搜狗有严格的IP反爬,需要准备大量代理IP
  • 新榜有JS+Cookie反爬,但我快速抓了4000个词,账号也没啥事,不知道被封的阈值在哪里
  • 清博大数据,佛系

代码已发到星球,如果在星球的同学,有此类数据需求,但代码不会部署,可提供关键词,本渣渣可以代查

星球.png

上回说到,本渣在尝试用Auto.js 7.0写百度移动点击的脚本,But由于:

  • 真机Android版本6.0
  • 系统不能Root

无法实现屏幕滚动,自然也无法进行「下一页」按钮的点击,于是我折腾了下其他解决办法,这一折腾,可把我折腾坏了

第一次折腾

换雷电模拟器,开启root,配合Autojs7,操控默认的浏览器,发现很多节点autojs执行点击没反应

第二次折腾

我假设是autojs7版本问题,于是网上找个autojs4的版本,仍旧点击没反应。

第三次折腾

我假设是浏览器问题,换成了搜狗浏览器,嗯,这回有反应了,看起来是雷电默认浏览器的问题。

到了搜索结果页,可以向下滑动,美滋滋,But,点击「下一页」按钮时,发现没反应

Snipaste_2020-11-20_14-31-21.png

这tm又是怎么回事,google搜索一番,有说autojs老版本存在bug

第四次折腾

于是我下载了auto.js 8最新版,但这个版本要花钱,于是我交钱了

再次点击「下一页」,别说,真是牛逼,还没反应

第五次折腾

看来autojs是不行了,准备换成EasyClick,但是我不会,于是看了半天EC文档,其实跟autojs差不多,就是函数名变了变,js语法还是那些语法

终于,这次「下一页」按钮可以点击了,之前autojs无法点击的原因在于:控件没有找全

Snipaste_2020-11-20_14-47-00.png

下一页这个按钮,有4个节点,其中只有一个是有节点id并且可以点击的,而autojs默认的节点工具,没有找全....

第六次折腾

But,到了第二页的翻页点击按钮,这个按钮节点跟第一页不一样,并且没有id、text属性,这些是能体现节点独立特征的属性

Snipaste_2020-11-20_14-49-51.png

于是只能通过其他属性来定位此节点,但每次都能找到N个备选节点(其中有一个是这个翻页按钮的),并且第2、3、4、5页,找到的备选数量是不一样的

好在这些备选节点,只有翻页按钮的text="",for循环便能找到对应的点击节点

Snipaste_2020-11-20_15-00-48.png

第七次折腾

强壮代码,加入了一些异常处理机制,比如突然弹出常见的弹窗、IP太渣网页打不开之类的处理

但目前位置,基本实现了跟PC端逻辑相同的功能:

  • N页内循环查找点击目标
  • 切换IP
  • 改硬件参数、清空浏览器数据,回归初始状态

但是搜狗浏览器麻烦的是,每次清空数据,默认搜索引擎都变成搜狗搜索,还得在改一下,让人很不爽


移动自动化脚本的开发,整体难度上,比python开发SEO各类工具要小很多

本渣感觉吧,移动脚本应用的开发难度上,引流类脚本(养号、站街、扫号、薅羊毛、自动回复、采集数据...)比游戏类脚本简单很多

游戏脚本麻烦啊,很多只能图色查找,涉及分辨率、打包APK后系统兼容的问题,还有乱七八糟的活动窗口需要处理,开发一个传奇脚本,对外出售要1万


脚本后面更新到知识星球上,目前在筹备星球事宜,后面发出来。

前俩月,一个做产品的朋友,跟本渣说有个“风险投资公司”在找SEO外包,问我有没有没兴趣接。

本渣当然没兴趣,外包多麻烦啊,万一对方是个事逼呢,但对朋友不好意思直接拒绝,就问了下SEO的目标是啥?

得知对方的要求:就是最长一个月内,把品牌词(就是这个VC的英文名称)及围绕品牌的相关5、6个词,最差的情况,弄到Google前5,前3最好。

本渣把网址要过来瞅了眼,硬伤不小,又去google trends查了下数据,初步感觉难度不大。

于是问了下对方报价多少?对方说10万,我一口水差点喷了出来,做VC的果然有钱,后悔当初没好好学习考北大清华毕业进VC。

当然,资本家也是狡猾的,觉得报的太高了,但自己划价不方便,毕竟是有身份的人,怎么能干出划价这种事呢!于是派个打工人过来划价,最后来回扯皮,划到了8.5万。

竞标环节

之后就是「竞标」环节,从打工人那里得知,还有几家“专业乙方SEO公司”也在参与,而我们只是个人,最后要从中选一个,让我们先出个方案并讲解,最后在结合报价来选择。

果然是资本家,货比三家都是正常操作。

于是本渣就去写方案了。

分析问题

提案前,先分析网站问题。

这个网站的现状是,搜索英文品牌词,google完全找不到。

其原因,在于3点:

  • 前端是vue.js框架,浏览器接收服务器返回的html和json,在经过渲染呈现给用户,但爬虫直接get请求html,拿不到任何文本内容。
  • 网站打开默认是中文,有语言切换按钮,点击后可切换语言。但前端是vue,语言切换,url是不变的。
  • 网站只有6个url。其实页面有很多,比如N个投资公司的介绍页面,还是vue的问题,url是不变的。

所以问题在于:

  • 对于google来讲,这个网站没有内容
  • 对于google来讲,这个网站是中文站点
  • 对于google来讲,这个网站页面量很小

解决办法:

  • 前端重写,文本内容完全披露于html中
  • 用独立的url和title/descript,承载不同的语言版本页面
  • 前端重写,所有能生成页面的内容,全部用独立url承载

提案技巧

问题确定,就该提案了,提案的目的,是让对方能够最大化的认可你的方案。

就本渣个人经验,有3点很重要,容易促成认可:

  • 找个牛逼的参照物
  • 不说正确的废话
  • 数据明确

至于PPT要做的高大上,这些都是「面子」问题,有更好,锦上添花嘛。

找个牛逼的参照物

VC机构哪家强?应该红杉资本吧。

除了很多耳熟能详的大厂背后,均有红杉的参与,本渣接触的创业者,无一例外,都想找红杉参投,原因是有排面,下一轮融资会比较容易

于是本渣看了看红杉的官网和SEO友好性,别说,做的还真不错,拿来当参照物在合适不过。

提案中可能有这种情况,你觉得你说的没问题,但对方可能因为某种原因,比如:

  • 他不是SEO出身
  • 不懂技术
  • 看你不爽
  • 你长得丑
  • 你表达能力差
  • .....

总之,对你的方案不是很认可。

所以需要找一个这个领域内牛逼的参照物,于是可以说“红杉的官网在SEO方面,也是这么做的”,这样更有说服力,榜样的力量是无穷的。

于是在方案中对比下

Snipaste_2020-11-18_13-18-34.png

不说正确的废话

在百度文库搜“SEO方案”,基本都是正确的废话。

比如写什么内链优化、外链优化、内容优化、模板优化啥的....每一块都能抠出一堆东西,听上去很全面,但甲方听完后,依旧不知道怎么执行。

Snipaste_2020-11-18_13-40-31.png

我们要做的,就是找准影响排名最核心的1、2个点,及具体行动,其他锦上添花的就不整了,整的越多,容错率越低。

比如代码要怎么改,不废话,直接贴上

Snipaste_2020-11-18_13-39-13.png

数据明确

比如

  • 在什么时间,完成需求中的哪些事
  • 在什么时间,可以上google首页
  • 在什么时间,可以上google前三

具体时间,在对方接受的范围内,往长了说,给自己留足够的缓冲时间。


之后就是竞标成功,来给他们做google seo,然后知道他们没技术团队,官网外包开发的,前端重构需要我们来整。

于是赶紧找个技术同学来重构前端,目前该VC品牌词已在google第1,其他相关词前3

google的反应真实快啊,这要是Baidu,还不得等3个月。

应该很多同学没发现,在微信公众号搜索「SEO」这个词,本公众号已经出现在第6的位置,按目前手机屏幕尺寸,应该在首屏能出现。

f1753498b4f2332fbdad482e71cfc23.jpg

在此之前,搜索SEO是找不到这个号的。

起因是前些天,加了一个交流各种渠道引流变现的社群,很是活跃。

6516303827607a79ef60702ef71b412.png

其中里面有个大佬,每天打鸡血一样分享各种关于「公众号引流和变现」的方法论,对,每天。其中就包括公众号排名。

于是本渣对公众号SEO突然来了兴趣。

当然,大佬业务中也有「公众号排名服务」这项,自然内藏玄机,关键的地方有所保留。

But呢,大佬显然不太了解怎么保密,往群里发的排名案例,优化特征都太明显了。。。

本渣将几个案例对比了下,看了5分钟,就大概猜出来大佬怎么做的了。。就是通过「常识+简单的逻辑推导」就能看出来,因为特征太明显。

经过验证,3天从无排名,到第6名。在整一整,第一、第二应该没事问题。

不过话说回来,每天新增的粉丝,到没见有多少增长。

下面来说一说,实操过程,关键部分有所保留,而且猜不出来,因为本号特征十分不明显

2020年10月28日

我看着排名第一的「柯南SEO」与他那魔幻的头像,柯南看着我,而我,看着柯南,陷入深思,本渣如何才能干掉他?

良久找不到思绪,直到对门情侣吵架了,大脑电光一闪!想到了!

柯南怕什么?

怕小兰啊!

timg.jpg

若我把名字改为「小兰SEO」,就一定能取缔他第一的位置。

但最终没有采取这个方案,因为「流量贩子」这个名称不能丢,要不然之前发的广告,就白费了

2020年10月29日

公众号描述,添加包含「SEO」的关键词,在搜索中没有找到。

结论:描述中的词,不参与搜索展现

2020年10月30日

名称由「流量贩子」改为「流量贩子SEO」,当日搜索排名,第40位

结论:公众号名称,决定是否参与展现。

2020年10月31日

公众号关注回复、菜单、个人认证文案,均添加关键词「SEO」,排名上升至第34位

结论:公众号内所有文本标签,影响公众号排序,但能干预排名的程序有限。

2020年11月03日

更新文章,并设置一些用户活跃手段,如:

  • 引导点赞、再看、转发
  • 设置投票
  • 找一票好基友,帮转了一些文章
  • ......

2020年11月04日

排名上升至24位

2020年11月05日

排名上升至第7位

2020年11月06日

排名上升至第6位

2020年11月07日

今天,排名保持第6,再次更新文章。

总结

  • 公众号名称必须包含目标关键词,不用在意密度,出现1次包含更多词缀即可。比如「流量贩子SEO优化教程」
  • 公众号内各种标签文案包含关键词,但对排序影响比较鸡肋
  • 用户活跃对公众号排序影响较大


// 1、数据类型
// var i = 0;
// var str = "hello , this is str";
// var arrary = [];
// var 对象 = {};
// var flat = true;

// 2、js打印结果的3种方式
// log(i)
// console.log(str)

// 输出log,并手机屏幕显示log
// toast(str)


// 3、字符串操作
// 字符串的分割
var data = "1234566---que123";
var split_befor = data.split("---");
log("「字符串分割」" +"name:" + split_befor[0] + "  password:" + split_befor[1])

// 字符串截取
log("「字符串截取」" + data.substring(0, 5))

// 字符串是否包含某字符 0包含 -1不包含
log("「字符串是否包含」" + data.indexOf('12345'))

// 字符串替换
var data2 = data.replace("que123", "ab24562660")
log("「字符串替换」" + data2)

// 4、流程控制
// while    for     swith    if

// for循环
for (var i=0;i<10;i++) {
    if (i>5){
        log('「for循环 > 5」' + i)
    } 
    else if ( i % 3 == 0) {
        log('「for循环 整除3」' + i)
    }
}


// while循环
var i = 0;
while (true) {
    i = i+1;
    if (i > 9) {
        log('「while循环」' + i)
        break;
    }
}


// switch
switch (1) {
    case 0:
        log('「switch」' + 'case 0')
        break
    case 1:
        log('「switch」' + 'case 1')
        break
}


// 5、数组操作
// 添加 & 删除 & 遍历 & 排序 & 过滤

// 添加
var list = [];
list.push(1);
list.push("2");
list.push([1,2])
log(list)


// 遍历
list.forEach(item=> {
    log(item)
})