日誌 ·

變更上線之後會發生什麼

AI 翻譯 本頁由 AI 從英文原文機器翻譯而成。 閱讀英文原文

ipe.rest 的變更是透過 GitHub 上一條簡短的工作流程送到訪客面前的:複製網站、檢查、發佈,並告訴搜尋引擎有什麼新內容。多數執行都在 40 秒內完成。

上一篇談的是頁面如何建置。這一篇從那裡接續,從一項變更進入我們儲存庫的 main 分支開始。文中數字取自 2026 年 11 月 10 日:工作流程檔案、網站的本機建置,以及 GitHub 上最近八次執行。

複製

網站就是一堆普通檔案,所以第一步是複製。工作流程會取出儲存庫,並複製所有東西,只排除訪客用不到的部分:腳本、測試、工作流程本身、版本控制資料,以及所有 Markdown 檔案。儲存庫的 586 個檔案中,有 329 個進入網站資料夾,約 10 MB。

檢查

接著對那個資料夾(而不是對儲存庫)執行七項測試。測試會找訪客需要的檔案,例如 robots 檔案、網站地圖、service worker 與首頁;找不該出現的資料夾,例如 scripts 與 tests;還有 404 頁面,它必須標記 noindex 並連回首頁。一旦失敗,工作流程就在這裡停下,不發佈任何東西,先前的版本仍維持上線。

發佈

接下來,資料夾會被上傳並交給 GitHub Pages 提供服務。同一時間只會有一個部署在執行:若執行期間有更新的變更進來,較舊的那次就會被取消。中間沒有我們自己的伺服器,也沒有資料庫。當 service worker 版本改變,訪客的瀏覽器會在之後的造訪安裝新的快取,並刪除舊的快取。

通知

發佈之後,工作流程會把網站地圖日期為韓國時間今天的頁面網址,送給 IndexNow。這是 Bing、Naver、Yandex 等搜尋引擎都接受的協定,所需的金鑰是放在網站根目錄的一個公開文字檔。這一步允許失敗:即使失敗,這次部署仍算成功。

實際表現

最近八次執行中,七次成功、一次失敗;22 秒後的下一次執行就成功了。七次成功中有五次在 40 秒內完成,最慢的一次花了 2 分 18 秒。我們量的是從一次執行開始到它最後一次更新的時間,所以請把這些時間當成大約值。

綠燈沒有說的事

執行通過,代表檔案送到了、七項檢查都過了。它並不代表頁面在小手機螢幕上看起來正確;而 IndexNow 只是通知搜尋引擎,對於它們何時收錄、是否收錄某個頁面,不做任何承諾。

ipe(); // copy, check, publish, tell

這條工作流程刻意保持簡短。步驟愈少,安靜的網站能出錯的地方就愈少。

← 所有文章