IndexingTechnical SEOSEO IssuesGEO

Indexing and Crawl Issues That Block AI Rankings

Why pages stay out of Google’s index — crawled but not indexed, sitemap errors, robots.txt blocks, and orphan URLs — and how those SEO issues also stop AI answers from citing you.

A page that Google has never stored cannot rank, and an AI answer cannot cite a URL its crawler was never allowed to fetch. Indexing and crawl issues are the SEO issues that sit underneath every other fix: titles, content, and GEO formatting do not matter until the canonical URL is eligible to be retrieved.

This guide is the follow-up to common SEO and GEO issues that hurt rankings. Use that page for the wider audit. Use duplicate content and keyword cannibalization when the wrong URL is the one Google keeps. Use this one when Search Console says the page was crawled or discovered but is not indexed, the sitemap lists URLs that should not be indexed, or robots.txt is blocking Google or the crawlers behind AI answers.

Not ranking is not the same as not indexed

A ranking problem means the URL is in the index and still loses the query. An indexing problem means there is no URL for that query to rank. Teams waste months rewriting copy while the page is excluded.

Check the exact URL, not the folder and not a redirected variant. In Google Search Console, the URL Inspection report is the source of truth for one address: whether Google last crawled it, which canonical Google chose, and whether a noindex or robots rule is in the way. Coverage reports then show the pattern across the site.

These are the states that explain most “website not indexed” cases:

StateWhat it usually means
Crawled – currently not indexedGoogle fetched the URL and chose not to keep it. Often thin, duplicate, or low-value compared with other pages.
Discovered – currently not indexedGoogle knows the URL, usually from a sitemap or a link, and has not crawled it yet. Common for orphans and low-priority URLs.
Excluded by noindexA meta robots tag or HTTP header is still asking Google to drop the page.
Blocked by robots.txtGooglebot is not allowed to fetch it. The URL can still be listed if something links to it, but Google cannot read the content.
Soft 404The server returns 200 for an empty, error, or “no results” page. Google treats it as not a real page.
Page with redirectThe sitemap or internal links point at an old URL. Only the final canonical can rank.
Alternate page with proper canonicalA duplicate correctly points elsewhere. Expected for parameters and language alternates — a problem only if the preferred URL is the one being dropped.

“Crawled – currently not indexed” is a quality decision, not a queue you can flush with another sitemap submission. “Discovered – currently not indexed” is a discovery and priority problem. Fixing the wrong one wastes the sprint.

Sitemap errors that send the wrong URLs

An XML sitemap is a hint, not a command. Sitemap errors still matter because they spend crawl attention on URLs you do not want, and they leave out the ones you do.

Remove any URL that:

  • Returns a redirect, 404, or 410
  • Carries noindex
  • Is a parameter, staging, or print variant
  • Is not the canonical (wrong host, wrong protocol, or the non-preferred slash)
  • Is a thin tag, author, or attachment page you do not intend to rank

List the English and Traditional Chinese canonicals you actually want indexed. A bilingual Hong Kong site should not put both languages only in one language’s sitemap and hope hreflang does the rest. Each indexable URL belongs in the sitemap once, with the same host the canonical tag uses.

Then confirm the sitemap file itself returns 200, is not blocked by robots.txt, and is the file submitted in Search Console. A sitemap that only exists on a staging host, or that references last year’s domain, is a technical SEO issue even when every URL inside it looks fine.

robots.txt blocks, including AI crawlers

Disallow: / left on after launch is still the fastest way to take a site out of Google. More often the rule is narrower and just as damaging: a production robots.txt copied from staging that disallows /insights/, /zh/, or every URL with a query string that your canonicals happen to use.

robots.txt stops a crawler from fetching. It does not reliably keep a URL out of the index if other sites link to it. For pages you want removed, use noindex on a URL that Googlebot is allowed to crawl, or return 404/410. Using robots.txt to “noindex” a page is a long-standing technical SEO mistake: Google cannot see the noindex tag if it cannot fetch the page.

