案例
這個網站自己
客戶案例需要書面授權,我們手上還沒有。所以先把自己的站攤開: 分數、流程、數字、以及為什麼要這樣做。下面每一項你都可以自己驗一次。
健檢
3項 100
Lighthouse 行動版滿分項目
搜尋友善度、最佳實務、無障礙。Google 官方網站評測工具,2026-08-31 量測。效能分數屬內部追蹤,不對外宣稱。
43條
上線前自動跑的稽核
逐頁掃標題長度、meta 描述、結構化資料必填欄位、圖片替代文字、站內死連結、單頁 JS 體積。有一條紅的就不部署。
17組
robots.txt 明確放行的 AI 爬蟲
含 OAI-SearchBot、ClaudeBot、PerplexityBot 等。放行只是把門打開,要不要引用由各家自己決定。
這一輪量到的
以下是 2026-10-05 這一版建置實際跑出來的數字,右欄是它從哪裡來的; 線上實測那一列是上一次部署對線上跑的結果,日期寫在那一列。 這些會隨網站變動,過期就要重跑。
| 數 | 是什麼 | 出處 |
|---|---|---|
| 23 項 | 上一次部署(2026-10-06)的線上實測全數通過 | scripts/verify-live.mjs production |
| 16 項 | 每日守護檢查全數正常 | scripts/guard.mjs |
| 41 筆 | sitemap 收錄的網址 | dist/sitemap-index.xml |
| 94 頁 | 建置產出的 HTML 頁面 | dist/**/index.html |
| 49.8 KB | 全站字型合計(自站內提供) | scripts/subset-latin.mjs 驗收線 120 KB |
速度
這一段刻意不寫效能分數。效能分數會隨量測環境、網路與當下的機器負載跳動, 把它寫在頁面上等於做一個我們控制不了的承諾。我們追蹤它,但不對外宣稱。 能寫的是做了什麼,那些是穩定的事實:
- 中文內文走系統字堆疊(零下載);拉丁內文與顯示字、中文標題字為自站內提供的子集檔(合計約 50 KB),不向任何第三方網域請求字型。
- 沒有 cookie、沒有第三方追蹤腳本,所以也沒有同意橫幅。
- 產物是靜態檔案,由 Cloudflare Worker 直接提供,沒有伺服器端的每次請求運算。
- 圖片一律 WebP、多尺寸,非首屏的圖延後載入。
上線流程
每次部署跑的是同一串,順序不變。中間任何一步非零離開就停在那裡。
- 建置
node scripts/build.mjs產生事實檔與 OG 圖 → Astro 建置 → 字型子集 → 產生標頭與轉址 → 移除 dotfile、原始照片與比稿頁。 - 稽核
node scripts/audit.mjs43 條逐頁檢查,外加負向測試(故意放壞資料,確認稽核抓得到)。 - 文案檢查
node scripts/copy-watch.mjs行銷腔禁詞、中文排版(漢字與英數間距、全形標點)、術語裸用、成效保證用語。 - 型別檢查
npx astro check全站型別零錯誤才進到部署。 - 部署
pnpm ship核對閘門戳記(同一個 commit、工作區乾淨、產物沒換過)後上傳 Cloudflare Worker。 - 線上實測
verify-live.mjs production打線上站逐項驗證:robots.txt 與產物逐行比對、canonical、404 快取標頭、轉址、靜態檔案。 - 記錄
node scripts/record-deploy.mjs把這一版的 commit 與 Cloudflare 版本寫進基準檔,隔天的守護比對用它,不用 HEAD。
為什麼要做到這個程度
這些檢查大多是出過事才加的。robots.txt 曾經被舊建置覆蓋、 邊緣快取曾經讓同一個網址對瀏覽器回 404 對 curl 回 301、 隱藏檔曾經公開可讀。每一條規則背後都有一次「以為沒問題」。
對你的意義很簡單:我們拿來管自己的那一套,就是交付給你的那一套。 你的網站上線前跑的檢查與這裡同一份。
你的網站也可以這樣驗收
這一頁的數字都有量測紀錄。我們交付的網站,上線前一樣跑 43 項自動檢查。
最後更新 2026-10-06