FR-152 官網上線測試驗收(E3,CM-2953)

  • 驗收日期:2026-10-21
  • 驗收對象:線上站 https://guidant-ai.stg.jedicotech.com(部署到 6c34c5f);備用網址 https://guidant-ai-website.pages.dev 只驗首頁與 robots
  • 方法:全部打線上網址、headless(Playwright Chromium、Lighthouse 12.6.1)、只驗不改
  • 範圍:sitemap 內 48 個網址(中文 24+英文 24)全掃;桌機 1440/手機 390 × 亮/暗 共四種組合
§1

結論

可上測試站給人看,沒有擋上線的問題。找到 4 個缺陷(1 個中、3 個低)與 2 個風險提醒,都列在「待修清單」。Search Console 與 Bing 送件待帳號。

§2

驗收表

# 項目 結果 證據 建議修法
1 AI 爬蟲抓內文(GPTBot/ClaudeBot UA,中英各 5 頁) ✅ 10 頁全部 200,內文都有「Guidant」(首頁、產品、CMMC、CMMC 指南、產品安全頁;指南頁 5~6 次) —
2 robots.txt ✅ 11 個 AI 爬蟲 Allow: /+*,Sitemap: 指向 stg 網域 —
3 sitemap.xml ✅(附缺陷 D3) 48 筆 <loc> 見 D3
4 sitemap 每個網址 200 ❌ 47/48 回 308 除首頁外,sitemap 的網址都沒有結尾斜線(/product),伺服器 308 轉到 /product/ 才 200 D3
5 llms.txt ✅ 開頭為站名+一句定位,共 24 個連結,已排除隱私/條款占位頁 —
6 x-robots-tag: noindex(測試期刻意) ✅ stg 與 pages.dev 首頁、/en/ 都回 x-robots-tag: noindex 正式上線拿掉(見待辦)
7 canonical 指向 stg、不是 pages.dev ✅ 48 頁 canonical 都是 https://guidant-ai.stg.jedicotech.com/...;pages.dev 首頁的 canonical 也指 stg —
8 hreflang ✅ 每頁都有 zh-TW/en/x-default 三筆,指向對應頁 —
9 結構化資料(schema.org validator API) ✅ 0 錯 0 警告(附缺陷 D1) 中英共 11 頁:首頁 Organization+BreadcrumbList;產品頁 SoftwareApplication;功能頁加 FAQPage;方案頁 FAQPage;中文指南 Article+FAQPage;產品安全頁 Organization 見 D1
10 Google 複合式搜尋結果測試 ⚠️ 未跑 該工具只有網頁介面、要登入,headless 無法代跑;schema.org 驗證已 0 錯 決策者有帳號時手動貼一頁
11 社群預覽卡 ✅(附風險 R1) 以 facebookexternalhit/Twitterbot/Slackbot/LinkedInBot/LINE UA 抓首頁:全 200、有 og:title/og:description/og:image(1200×630),og 圖六張全 200 見 R1
12 每頁主視覺有圖不是占位框 ✅ 四種組合掃 48 頁:0 張破圖;占位框只出現在已知的 12 個(多客戶儀表板、租戶切換、CRA 附件一、跨專案證據、部署架構、ISO 附錄 A,中英各一) —
13 導覽每個項目、頁尾每個連結 ✅ 中英各 11 個導覽連結(含三個下拉展開)+17 個頁尾連結,全部 200、語系正確 —
14 手機選單 ✅ 390 寬點「選單」展開 22 個連結,中英都正常 —
15 語系切換 ✅ /solutions/cmmc/ 點 EN → /en/solutions/cmmc、<html lang="en">、標題換英文;反向同樣正確 —
16 FAQ 展開 ❌ 英文指南 中文指南 6 個摺疊鈕,點第二個 aria-expanded false→true;英文指南 0 個,FAQ 只顯示成一般粗體段落 D1
17 表單送出 — 不測 E2 延後(決策者裁示),本棒不測 —
18 待確認/內容準備中殘留 ✅ 48 頁可見文字無 🟡🔵、【待確認】;「內容準備中」/"coming soon" 只在隱私、條款兩頁(已知例外) —
19 英文頁沒有中文字 ✅ 24 個英文頁可見文字唯一的中文是語言切換鈕「中文」(已知例外) —
20 左側粗邊框卡片 ✅ 四種組合 48 頁,計算後 border-left-width ≥ 3px 的可見元素 0 個 —
21 手機橫向捲動 ✅ 390 寬 48 頁 scrollWidth - innerWidth 皆 0 —
22 亮暗兩套 ✅ 系統偏好暗色時 <html class="dark"> 生效、截圖亮暗截圖都正常 —
23 執行期錯誤 ❌ 產品安全頁 /trust/security/、/en/trust/security/ 四種組合都丟 React #418(hydration 不一致);其餘 46 頁 0 錯誤 D2
24 不存在的網址 ❌ /nonexistent-page/、/en/nope/ 回 200+首頁內容 D4
25 Lighthouse Performance ⚠️ 首頁 <90 首頁 手機 76/桌機 87;/en/ 手機 81/桌機 88;CMMC 指南 中 95/84、英 97/89 D5
26 Lighthouse Accessibility ✅ 首頁 98(標題層級跳級 h1→h3)、指南 100 低優先,見 D5 備註
27 Lighthouse Best Practices ✅ 四頁全 100 —
28 Lighthouse SEO ⚠️ 66~69(刻意) 唯一扣分項 is-crawlable,來源 x-robots-tag: noindex——測試期刻意的,拿掉後會回到 100 附近 正式上線拿掉 noindex
29 Cloudflare Web Analytics 未開 首頁 HTML 無 static.cloudflareinsights.com/beacon(程式已有掛載點,等 token) 不算失敗
30 pages.dev 備用網址活著 ✅ 首頁 200、robots.txt 正常、canonical 指 stg —
31 Search Console/Bing 送件 待帳號 本棒沒有公司 Google/Microsoft 帳號,未送件、__root.tsx 未改 決策者給帳號後補做

