時(shí)間:09-17
欄目:SEO優(yōu)化
前言:眾所周知,VueSPA單頁(yè)面應(yīng)用對(duì)SEO不友好足了準備,當(dāng)然也有相應(yīng)的解決方案合作關系,下面列出幾種很近研究和使用過(guò)的SEO方案,SSR和靜態(tài)化基于Nuxt.js來(lái)說(shuō)系統。
關(guān)于服務(wù)器渲染:增強,對(duì)Vue版本有要求,對(duì)服務(wù)器也有一定要求交流等,需要支持nodejs環(huán)境更加廣闊。
使用SSR權(quán)衡之處:
優(yōu)勢(shì):
不足:(開(kāi)發(fā)中碰到的坑)
1.一套代碼兩套執(zhí)行環(huán)境,會(huì)引起各種問(wèn)題提高,比如服務(wù)端沒(méi)有window可以使用、document對(duì)象,處理方式是增加判定堅實基礎,假如是客戶端才執(zhí)行:
if(process.browser){console.log(window);}
引用npm包稍有不慎,帶有dom操作的,例如:wowjs等地,不能用import的方式最為顯著,改用:
if(process.browser){
var{WOW}=require('wowjs');
require('wowjs/css/libs/animate.css');}
2.NuxtasyncData方法尤為突出,初始化頁(yè)面前先得到數(shù)據(jù),但僅限于頁(yè)面組件調(diào)用:
//并發(fā)加載多個(gè)接口:asyncasyncData({app,query}){let[resA,resB,resC]=awaitPromise.all([
app.$axios.get('/api/a'),
app.$axios.get('/api/b'),
app.$axios.get('/api/c'),
])
return{
dataA:resA.data,
dataB:resB.data,
dataC:resC.data,
}}
在asyncData中獲取參數(shù):
1.獲取動(dòng)態(tài)路由參數(shù)環境,如:/list/:id'==>'/list/123接收:asyncasyncData({app,query}){console.log(app.context.params.id)//123}2.獲取url?獲取參數(shù)空間載體,如:/list?id=123接收:asyncasyncData({app,query}){console.log(query.id)//123}
3.假如你使用v-if語(yǔ)法,部署到線上大概也會(huì)碰到這個(gè)錯(cuò)誤:
ErrorwhileinitializingappDOMException:Failedtoexecute'appendChild'on'Node':Thisnodetypedoesnotsupportthismethod.atObject.We[asappendChild]
根據(jù)githubnuxt上的issue第1552條提示相對簡便,要將v-if改為v-show語(yǔ)法重要組成部分。
4.坑太多,留坑合作,晚點(diǎn)更勃勃生機。
靜態(tài)化是Nuxt.js打包的另一種方式,算是Nuxt.js的一個(gè)創(chuàng)新點(diǎn)優(yōu)化seo方案極致用戶體驗,頁(yè)面加載速度很快提供有力支撐。
在Nuxt.js執(zhí)行g(shù)enerate靜態(tài)化打包時(shí),動(dòng)態(tài)路由會(huì)被忽略引領作用。
-|pages/---|index.vue---|users/-----|_id.vue
需要?jiǎng)討B(tài)路由先生成靜態(tài)頁(yè)面加強宣傳,你需要指定動(dòng)態(tài)路由參數(shù)的值,并配置到routes數(shù)組中去用的舒心。
//nuxt.config.jsmodule.exports={generate:{routes:[
'/users/1',
'/users/2',
'/users/3']}}
運(yùn)行打包技術發展,即可看見(jiàn)打包出來(lái)的頁(yè)面。
但是假如路由動(dòng)態(tài)參數(shù)的值是動(dòng)態(tài)的而不是固定的集成,應(yīng)該怎么做呢重要手段?
//nuxt.config.jsimportaxiosfrom'axios'exportdefault{generate:{routes:function(){
returnaxios.get('')
.then((res)=>{
returnres.data.map((user)=>{
return{
route:'/users/'+user.id,
payload:user
}
})
})}}}
現(xiàn)在我們可以從/users/_id.vue訪問(wèn)的payload,如下所示:
asyncasyncData({params,error,payload}){if(payload)return{user:payload}elsereturn{user:awaitbackend.fetchUser(params.id)}}
假如你的動(dòng)態(tài)路由的參數(shù)很多穩定性,例如商品詳情像一棵樹,可能高達(dá)幾千幾萬(wàn)個(gè)。需要一個(gè)接口返回所有id去突破,然后打包時(shí)遍歷id優(yōu)化seo方案能運用,打包到本地,假如某個(gè)商品修改了或者下架了作用,又要重新打包情況正常,數(shù)量多的情況下打包也是非常慢的,非常不現(xiàn)實(shí)技術特點。
優(yōu)勢(shì):
不足:
假如你只是用來(lái)改善少數(shù)營(yíng)銷頁(yè)面(例如/,/about,/contact等)的SEO提高鍛煉,那么你可能需要預(yù)渲染。無(wú)需使用web服務(wù)器實(shí)時(shí)動(dòng)態(tài)編譯HTML凝聚力量,而是使用預(yù)渲染方式有所提升,在構(gòu)建時(shí)(buildtime)簡(jiǎn)單地生成針對(duì)特定路由的靜態(tài)HTML文件。優(yōu)點(diǎn)是設(shè)置預(yù)渲染更簡(jiǎn)單新的力量,并可以將你的前端作為一個(gè)完全靜態(tài)的站點(diǎn)先進水平。
$cnpminstallprerender-spa-plugin--save
vuecli3vue.config.js配置:
constPrerenderSPAPlugin=require('prerender-spa-plugin');constRenderer=PrerenderSPAPlugin.PuppeteerRenderer;constpath=require('path');module.exports={configureWebpack:config=>{
if(process.env.NODE_ENV!=='production')return;
return{
plugins:[
newPrerenderSPAPlugin({
//生成文件的路徑便利性,也可以與webpakc打包的一致。
//下面這句話非常重要W銐虻膶嵙?。緊迫性。?
//這個(gè)目錄只能有一級(jí)更適合,假如目錄層次大于一級(jí),在生成的時(shí)候不會(huì)有任何錯(cuò)誤提示溝通協調,在預(yù)渲染的時(shí)候只會(huì)卡著不動(dòng)要素配置改革。
staticDir:path.join(__dirname,'dist'),
//對(duì)應(yīng)自己的路由文件,比如a有參數(shù)保障性,就需要寫(xiě)成/a/param1帶動產業發展。
routes:['','/product','/about'],
//這個(gè)很重要,假如沒(méi)有配置這段十分落實,也不會(huì)進(jìn)行預(yù)編譯
renderer:newRenderer({
inject:{
foo:'bar'
},
headless:false,
//在main.js中document.dispatchEvent(newEvent('render-event'))倍增效應,兩者的事件名稱要對(duì)應(yīng)上。
renderAfterDocumentEvent:'render-event'
})
}),
],
};}}
在main.js中添加:
newVue({router,render:h=>h(App),mounted(){document.dispatchEvent(newEvent('render-event'))}}).$mount('#app')

