---
title: 09 到上線測試還有多少工作
h1: 09 到上線測試還有多少工作
subtitle: 五個階段、16 棒；哪些能平行、哪些已由決策者裁示
chips: [{text: 已完成：素材、骨架、內容頁, kind: ok}, {text: 待做：SEO、英文版、截圖、部署, kind: warn}, {text: 4 件已裁示, kind: ok}]
---

# 09 到上線測試還有多少工作

> 「上線測試」的定義：官網部署到 Cloudflare Pages 的測試網址，全部頁面有真文案（中英）、真截圖，SEO／AI SEO 配備齊全（測試期全站 noindex），用爬蟲身分抓得到內文，可以給內部與少數外部人看。**不含**正式網域切換。

## 一、一句話

素材與骨架都好了，剩下的是**把文案變成頁面、把頁面用 TanStack Start prerender 成靜態站、再把 SEO 配備掛上去**。五個階段 16 棒，階段 B、C 可平行。**有 4 件已裁示**（見第五節）。

## 二、已經完成的（不用再做）

| 項目 | 位置 |
|---|---|
| 產品盤點、網站地圖、截圖清單 | 01、02 |
| 首頁、產品總覽、五個功能細頁、五個解決方案頁、信任中心／預約／聯絡 文案（中英） | 03～06 |
| 指南六篇（中英）＋知識庫 | `docs/website/guides/` |
| 架構決策：留 TanStack Start 開 prerender、Pages、SEO／GEO 做法 | 08 |
| 骨架：版型、亮暗主題、中英切換、首頁、產品總覽（TanStack 版，已開 prerender） | `guidant-ai-website` |
| ISO 27001 內建框架 | FR-153 已出貨，截圖前置解除 |
| 公司資訊、Logo 規格、CTA 兩種、不做價格頁 | 已定 |

## 三、五個階段

### 階段 A：地基（已取消）

| # | 棒 | 做什麼 | 驗收 | 估 |
|---|---|---|---|---|
| A1 | 轉 Next.js | 已取消（決策者改判留 TanStack，prerender 併入 B1 完成） | 已由 B1 達成：`.output/public/` 48 支 index.html | — |

### 階段 B：內容頁（5 棒，B5 等 C1）

每棒：路由、頁面元件、文案進 i18n json（中文；英文欄位先複製中文）、圖片用 Placeholder、FAQ 用手風琴。

| # | 棒 | 文案來源 | 頁數 | 估 |
|---|---|---|---|---|
| B1 | 功能細頁 | 04 | 5 | 1 天 |
| B2 | 解決方案（適用法規 3＋依角色 2） | 05 | 5 | 1 天 |
| B3 | 信任中心、預約展示、聯絡我們、隱私權／服務條款占位 | 06 | 5 | 1 天 |
| B4 | 指南：清單頁＋六篇文章，Markdown 檔渲染（`content/guides/<slug>.<lang>.md`） | `docs/website/guides/articles(-en)/` | 7 | 1 天 |
| B5 | 英文版（CM-2956，等 C1） | 03～06 英文稿 | 全站 | — |

### 階段 C：SEO／AI SEO 配備（5 棒，可平行）

全部抄 design-home，座標在 08 §九。

| # | 棒 | 做什麼 | 驗收 | 估 |
|---|---|---|---|---|
| C1 | Metadata | 每頁 canonical、hreflang（zh-Hant／en／x-default）、og:url／image／locale | 任一頁原始 HTML 有 `rel=canonical` 與兩組 `hreflang` | 0.5 天 |
| C2 | robots＋sitemap | `public/robots.txt` AI 爬蟲清單＋Sitemap 行；`scripts/gen-sitemap.mjs` → `public/sitemap.xml` 中英全頁 | `/robots.txt` 列出 GPTBot 等；`/sitemap.xml` 條數＝頁數×2 | 0.5 天 |
| C3 | JSON-LD | `src/lib/jsonld.ts`＋各路由 `head()`；root 掛 Organization（竣盟公司資訊）；產品頁 SoftwareApplication、指南 Article、有 FAQ 的頁 FAQPage、每頁 BreadcrumbList | validator.schema.org 貼本機 build 出的 HTML 無錯 | 1 天 |
| C4 | llms.txt | `public/llms.txt` 寫死：公司一段、頁面清單、指南清單 | `/llms.txt` 開得到 | 0.5 天 |
| C5 | og 圖 | 每區一張 1200×630 WebP（首頁、產品、解決方案、指南、信任中心） | `public/og/` 五張，C1 引用 | 0.5 天（需設計決定風格） |