截圖存放在本機 runner 暫存區(不入版控):桌機/手機 × 亮/暗 共 40 張+手機選單 2 張。

§3

待修清單(交首腦派)

編號 嚴重度 問題 原因(已查到) 建議修法
D1 中 英文六篇指南的 FAQ 沒有摺疊、也沒有 FAQPage 結構化資料(中文有) src/lib/guides.ts 用「**Q1:…**」辨識 FAQ 段;六支 content/guides/*.en.md 的問題寫成 **How do I know…?**,沒有 Q1: 前綴,整段被當一般正文 二擇一:① .en.md 問題補 Q1: 前綴(只改內容,最小);② 解析改成「FAQ 標題(## 常見問題/## FAQ)之下的粗體行」
D2 低 產品安全頁、聯絡頁的 email 被 Cloudflare 改寫:爬蟲與不跑 JS 的使用者看到「[email protected]」;產品安全頁另丟 React #418 Cloudflare zone 的「Email Address Obfuscation」把 HTML 裡的 email 換成 /cdn-cgi/l/email-protection 連結,React hydration 對不上 Cloudflare 後台 Scrape Shield 關掉 Email Obfuscation(或 Configuration Rule 對本站關)。產品安全頁是 CRA 公開漏洞通報窗口,email 必須讓機器讀得到
D3 低 sitemap 網址沒有結尾斜線,47 筆都要 308 轉一次;canonical、hreflang、站內連結也都是無斜線版 產出網址的格式與伺服器(prerender autoSubfolderIndex → /x/index.html,無斜線會 308 到有斜線)不一致 統一一邊:sitemap/canonical/hreflang/LLink 都改成帶結尾斜線(與伺服器一致,最省事)。Google 會跟轉址,但 canonical 指向轉址網址會被判成訊號衝突
D4 低 不存在的網址回 200+首頁內容(軟 404) Pages 找不到檔時回退到首頁 加 404 頁(404.html)讓 Pages 回 404;正式上線前修,否則搜尋引擎會收到一堆重複首頁
D5 低 首頁手機 Performance 76(LCP 4.6 秒) 首頁 HTML 輸出兩組主圖(各含亮暗兩張),四張裡只有第一組亮色是 loading="eager";Lighthouse 手機量測抓到的 LCP 元素是 loading="lazy" 的暗色圖(lcp-lazy-loaded 不及格);另 CSS 7KB 擋渲染約 0.3 秒 主圖兩張都 eager+fetchpriority="high",或只對當前主題輸出 preload。附帶:首頁標題 h1 後直接 h3(Accessibility 扣 2 分),痛點三卡前補一個 h2 或改 h2
R1 風險 og 圖是 webp LinkedIn、部分 LINE 版本不顯示 webp 預覽圖 各分區 og 圖另出一份 PNG/JPG 給 og:image 用
R2 風險 Google 複合式搜尋結果測試未跑 工具需登入、無 API 有帳號時手動貼首頁、一篇指南、一個方案頁各一次
§4

已知刻意保留(不算缺陷,本次確認仍如預期)

  • 12 個占位框(ISO 附錄 A、CRA 附件一、多客戶儀表板、租戶切換、跨專案證據、部署架構,中英各一)
  • 隱私權政策、服務條款為占位頁(「內容準備中」/"Content coming soon")
  • AI 儀表板截圖以小幫手對話頂替
  • 英文頁語言切換鈕顯示「中文」
  • 全站 x-robots-tag: noindex(測試期)
§5

正式上線待辦

  1. 刪掉 public/_headers 的 X-Robots-Tag: noindex(stg 若保留做測試站,改成只對 stg 網域加)
  2. VITE_SITE_URL 改正式網域,重新 build(canonical、hreflang、sitemap、robots、llms、JSON-LD、og 網址都跟著換)
  3. Cloudflare Pages 綁正式網域
  4. 正式網域的 zone 層 AI Crawl Control 政策再關一次(AI 爬蟲封鎖是 zone 層設定,換網域不會跟過去)
  5. 正式網域的 zone 關掉 Email Address Obfuscation(D2)
  6. Search Console 改驗正式網域並送 sitemap.xml;Bing Webmaster 從 Search Console 匯入
  7. 站外訊號(LinkedIn 公司頁、G2、合作夥伴連結)正式網域定後另開卡
  8. 若決策者要開 Cloudflare Web Analytics,設好 token 後確認首頁 HTML 有 beacon
§6

打折處

  • Google 複合式搜尋結果測試沒跑(需登入),以 schema.org validator 代替;兩者規則不完全相同,Google 對 FAQPage 的顯示資格另有限制。
  • 社群預覽卡是用各平台爬蟲 UA 抓 HTML 驗 og 標籤與圖片 200,沒有實際貼到 Facebook Debugger/LINE/Slack 看渲染結果(那些需要登入)。
  • Lighthouse 是本機 headless 一次量測,Performance 分數每次會浮動約 ±5。