淺談vue單頁面seo問題


最近做項目的時候,被要求做seo,由於項目已經開發完畢,且只需首頁做seo,所以考慮再三,決定用prerender-spa-plugin結合vue-meta-info來實現首頁的seo。
如果你的頁面是動態的,比如通過v-for或v-if等來動態渲染的dom,則不適合此方法,可以考慮官方的SSR

代碼已更新到github,點擊查看

言歸正傳,第一步:安裝prerender-spa-plugin,vue-meta-info

npm install prerender-spa-plugin vue-meta-info --save

如果安裝失敗,使用淘寶鏡像試試

cnpm install prerender-spa-plugin vue-meta-info --save

第二部:在你的項目目錄下找到該文件 build/webpack.prod.conf.js,添加如下代碼
const PrerenderSpaPlugin = require('prerender-spa-plugin') new PrerenderSpaPlugin( //將渲染的文件放到dist目錄下 path.join(__dirname, '../dist'), //需要預渲染的路由信息 [ '/index','/about' ], { //在一定時間后再捕獲頁面信息,使得頁面數據信息加載完成 captureAfterTime: 50000, //忽略打包錯誤 ignoreJSErrors: true, phantomOptions: '--web-security=false', maxAttempts: 10, }, ) 

至此,你可以打包試試,如果打包后的文件包含index和about兩個文件,表明成功。

 

 
圖片

但是運行打包的文件,右鍵查看網頁源代碼,你會發現,index和about這兩個seo的文件信息是一樣的,如果你也是這樣的情況,別急,把你的路由模式換成"history"模式。

 
圖片

重新打包,運行打包文件,查看源代碼,發現內容不一樣了,至此才算成功。

但是會出現一個隱形的問題,當你打包后的文件部署到線上時,刷新頁面就會404了。這時需要后端配置一下,后端配置

vue-meta-info的具體使用看這里 vue-meta-info


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM