Next.js 網站怎麼做 GEO(含 SSR/SSG 設定)?
Next.js 做 GEO 必走 SSR/SSG(避免純 CSR),用 generateMetadata 注入 JSON-LD、app/llms.txt/route.ts 動態產生 llms.txt、app/sitemap.ts 收錄長尾頁。
Next.js 是 GEO 友善的現代框架,但前提是「不要用 use client 包整個頁面」。AI 爬蟲(Gemini、Perplexity)對 JavaScript 渲染容忍度低,純 Client Component 等於把內容藏起來。
標準做法:①App Router 預設 Server Component,FAQ / Glossary / Compare 頁面全部用 SSG(generateStaticParams)或 ISR;②用 generateMetadata 動態輸出 title / description / openGraph,並在頁面內 <script type="application/ld+json"> 注入 FAQPage、Article、DefinedTerm Schema;③建立 app/llms.txt/route.ts 動態回傳 llms.txt 內容(從 CMS / DB 拉資料);④用 app/sitemap.ts 自動串接 CMS 資料源,確保新增長尾頁面時 sitemap 即時更新。
效能上,Next.js 14+ 的 PPR(Partial Prerendering)對 AI 爬蟲友善,因為靜態殼層先到位,動態區塊延後載入但不影響主內容抓取。建議升級至最新版以享受此特性。
重點
- Next.js GEO 必用 SSR / SSG,避免純 CSR
- 用 generateMetadata + JSON-LD <script> 注入結構化資料
- app/llms.txt/route.ts 可動態產出 llms.txt
- Next.js 14 PPR 對 AI 爬蟲友善
相關內容
- [faq] JS 網站怎麼做 GEO? — 可以但需額外處理。純 SPA(React/Vue/Angular)對 AI 爬蟲幾乎隱形,必須導入 SSR、Static Pre-rendering 或遷移至
- [faq] llms.txt 怎麼寫? — llms.txt 寫法四步:第一行 H1 寫品牌名、blockquote 寫 ≤200 字定位摘要、## 分區列出 20–50 條連結、每連結後加描述句。檔案放
- [faq] 怎麼加結構化資料? — 加結構化資料 4 步:選對 Schema 類型、用 JSON-LD 嵌入 <head>、填齊必填欄位(name/description/dateModified
- [blog] 閱讀完整指南:GEO 方法論三層架構 — GEO 具體怎麼做?本文以 Answer-First 寫作、E-E-A-T 信號建立、Schema.org 結構化資料三層方法論,逐項說明實作步驟、字數規範、技