Loading...
墨滴

可爱猪猪

2021/09/10  阅读:25  主题:橙心

SEO优化:使用模板引擎的方式动态加载数据提升收录率

前言

如果想要网站得到很好的推广,首先第一步就是要被搜索引擎很好的收录和检索。收录量决定网站被发现的概率比较高,做好关键词的搜索优化,可以提升检索的排名。

奇怪的搜索引擎

《面试怪圈》网站上线一段时间了,也已经完成了SEO的TDK优化。然而对于收录,却发现一个很奇怪的事情,百度Bing大型的搜索引擎貌似对网站嗅了一嗅,似乎并不感兴趣。目前网站内容也比较丰富,没有不收录的道理。

于是凭着直觉我对百度BingGoogle三大头牌,进行了初步探索,看看能不能找到蛛丝马迹。

很多朋友知道,搜索输入框输入"site:你的网站"可以查看搜索引擎对网站的收录情况。

但是,百度和Bing对《面试怪圈》网站的收录只有主页,以百度举例,比如:

然而,使用Google再次搜索,如下:

通过比较发现,百度只收录了主页,Google却收录了200+,那么这是为什么呢?无疑是搜索引擎对数据爬取的策略不一样。那是哪里不一样呢?

带着这个疑问,继续挖掘探索,幸运的是,找到了突破口,这个突破口就是“百度快照”,如图:

点开快照如图:

你会发现,网站的首页百度来爬取留下了快照,但各个栏目内容都却为空的。 很明显,直接打开网站,内容很定是丰富的,那这又是为什么呢?

AJAX异步加载

页面显示的内容是静态页面的内容,而未显示的内容是通过Ajax请求的数据动态渲染的。 因此,我们会发现Google搜索引擎,在这一点优化的非常不错,因为它能够抓取动态渲染的内容,这才是Google搜索大家都喜欢用的原因——它可以更全面的收录。

百度搜索的爬取周期只在下图虚线的左侧,相反,Google完成整个流程:

因此,ajax或者js等动态渲染页面,大多是搜索引擎是无法收录的。

模板引擎

大家都知道JSP,它就是一种很古老的模板引擎。但是springboot的特殊机制,使得springboot不支持jsp页面,但这样会有很多开发上的不方便,所以它支持了Thymeleaf模板引擎。

模板的诞生是为了将显示与数据分离,模板技术多种多样,但其本质是将模板文件和数据通过模板引擎生成最终的HTML代码。

模板技术并不是什么神秘技术,干的是拼接字符串的体力活。模板引擎就是利用正则表达式识别模板标识,并利用数据替换其中的标识符。比如:

Hello, <%= name%>

数据是{name: '面试怪圈'},那么通过模板引擎解析后,我们希望得到Hello, 面试怪圈。模板的前半部分是普通字符串,后半部分是模板标识,我们需要将其中的标识符替换为表达式。模板的渲染过程如下:

采用模板后,爬虫访问url后,得到是渲染的页面:

通过浏览器“查看源代码”,可以看出,渲染后的页面有很多url,适合百度爬虫爬取和收录了,满足了爬虫的胃口:

优化上线后,bing搜索引擎就开始进行了收录:

模板引擎有什么问题?

采用模板引擎有什么问题呢?既然可以被收录又可以完美的数据展现。干脆全部使用模板引擎岂不是很完美?

其实并不是这样的。面试怪圈的首页有很多数据要加载,比如精品推荐、面试资料、最新、最热、技术分类、标签....

如果为了渲染,全部采用模板引擎来做也就意味着,当访问首页时,全部数据需要一次性查询并进行渲染,无疑接口的性能带来了极大的调整。

那是不是无解了?

缓存技术就是解决这类问题的,因此我们可以将首页的数据缓存,每次访问首页直接从缓存中获取数据。既解决了收录的问题,也解决了性能的问题。

最后

虽然,解决了Google、Bing的收录问题,但是百度依然没有收录,毕竟百度才是国内的第一大搜索引擎,天生自带流量。

是需要交给时间呢?还是需要继续seo优化呢?

你有什么好建议?

我是公众号“面试怪圈”的Yesterday,我们下篇文章见

可爱猪猪

2021/09/10  阅读:25  主题:橙心

作者介绍

可爱猪猪