谷歌vue项目如何优化seo?实用技巧有哪些

文章摘要

谷歌vue项目seo优化的常见痛点做Vue项目的同学估计都遇到过这样的情况:代码写得漂漂亮亮,功能也贼好用,但扔到谷歌上一搜,自家网站在搜索结果里连个影子都找不到,这可不是因为谷歌不爱你,而是Vue的“老毛病”在作祟,Vue作为单页应用(SPA)的代表选手,页面内容大多靠JavaScript动态生成,就像一个害……

谷歌vue项目seo优化的常见痛点

做Vue项目的同学估计都遇到过这样的情况:代码写得漂漂亮亮,功能也贼好用,但扔到谷歌上一搜,自家网站在搜索结果里连个影子都找不到,这可不是因为谷歌不爱你,而是Vue的“老毛病”在作祟,Vue作为单页应用(SPA)的代表选手,页面内容大多靠JavaScript动态生成,就像一个害羞的魔术师,非要等观众(浏览器)点一下才肯把底牌亮出来,可谷歌爬虫以前就像个急性子的快递员,上门送件没人应就直接走了,根本不等JS加载完,自然抓不到你藏在里面的宝贝内容。

我之前接过一个Vue做的企业官网项目,老板催着要谷歌排名,结果上线半个月,核心关键词在谷歌上翻到第20页都瞅不见影子,后来一查谷歌搜索控制台,好家伙,爬虫抓取的页面全是空白的,就像给搜索引擎递了张白纸,人家想给你排名都没东西参考,这就是Vue项目SEO最头疼的地方:内容加载时机和爬虫抓取节奏不同步,导致页面内容无法被有效索引。

谷歌对vue单页应用的抓取机制

现在的谷歌爬虫可比以前聪明多了,不再是那个“不等门”的急性子,它会尝试执行页面里的JavaScript,就像一个耐心的解谜者,慢慢等JS把内容渲染出来,但它有个小脾气:不会无限期等待,如果你的Vue项目加载速度太慢,JS执行时间太长,爬虫可能等不及就溜了,而且它不像浏览器那样会完整模拟用户操作,比如点击按钮加载更多内容这种交互,爬虫通常是不会主动触发的,所以那些藏在交互背后的内容,大概率还是会被忽略。

举个例子,我之前给一个电商Vue项目做优化,商品列表页是滚动加载的,用户往下滑才会加载更多商品,结果谷歌爬虫只抓取了第一屏的10个商品,后面的商品数据完全没进入索引,后来才知道,谷歌爬虫在抓取时不会像用户一样滚动页面,它只会加载初始HTML和执行初始JS,动态加载的内容如果没触发条件,就只能藏在深闺人未识了。

vue项目优化谷歌seo的核心方法

想让谷歌爱上你的Vue项目,就得顺着它的脾气来,核心思路就一个:让爬虫能轻松拿到你的内容,目前最主流的有三个方法:预渲染、服务端渲染(SSR)和静态站点生成(SSG),预渲染就像提前给蛋糕做好造型,在打包的时候把页面内容先生成静态HTML,爬虫一来就能直接看到成品,不用等JS现做,SSR则是让服务器在收到请求时现场“烤蛋糕”,把Vue组件渲染成完整HTML再发给浏览器和爬虫,内容新鲜热乎,SSG更狠,直接在构建阶段把所有页面都生成静态HTML,连服务器都不用现场忙活,速度快得飞起。

我个人比较推荐中小项目先用预渲染试试水,成本低见效快,之前帮一个个人博客Vue项目做优化,用了预渲染工具后,谷歌收录量一个月内从0涨到了50+,核心关键词排名也冲进了前20,不过如果是内容频繁更新的大站,比如新闻网站,SSR或者SSG可能更合适,毕竟预渲染对动态内容的支持没那么灵活。

预渲染在谷歌vue seo中的应用

预渲染的原理很简单:用一个无头浏览器(比如Puppeteer)在打包时访问你的Vue路由,把JS渲染后的页面HTML保存下来,这样用户访问时还是原来的SPA体验,谷歌爬虫看到的却是现成的静态HTML,完美解决了“等不及”的问题,操作起来也不复杂,先装个预渲染插件,比如prerender-spa-plugin,然后在webpack配置里指定要预渲染的路由,像首页、关于我们、产品列表这些核心页面都安排上。

