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 + 預渲染)作為實證案例。
重點
- Gemini、Perplexity、OAI-SearchBot 不執行 JS,純 SPA 等於隱形
- 三解法:遷移 Next.js、Vite 預渲染、UA 動態切換
- React Helmet 對非 JS 爬蟲無效,需 build time 寫入 HTML
- geomkt.app 自身採 Vite + 預渲染方案
相關內容
- [faq] JS 網站怎麼做 GEO? — 可以但需額外處理。純 SPA(React/Vue/Angular)對 AI 爬蟲幾乎隱形,必須導入 SSR、Static Pre-rendering 或遷移至
- [faq] Next.js 怎麼做 GEO? — Next.js 做 GEO 必走 SSR/SSG(避免純 CSR),用 generateMetadata 注入 JSON-LD、app/llms.txt/rou
- [faq] Gemini 為何不引用? — Gemini 不引用的五大常見原因:robots.txt 沒開放 Google-Extended、純 SPA 看到空白、缺結構化資料、無 dateModifie
- [faq] 詳見原頁 — Wix 可做 GEO 但限制較多。重點:用 Wix SEO Tools 開 Schema、Velo 程式碼注入 FAQPage JSON-LD、自訂程式碼加 l
- [faq] 詳見原頁 — Webflow 做 GEO 先天有優勢:靜態 HTML 對 AI 爬蟲友善。用 CMS Collections 建 FAQ/Glossary/Compare 集
- [faq] 詳見原頁 — Vite SPA 必須用 vite-plugin-prerender 或 react-snap 在 build 時為每條路由產生靜態 HTML,否則 AI 爬蟲
- [blog] 閱讀完整指南:2026 完整 GEO 指南 — 完整解析 2026 年生成式搜尋引擎優化(GEO):從定義、與 SEO 差異、AI 引用機制、七大內容類型、90 天落地路線、預算配比,到三個台灣品牌實戰案例。