AI access is a separate decision, and it is easy to get wrong:

  • Googlebot crawls for Google Search. AI Overviews draw on indexed Search results, so a block on Googlebot is both an SEO issue and a GEO issue.
  • Google-Extended is not Googlebot. Disallowing it opts a site out of some Gemini training and grounding uses. It does not, by itself, remove pages from Google Search or AI Overviews.
  • OAI-SearchBot, PerplexityBot, and Bingbot are examples of crawlers that answer engines use when they retrieve live pages. Blocking them on purpose is a policy choice. Blocking them by accident — a wildcard disallow, or a rule copied for every bot — is a GEO issue if the goal is to be cited in ChatGPT, Perplexity, or Copilot.
  • GPTBot is OpenAI’s training crawler. Blocking it is not the same as blocking ChatGPT search.

Read the live robots.txt on the production host. Then test the exact article URL against Googlebot and against any AI crawler you intend to allow. A rule that looks harmless on the homepage can still match every guide under a folder.

Orphan pages and crawl paths

“Discovered – currently not indexed” often means the only discovery path was a sitemap. Google can crawl that URL and still treat it as unimportant because nothing on an indexed page links to it.

Orphan pages are an SEO issue and a GEO issue for the same reason. Search crawlers and many AI retrievers follow links from hubs. A guide that is only in the sitemap, with no link from the articles index, a related guide, or the relevant service section, is easy to skip.

On a bilingual site, check both languages. An English article that links only to other English URLs, while the Chinese version has no in-content links at all, leaves the Chinese URL as an orphan even when hreflang is correct. Give every indexable page at least one normal link from an indexed page in the same language, using an anchor that states the topic.

Crawl depth matters less on a small site than internal links do. A five-click path from the homepage is a warning; a page with zero internal links is the defect. Broken hrefs, redirect chains, and anchors that never name the topic are the rest of that link graph. The internal links and redirects guide covers them.

When the HTML is empty until JavaScript runs

If the answer, the headings, and the links appear only after client-side rendering, a crawler that does not execute JavaScript — or that times out — stores a shell. Googlebot renders many pages, but it does not guarantee a full render on every crawl, and some AI crawlers fetch the raw HTML only.

Keep the primary explanation in the initial HTML: the title, the H1, the opening answer, and the links to related guides. Use JavaScript for interaction, not for the only copy of the text you want cited. If URL Inspection’s rendered HTML is missing the paragraph you expect to rank, the indexing issue is the template, not the keyword.

How crawl issues become GEO issues

Generative engine optimization assumes a retrievable page. How to rank in AI search describes citation-shaped content. That work cannot succeed when:

  • The URL is excluded, so there is no passage to quote
  • robots.txt blocks the crawler that product uses
  • The sitemap advertises a redirected or parameter URL, and the model cites that address
  • The fetched HTML has no answer, because the text was injected by JavaScript
  • English and Chinese canonicals disagree, so the model quotes a thin translation or an outdated host

A brand can look “absent from AI” when the real defect is that no crawler can read the page. Confirm fetch and index status before you rewrite for citations.

What to fix first

  1. Inspect the exact canonical URL. Note the coverage state, the declared canonical, and the canonical Google selected.
  2. If robots.txt blocks Googlebot, remove that rule and request indexing only after the URL returns 200 and is indexable.
  3. If the page is noindex by mistake, remove the tag, confirm the HTTP header is clean, and check the template so the next deploy does not put it back.
  4. Strip the sitemap down to indexable canonicals, including both languages, and resubmit the file Search Console already knows.
  5. Add an internal link from an indexed hub in the same language. Do not rely on the sitemap alone.
  6. Compare raw HTML with the rendered page. Put the answer in the HTML if it is missing.
  7. If the state is “crawled – currently not indexed” and the URL is genuinely thin or duplicative, improve that page or consolidate it. Another ping will not change the decision. The duplicate-content guide covers consolidation.
  8. Decide, explicitly, which AI crawlers may fetch the site. Allow the ones that match the visibility you want. Do not treat a training-crawler opt-out as a Search problem, and do not block Googlebot in the process.

After Google recrawls, check the same URL again before you judge rankings or AI citations. A page that is still “discovered” has not failed the content test yet. A page that is indexed and still absent from answers is a GEO content problem, not an indexing one.

Questions teams ask

Why is my page crawled but not indexed?

Google fetched it and declined to store it. The usual reasons are thin or duplicate content, a soft 404, a page that adds nothing beyond a stronger URL on the same site, or a canonical that points elsewhere. Start with URL Inspection, then compare the page with the URL you actually want to rank.

Do sitemap errors cause SEO ranking problems?