### 階段 D：截圖（2 棒，串行，可與 B／C 平行）

| # | 棒 | 做什麼 | 估 |
|---|---|---|---|
| D1 | 建 Demo 資料 | DEV 的 Billows Tech 租戶下建 CMMC L2 專案（虛構公司名與人名），資源庫用內建 CMMC，約 30 條走完任務→證據→判定→改善→結案；另跑一批 AI 分類、一次檢測 | 1 天 |
| D2 | 截圖與替換 | 本機 DEV 1440×900 @2x，16 張 × 亮暗兩套（清單見 01 §三）；壓 WebP；換掉所有 Placeholder；`<img>` 標寬高 | 1 天 |

### 階段 E：部署與驗收（3 棒，串行，B／C／D 全過後）

| # | 棒 | 做什麼 | 驗收 | 估 |
|---|---|---|---|---|
| E1 | Cloudflare Pages | Pages 專案連 GitLab，build `npm run build`，輸出 `.output/public`；`VITE_SITE_URL` 設測試網址；測試網址 `guidant-ai.stg.jedicotech.com` 與 pages.dev 並用，測試期全站 noindex（照 E1 卡尾） | push 後自動部署成功 | 0.5 天 |
| E2 | 表單與分析 | 預約／聯絡表單送出去向（見「卡決策者」）；GA4 或 Cloudflare Web Analytics 掛 root；表單送出設轉換事件；AI 搜尋管道群組 | 送一筆測試表單收得到 | 0.5 天 |
| E3 | 上線測試驗收 | 爬蟲身分抓：`curl -s -A "GPTBot" <網址> \| grep -c Guidant` > 0、`-A ClaudeBot` 抓 /solutions/cmmc 有 CMMC；rich-results 測試過；中英兩邊都驗、全站點一遍、Search Console／Bing 送件（照 E3 卡尾）；手機寬度無橫向捲動；亮暗兩套都看 | 驗收表全綠 | 0.5 天 |

## 四、時程

```
B1 B2 B3 B4（內容頁，4 棒平行）──┐
C1 C2 C3 C4 C5（SEO，5 棒平行）──┼─ E1 → E2 → E3
B5 英文版（等 C1）───────────────┤
D1 → D2（截圖，D2 等 C5）────────┘
```

| 排法 | 工作天 |
|---|---|
| 一個 runner 串行 | 11～14 天 |
| B／C 各一 runner 平行，D 另一 runner | 8～10 天 |

## 五、決策者已裁示的 4 件事

| # | 事 | 卡住哪一棒 | 裁示 |
|---|---|---|---|
| 1 | **測試網址** | E1 | `guidant-ai.stg.jedicotech.com` 與 pages.dev 並用，測試期全站 noindex；正式網域上線前再決定 |
| 2 | **預約／聯絡表單送到哪** | E2 | 先寄到 billows@billows.com.tw |
| 3 | **og 圖與截圖的視覺風格** | C5、D2 | 截圖加 16px 圓角與淡陰影；og 圖深 teal 底＋白字標題＋Logo |
| 4 | **分析工具** | E2 | 第一版用 Cloudflare Web Analytics，要轉換追蹤再換 GA4 |

英文版 B5（CM-2956）已開卡，排在 C1 後；B2B 站外佈局清單（08 §八第 11 項）是文件工作，另排。

## 六、風險

| 風險 | 影響 | 對策 |
|---|---|---|
| Demo 資料建不出「走到結案」的專案（流程門檻、FR-139 branch 功能狀態） | D2 的稽核判定、改善、結案報告三張截不到 | 先截不需要專案狀態的 8 張；卡住的三張用 CRA 自評專案（1591）頂替 |
| 文案含內部標記（🟡🔵【待確認】）漏進頁面 | 上線測試被看到 | 每棒 commit 前 `grep -rn "🟡\|🔵\|待確認" i18n content` 要空，驗收也查 |