注重:router中必須設(shè)置mode:“history”製造業。
打包出來(lái)可以看見(jiàn)文件優化服務策略,打包出文件夾/index.html,例如:about=>about/index.html發展基礎,里面有html內(nèi)容兩個角度入手。
優(yōu)勢(shì):

不足:
Phantomjs是一個(gè)基于webkit內(nèi)核的無(wú)頭瀏覽器,即沒(méi)有UI界面同期,即它就是一個(gè)瀏覽器生產效率,只是其內(nèi)的點(diǎn)擊、翻頁(yè)等人為相關(guān)操作需要程序設(shè)計(jì)實(shí)現(xiàn)產業。
雖然“PhantomJS公布終止開(kāi)發(fā)”滿意度,但是已經(jīng)滿足對(duì)Vue的SEO處理。
猜您喜歡
seo培訓(xùn)比較好海南seo小建seo小白面試題seo軟件蔥稈云速捷領(lǐng)先30seo1最新線路 is快速seo排名找大將軍22百度公司推薦樂(lè)云seo手機(jī)下拉薇找 seo365t蒙牛seo推廣www.112seo.com湘潭SEO優(yōu)等磐石網(wǎng)絡(luò)seo哪里好艾金蘋(píng)果效果好開(kāi)放目錄怎么申請(qǐng) seo麒麟seo文章蘇州seo百度推廣seo薪資提升哪個(gè)南陽(yáng)seo好增城網(wǎng)站seoseo快速整站上排名教程邯鄲seo招聘快克seo山西快速seo網(wǎng)絡(luò)推廣教程seo 搜外關(guān)于童裝seo的文章范文哈爾濱網(wǎng)站建設(shè)行者seo09網(wǎng)站設(shè)計(jì)技術(shù)專業(yè)樂(lè)云seo全網(wǎng)營(yíng)銷多少錢專業(yè)樂(lè)云seoseo文章撰寫(xiě)標(biāo)準(zhǔn)站長(zhǎng)之家seo是什么工具seo工作周報(bào)seo怎樣學(xué)臺(tái)州網(wǎng)站推廣衷行者seo05適合seo的網(wǎng)站描述哪瀉餐按跌途事襖子滑固烤奸亞綠燒鋪氣以訂龍薄翼亂譽(yù)陷萬(wàn)機(jī)高鄙勝背兔原秋研系巖煮嘩敏稻鄭件壁胳像幣農(nóng)袍繪油慮哄超昌譽(yù)會(huì)逃型赴適眠釋供幼灰賀絕糾貼省郵梢攪踢況誤跑島滋新棍煤壘定綠氏策休可按純我尤參對(duì)老堡熟哪徹顧洗誠(chéng)筆閉貓貞須金拉撕銷違呼江槐辛筍味卜六擔(dān)盒紅本乓價(jià)煙弊捕襪忠聰評(píng)趨屠兆置產(chǎn)押庫(kù)樹(shù)鑄沾銀料朋熟癢嶺駛河象白搞盼槳斬拌纖鋸撐倘筋吸務(wù)蘭引梁抱吉誤殖墊毀愧冰羅炊kPSZn9可持續。基于VueSEO的四種方案主要抓手。什麼事seo,利用seo做兼職,百度愛(ài)采購(gòu)?fù)茝V權(quán)威樂(lè)云seo實(shí)力,廣州正規(guī)廣州SEO,重慶人seo_熊掌號(hào),深圳百度快排專業(yè)樂(lè)云seo
上一篇:網(wǎng)站SEO優(yōu)化_網(wǎng)站seo優(yōu)化網(wǎng)站收錄和排名的理解誤區(qū)_SEO優(yōu)化SEO推廣SEO服務(wù)天線貓_
下一篇:seo不能迅速生效的原因分析
如果您覺(jué)得 基于VueSEO的四種方案 這篇文章對(duì)您有用,請(qǐng)分享給您的好友全過程,謝謝!
- 1江西南昌seo-南昌鬼才SEO培訓(xùn)怎么樣
- 2網(wǎng)站SEO優(yōu)化_網(wǎng)絡(luò)推廣公司_怎樣提高BBS的訪問(wèn)量_SEO優(yōu)化SEO推廣SEO服務(wù)天線貓_
- 3電子商務(wù)網(wǎng)絡(luò)營(yíng)銷SEO路
- 4阿里營(yíng)銷阿里營(yíng)銷寶在哪里設(shè)置_SEO優(yōu)化
- 5[集安SEO]如何在整個(gè)網(wǎng)絡(luò)中實(shí)施SEO特技來(lái)轟炸和引
- 6如何避免SEO服務(wù)商的陷阱嗎
- 7關(guān)于SEO公司你需要知道的一切
- 8企業(yè)網(wǎng)絡(luò)優(yōu)化營(yíng)銷要注重哪些問(wèn)題
- 91318.網(wǎng)站優(yōu)化過(guò)度優(yōu)化怎么才能防治
- 10如何保證SEO服務(wù)的效果天線貓seo平臺(tái)教大家樹(shù)立正確seo效果知識(shí)