小语种内容存量的中位数:随机翻开一页,瑞典语一年6个人打开,老挝语140个
本文目录
- 内容存量这个数,按页拆开会看到什么?
- 总数是个被平均过的东西
- 为什么这个问题在小语种上格外要紧
- 这次的做法
- 为什么用维基百科的页面
- 这篇不谈的两件事
- 随机抽120页,一年被真人打开几次?
- 完整的分布表
- 最上面那几行长什么样
- 最下面那几行才是意外
- 那句话说反了
- 先排除一个可能:是不是抽样有偏
- 为什么瑞典语和越南语会掉到最下面?
- 这两门语言的页面是怎么来的
- 造页面不产生读者
- 老挝语为什么反而好看
- 约鲁巴语是个中间态
- 先别急着接受这个解释
- 换个跟读者规模无关的变量,结论还成立吗?
- 换成灌注强度
- 排出来的次序
- 瑞典语在这个口径下有点低
- 那句定性的话
- 平均值和爬虫,各自能把这个数带偏多远?
- 越南语差了80倍
- 头部拿走了多少
- 宿务语的42%说明了什么
- 报表上该放哪个数
- 换一个角度:同一批样本上的爬虫数
- 17倍意味着什么
- 跟汇总层的数对得上吗
- 什么时候该担心
- 自己挑出来的那批词,会不会好一点?
- 换一批不随机的页面
- 但有意外的是覆盖率
- 爬虫真人比在这批页面上
- 这对选题的含义
- 这次有两把尺子失效了,是哪两把?
- 第一把:单月热门榜
- 第二把:用有没有流量记录来判断页面存不存在
- 还有一个采集层的坑
- 为什么要把失效的尺子写出来
- 换到你自己的站上,这个数怎么量?
- 第一步:把页面级的读数拉出来
- 第二步:把零的那批单独拉出来
- 第三步:算一下自己的“灌注强度”
- 第四步:把这几个数做成定期项
- 一个可以半天跑完的清单
- 量出来之后,该删还是该留?
- 先分三类,不要一刀切
- 什么样的页面该删
- 什么样的页面该合并
- 什么时候该反过来加页面
- 哪些相邻的问题不归这一层管?
- 内容质量本身不归这一层
- 翻译和审校不归这一层
- 整门语言的汇总比例不归这一层
- 这份数据本身的边界
- 常见问题解答
- 随机抽120个页面,样本量够吗?
- 用维基百科的数据,能代表商业站吗?
- 中位数为什么比平均值重要?
- 零点击的页面是不是都该删?
- 宿务语这种极端案例,现实里会碰到吗?
- 这套方法对刚上线的站有用吗?
- 中文市场用得上吗?
- 权威参考资料
摘要:在16门语言里各随机抽120个页面,逐个查它们2019年被真人打开过几次,得到的中位数排出来是这样:宿务语1次、瓦瑞语2次、瑞典语6次、越南语7次,而老挝语140次、蒙古语136次、高棉语132次、僧伽罗语131次。排在最下面的四门没有一门是真正意义上的小语种,全是被程序批量建过页面的语言版本;反倒是页面最少的老挝语,随机翻开一页的读数比瑞典语高23倍。换一个跟读者规模完全无关的变量再验一遍——峰值单月新建量除以中位单月新建量——相关系数是−0.864,结论不变。平均值在这件事上骗得很厉害:越南语的均值是中位数的80倍,前10%的页面拿走了97.9%的阅读量。本文给出16门语言的完整分布、两把中途失效的尺子,以及在自己站上量同一个数的办法。
做内容排期的时候,很多决定的起点是一个数:这门语言的公共内容有多少。数大就叫竞争激烈,数小就叫机会窗口。
这个数很好拿,各语言版本的页面总数是公开的,一分钟就能抄一张表下来。
麻烦在于它是个总数。总数回答的是“有多少页”,不回答“这些页有没有人打开”。这两件事在英文市场差别不大,在小语种市场差别能有三个数量级。
所以这次换了个做法:不看总数,随机翻开其中的一页,看它一年被多少个真人打开过。
内容存量这个数,按页拆开会看到什么?
总数是个被平均过的东西
一门语言有50万个页面,全年真人访问1.7亿次,平均每页340次。这个平均数看起来挺健康。
但平均数只在分布比较均匀的时候才有意义。如果这50万页里有5000页拿走了绝大部分访问,剩下的49.5万页各自一年被打开三五次,那个340就完全是虚的。
做内容决策的时候,你关心的其实是后面那个分布,因为你新写的那一页大概率落在长尾里,而不是落在头部那5000页里。
换句话说,该问的不是“平均每页多少次”,而是“随便挑一页,它一年被打开几次”。
为什么这个问题在小语种上格外要紧
英文市场的内容存量是几十年一点一点长出来的,长得慢,但每一页背后大体都有个写它的人和读它的人。
小语种不一样。有几门语言的页面总数在某几个月里突然翻了几十倍,那是程序干的,不是人干的。这批页面会把总数撑得很好看,可它们从来没有过读者。
如果你拿总数去判断竞争强度,这几门语言会被判成“内容已经很厚,别进”,而实际情况可能正相反。
判错的代价不是少赚,是把一个几乎无人竞争的入口让出去。给语言排优先级的时候,这类误判往往发生在第一步,后面所有的资源分配都跟着错。
这次的做法
取16门语言,每门用随机抽样接口抽120个正文页面,然后逐个去查它们2019年全年被真人打开的次数和被爬虫抓取的次数。
16门里有英语和泰语这样的正常对照,有宿务语、瓦瑞语、瑞典语、越南语这几门被程序建过页面的,也有老挝语、僧伽罗语、高棉语、蒙古语这批真正的小语种。
抽到的页面必须在2019年1月1日之前就存在,否则读到的零不是“没人看”,是“那时候还没有”。这一步的处理比想象中麻烦,后面有一整节讲它怎么差点把结论带偏。
所有数据截到2019年12月,逐页可查、可复核。抽样脚本和查询参数都很简单,任何人拿同样的接口跑一遍都能得到同一批数。
为什么用维基百科的页面
要横着比十几门语言,需要一个各语言口径完全一致、而且能逐页拿到流量的地方。商业站没有这种数据,广告平台的估算不分真人机器,第三方工具的小语种数据基本靠猜。
维基媒体把逐页的月度访问量做成了公开接口,而且区分真人和爬虫。这是目前唯一能做这件事的样本。
它不等于电商站,这一点后面还会说。但它能回答一个电商站回答不了的问题:同样一门语言,页面的构成不同,读数的分布会差多少。
结论落在语言之间的相对关系上,不落在绝对数值上。
这篇不谈的两件事
第一件是整门语言的汇总比例。上一篇已经把访问量里机器占多少量过一遍,那是汇总层,本文只做页面层。
第二件是内容质量本身。一个页面没人读,可能因为它写得不好,也可能因为它讲的东西本来就没人关心,还可能因为它压根不该存在。这三种情况本文不区分。
本文只回答一个事实性的问题:随机翻开一页,一年有多少人打开过它。至于该拿这个数字做什么决定,最后两节会给判据。把事实和判断分开写,是这类数据文章最该守的一条。
先看那16行数。
随机抽120页,一年被真人打开几次?
完整的分布表
下表按中位数升序排。有效样本是剔掉“2019年之前还不存在”的页面之后剩下的数量。
| 语言 | 有效样本 | 中位数 | 四分位下 | 四分位上 | 零次占比 | 不到10次占比 |
|---|---|---|---|---|---|---|
| 宿务语 | 105 | 1 | 0 | 2 | 47.6% | 100.0% |
| 瓦瑞语 | 114 | 2 | 1 | 4 | 0.0% | 86.8% |
| 瑞典语 | 88 | 6 | 3 | 15 | 0.0% | 56.8% |
| 越南语 | 100 | 7 | 6 | 11 | 0.0% | 69.0% |
| 约鲁巴语 | 82 | 7 | 1 | 33 | 12.2% | 58.5% |
| 乌兹别克语 | 36 | 50 | 33 | 117 | 0.0% | 2.8% |
| 缅甸语 | 51 | 69 | 2 | 390 | 9.8% | 37.3% |
| 阿姆哈拉语 | 111 | 80 | 22 | 292 | 0.0% | 15.3% |
| 僧伽罗语 | 69 | 131 | 40 | 306 | 0.0% | 1.4% |
| 高棉语 | 60 | 132 | 65 | 423 | 0.0% | 0.0% |
| 蒙古语 | 68 | 136 | 55 | 506 | 0.0% | 1.5% |
| 老挝语 | 55 | 140 | 37 | 361 | 0.0% | 3.6% |
| 印尼语 | 62 | 182 | 21 | 633 | 0.0% | 12.9% |
| 英语 | 95 | 1067 | 370 | 6569 | 0.0% | 1.1% |
| 泰语 | 79 | 1232 | 427 | 5612 | 0.0% | 0.0% |
最上面那几行长什么样
宿务语随机抽一页,2019年全年被真人打开的中位数是1次。有47.6%的页面一整年一次都没有。全部105个有效样本,没有一个超过10次。
瓦瑞语中位数2次,86.8%不到10次。四分位上界是4——也就是说四分之三的页面一年被打开不超过四次。
把这两行翻译成中文:这两门语言的页面,绝大多数从建成那天起就没有被人类打开过,或者只被打开过一两次。
它们的页面总数分别是533万和126万。前者比德语版还多。一个比德语内容还“厚”的语言版本,随机翻开一页的年读数是1次。
最下面那几行才是意外
老挝语中位数140次,蒙古语136,高棉语132,僧伽罗语131。这四门的四分位下界都在37以上,也就是说四分之三的页面一年至少被打开三四十次。
老挝语的页面总数是3311个,全表最少,读者规模也最小——月均只有4万台设备。
可它随机翻开一页的读数,是瑞典语的23倍。
瑞典语有1200万台设备的读者规模,244万个页面。按任何一种直觉,它都该比老挝语好看得多。读者多了三百倍,典型页面的读数却只有人家的二十三分之一。
那句话说反了
开工前我写下的预期是“小语种品类词条目的年真人阅读量中位数低于100”。实测下来这条错了,而且错得很彻底。
老挝语140、僧伽罗语131、高棉语132、蒙古语136、印尼语182,全部高于100。真正低于10的四门是宿务语、瓦瑞语、瑞典语、越南语。
这四门里有一门是北欧的成熟语言,一门是有近亿使用者的东南亚大语种。它们跟“小语种”三个字没有关系。工具在小语种上返回的零常被拿来佐证“这门语言没需求”,这次的数据说明那个零经常指向别的东西。
所以那句流传很广的话——小语种内容没人看——是假的。真的那句是:被程序造出来的页面没人看,而这件事跟语言大小无关。
先排除一个可能:是不是抽样有偏
随机抽样接口取的是正文命名空间里的页面,不做任何加权。但抽到什么,取决于这门语言的页面池子里装的是什么。
宿务语的池子里装着533万个由同一套模板生成的地名和物种条目,抽120个当然全是那类。老挝语的池子里只有3311个页面,几乎都是人写的,抽120个也当然全是那类。
这不是抽样的缺陷,这就是要测的东西。随机翻开一页会翻到什么,本身就是这门语言存量构成的读数。
要小心的是另一件事:拿这个中位数去回答“我新写一篇会有多少人看”,那是不对的。它回答的是“这门语言现存的页面里,典型的一页是什么状况”。两个问题的答案可以差很远,尤其在存量被稀释过的语言上——你新写的那篇有可能比典型页面好十倍,因为典型页面实在太低。
为什么瑞典语和越南语会掉到最下面?
这两门语言的页面是怎么来的
瑞典语版本在2012年到2014年之间被一个程序批量建过页面。建这些页面的那个程序做的事情是从物种数据库和地理数据库里抽记录,套模板生成条目,一个月能造二十多万个。
宿务语和瓦瑞语用的是同一套东西,只是换了语言参数。宿务语版本的来历有完整记录,它今天533万个页面里的绝大多数出自那几年。
越南语的情况类似但没那么极端,它在2013年前后也有过一轮大规模导入,峰值单月新建20.8万页。
这四门语言的共同点不是语言小,是页面被一次性造出来过。
造页面不产生读者
一个物种条目写着这个物种的拉丁学名、分类阶元和一句“它是某某属的一个种”,这种页面在任何语言里都不会有人搜。造一百万个,读者数量一个都不会多。
但分母涨了。这门语言的“内容存量”从此看起来很厚,随机翻开一页的读数从此变得很难看。
瑞典语的绝对读者规模一点没受影响——它2019年全年真人访问11.2亿次,比泰语的7.9亿还多。掉下来的只是分布,不是总量。这也是为什么只看总访问量的报表永远发现不了这件事。
总量和分布在这里第一次分家:读者没少,页面多了,于是典型的一页变差了。
老挝语为什么反而好看
老挝语的3311个页面,是十几年里一点一点写出来的。峰值单月新建535页,中位数每月8页。
这种节奏下建出来的页面,选题是人挑的。人挑选题会挑他觉得有人要看的,所以这批页面天然带着一点需求筛选。
加上老挝语的读者虽然少(月均4万台设备),但这4万台设备的注意力只有3311个页面可分。人均能分到的页面很少,每个页面分到的人反而不少。
这就是那个140次的来历。它不代表老挝语市场大,它代表这门语言的供给端还没有被稀释过。稀释是个不可逆的动作,页面造出来容易,把读数抬回去很难。
约鲁巴语是个中间态
约鲁巴语的中位数是7次,跟越南语一样,但它的分布形状完全不同:四分位下界1、上界33,零次占12.2%。
这门语言的页面总数只有29421个,但它的峰值单月新建量是14797页——差不多一半的页面是在一个月里造出来的。
所以它同时具备两个特征:总量很小,可其中一半是灌进去的。分布因此被撕成两半,一半有人读,一半完全没有。
这个中间态比两个极端更常见,也更容易看走眼。只看中位数会以为整门语言都完了,其实还有一半是活的;只看总数会以为一切正常。
先别急着接受这个解释
“页面是不是被灌出来的”听起来很顺,但它不是我一开始算出来的东西。第一版算的是另一个指标:页面数除以读者数。
那个指标算出来的相关系数是−0.893,比后面这个还高。按理说该采信它。
问题出在越南语上:它的页面数除以设备数是0.077,跟老挝语的0.082几乎一样,可两者的中位数差了20倍。一个能解释一切的指标,不该在两个比值相同的语言上给出20倍的差。
相关系数漂亮不等于模型对。所以我换了个变量重算一遍。
换个跟读者规模无关的变量,结论还成立吗?
换成灌注强度
新变量只用页面侧的数据,完全不碰读者:拿这门语言历史上新建页面最多的那个月,除以它的中位月新建量。
这个比值量的是“建页面这件事有多不均匀”。正常长出来的语言,各月新建量差不多,比值就小;被程序灌过的,比值会大到离谱。
它跟读者规模完全无关,所以拿它去解释读数,不存在两边共用一个变量的问题。
算出来的相关系数是−0.864,样本15门语言。跟前一个指标差不多硬,但解释力更干净——它不依赖读者数据,所以不存在因果方向上的含糊。
排出来的次序
宿务语4050倍、瓦瑞语2861倍、约鲁巴语740倍、乌兹别克语402倍、越南语151倍、缅甸语150倍、阿姆哈拉语111倍。
下半段是老挝语67倍、瑞典语65倍、印尼语63倍、僧伽罗语10倍、高棉语10倍、蒙古语5倍、泰语4倍、英语3倍。
这个次序跟读数的中位数几乎完全反着走。宿务语最猛的12个月造出了累计页面数的53%,瓦瑞语91%,乌兹别克语90%,约鲁巴语82%;而英语的最猛12个月只占11%,泰语12%。
越南语在这个口径下从明显的离群点变成了中游偏上,跟它的读数位置对得上了。
瑞典语在这个口径下有点低
瑞典语的灌注强度只有65倍,跟老挝语的67倍几乎一样,可两者的读数差23倍。这一条对不上。
原因是瑞典语的中位月新建量本来就高(3373页),分母大,比值就被压下来了。它的绝对灌注量是每月21.7万页,跟宿务语一个量级。
所以这个指标也不是万能的,它在“本来就写得很勤”的语言上会低估。
两个指标各有各的盲区,能对上的部分才是可信的那部分。这也是为什么最后我把主张压在一句定性的话上,而不是压在某个公式上。两把尺子都指向同一个方向的时候,可信的是方向,不是刻度。
那句定性的话
一个页面有没有人读,跟这门语言有多少读者关系不大,跟这门语言的页面是不是被一次性造出来的关系很大。
单看读者规模,相关系数只有0.397;单看页面总数,只有−0.379。两个单变量都解释不了。
要解释得动,必须引入“这些页面是怎么来的”这个信息。而这个信息在任何一张内容存量对照表上都是没有的。
这是本文最想说的一件事:你抄下来的那个页面总数,不告诉你这些页面是谁建的、为什么建的,而这恰好是决定它有没有人读的那个变量。
平均值和爬虫,各自能把这个数带偏多远?
越南语差了80倍
把每门语言的样本均值和中位数并排放,差距最大的是越南语:均值559,中位数7,差79.9倍。
瑞典语紧随其后,均值246、中位数6,差41倍。英语均值14588、中位数1067,差13.7倍。
宿务语反而最诚实,均值1、中位数1,一点不差——因为它的页面清一色全是零和一,连头部都没有。
一份数据里最“均匀”的那门语言,是唯一一门完全没有读者的语言。这个巧合值得记一下——分布均匀本身不是好消息,得看它是在高位均匀还是在零位均匀。
头部拿走了多少
把每门语言的样本按读数排序,看前10%的页面占了全部阅读量的多少。
越南语97.9%,瑞典语92.2%,英语74.3%,高棉语74.5%,印尼语69.7%,泰语67.0%,僧伽罗语59.0%,蒙古语54.9%,老挝语50.3%,宿务语42.0%。
越南语那个97.9%的意思是:随机抽的100个页面里,读数排前10的那10个页面拿走了98%的阅读量,剩下90个页面分2%。
这跟英文站上讨论了很多年的索引膨胀是同一件事,只是这里能看到它在不同语言之间到底能拉开多大。
宿务语的42%说明了什么
按直觉,被灌得最狠的语言应该集中度最高。实测是反的:宿务语42.0%,全表最低,比老挝语的50.3%还低。
原因不难想。集中度要高,得先有一批热门页面把量吸走。宿务语连热门页面都没有,全表清一色0到3次,自然“均匀”。
灌到极致之后,连集中度这个指标都失效了——因为没有任何一页是热的。
所以看集中度也要配着中位数一起看。单看集中度低,会得出“这门语言的流量分布很健康”这种完全相反的结论。
报表上该放哪个数
结论很简单:中位数必须有,均值可以留着但不能单独出现,集中度要配着中位数读。
三个数一起看,才能分辨出三种完全不同的状况:头部很强长尾很弱(英语)、头部尚可长尾还行(老挝语)、根本没有头部(宿务语)。维基媒体自己也有一个区分页面数量和页面分量的指标,思路是一样的:光数页面数不够。
只看均值,这三种会混成一团。内容做深还是做广这个老问题,在这三种状况下的答案完全不同。
这个原则不是小语种特有的,只是小语种上后果更重。英文站上中位数低还有绝对量兜着,小语种站上没有。
换一个角度:同一批样本上的爬虫数
抽样的时候顺手把每个页面的爬虫抓取次数也取了,所以可以在同一批页面上直接比。
取两者的中位数相除:宿务语17.0倍、越南语16.3倍、瑞典语14.5倍、瓦瑞语12.5倍、约鲁巴语9.1倍、乌兹别克语6.7倍。
另一头是泰语0.24倍、英语0.60倍、印尼语0.65倍——这三门是爬虫来得比真人少。
中间是老挝语1.76、蒙古语1.51、僧伽罗语1.36、高棉语1.14、缅甸语1.14,基本打平。
17倍意味着什么
宿务语一个典型页面,2019年被真人打开1次,被爬虫抓了17次。
换成运营的语言:这个页面全年为搜索引擎产生了17次请求的服务器开销、17次的抓取预算消耗,换回1个人的一次访问。
这些开销不是白花的,它换来了收录。可收录之后如果还是没人搜,这笔账就一直是负的。
17倍这个数在自己站上很容易复现,日志按URL分组就能算,不需要任何工具。算之前先把已知爬虫和真人分堆,这一步的判据在日志分析那一层有成熟做法。
跟汇总层的数对得上吗
上一篇算的是整门语言的爬虫占比,宿务语92.07%。用这里的页面级中位数换算,17/(17+1)等于94.4%,两个数很接近。
但泰语对不上:汇总层的爬虫占比12.17%,换算成比值应该是0.14,而页面级中位数给的是0.24。
差在哪儿?差在头部。泰语的头部页面吸走了大量真人访问,把汇总比例压低了,而中位数看不到头部。
这个不一致本身是有用的:汇总比例和页面级中位数差得越远,说明这门语言的流量越集中在少数页面上。
什么时候该担心
页面级的爬虫真人比超过5,基本可以断定长尾那一大片是死的。超过10,说明存量里的大多数页面从未产生过任何价值。
低于1不代表没问题,它只说明典型页面还有人看。头部是不是过度集中,得另外看。
这个判据比汇总层的爬虫占比更直接,因为它不受头部页面干扰。
代价是它需要逐页数据,而汇总比例只要一份日志总量。两个都算,成本差不了多少,反正日志都已经拉出来了。
自己挑出来的那批词,会不会好一点?
换一批不随机的页面
随机抽样测的是“典型的一页”。可做内容的人从来不做典型的一页,他做的是自己挑出来的那几十个词。
所以又取了28个跟做生意有关的概念——咖啡、洗衣机、冰箱、智能手机、电子商务、云计算、二维码、无人机、电动汽车这类——在22门语言里逐个查对应页面的2019年读数。
这批页面的读数确实高得多。老挝语这7个能查到的概念页,读数中位数592次,是随机抽样那个140的四倍多。僧伽罗语1020次,是131的近八倍。
挑过的词就是比随机的强,这一点没有意外。有意外的是这个倍数在各语言之间相当稳定,都在四到八倍之间,没有哪门语言特别高或特别低。
但有意外的是覆盖率
22门语言乘28个概念是616格,实际有页面的只有421格。缺的那195格里,宿务语缺25个(28个概念只有3个有页面),豪萨语缺27个,约鲁巴语缺25个,高棉语缺23个。
宿务语这一条尤其刺眼:它有533万个页面,可这28个最基础的商业概念里,只有3个有对应的条目。
造了533万页,没造洗衣机、冰箱、电子商务这些词。因为造页面的程序照着物种库和地名库跑,那两个库里没有洗衣机。
页面总数和内容覆盖是两件完全独立的事,这一格数据把它们分得干干净净。
爬虫真人比在这批页面上
同样算爬虫除以真人:英语0.11、泰语0.08、印尼语0.18——比随机抽样那批低得多,说明这些页面确实被人读。
但小语种这边:老挝语1.17、豪萨语2.54、约鲁巴语0.90、乌兹别克语0.85、阿姆哈拉语0.79。
也就是说,在这几门语言里,连“洗衣机”“电子商务”这种最该有人看的页面,爬虫来的次数都跟真人差不多,个别语言还更多。
挑过的词能把读数拉高几倍,但拉不过那条线。内容缺口分析在这几门语言上会给出一堆机会,可机会能不能变成流量,取决于这个市场的搜索行为本身。
这对选题的含义
好消息是挑选题确实有用,四到八倍的差距是真的,值得花时间挑。
坏消息是在最薄的那几门语言里,挑得再好也顶不过供给端的结构性问题。这时候该做的不是把选题再挑一遍,而是先确认这门语言值不值得做。
判据可以直接用前面那个数:随机抽样的中位数低于10,说明这门语言的存量已经被稀释;同时概念页覆盖率低于三成,说明基础内容还是空的。
两个条件同时成立的语言(宿务语、约鲁巴语),机会其实很大——空着的都是最基础的位置。这跟“内容已经很厚别进”的判断正好相反,而后者恰恰是抄总数会得到的判断。
这次有两把尺子失效了,是哪两把?
第一把:单月热门榜
最早的计划不是随机抽样,是拿各语言的月度热门页面榜算集中度:前10名占前1000名的比例。数据一分钟就能拿到。
剔掉首页和特殊页之后算出来的排名,第一是约鲁巴语34.3%,第二是意大利语32.8%。
意大利语排第二,这就不对了。翻开它的榜单一看,前几名是几个电视频道的条目——当地人习惯搜频道名找节目表,这批条目的量常年很高。
单月榜会被偶发事件和本地习惯主导,它测的不是内容结构,是那个月发生了什么。这把尺子直接弃用。要救它得取十二个月再做去季节化,那时候成本已经超过随机抽样了。
第二把:用有没有流量记录来判断页面存不存在
随机抽到的是今天的页面,其中很多是2019年之后才建的,必须剔掉。逐个去查建立时间很慢,所以想了个偷懒的办法:看这个页面2018年有没有流量记录,有就说明当时已经存在。
抽37个样本核对了一遍:30个判对,7个判错,误判率18.9%。
而那7个判错的全是宿务语的地名条目,它们2017年就建好了,只是2018年一整年连爬虫都没抓过一次——恰好是信号最强的那一批。
按这个代理剔除,等于把最死的页面从分母里拿掉了,中位数会算得比真相好看。改成对所有代理为负的行逐条补查真实建立时间之后,宿务语的有效样本从63个变成105个,零次占比也是这么冒出来的。
还有一个采集层的坑
并发抓数据的时候有一批请求瞬时失败,返回空值。这些空值混进结果里,看起来跟“这个页面零阅读”一模一样。
发现它靠的是一个巧合:抽查时随手单查了一个英语页面,接口给了2996次,而采集结果里它是空的。如果没有这一下手贱,这批空值会原封不动地变成“零阅读”写进结论。
逐条重查一遍,救回281行。剩下41行确认无记录的,多半是2019年之后改过名、历史挂在旧标题下的页面,这批单独剔除并在上表里体现为有效样本数的减少。
凡是有并发、有重试上限的采集,末端一定要单独复核一遍,不然缺的那部分会被当成零。
为什么要把失效的尺子写出来
因为这两把尺子失效的方向都是让结论更好看。第一把会把集中度排序打乱,第二把会把中位数抬高。
如果不查,这篇文章会得出一个更温和、也更符合常识的结论:小语种的页面读数偏低但没那么夸张。
而且那个结论看起来完全说得通,没人会去质疑它。这才是最危险的地方——错得离谱的结论会被自己发现,错得合理的不会。
这是做这类数据最需要防的一件事:当算出来的方向刚好符合你的预期时,先假设自己错了,再查一遍。
换到你自己的站上,这个数怎么量?
第一步:把页面级的读数拉出来
从搜索控制台导出页面维度的报表,取最近12个月,字段要页面地址、展现量、点击量。从统计工具里另导一份页面维度的独立访客。
两份对不上是正常的,一份是搜索侧、一份是站内侧。先各自算各自的,别急着合并。
算的东西只有一个:中位数。不是总和,不是平均,是把所有页面按数值排序之后取中间那个。
这一步的产出是一个数字,比如“过去12个月,本站页面的点击量中位数是3”。第一次算出来通常会比预期低不少,这很正常。
第二步:把零的那批单独拉出来
12个月内点击量为零的页面有多少个、占比多少。再拉一份展现量也为零的,这批是连搜索结果都没进过的。
两个数分开看。点击零展现不零,说明进了结果页但没人点,问题在标题和摘要;两个都零,说明根本没进结果页。
收录、排名、流量这三层的分层诊断在这里正好用得上,两种零对应的是不同的层。
小语种站上这两批加起来常常超过一半,这个比例本身就是结论。长尾词从发现到退役的生命周期管理里那套退役判据,可以直接拿来处理这批页面。
第三步:算一下自己的“灌注强度”
把站上所有页面按建立月份分组,看有没有某几个月的新增量比中位数高出一个数量级以上。
有的话,把那几个月建的页面单独拉出来,算它们的读数中位数,跟其余页面比。差距大就说明那一批确实是死的。
批量生成的城市页、组合筛选页、自动翻译页、程序化落地页,都会在这一步现形。
没有批量生成历史的站,这一步会得到一条很平的曲线,那就跳过。曲线平本身就是个好消息,说明存量是一点一点长出来的。
第四步:把这几个数做成定期项
页面读数中位数、零点击页面占比、页面级爬虫真人比。三个数一个季度算一次,看走势。
中位数往下走而页面总数往上走,是最典型的稀释信号。这时候继续加页面只会让它更快往下。
中位数往上走,哪怕页面总数没变,也说明存量在被真正消化。
三个数都不难算,难的是坚持每季度算一次,并且口径不改。口径改一次,前面攒的历史就全废了,这比算错一次严重得多。
一个可以半天跑完的清单
导出搜索控制台的12个月页面报表,算点击中位数和展现中位数。统计一遍零点击、零展现的页面数和占比。
按建立月份给所有页面分组,找出新增量异常的月份,单独算那批页面的读数。
日志按URL分组,算爬虫请求的页面级中位数,跟真人相除。
四件事做完,半天,产出四个数字加两张清单。
量出来之后,该删还是该留?
先分三类,不要一刀切
读数为零的页面分三种:从来没被抓过的、被抓过但没进结果页的、进了结果页但没人点的。三种的处理完全不同。
第一种是技术问题,检查站点地图和内链就行,多半是孤岛页面。第二种要看内容本身是不是太薄。第三种改标题和摘要就有救。
把三种混在一起做“清理低质页面”,会把第一种和第三种一起误伤。
先分类再动手,这一步不能省。分类只需要两列数据(展现量和点击量)加一次内链扫描,半小时的事。
什么样的页面该删
同时满足三个条件的可以删:12个月零点击、内容是模板批量生成的、没有任何站内链接指向它。
缺一个条件就先不删。零点击但有内链的页面,可能在承担结构作用;模板生成但有点击的页面,说明这个模板做对了一件事。
删之前先做一批试删,观察两个月。大规模低质内容的处理经验里最常见的教训就是一次删太多,后面分不清是哪一刀起的作用。
删的目的是把抓取预算还给该拿的页面,不是为了让报表好看。这两个动机会导向完全不同的删除清单。
什么样的页面该合并
一批读数都很低、但主题相近的页面,合并成一个厚的往往比删掉好。合并之后的页面能承接原来分散的所有查询。
判据是这批页面的主题是不是真的重合。同站页面互相抢词的诊断办法可以直接拿来判,重合的那部分才合并。
小语种上还有一个额外的合并理由:读者规模本来就小,把量分散到十个页面上,每个都到不了能被看见的门槛。
合并之后要做重定向,别让旧地址空着。合并时还要留意正文里的强调和锚文本会不会跟着错位,屈折语上这类错位尤其容易发生。
什么时候该反过来加页面
如果算出来中位数还不错(三位数),零点击占比不高,而基础概念的覆盖还是空的,那这门语言的正确动作是加页面而不是删。
老挝语、僧伽罗语、高棉语这几门就是这个状况:存量没被稀释过,但存量本身很少,基础的位置还空着。
这跟“内容存量已经很厚”给出的判断正好相反,而后者恰恰是抄页面总数会得到的判断。
所以这套数最大的用处,是防止你在一个几乎无人竞争的市场里判自己出局。这种误判的成本很难事后察觉,因为你永远不知道没做的那件事本来能带来什么。
哪些相邻的问题不归这一层管?
内容质量本身不归这一层
本文只数了读数,没看过任何一个页面写得好不好。一个页面没人读,本文默认它是因为选题或者结构,但它也完全可能是写得太差。
质量这一层要看的是别的东西:信息密度、是否解决了具体问题、有没有一手材料。拿一手数据做内容这类做法在小语种上尤其管用,因为竞争者更少。
两层要分开量,因为它们的改法完全不同。
把读数低直接归因成质量差,会让你在一个根本没有读者的话题上反复打磨文案。这是投入产出比最低的一种努力,而且它看起来很勤奋。
翻译和审校不归这一层
页面有没有人读,跟它译得准不准是两件事。译错的页面照样可能有量,译对的页面照样可能是零。
母语审校的验收清单解决的是能不能读的问题,本文解决的是有没有人读的问题。
先确认有人读,再花钱审校,顺序反了会很浪费。
这一条在预算紧的项目上特别值钱。审校是按字数收费的,而读数是免费就能查的。
整门语言的汇总比例不归这一层
页面级中位数看不到头部,汇总比例看不到长尾。两个数各自有盲区,得配着看。
前面那个泰语的例子就是证据:汇总层说爬虫只占12.17%,页面层说典型页面的爬虫是真人的0.24倍,两个数换算不到一起,差额全在头部。
要判断一门语言的整体状况,两层都要量。
只量一层就下结论,是这个话题上最容易犯的错。两层的数据来源其实是同一份,多算一遍的成本几乎为零。
这份数据本身的边界
最后把话说回来。这16门语言的样本全部来自维基百科,它的页面构成跟商业站差别很大——没有商品页、没有筛选页、没有促销页,而这三类恰恰是商业站上最容易堆积死页面的地方。
所以本文的绝对数值不要照搬。可以搬的是三样:那个提问方式(随便挑一页,一年多少人打开)、那个判据(中位数配零占比配集中度)、以及那条结论(页面是怎么来的,决定它有没有人读)。
各语言版本的页面数对照表是公开的,谁都能抄一份下来。这篇想说的是,抄下来那个数之前,先问一句这些页面是怎么长出来的。
问完这一句,同一张表能读出完全不同的结论。同一个533万,可以读成“这门语言竞争激烈”,也可以读成“这门语言的基础位置全空着”,而后者才是对的。
常见问题解答
随机抽120个页面,样本量够吗?
算中位数和分位数够,算精确的头部集中度不够。本文里前10%份额那一列只用来做定性比较,没有拿它做任何量化判断。
有效样本低于40的语言要格外小心。豪萨语抽了120个只剩3个有效——它2019年累计才4126个页面,今天有10.7万个,96%的页面是这之后建的,数据本身是自洽的,但样本太少,已经从主表里剔掉了。
乌兹别克语36个、缅甸语51个也偏少,读它们的时候要打个折。
用维基百科的数据,能代表商业站吗?
不能直接代表。维基没有商品页、没有筛选页、没有促销页,而这三类是商业站上死页面的主要来源。绝对数值肯定对不上。
能代表的是机制:页面被批量造出来之后,读数分布会怎么变。这个机制跟站的类型无关,它只跟“页面是怎么来的”有关。
所以本文的用法是:拿这个机制去自己站上验证,而不是拿这些数字去对标。
中位数为什么比平均值重要?
因为你新建的那一页大概率落在长尾里,而不是落在头部。平均值被头部拉着走,反映不了长尾的真实状况。
越南语那个例子最直观:均值559看着还行,中位数7说明典型页面基本没人看。用均值做决策,你会以为这门语言的存量很健康。
两个数差得越远,说明用均值犯的错越大。
零点击的页面是不是都该删?
不是。零点击分三种:没被抓过、被抓过没进结果页、进了结果页没人点。第一种是技术问题,第三种改标题就有救,只有第二种里的模板页才值得考虑删。
删之前还要看有没有站内链接指向它。承担结构作用的页面即使自己没量,删了也会影响别的页面。
先分类,再试删一批观察两个月,别一次删完。
宿务语这种极端案例,现实里会碰到吗?
整门语言那种规模的不会,但同样的机制在单个站上很常见。程序化生成的城市页、颜色尺码组合页、自动翻译的多语言版本,都是同一件事的小型版。
判断方法一样:按建立月份分组,看有没有某几个月的新增量高出一个数量级,然后单独算那批页面的读数。
现实里这类页面通常占存量的三成到七成,比宿务语的九成温和,但足够把中位数拖垮。
这套方法对刚上线的站有用吗?
有用,而且用法不一样。刚上线的站还没有存量可拆,这套数的价值在于给出一条红线:页面增长速度不该超过读者增长速度太多。
具体做法是从第一天就记录页面数和月度独立访客,每季度算一次比值。这个比值一路往上,说明在造还没人读的页面。
比事后清理便宜得多。
中文市场用得上吗?
用得上,而且更该用。中文站上程序化生成页面的比例普遍不低,城市页、长尾问答页、聚合页都是常见做法。
方法可以原样搬:页面读数中位数、零点击占比、按建立月份分组找异常。数据源换成搜索控制台和站内日志就行。
差别在于中文市场的采集脚本更多,算页面级爬虫真人比的时候要先把采集流量单列出来,否则会高估。
权威参考资料
本文标题:《小语种内容存量的中位数:随机翻开一页,瑞典语一年6个人打开,老挝语140个》
本文链接:https://zhangwenbao.com/minor-language-page-reader-median.html
版权声明:本文原创,转载与引用请注明作者与原文链接。许可协议: CC BY 4.0