分享好友 最新动态首页 最新动态分类 切换频道
网站终于被收录了!
2024-12-27 18:11

作者:陌溪

陌溪的学习笔记:http://note.moguit.cn

大家好,我是

之前一直有小伙伴跑来问我,为啥蘑菇博客上线了这么久,百度出来只有首页?

百度收录

在聊这个问题之前,我们先谈谈什么是 SEO。搜索引擎优化(Search engine optimization,简称 SEO ),指为了提升网页在搜索引擎自然搜索结果中(非商业性推广结果)的收录数量以及排序位置而做的优化行为,是为了从搜索引擎中获得更多的免费流量,以及更好的展现形象。

其实蘑菇网站上线快几年了,但是只收录了首页,归根到底还是因为之前项目选型的时候,采用了 Vue 作为前端开发框架,而我们知道 Vue 作为单页面应用框架,所有的数据都是通过 axios 进行返回的,也可以想成是 ajax 请求异步返回的,是非常不利于 SEO 的。

而百度收录的原理,其实就是百度的爬虫程序去爬取咱们的网站网站,但是因为我们内容都是通过 axios 异步返回,所以只能看到下面这样的骨架代码,因此百度也就只会收录咱们的首页了。

蘑菇页面源码

一般爬虫抓取页面内容是先从一个页面出发,从中提取出其他页面的链接,然后当作下一个请求的对象,一直重复这个过程。所以要有良好的 SEO,需要你在各大网站上拥有外链,这样会提高你的网站被搜索引擎爬虫的几率。

Vue 为了解决 SEO 问题,官方有 Vue SSR 方案,后面又推出了 Nuxt.js 框架。

蘑菇其实在旧版本中,也是使用 nuxt.js 实现了一波,经过测试后也确实能够被百度所收录,但是因为同时维护两份代码,有些耗时耗力,并且切换到 nuxt.js后,因为是服务器渲染,网站打开也变慢了很多,因此在种种因素下,也放弃了维护 nuxt_mogu_web 项目

nuxt.js版蘑菇博客

同时,后面也在积极的探索更优雅的 SEO 实现方案,预期是不会较大的改变现有逻辑的基础上,就能够实现。

回归到原始需求,为了提高用户体验我们用了 VueReact 这些 SPA 技术、为了 SEO 我们用了 SSR、预渲染等技术。

不同技术方案有一定差距,不能兼顾优点。但仔细想,需要这些技术优点的 "用户",其实时不一样的,SPA 针对的是浏览器普通用户、SSR 针对的是网页爬虫,如 googlebotbaiduspider 等,那为什么我们不能给不同“用户”不同的页面呢,服务端动态渲染就是这种方案。

后来,陌溪在网上冲浪的时候,在 Github 上发现了 prender-alpine 这个开源项目

https://github.com/tvanro/prerender-alpine

prerender项目

prender-alpine 的原理,在 Alpine Linux 上构建的轻量级 Prerender 容器,带有 NodeHeadless Chrome

Prerender :可以当做是一个预渲染的容器,项目的原理其实就是相当于跑了一层 node.jsRender 层,帮助我们做服务器渲染。

针对爬虫的预渲染

服务端对请求的 user-agent 进行判断,浏览器端直接给 SPA 页面,如果是爬虫,需要通过 Prerender 容器动态渲染的 html 页面进行返回

完整的流程图如下,我们需要通过 nginx 识别出访问我们网站的用户是否是爬虫,还是普通用户,从而请求不同的页面。

完整流程

为了方便小伙伴们的使用,陌溪也把 prender-alpine 项目放到了蘑菇镜像仓库,同时提供了一份 prerender.yml 文件

只需要将其拷贝到蘑菇一键部署的 yaml 目录下即可,同时使用命令进行启动

启动完成后,可以看到项目运行在 3000 端口

容器运行

搭建完成后,我们可以打开浏览器进行测试,打开 172.184.166.150:3000/https://www.moguit.cn 页面,后面挂着的就是你要预渲染的页面,如果能够打开下面的页面,说明已经预渲染成功了

预渲染成功

同时,通过查看网页源码,也能够看到页面的文字和链接了,这样爬虫也就能爬取到我们网站的其它信息

查看源码

下面,我们就需要改造我们的 nginx 了,通过 $http_user_agent 来识别请求的 user_agent 是否属于 Google百度必应360…. 的爬虫

如果识别成功,那么会跳转到刚刚搭建的 prerender 容器中进行预渲染,否则继续返回原来的 Vue 页面

下面是完整的 nginx 配置文件 vue_mogu_web.conf

注意,这个配置需要修改 vue_mogu_web.yml,把刚刚创建的配置文件挂载出来

