網站收錄

canonical、内鏈和 sitemap 指向了不同 URL:先统一口径再看收錄

同一個頁面,canonical 寫一種寫法、内鏈用另一種、sitemap 里又是第三種,收錄迟迟没有進展时,問题往往出在信号不一致上。本文說明這種冲突為什么會拖慢流程,並给出一套從抓取日誌到统一 URL 的自查顺序,顺带列出重定向来回指認、canonical 指向首頁等常见坑。

網站收錄

canonical、内鏈和 sitemap 指向了不同 URL:先统一口径再看收錄

同一個頁面,canonical 寫的是不带參數的版本,站内連結用的是带參數的版本,sitemap 里又是第三種寫法。這时候讨论“為什么還不收錄”,其實是在三個互相矛盾的信号里找答案,很难有结论。

為什么口径不一致會拖慢收錄

搜尋引擎對每個 URL 的處理是分開的。它先要判断這個 URL 代表什么内容,再判断它和其他 URL 是不是同一個東西,最後才决定把哪一個放進索引。這几個判断都依赖網站自己给出的信号。

如果信号互相打架,抓取工具就需要額外的判断時間,或者干脆把几個 URL 都当成獨立頁面各抓一遍。结果是抓取配額被分散,真正想被收錄的那個版本反而排队更久。

需要說明的是,這不會直接導致不收錄,只是让流程變得更慢、更不确定。不要把它当成萬能原因,先確認是不是真的存在冲突。

先對齐這三處信号

1. canonical 标簽

canonical 表達的是“我認為這個才是主版本”。它應当是绝對 URL,指向的頁面要能正常訪問、返回 200、内容确實和其他版本一致。指向一個 404 或者重定向目标,等于没寫。

2. 站内連結

内鏈是搜尋蜘蛛發現 URL 的主要入口之一。如果列表頁、面包屑、相關推荐里的連結寫法各不相同,蜘蛛會顺着每一種寫法各走一遍。

  • 大小寫、结尾斜杠、預設端口要统一
  • 跟踪參數、排序參數尽量在内鏈里去掉
  • 同一個目标頁,別在不同入口混用 http 與 https

3. sitemap 與其他提交入口

sitemap 應该只放你希望被索引的那套 URL。如果里面同时躺着带參數、带大小寫變体的地址,等于主動告诉搜尋引擎“這些也算一份”。

一個可执行的自查顺序

  1. 挑一個内容頁,從抓取日誌里找出它實际被抓取過的所有 URL 寫法。
  2. 對每一種寫法,记錄它目前的返回狀態碼和 canonical 目标。
  3. 检查 canonical 指向的那一個 URL,是否在所有入口里都是同一串字符。
  4. 检查内鏈和 sitemap 里有没有混入舊域名、舊路径或多余的參數。
  5. 把不一致的地方统一到同一個 URL 上,然後等下一轮抓取。
  6. 观察一段時間,看被抓取的 URL 種類是否减少、主版本是否被更频繁地訪問。

几個容易被忽略的点

  • 重定向也算一種信号。 如果 A 跳到 B,而 B 的 canonical 又指向 A,會形成来回指認,蜘蛛很难判断谁是主版本。
  • canonical 不是命令。 它只是建议,最终選擇權在搜尋引擎。其他信号越一致,建议越容易被采纳。
  • 別把全站 canonical 都指向首頁。 這會让其他頁面失去被索引的机會。
  • 改動後不會立刻生效。 已索引的版本需要重新抓取和重新處理,通常要按周来观察。

什么时候不必强求统一

如果两個 URL 表達的是真正不同的内容——比如不同的篩選结果、不同的語言版本——那它們本来就该是各自的頁面,用 canonical 强行合並反而會丢掉有效内容。统一口径针對的是“同一個東西被寫成了好几個地址”,不是把所有相似頁面都並成一個。

總结下来:收錄進展慢,很多时候不是内容不行,而是你對搜尋引擎说了几套话。先把 canonical、内鏈、sitemap 這三處的 URL 寫法统一,再看抓取和索引狀態的變化,判断會清楚很多。