不过预渲染也有它的小脾气:不适合路由太多的项目,如果你的Vue项目有几百上千个路由,预渲染会让打包时间变得特别漫长,就像用小锅煮一大锅粥,煮到天荒地老,我之前帮一个电商项目做预渲染,100多个商品详情页,打包直接卡了2小时,后来只能挑热门商品页做预渲染,其他页面用别的方法补位,所以用预渲染前,先数数你的核心路由有多少,别给自己挖坑。

谷歌vue项目如何优化seo?实用技巧有哪些

ssr技术对谷歌vue seo的提升效果

SSR(服务端渲染)就像是给Vue项目请了个“全职厨师”,用户和爬虫每次请求页面,服务器都会当场把Vue组件“炒熟”成HTML,这种方式最直接,爬虫拿到的就是完整的页面内容,不存在加载等待的问题,Vue官方提供的Nuxt.js框架就是干这个的,开箱即用,省了不少自己配置的功夫,我之前用Nuxt.js做过一个资讯类Vue项目,上线后谷歌收录速度明显变快,新文章发布第二天就能在搜索结果里看到,比之前的SPA版本快了整整一周。

但SSR也不是没缺点,对服务器要求比较高,因为每次请求都要服务器渲染,访问量大的时候服务器压力会很大,就像一家网红店,客人太多厨师忙不过来,就得加钱升级服务器配置,而且开发复杂度也会上升,有些浏览器特有的API在服务端用不了,调试起来也得小心翼翼,不然很容易踩坑,所以小项目如果预算有限,还是先考虑预渲染,等流量上来了再升级SSR也不迟。

vue项目meta标签优化技巧

被谷歌抓取了,想让它给你好排名,还得把“名片”做好——这就是meta标签,Vue项目里可以用vue-meta这种插件,动态设置每个页面的title、description和keywords,Title就像文章的题目,得包含核心关键词,北京vue seo优化公司 - 专业谷歌排名服务”,既告诉用户你是干嘛的,也让谷歌知道页面主题,Description是页面的简介,要写得吸引人,10年vue项目谷歌优化经验,帮您提升300%搜索流量,免费咨询”,让用户一看就想点进来。

我之前帮一个客户改meta标签,他们原来的title是“首页”,description是“欢迎来到我们的网站”,这种“无效信息”谷歌看了都摇头,后来改成“上海vue seo优化公司_谷歌排名提升专家”,description写“专注Vue单页应用谷歌SEO优化,提供预渲染/SSR解决方案,已帮助500+企业提升搜索流量”,两个月后核心关键词排名直接从第50页蹦到了第8页,效果立竿见影,所以别小看meta标签,它可是谷歌了解页面内容的第一道窗口。

谷歌vue seo优化工具推荐

工欲善其事,必先利其器,优化Vue项目的谷歌SEO,这些工具少不了,首推谷歌搜索控制台,这是谷歌官方的“体检报告”,能告诉你爬虫抓取了多少页面、有没有错误、关键词排名怎么样,就像给网站装了个CT机,哪里有问题一目了然,然后是预渲染工具prerender-spa-plugin,刚才提到过,中小项目用它准没错,如果玩SSR,Nuxt.js框架必须安排上,开箱即用的SSR功能,省得自己搭服务器渲染环境。

