選單消失,最後發現是 Autoptimize 快取檔案 404
整理日期:2026-04-09
有一個 WordPress 網站,在一般瀏覽器看起來正常,但用無痕視窗打開時,整個導航選單消失。
頁首還在,Logo、電話、Email 和搜尋按鈕都看得到,但主選單不見了。
這種情況很容易讓人先懷疑是選單設定、佈景主題或多語系問題。但這次真正的起點不是選單本身。
先拆成幾層看
Section titled “先拆成幾層看”我會先拆成幾層:
- 選單 HTML 是否還在頁面裡。
- CSS 是不是把選單藏起來。
- 佈景主題切換桌機 / 手機版的 JS 有沒有正常跑。
- 是否只有無痕或新訪客會遇到。
- 快取外掛、伺服器快取、CDN 快取是否不同步。
如果一般瀏覽器正常、無痕不正常,通常要先往快取或前端資源載入問題查。
Autoptimize 打包後的 JS 檔案回 404。
那個 JS bundle 裡面包含佈景主題的導航邏輯。JS 沒載入時,佈景主題原本用來判斷桌機 / 手機選單的 class 沒有被移除,結果 CSS 繼續把選單區塊藏起來。
一般瀏覽器之所以正常,是因為瀏覽器還留著舊的可用 JS 快取。
無痕視窗沒有舊快取,所以直接載入到不存在的新檔案,選單就消失。
這次不是單純清快取而已。
因為同一個網站已經第二次壞在 Autoptimize 打包 / 快取檔案,所以最後決定移除 Autoptimize。
原因是網站本來已經有:
- CDN 層快取。
- 伺服器層頁面快取。
- 主機端快取機制。
Autoptimize 在這個堆疊裡只做了很有限的 JS 處理,卻增加了一個故障點。
處理方式是:
- 停用並刪除 Autoptimize。
- 清伺服器快取。
- 清 CDN 快取。
- 用無痕視窗和前端 console 驗證沒有 JS 404。
- 確認選單在新訪客狀態下正常顯示。
不建議先做的事
Section titled “不建議先做的事”不要一開始就重建選單。
也不要只在自己平常用的瀏覽器檢查。這種快取問題很常出現「我看正常、別人看壞掉」。
如果同一個效能外掛第二次造成前台核心功能故障,就不要只把它當成偶發事件。要回頭看整個快取堆疊是不是太複雜。
下次遇到可以先整理什麼
Section titled “下次遇到可以先整理什麼”- 一般視窗和無痕視窗是否都會壞。
- console 有沒有 JS 404。
- Network 裡是否有快取檔案不存在。
- 選單 HTML 是否仍在頁面裡。
- body class 是否異常停在手機版狀態。
- 網站目前有幾層快取:外掛、主機、Varnish、CDN。
這種問題不要只看 WordPress 後台。前端實際載入了哪些 JS / CSS,比後台設定更重要。
Autoptimize快取選單消失AstraJS 404CDN