React SPA(CRA / Vite)怎麼做 GEO?

純 React SPA 對 AI 爬蟲幾乎隱形。三條解法:導入 SSR 框架(Next.js/Remix)、用 react-snap 或 prerender.io 預渲染、或至少為核心頁產出靜態 HTML 快照。

GPTBot 與 ClaudeBot 部分支援 JavaScript 渲染,但 Gemini、Perplexity、OAI-SearchBot 仍以原始 HTML 為主。一個 useEffect 才注入內容的 React SPA,等於對這三家 AI 完全隱形。

三層解法:①最徹底:遷移到 Next.js / Remix,所有 GEO 內容頁走 SSG;②中等:在 Vite 專案安裝 vite-plugin-prerender 或使用 react-snap,build 時為指定路由(/feat/faq/*、/feat/glossary/*、/blog/*)產出靜態 HTML 快照;③最低:用 Cloudflare Workers / Vercel Edge 偵測 AI User-Agent(GPTBot, ClaudeBot, PerplexityBot, Google-Extended, OAI-SearchBot),動態回傳預渲染的 HTML 版本。

另外,React Helmet Async / react-helmet 注入的 meta 與 JSON-LD 對「不執行 JS 的爬蟲」也無效,必須在 build time 或 server response 階段把 <title>、<meta>、JSON-LD 寫進原始 HTML。geomkt.app 自身採用方案②(Vite + 預渲染)作為實證案例。

重點

相關內容