还有个小工具叫Vue SEO友好URL插件,能帮你把Vue的hash路由(#后面的部分)改成普通路径,比如把“/#/about”变成“/about”,谷歌爬虫更喜欢这种“干净”的URL,我之前有个项目用了hash路由,谷歌一直不收录,改成history模式后,配合这个插件优化URL结构,一个月就收录了70%的页面,检查页面加载速度可以用谷歌PageSpeed Insights,它会给你打分并指出优化点,比如压缩图片、减少JS体积,这些对SEO也有帮助。

谷歌vue seo与react seo的对比

经常有人问我:Vue和React,哪个对谷歌SEO更友好?其实俩兄弟半斤八两,因为都是SPA框架,核心问题都是JS动态渲染导致的抓取困难,不过非要比的话,React有个优势:它的服务端渲染方案Next.js比Vue的Nuxt.js更早成熟,社区资源也更丰富一些,遇到问题更容易找到解决方案,但Vue的预渲染工具更轻量,对小项目来说上手成本更低。

我之前同时接过一个Vue项目和一个React项目的SEO优化,Vue项目用预渲染,花了3天就搞定了核心页面的静态化;React项目用Next.js做SSR,光配置服务器和调试就花了5天,但从长期维护来看,React项目的SEO扩展性更好,比如动态生成大量页面时,Next.js的增量静态再生(ISR)功能比Vue的预渲染更灵活,所以结论是:小项目、预算少,选Vue+预渲染;大项目、内容多,React+Next.js可能更省心。

谷歌vue seo优化案例分享

去年我帮一个做跨境电商的客户优化Vue项目的谷歌SEO,他们的网站是用Vue 2做的单页应用,产品有200多个,但谷歌只收录了首页和几个分类页,核心产品词根本搜不到,第一步我先查了谷歌搜索控制台,发现爬虫抓取时大量“JavaScript执行超时”错误,说明JS加载太慢了,于是先给项目做了代码分割,把大JS文件拆成小块,再用prerender-spa-plugin预渲染了首页、热门分类页和前50个热销产品页。

然后优化了meta标签,每个产品页的title都改成“[产品名] - [核心卖点] | [品牌名]”,description里加上价格和促销信息,还把原来的hash路由改成了history模式,URL从“/#/product/123”变成了“/products/red-shoes”,折腾了一个月,谷歌收录量从10页涨到了180页,核心产品词“women red shoes”从第100名开外爬到了第15名,客户说咨询量直接翻了一倍,老板笑得合不拢嘴,这个案例说明,Vue项目只要方法对路,SEO完全能做好,别被“SPA不适合SEO”的说法吓住。

谷歌vue seo常见问题解决

做Vue项目SEO时,最常见的问题就是“页面内容抓取不全”,遇到这种情况,先去谷歌搜索控制台看“抓取→URL检查”,输入页面URL,看看爬虫看到的内容是不是和浏览器里显示的一样,如果不一样,大概率是JS没执行完或者有异步数据没加载,这时候可以试试把关键数据在服务端预取,或者用预渲染把异步数据提前加载好。

另一个问题是“重复内容”,Vue的SPA路由如果处理不好,可能会出现多个URL指向同一内容的情况,/home”和“/”都显示首页,谷歌会认为是重复内容,影响排名,解决办法是在meta标签里加上canonical标签,指定一个首选URL,告诉谷歌“这个才是正版”,我之前有个项目就因为这个问题,首页排名忽高忽低,加了canonical标签后才稳定下来。

常见问题解答

Vue单页应用在谷歌上SEO为啥这么难啊?

因为Vue单页应用主要靠JavaScript动态加载内容,就像你看视频非要等缓冲完才能看一样,谷歌爬虫以前没耐心等JS加载完,所以抓不到内容,现在虽然谷歌能执行JS了,但如果页面加载慢或者有交互才能显示的内容,爬虫还是抓不到,所以SEO就难啦。

Vue SEO用预渲染好还是SSR好啊?

如果你的项目页面不多,比如就几个核心页面,预渲染就够用了,简单又省钱,像做PPT一样提前把页面做好,要是页面特别多或者内容经常更新,比如新闻网站,那就用SSR,服务器现场生成页面,内容新鲜,不过服务器成本会高一点,就像请个厨师现场做饭,好吃但贵。

谷歌爬虫能抓取Vue的动态路由吗?

能倒是能,但要看情况,如果动态路由的内容是靠JS异步加载的,比如点击按钮才加载数据,谷歌爬虫一般不会点按钮,所以抓不到,但如果是页面一加载就通过JS获取数据并渲染,谷歌爬虫等JS执行完就能抓到,不过保险起见,最好用预渲染或者SSR把动态路由的内容提前生成好,让爬虫一看就明白。

Vue项目怎么改meta标签优化谷歌SEO啊?

用vue-meta这个插件就行,超简单!先安装插件,然后在每个页面的组件里设置metaInfo,比如title写“你的关键词+网站名”,description写一段吸引人的简介,包含关键词和你的服务,像我之前给一个Vue博客改meta,把title从“我的博客”改成“前端学习博客 - Vue/React教程分享”,谷歌排名一下就上去了。

Vue SEO和React SEO哪个更容易做啊?

其实差不多啦,俩都是SPA框架,都有JS动态渲染的问题,不过React的Next.js框架比Vue的Nuxt.js成熟一点,社区资料更多,遇到问题更容易搜到答案,但Vue的预渲染工具更简单,小项目上手快,要是你是新手,先试试Vue+预渲染,操作简单,见效快,等熟练了再玩复杂的。