有一天,一位同仁跟我反應,他手上剛上線的一個 Laravel 多語系網站遇到很奇怪的問題:中文頁面收錄一切正常,但英文頁面卻完全進不了 Google 索引。網站內容明明完整,Sitemap 也提交了,卻遲遲沒有任何收錄跡象。出於好奇,我便幫忙檢查,結果一查,居然是語系網址的設定出了大問題……
👉 還不清楚 SEO 的基本原理?可以先看這篇 → 什麼是 SEO?別以為網站做完就好,排名關鍵在這裡,其實很多公司說『送 SEO』,通常只做到表面設定,遇到這類技術細節問題時,根本不會處理。

問題情境:英文頁面始終無法被收錄
以某 Laravel 框架建置的多語系企業官網為例,中文頁面一切正常,但英文頁面卻始終無法被 Google 蒐錄。實際測試時,發現語系切換後網址出現異常:
🌐 多語系網址路徑異常示範
預期的英文首頁網址為:
https://www.example.com/en
但實際進入網站後,會跳轉至:
https://www.example.com/public/en/
且使用者繼續點擊其他英文選單時,網址仍持續夾帶 /public/
,如下所示:
- ・
https://www.example.com/public/en/about
- ・
https://www.example.com/public/en/news
這樣的情況使得 Googlebot 在嘗試解析路徑時,無法正確辨識英文版區塊,導致整個英文站區被忽略。
問題排查過程:逐步檢查設定
為了確定問題來源,我們依照以下步驟進行排查:
🛠 Laravel 多語系網址錯誤診斷建議
🔍 檢查 .env 與 APP_URL 設定
- ・確認
.env
中的APP_URL=https://www.example.com
,不要指向/public
。 - ・檢查
APP_ENV
與APP_DEBUG
是否設為正確的部署值(如 production / false)。
🔧 檢查 Laravel 路由與語系設定
- ・開啟
routes/web.php
,確認路由是否設定為/en/...
而非/public/en/...
。 - ・檢查是否有使用
Route::group(['prefix' => App::getLocale()])
並正確搭配語系中介層。
📊 比對其他正常網站案例
我們比對了另一家同樣使用 Laravel 並正常被收錄的網站(如 https://www.otherexample.com/en
),
發現錯誤網站多出一層 /public
,原因可能是語系切換時,缺少一個 「/」 導致網址被拼接錯誤為 /public/en/
。
問題根源:/public
目錄未正確處理
Laravel 預設的 public
目錄是靜態檔案與進入點所在,但若伺服器未正確設定,訪客與搜尋引擎會直接進入 /public
資料夾,進而影響 URL 結構。
🌍 正確的語系網址部署方式
正確做法應該是將 /public
指定為網站根目錄,讓語系路徑維持簡潔,避免影響 SEO 與收錄。
- ✅ 正確網址範例:
https://www.example.com/en/about

- ❌ 錯誤網址範例:
https://www.example.com/public/en/about

🔧 解決步驟建議
- ・修正 Laravel 路由,確保英文語系網址為
/en/...
。 - ・在
robots.txt
中加入英文頁面:
User-agent: * Allow: https://www.gdauto.com.tw/en/ Allow: https://www.gdauto.com.tw/en/about-01
- ・手動修改
sitemap.xml
,補齊英文頁面。 - ・加入 canonical 標準網址:
<link rel="canonical" href="https://example.com/dresses/green-dresses" />
- ・進入 Google Search Console,執行以下操作:
- ・使用網址審查工具檢查英文頁面
- ・重新提交 sitemap
- ・移除
/public/
開頭的多餘網址

這次的案例告訴我們,多語系收錄與伺服器設定細節息息相關。事實上,Laravel 還有其他類似的陷阱,例如 CSS 與 JS 路徑錯誤造成破版 👉 Laravel 網站破版怎麼辦?CSS 與 JS 路徑錯誤完整解決辦法
👉 你的多語系網站也遇到收錄不到的狀況嗎?
不管是 Laravel、WordPress 還是客製化網站,
都可能因為細節設定影響 SEO 與收錄。
如果你也有相同問題,歡迎留言分享,或直接找我討論,
我可以幫你檢查並給出實際建議。