They cause indexing problems, which then look like ranking problems. A sitemap full of redirects, noindex URLs, and non-canonical hosts tells Google to spend time on addresses that should not rank. Clean the file so it lists only the canonicals you maintain.

If I block AI crawlers, do I hurt Google rankings?

Blocking Googlebot does. Blocking Google-Extended, GPTBot, or other non-Googlebot tokens does not, on its own, remove a page from Google Search. It can still be a GEO issue: some AI products will stop retrieving you. Read the token you are disallowing before you treat it as an SEO fix or as a privacy opt-out.

What should a Hong Kong site check that a single-language site does not?

Both language URLs. A Chinese page blocked by a /zh/ robots rule, missing from the sitemap, or never linked from a Chinese hub will not be indexed even when the English version ranks. Hreflang does not override noindex, robots.txt, or a sitemap that omits the URL. Local listing issues are separate; those sit in the Hong Kong SEO and GEO guide.

What to review this month

Export the coverage rows for “crawled – currently not indexed”, “discovered – currently not indexed”, “blocked by robots.txt”, and “excluded by noindex”. For each URL that should rank, record one cause and one change. Then test the production robots.txt against Googlebot and the AI crawlers you want to allow.

Search visibility starts with a URL that can be fetched and stored. The SEO issues above are why that step fails, and why AI rankings never get a page to cite.

索引技術SEOSEO問題GEO

索引與爬取問題:網頁未被收錄時的 SEO 與 GEO

說明「已檢索、目前未編入索引」、網站地圖錯誤、robots.txt 誤擋與孤立頁面,如何造成 Google 排名問題,並讓 ChatGPT、Perplexity 與 AI Overview 無法引用該頁。供香港雙語網站排查。

Google 從未收錄的頁面無法排名;爬蟲未被允許抓取的網址,AI 答案也無法引用。索引與爬取問題是其他修正之下的 SEO問題:標題、內文與 GEO 格式,都要等正規網址可以被擷取之後才有意義。

本篇是常見 SEO 與 GEO 問題的後續。較廣的審計用該篇;Google 留下的是錯誤網址時,用重複內容與關鍵字互搶。若 Search Console 顯示頁面已檢索或已發現但未編入索引、sitemap 列出不該索引的網址,或 robots.txt 擋住 Google 與 AI 答案背後的爬蟲,就用本篇。

沒有排名,不等於沒有被索引

排名問題是網址已在索引裡,但仍輸了那個查詢。索引問題是根本沒有可排名的網址。團隊往往改了幾個月文案,頁面其實一直被排除。

檢查的是那一個正規網址,不是目錄,也不是會重新導向的變體。在 Google Search Console,網址審查報告才是單一地址的依據:Google 上次何時爬取、選了哪一個 canonical,以及是否有 noindex 或 robots 規則擋路。涵蓋範圍報告則用來觀察全站的模式。

多數「網站未被索引」的情況,落在這些狀態:

狀態通常代表什麼
已檢索 – 目前未編入索引Google 抓過這個網址,但決定不保留。常見原因是內容過薄、重複,或比站內其他頁價值更低。
已發現 – 目前未編入索引Google 知道這個網址(多半來自 sitemap 或連結),但尚未爬取。孤立頁與低優先網址很常見。
因 noindex 而排除meta robots 或 HTTP 標頭仍要求 Google 捨棄該頁。
已遭到 robots.txt 封鎖不允許 Googlebot 抓取。若有其他網站連結,網址仍可能被列出,但 Google 讀不到內容。
軟 404伺服器對空白頁、錯誤頁或「沒有結果」回傳 200。Google 不把它當成真正的頁面。
含有重新導向的頁面sitemap 或內部連結指向舊網址。只有最終的正規網址可以排名。
替代頁面(已有適當的標準網頁)重複網址正確指向他處。參數頁與語言替代頁出現這個狀態是預期行為;只有在你想排名的那一頁被捨棄時才是問題。

「已檢索 – 目前未編入索引」是品質判斷,不是再提交一次 sitemap 就能清掉的佇列。「已發現 – 目前未編入索引」是發現與優先順序的問題。修錯一種,這個衝刺就浪費了。

網站地圖錯誤把錯誤網址送出去

XML sitemap 是提示,不是命令。網站地圖錯誤仍然重要,因為它們把爬取注意力花在你不想要的網址上,並漏掉你想要的那些。

