当站外的优化越来越难的时候,站内的优化就成为了seoer的必备技能,也是检验seo能力的体现。特别是在大型网站,站内优化尤为重要。
我之前有说过,内链的作用除了提升收录,那么就是提升用户的点击以及页面的投票等。
那么如何合理的分配和布局内链就是一个很有意思的研究了。
所谓的内链调用,就是我们网站的内页(包括列表页、详情页以及其它聚合页面)的链接模块上的链接调用啦。
比如:最新文章、相关文章、站长推荐、tag标签云以及其它的链接模块,由于每个站都不一样,这里就不一一展开讲。
我们一般的方式就是,最新文章是调用N条最新发布的文章,相关文章也是调用最新的tag相关的文章,还有站长推荐可能就是调用那些在后台选的推荐位的内容,tag标签云也是调用最新的N条标签链接。
但是我们很快就发现以上的调用方式存在很大的问题,我们没有合理的分配内链的资源。比如最新文章,比如调用20,30条。那么这30条内容会一下子获得全站的链接推荐,但是很快又会被其它新发布的链接给替换掉了。还有就是很多当天发布的新文章,可能展示的机会都没有1秒钟就被后来发布的新文章给替换掉了(如果我们每天发布很多的文章的话)。
对于相关文章以及tag标签也存在同样的问题。而且由于这种分布的不平等,很容易导致很多的页面的层级会很深得不到很好的推荐。那么就会非常的影响蜘蛛对于整站内容的抓取。
解决不了抓取的问题,那么对于后续的提升排名什么的都是无用的。因为蜘蛛没有发现你的链接就没法计算权重获取内容啥的。
那么如何解决这种分配不均匀的问题呢?
一种很简单的方法就是随机调用,这样看起来会好很多。但是随机调用对于网站数据库的性能是很大的挑战。
因此又进行了升级,对页面进行缓存,或者生成静态页面。
但是这种方法看起来是不错,但是可控性太差了,我们没法很好的控制每个页面的链接分配。
如何解决这个问题呢?这就是我们今天的主题,shingle算法!
shingle在英文中表示相互覆盖的瓦片。基本概念:
- shingle 由N个字组成一个shingle,比如可以用5个字组词一个。
shingle算法其实是搜索引擎用来计算内容的相似度的,其原理是:
从文档开始位置取,每隔N个字取一个shingle,直到取完,然后计算每个shingle的签名(hash)。最后将记录完全一致的shingle数除以两个文档的shingle总数减去一致的shingle数(就是简单的集合运算)。这种算方法计算出来的数值称为jaccard系数。计算公式如下:
算法结论:对于长度L的文档,每隔N个汉字取一个shingle,这样一共取到个shingle。可见N的取值对于效率和效果的影响是非常大的。
实例说明一下吧,比如我们这里有两篇文档:文档1:
9月3日,林心如出席了某品牌的发布会,面对媒体的群访,她与大家分享了家人的近况。
文档2:
9月3日,林心如出席了某品牌的发布会,在采访环节的时候,她也和大家分享了自己和家人的近况。
那么如何计算呢,比如我们取5个字作为一个shingle的话,那么文档1和文档2的shingle分别是:
可以算出文档1的shingle数量是32,文档2的shingle数量是37。jaccard值是0.278。那么如果在搜索引擎里面jaccard值大于0.2就算是相似文档的话,这两个文档就是相似文档啦。
说了那么多,这个跟我们做内链有啥关系??
假如我们想让每个页面都获得10条或20条或30天的内链推荐,那么应该怎么做呢?
那么是不是就可以从 id为1的文章开始,每隔N条取出来作为本文的最新文章就行啦。
如果你要每个页面都获取20条的推荐,那么就是取当前id后的20条作为最新文章就行了。
这种方法的好处就是,除了前后20篇文章获得的推荐数少于20之外,其余所有的链接都获得相等的内链推荐数。
当然了,这个其实并没有很好的利用shingle这个算法的优势,而是借鉴了一下它这个shingle的定义。
那么还有没有其他方面的运用呢?
假如你有100万的商品要做成聚合页,我们假定jaccard值大于0.2是重复页面。那么这100万的商品可以生成多少聚合页呢?
假如我们每个页面展示10个商品,我们由jaccard的计算公式可以得出: 其中n是相同产品的数量,这样就可以算出,那么我们就可以得出,一个id的重复调用次数不能超过3次,这样100万的页面就可以生成 30万个聚合页了。那如果是每页调用20个商品呢?依据得出,那么每个产品就不能重复调用超过6次,100万的页面就可以生成 哈哈,还是30万,发现了么。这个生成的数量取决于jaccard值。
好啦,今天的文章就分享到这里。如果你有更好的想法和建议,欢迎留言讨论。
最后,不来一波三连么?
往期文章推荐:
第三期Python与seo实战训练营开始预售啦,9月开课
【干货】作为seo,如何对150万的关键词进行筛选和过滤?
[AI写作]体验如何通过训练让程序帮我们自动写文章
[黑帽技术分享]浏览器回退拦截及代码实现
【干货】如何计算文章标题和内容相关度?提供完整代码
关注我,一起学习更多的SEO技术