跳到內容

選單消失,最後發現是 Autoptimize 快取檔案 404

整理日期:2026-04-09

有一個 WordPress 網站,在一般瀏覽器看起來正常,但用無痕視窗打開時,整個導航選單消失。

頁首還在,Logo、電話、Email 和搜尋按鈕都看得到,但主選單不見了。

這種情況很容易讓人先懷疑是選單設定、佈景主題或多語系問題。但這次真正的起點不是選單本身。

我會先拆成幾層:

  • 選單 HTML 是否還在頁面裡。
  • CSS 是不是把選單藏起來。
  • 佈景主題切換桌機 / 手機版的 JS 有沒有正常跑。
  • 是否只有無痕或新訪客會遇到。
  • 快取外掛、伺服器快取、CDN 快取是否不同步。

如果一般瀏覽器正常、無痕不正常,通常要先往快取或前端資源載入問題查。

Autoptimize 打包後的 JS 檔案回 404。

那個 JS bundle 裡面包含佈景主題的導航邏輯。JS 沒載入時,佈景主題原本用來判斷桌機 / 手機選單的 class 沒有被移除,結果 CSS 繼續把選單區塊藏起來。

一般瀏覽器之所以正常,是因為瀏覽器還留著舊的可用 JS 快取。

無痕視窗沒有舊快取,所以直接載入到不存在的新檔案,選單就消失。

這次不是單純清快取而已。

因為同一個網站已經第二次壞在 Autoptimize 打包 / 快取檔案,所以最後決定移除 Autoptimize。

原因是網站本來已經有:

  • CDN 層快取。
  • 伺服器層頁面快取。
  • 主機端快取機制。

Autoptimize 在這個堆疊裡只做了很有限的 JS 處理,卻增加了一個故障點。

處理方式是:

  1. 停用並刪除 Autoptimize。
  2. 清伺服器快取。
  3. 清 CDN 快取。
  4. 用無痕視窗和前端 console 驗證沒有 JS 404。
  5. 確認選單在新訪客狀態下正常顯示。

不要一開始就重建選單。

也不要只在自己平常用的瀏覽器檢查。這種快取問題很常出現「我看正常、別人看壞掉」。

如果同一個效能外掛第二次造成前台核心功能故障,就不要只把它當成偶發事件。要回頭看整個快取堆疊是不是太複雜。

  • 一般視窗和無痕視窗是否都會壞。
  • console 有沒有 JS 404。
  • Network 裡是否有快取檔案不存在。
  • 選單 HTML 是否仍在頁面裡。
  • body class 是否異常停在手機版狀態。
  • 網站目前有幾層快取:外掛、主機、Varnish、CDN。

這種問題不要只看 WordPress 後台。前端實際載入了哪些 JS / CSS,比後台設定更重要。

  • Autoptimize
  • 快取
  • 選單消失
  • Astra
  • JS 404
  • CDN