下列網址不應留在 sitemap:

  • 回傳重新導向、404 或 410
  • 帶有 noindex
  • 參數、測試站或列印版本
  • 不是 canonical(錯誤主機、錯誤協定,或不希望的斜線版本)
  • 你不打算排名的薄弱標籤頁、作者頁或附件頁

列出你真正希望被索引的英文與繁體中文正規網址。雙語香港網站不應只把兩種語言都放進單一語言的 sitemap,然後指望 hreflang 補上。每一個可索引網址在 sitemap 裡只出現一次,主機要與 canonical 標籤一致。

接著確認 sitemap 檔案本身回傳 200、沒有被 robots.txt 封鎖,而且就是 Search Console 已提交的那一份。檔案只存在於測試主機,或仍指向去年的網域,即使裡面的網址看起來正確,仍是 技術SEO 問題。

robots.txt 封鎖,包括 AI 爬蟲

上線後仍留著 Disallow: /,是讓網站離開 Google 的最快方式。更常見的是範圍較窄、但同樣有害的規則:從測試環境抄來的 robots.txt 封鎖了 /insights/、/zh/,或封鎖了所有帶查詢字串的網址,而你的正規網址恰好符合。

robots.txt 阻止爬蟲抓取。若其他網站有連結,它並不能可靠地把網址趕出索引。想移除的頁面,應在 Googlebot 可以爬到的網址上使用 noindex,或回傳 404/410。用 robots.txt 假裝「noindex」是常見的技術錯誤:Google 抓不到頁面,就看不到 noindex。

AI 的存取是另一個決定,而且很容易設錯:

  • Googlebot 為 Google 搜尋而爬取。AI Overview 使用搜尋索引中的結果,因此封鎖 Googlebot 同時是 SEO問題 與 GEO問題。
  • Google-Extended 不是 Googlebot。禁止它是選擇不參與部分 Gemini 訓練與接地用途。單靠這條規則,不會把頁面移出 Google 搜尋或 AI Overview。
  • OAI-SearchBot、PerplexityBot 與 Bingbot 是部分答案引擎在擷取即時頁面時會用到的爬蟲例子。有意封鎖是政策選擇。無意封鎖——萬用字元,或把同一條規則套到每一個 bot——若目標是在 ChatGPT、Perplexity 或 Copilot 被引用,就是 GEO問題。
  • GPTBot 是 OpenAI 的訓練爬蟲。封鎖它,不等於封鎖 ChatGPT 搜尋。

讀的是正式主機上的 robots.txt。然後用實際文章網址分別對 Googlebot,以及你打算允許的 AI 爬蟲做測試。在首頁看起來無害的規則,仍可能符合某個目錄下的每一篇指南。

孤立頁面與爬取路徑

「已發現 – 目前未編入索引」常常表示唯一的發現路徑是 sitemap。Google 可以爬這個網址,卻仍把它視為不重要,因為沒有任何已索引頁面連過去。

孤立頁面 同時是 SEO 與 GEO 問題,原因相同。搜尋爬蟲與不少 AI 擷取器都從樞紐頁跟著連結走。一篇只出現在 sitemap、文章列表、相關指南或對應服務區塊都沒有連結的文章,很容易被跳過。

雙語網站要兩種語言都查。英文文章只連到其他英文網址,中文版正文完全沒有內部連結,即使 hreflang 正確,中文網址仍是孤立頁。每一個可索引頁面,至少要有一個來自同語言已索引頁面的一般連結,錨點要寫出主題。

小型網站上,爬取深度通常不如內部連結重要。從首頁要點五次才到,是警訊;完全沒有內部連結,才是缺陷。損壞的 href、重新導向鏈,以及沒有寫出主題的錨點,是這張連結圖的其餘部分。見內部連結與重新導向。

HTML 要等 JavaScript 才有內容

若答案、標題與連結都要等用戶端渲染之後才出現,不執行 JavaScript 或等待逾時的爬蟲,只會存下一層空殼。Googlebot 會渲染不少頁面,但並不保證每一次爬取都完整渲染;部分 AI 爬蟲只抓原始 HTML。

