網站沒被 Google 收錄,最常見的原因其實很無聊:新網頁還沒輪到。Google 在 Search Console 官方說明裡寫得很直白——發布新網頁之後,Google 需要一段時間才會檢索它,檢索完還要再一段時間才會建立索引,「一般來說,你可能需要等待一、兩天至數週」。
但「等」只有在確定沒有東西擋路的時候才有意義。如果 robots.txt 封鎖了 Googlebot、頁面上掛著 noindex、或伺服器對爬蟲回傳 403,那等多久都不會進去。所以正確的順序是:先花二三十分鐘把技術面的可能性逐項排除,剩下的才是真的只能等。
下面 6 個步驟按「最常見、最容易查」排序,每一步都會說明要看什麼、結果代表什麼、以及怎麼修。
網站沒被 Google 收錄,先分清楚是哪一種情況
很多人說的「沒被收錄」,其實是「搜尋文章標題找不到」。這是兩件不同的事:
- 沒被索引:這個網址不在 Google 的索引裡,搜什麼都不會出現。這是技術問題。
- 已被索引但排不上:網址在索引裡,只是關鍵字競爭度太高,排在第 8 頁,所以看起來像不存在。這是內容與排名問題,修 robots.txt 沒有用。
site: 指令可以用,但別把它當判準
在 Google 搜尋列輸入 site:yoursite.com,會列出該網域下部分已建立索引的網址;加上網址路徑(例如 site:yoursite.com/blog/my-post)就能粗略檢查單一頁面。這是最快的初步檢查,但它不是判準。
Google 的搜尋運算子官方文件講得很明白:site: 不一定會回傳指定前綴底下所有已建立索引的網址,因為搜尋運算子本身受到索引與檢索呈現的限制;排查索引問題時,Search Console 的網址檢查工具才是可靠的做法。
換句話說:site: 查得到,代表確定有收錄;site: 查不到,不代表沒收錄。看到空白結果先別慌。
步驟 1:用網址檢查工具確認真實狀態
前提是網站已經在 Google Search Console 完成驗證。還沒有的話先做這件事,後面五個步驟幾乎都要靠它。
把完整網址貼進 Search Console 最上方的搜尋列,工具會回傳兩種結果之一,並附上原因:
- 網址在 Google 服務中:已建立索引。但官方特別註明,這不保證網頁一定會出現在搜尋結果,內容仍須符合品質與安全性規範。
- 網址不在 Google 服務中:沒有建立索引。工具下方會顯示一行具體的狀態文字,那行字就是後面所有排查的起點,請先把它抄下來。
「即時測試」和「已建立索引結果」不是同一件事
網址檢查工具有兩種資料來源,很容易看錯:
- 已建立索引結果:Google 上次檢索時看到的樣子,可能跟目前線上版本不同。
- 即時測試網址:現在重新抓一次,測試這個網頁「能不能」被索引。官方也提醒,即時測試無法涵蓋所有問題,例如重複內容或人工判決處罰就測不出來。
如果剛剛才修掉 noindex,「已建立索引結果」還會顯示舊狀態,這時要看的是即時測試。
步驟 2:檢查 robots.txt 有沒有擋住
直接在瀏覽器打開「網域 /robots.txt」。這個檔案必須放在網站根目錄才有效,放在子目錄 Google 不會讀。
要找的是這幾種寫法:
- Disallow: / — 封鎖整站。通常是網站上線時忘了拿掉的開發設定,最常見的兇手。
- Disallow: /blog/ 之類的路徑封鎖,剛好蓋到目標頁面。
- User-agent: Googlebot 底下單獨的封鎖規則。
這裡有個很多人誤解的地方:robots.txt 管的是「檢索」,不是「索引」。Google 官方明確說明,robots.txt 不是用來隱藏網頁的工具——如果有其他網站連到被封鎖的網址,Google 仍可能為那個網址建立索引,搜尋結果會顯示網址或連結錨定文字之類的公開資訊,只是沒有內容摘要。
反過來也成立:想讓網頁不出現在搜尋結果,正確做法是 noindex、密碼保護或直接移除,而不是丟進 robots.txt。
步驟 3:檢查頁面上的 noindex
noindex 有兩個藏身處,兩個都要看。
HTML meta 標籤
在頁面原始碼的 head 區塊尋找這兩行:
- meta name=”robots” content=”noindex”
- meta name=”googlebot” content=”noindex”
WordPress 的「阻擋搜尋引擎建立索引」選項、Next.js 的 metadata 設定、SEO 外掛的單篇文章設定,都會產出這一行。網站從測試站搬到正式站時特別容易漏掉。想搞懂 head 區塊裡各個標籤各自負責什麼,可以參考基礎 SEO 的 HTML 標籤說明。
HTTP 回應標頭 X-Robots-Tag
這個從瀏覽器看原始碼看不到,因為它不在 HTML 裡,而在伺服器回傳的標頭:X-Robots-Tag: noindex。常見於 CDN 設定、Nginx 或 Apache 規則、整個目錄的全域設定。用網址檢查工具做即時測試、展開「HTTP 回應」就能確認。
最容易踩的陷阱:robots.txt 加 noindex 一起用
如果一個頁面同時被 robots.txt 封鎖、又掛了 noindex,結果不是「更確定不被收錄」,而是 noindex 直接失效。Google 官方警告寫得很清楚:「如果網頁遭到 robots.txt 檔案封鎖,或是檢索器無法存取網頁,檢索器便無從發現 noindex 規則。」
爬蟲進不去,就讀不到那行 noindex。所以要把舊頁面移出搜尋結果時,順序是:先解除 robots.txt 封鎖,讓 Google 讀到 noindex,等它從索引消失之後,再視情況封鎖。
步驟 4:確認 sitemap 有提交,而且內容是對的
sitemap 不是收錄的必要條件,Google 靠連結也能找到頁面;但對新站或外部連結很少的網站來說,它是成本最低的通知管道。
檢查三件事:
- sitemap 檔案本身打得開,而且裡面確實有那個找不到的網址。
- 已經在 Search Console 的「Sitemap」報表提交過,狀態顯示成功。也可以在 robots.txt 裡加一行 Sitemap: https://example.com/sitemap.xml。
- 沒有超過官方上限:單一 sitemap 最多 50,000 個網址、未壓縮 50 MB,超過要拆檔並改用 sitemap 索引檔。
兩個值得知道的官方細節:
- Google 會忽略 priority 和 changefreq,調這兩個值沒有任何效果。
- lastmod 只有在數值始終準確且可供驗證時才會被採用,而且應該反映實質更新(內容、結構化資料、連結),不是每天自動改一次日期。全站 lastmod 都是今天,等於這個訊號作廢。
另外,官方說法是提交 sitemap 只是一種提示,無法保證 Google 會下載它,更不保證收錄。
步驟 5:讀懂「未建立索引」的狀態文字
Search Console 的網頁索引報表會把未建立索引的網址分類,每一類對應完全不同的修法。以下是最常出現的幾個狀態:
| 狀態 | 代表什麼 | 該做什麼 |
|---|---|---|
| 已找到,目前尚未建立索引 | Google 知道有這個網址,但還沒去檢索 | 確認伺服器回應正常、補上內部連結,然後等 |
| 已檢索 – 目前尚未建立索引 | 抓過了,但決定先不收錄 | 設定改不動它,要從內容價值與重複度下手 |
| 網址遭到 robots.txt 封鎖 | 被自家 robots.txt 擋住 | 回到步驟 2 修規則 |
| 網址含有「noindex」標記 | 頁面明確要求不要建立索引 | 回到步驟 3 移除 |
| 替代頁面 (有適當的標準標記) | 這頁被標示為其他網頁的替代版本 | 多半正常,確認 canonical 指對頁面即可 |
| 這是重複網頁;Google 選擇的標準網頁和使用者的選擇不同 | canonical 指向 A,Google 認為 B 才是本尊 | 檢查內容是否過度相似、canonical 與內部連結是否一致 |
| 頁面會重新導向 | 這是非標準網址,會轉去其他網頁 | 正常現象,確認轉址目標正確 |
| 找不到 (404) | 檢索時網頁回傳 404 | 修正錯誤連結,或建立正確轉址 |
| 伺服器錯誤 (5xx) | 伺服器回傳 500 層級錯誤 | 查主機負載與程式錯誤;持續 5xx 會讓檢索頻率下降 |
| 因拒絕存取 (403) 而遭到封鎖 | 爬蟲被伺服器擋下 | 見步驟 6 |
其中「已檢索 – 目前尚未建立索引」是新站最常見、也最讓人焦慮的狀態。它的意思是 Google 已經花資源抓下這一頁,然後決定不收——重送索引要求、再提交一次 sitemap 都改變不了這個判斷,要處理的是內容本身。
步驟 6:確認 Googlebot 真的進得來
前面五步都乾淨,但狀態顯示 403、5xx 或就是抓不到,那問題大概在伺服器層:防火牆規則、CDN 的 bot 防護、資安外掛的封鎖清單,都可能把 Googlebot 一起擋掉。
檢查方式:
- 用網址檢查工具的「即時測試網址」,看回傳的 HTTP 狀態碼,正常應該是 200。
- 翻伺服器存取紀錄,找出 Googlebot 的請求,看它實際拿到什麼狀態碼。
- 檢查 CDN 或 WAF 是否對特定 user-agent、特定國家 IP 設了封鎖規則。
紀錄裡若有大量可疑的「Googlebot」請求,Google 提供兩種官方驗證法:對來源 IP 做反向 DNS 查詢,確認網域結尾是 googlebot.com、google.com 或 googleusercontent.com,再正向查詢確認 IP 對得起來;或直接比對 Google 公布的爬蟲 IP 清單 JSON 檔(一般爬蟲用 common-crawlers.json,AdsBot 之類用 special-crawlers.json)。假冒的兩關都過不了。
另外,如果網站高度依賴 JavaScript 才渲染出內容,也要用即時測試看「已算繪的 HTML」裡是不是真的有文字。抓得到頁面卻只看到空殼,結果跟被封鎖差不多。
送出索引要求之後,要等多久?
排查完、確認乾淨之後,在網址檢查工具按「要求建立索引」。合理的期待值是這樣:
- 提交次數有每日上限,重複送同一個網址不會加速。
- 官方在網址檢查工具的說明給的時間感是通常需要一到兩週;索引疑難排解的說明則寫「一、兩天至數週」。
- 提交要求不保證一定會被索引。
- 如果要處理的是大量頁面,官方建議不要逐頁提交,改成提交 sitemap 並正確使用 lastmod。
一週後回頭再看一次狀態:如果從「已找到」變成「已檢索」,代表進度有在動;如果卡在「已檢索 – 目前尚未建立索引」超過幾週,那答案在內容,不在設定。
幾個常見但沒用的做法
- 用 Indexing API 加速收錄:Google 官方限制 Indexing API 只能用於含 JobPosting 結構化資料的頁面,或含 BroadcastEvent(嵌在 VideoObject 內)的直播頁面。用在一般部落格文章屬於違規,官方表示會採取反濫用措施,包括撤銷存取權。
- 每天重送索引要求:有每日上限,也不會提高優先權。
- 把 sitemap 的 priority 全部改成 1.0:Google 直接忽略這個值。
- 買一批低品質外部連結:解決不了「已檢索但未建立索引」,還可能招來人工判決處罰。
- 反覆亂改 robots.txt 試看看:每改一次都讓判斷變複雜。先確認狀態文字,再針對那一項改。
六個步驟走完若技術面都沒問題,剩下的就是把時間投到內容與內部連結上。從零開始的 SEO 要先做哪些事,可以看 SEO 新手入門的第一步;排名要多久才有動靜,SEO 做兩個月的觀察紀錄裡有比較具體的時間感。
常見問題
新網站通常多久會被 Google 收錄?
官方沒有給保證值。Search Console 說明的說法是發布新網頁後可能需要等待「一、兩天至數週」,時間長短受很多因素影響。網站越新、外部連結越少,通常越久。
site: 查不到,就代表沒被收錄嗎?
不一定。Google 官方文件說明 site: 不一定會回傳指定網域底下所有已建立索引的網址,搜尋運算子會受到索引與檢索呈現的限制。要確認索引狀態,請用 Search Console 的網址檢查工具。
被 robots.txt 封鎖的頁面會不會出現在搜尋結果?
有可能。官方說明指出,如果其他網站連到被封鎖的網址,Google 仍可能為它建立索引,搜尋結果會顯示網址或連結錨定文字之類的公開資訊。要確實排除,改用 noindex 或密碼保護。
「已檢索 – 目前尚未建立索引」要怎麼修?
這個狀態代表 Google 抓過但選擇不收錄,通常不是設定問題。可以檢查的方向是:內容是否與站內其他頁面高度重疊、是否提供了實際資訊價值、有沒有內部連結指向它。重送索引要求對這個狀態幫助有限。
沒有 sitemap,網站就不會被收錄嗎?
不會。Google 也能透過連結發現網頁,sitemap 是提示而非必要條件。但對新站或內部連結稀疏的網站來說,提交 sitemap 是成本最低的加速方式。
