不少做入口頁的朋友會把 sitemap 当成一個加速開關:文件生成好、提交上去,就等着搜尋蜘蛛上门。實际观察下来,sitemap 更像是一份给搜尋引擎的候選清單,它提示這里可能有些 URL 值得看看,但决定抓不抓、什么时候抓的,還是抓取预算、站点整体质量、頁面响應状况這些因素。所以“提交了没反應”通常不是 sitemap 失效,而是几個配合环节没對上。
先排除 sitemap 自身讀不出来的情况
- 地址能直接訪問並返回 200,不是跳轉鏈,也不是 403、404;
- 已在 robots.txt 里声明,或通過對應後台提交過;
- XML 格式正确,标簽閉合,编碼统一;
- 單文件 URL 數量別過载,一般控制在五萬條以内,超了就拆分並用索引文件串起来;
- 不要塞進被 robots.txt 挡住、返回 404/410 或設定了 noindex 的地址。
如果文件里混了大量打不開的連結,搜尋引擎對這個文件的整体信任度會下降,後面正常的入口頁也容易被连带忽略。
sitemap 里该放入口頁還是目标 URL
這是很多人纠结的地方。两種做法目的不同,混着用容易乱。
只放入口頁
适合入口頁數量不多、且入口頁本身能被正常抓取的情况。搜尋引擎進来後,顺着頁面里的連結去發現目标 URL。這種方式的鏈條更接近自然抓取,但前提是入口頁里的連結得真的能被解析出来。
入口頁加重点目标 URL
如果你想優先让某些目标 URL 被看到,可以把它們單獨列一份。但要注意:列進去的 URL 自己得能打開、不重定向、不拦截爬虫。否則等于把無效地址递過去,反而拉低整份文件的质量印象。
入口頁和 sitemap 需要互相配合
- 入口頁要能正常抓取,返回 200 且正文不是空壳;
- 連結尽量寫成 HTML 里的 a 标簽,別只依赖 JavaScript 動態插入;
- sitemap 里列出的 URL,最好在入口頁中也能找到對應連結,两邊對不上时搜尋引擎容易只認其中一邊;
- 入口頁若被 CDN 缓存了舊版本,新加的目标連結可能在缓存刷新前一直看不到;
- 目标 URL 本身如果要求登入、或對爬虫返回異常狀態碼,放再多條目也没意义。
怎么判断到底有没有起作用
- 翻服務器日誌,按搜尋蜘蛛的 UA 過滤,看它是否訪問過 sitemap 文件;
- 看抓取路径:是先取 sitemap 再進入口頁,還是完全绕過;
- 對比提交前後一段時間入口頁的被抓次數,別只看單日波動;
- 给重点目标 URL 记一個首次被抓的時間点,方便判断哪條鏈路在起作用。
如果日誌里 sitemap 被抓了、入口頁也被抓了,只是目标 URL 迟迟没動静,那問题通常出在入口頁到目标 URL 這一段,而不是 sitemap。反過来,如果 sitemap 文件本身都没被取過,就先把可訪問性和提交渠道確認清楚。
sitemap 的作用是提醒,不是保證。把它和入口頁的可抓取性、連結结构一起看,比單獨盯着提交動作更有意义。