把主要說明放在初始 HTML:標題、H1、開首答案,以及指向相關指南的連結。JavaScript 用來做互動,不要用來承載你希望被引用的唯一一份文字。若網址審查裡的已轉譯 HTML 缺少你期望排名的那段,索引問題在模板,不在關鍵字。

爬取問題如何變成 GEO 問題

生成式引擎優化的前提是頁面可以被擷取。如何在 AI 搜尋中提升可見度說明適合引用的內容形態。下列情況會讓這項工作無法成立:

  • 網址被排除,沒有可引用的段落
  • robots.txt 封鎖了該產品使用的爬蟲
  • sitemap 宣傳的是重新導向或帶參數的網址,模型引用了那個地址
  • 抓到的 HTML 沒有答案,因為文字是 JavaScript 注入的
  • 中英文 canonical 互相矛盾,模型引用了薄弱譯文或過期主機

品牌看起來「AI 裡沒有出現」,真正的缺陷可能是沒有爬蟲讀得到頁面。先確認抓取與索引狀態,再為引用改寫內容。

先修什麼

  1. 審查該正規網址。記下涵蓋狀態、你宣告的 canonical,以及 Google 選中的 canonical。
  2. 若 robots.txt 封鎖 Googlebot,先移除該規則;等網址回傳 200 且可被索引後,才要求編入索引。
  3. 若 noindex 是誤留,移除標籤、確認 HTTP 標頭乾淨,並檢查模板,避免下次部署又加回去。
  4. 把 sitemap 收斂到可索引的正規網址,包含兩種語言,並重新提交 Search Console 已經認識的那份檔案。
  5. 從同語言的已索引樞紐頁加一條內部連結。不要只靠 sitemap。
  6. 比較原始 HTML 與轉譯後的頁面。若答案不在 HTML,就把它放進去。
  7. 若狀態是「已檢索 – 目前未編入索引」,而且該網址確實過薄或重複,就改進或合併。再 ping 一次不會改變決定。合併做法見重複內容指南。
  8. 明確決定哪些 AI 爬蟲可以抓取網站。允許與你想要的可見度相符的那些。不要把訓練爬蟲的退出當成搜尋問題,也不要在過程中封鎖 Googlebot。

等 Google 重新爬取後,先再查一次同一個網址,再判斷排名或 AI 引用。仍是「已發現」的頁面,還沒有接受內容測試。已索引但仍沒有出現在答案裡,是 GEO 內容問題,不是索引問題。

團隊常問的問題

為什麼頁面已檢索卻未編入索引?

Google 抓過,但拒絕保存。常見原因是內容過薄或重複、軟 404、該頁沒有比站內更強的網址多提供什麼,或 canonical 指向別處。先看網址審查,再與你真正想排名的網址比較。

網站地圖錯誤會造成 SEO 排名問題嗎?

它們造成索引問題,看起來就像排名問題。充滿重新導向、noindex 網址與非正規主機的 sitemap,等於叫 Google 把時間花在不該排名的地址上。把檔案清到只列出你在維護的正規網址。

封鎖 AI 爬蟲會傷害 Google 排名嗎?

封鎖 Googlebot 會。封鎖 Google-Extended、GPTBot 或其他非 Googlebot 的權杖,本身不會把頁面移出 Google 搜尋。它仍可以是 GEO問題:部分 AI 產品會停止擷取你。先讀你正在禁止的是哪一個權杖,再決定那是 SEO 修正,還是私隱上的退出。

香港網站要比單語網站多查什麼?

兩種語言的網址都要查。中文頁被 /zh/ 的 robots 規則封鎖、沒有放進 sitemap,或從未被中文樞紐頁連結,即使英文版有排名,中文頁也不會被索引。hreflang 不能凌駕 noindex、robots.txt,或一份漏掉該網址的 sitemap。本地商家資料是另一件事,見香港本地 SEO 與 GEO。

這個月可以檢查的事

匯出「已檢索 – 目前未編入索引」、「已發現 – 目前未編入索引」、「已遭到 robots.txt 封鎖」與「因 noindex 而排除」的涵蓋列。每一個應該排名的網址,記下一個原因與一項改動。然後用正式環境的 robots.txt,對 Googlebot 以及你希望允許的 AI 爬蟲做測試。

搜尋可見度始於一個可以被抓取、可以被保存的網址。上述 SEO問題 就是這一步失敗的原因,也是 AI 排名始終沒有頁面可引用的原因。