發表文章

目前顯示的是有「SEO」標籤的文章

[React] SPA,前後端分離,到底該如何動態修改 meta tag ?

概述 How to update meta-tag in react? 這問題想必前端工程師都有碰過,但這邊先告訴大家,想透過「純前端」修改... 「不可能」...!! 為什麼? Google 搜尋引擎在爬文的時候,透過 javascript 產出來的標籤是無法爬到。 像現在有使用 react、vue、angular 等等這類的框架,這種 SPA、前後端分離的程式架構,都是透過 javascript render 出來的網頁,因此 SEO 肯定受限十足。 又有人可能會說,Google 搜尋引擎已經可以爬 javascript 產生的 tag,確實現在框架的盛行,Google 勢必還是得對這做處理,畢竟他們的網站也是有使用框架來進行。 問題 那 Google 都能爬 javascript 產生的 tag 現在還會有什麼問題呢? 「動態產生 meta tag」 這部分並非透過前端就能「完美」達到。 怎麼說? 透過動態產生出來的,那網址剪下貼至 FB、Line 等等之類的,都會無法顯示那些 tag,那 SEO 上勢必還是打折了。 解決 相信很多人一定都有找了很多解法,以下就列出幾個解法供參考 (X) 1. react-helmet (X) 2. react-helmet-async (X) 3. react-super-seo (O) 4. next.js (O) 5. remix (O) 6. environment variable (env) 從以上可以看出 javascript 前端方式處理得仍無法解決,必定要透過 SSR 的方式,或是環境變數來處理。

[React] 動態修改 meta-tag 解決 SEO,透過 env(environment variable)

圖片
概述 update meta-tag in react 正確的動態解決 meta-tag 方式,透過 env。 沒有裝 next.js 的專案可以用這招。 嘗試過 react-helmet 無效者也請用這招。 流程 1. get data in node.js -> 2. set env to index.html -> 3. build and test -> 4. success! 1. get data in node.js 純前端者,不要看到後端就跑,這邊只是寫一點點,沒很多 建立 script.js // const fs = require('fs'); // const pathConfig = './config.json'; // const config = JSON.parse(fs.readFileSync(pathConfig)); // const title = config.title; // const description = config.description; const execSync = require('child_process').execSync; const title = 'EJ的網站標題'; const description = 'EJ的網站描述'; const favicon = 'https://firebasestorage.googleapis.com/v0/b/deploy-for-chien313jay-test.appspot.com/o/images%2Ffavicon.ico?alt=media&token=d019d820-16a3-45fd-b5e5-15b8aa355ea8'; execSync(`VITE_APP_TITLE="${title}" VITE_APP_DESCRIPTION="${description}" VITE_APP_FAVICON="${favicon}" CI=false npm run dev`); 這樣就把 env 寫至你的 ...