修改完成后,就可以开始使用接口工具进行测试了,通过设置 Headers 设置请求头信息,加入 User-agent = googlebot 用来标识这个请求是爬虫

调用接口可以看到,我们的页面能够把完整的数据给返回

模拟爬虫请求

同时,如果我们把 User-agent 删掉,这个时候返回的就是我们正常的 SPA 单应用页面了

模拟正常用户

到这里,网站针对爬虫专属的 SEO 就改造完毕了

经过几天测试后,通过 site:www.moguit.cn 进行查询,也可以看到被百度收录了好几个页面了~

百度收录多个页面

好了,本期蘑菇 SEO 优化讲解就到这里

我是陌溪,我们下期再见~

博主就职于字节跳动商业化部门,一直维护校招笔记仓库 LearningNote「在Gitee上已有 5k star,地址 https://gitee.com/moxi159753/LearningNotes」,公众号上的文章也会在此同步更新,欢迎各位小伙伴一起交流学习

最新文章
站点地图 sitemap 提交百度收录失败的原因
​​为了向百度搜索主动推送资源,缩短爬虫发现网站链接的时间,加快网站内容抓取,提升百度搜索的收录效率,我们通常会向百度搜索资源平台提交网站 sitemap 文件。后经分析,原来是自己提交的 sitemap 文件不符合百度的规范要求,百度修改
深圳到俄罗斯物流公司「需要几天」2025+排名一览
深圳到俄罗斯物流公司「需要几天」2025+排名一览深圳到俄罗斯物流公司「需要几天」2025+排名一览北京澳森国际货运代理有限公司致力于国际货运代理业务,是一家专业从事特大件散货拼箱海运运输、铁路运输、船航运输、公路运输 、集装箱运输
演示翻译-如何正确地从Shopify过渡到WooCommerce(循序渐进)
你想从Shopify搬到WooCommerce吗?许多用户希望从Shopify转移到WooCommerce,以避免更高的成本或对他们的在线商店有更多的控制。在本教程中,我们将通过分步指导向您展示如何轻松地从Shopify迁移到WooCommerce。这将把你带到WordPress管理
全面解析:网贷逾期后的贷后管理流程、影响及应对策略
在数字金融日益普及的今天网贷已成为多人应对资金需求的要紧途径。一旦借款人出现逾期还款网贷平台的贷后管理流程就显得为关键。本文将全面解析网贷逾期后的贷后管理流程、作用及应对策略帮助借款人和网贷平台合理应对逾期难题减低风险维护
小米新款智能手机发布:超长续航与AI摄影不容错过
在智能手机市场竞争异常激烈的背景下,小米公司于近日正式推出了其最新款智能手机——小米12 Pro。这款手机不仅在硬件配置上进行了全面升级,还在用户体验和拍照功能上实现了实质性突破,吸引了大量消费者的关注。小米12 Pro的发布,标志着
经济学院2024年硕士研究生复试录取工作方案
为做好我院2024年硕士研究生招生复试录取工作,保证硕士研究生招生质量,根据教育部、山东省教育厅及学校相关文件规定,结合我院实际,制定本工作方案。一、组织领导学院成立由院长任组长的研究生招生复试工作领导小组,负责学院各学科(
用AI一键更换商品背景,电商图像处理最佳助手!
在电商运营中,商品图的质量往往直接影响到转化率和销量。在这个瞬息万变的市场环境里,如何能让你的商品图脱颖而出?今天,我们就来聊聊商品图背景更换的最新AI工具,帮助你轻松提升商品展示效果,让你的电商生意更加红火! 商品图换背景
网站搜索排名(2022年全球及中国搜索引擎排行榜)
2022年全球靠前搜索引擎排行榜中,谷歌、必应、雅虎、百度、Yandex、DuckDuckGo、Ask、Naver、AOL、Seznam占据前十位,谷歌谷歌市场份额超90%稳占全球市场靠前的市场份额,大家熟悉的国内搜索引擎以1.2%的占有率位居第四名。2022年在全球搜
植物大战僵尸代码大全2024最新-2024游戏代码编程复制粘贴
在《植物大战僵尸2024》这款游戏中,经常会有各种代码出现,这些代码能够帮助玩家在游戏中达成一定的数值目标。如果你想要快速改变游戏的数值,那么这些代码的用处可是非常大的。接下来,小编将会将2024年最新可用的代码分享在下方,希望大
爱站网关键词工具
爱站网关键词工具是一款用于网站SEO优化的工具,它可以帮助用户快速找到适合自己网站的关键词,提高网站的搜索排名和流量。该工具提供了丰富的关键词数据和竞争情况分析,帮助用户制定出更加精准的SEO策略。使用该工具可以有效地提高网站的
相关文章
推荐文章
发表评论
0评