robots.txt 是放在站点根目錄下的一個纯文本文件,它告诉搜尋引擎蜘蛛哪些地址可以抓、哪些先別来。文件本身很小,寫错一行却可能让整站的頁面迟迟進不了索引,所以值得把它当成一次固定自查来做,而不是上线时随手一寫就再也不看。
一、先把文件位置和訪問狀態確認好
robots.txt 只能放在域名根目錄,也就是 https://example.com/robots.txt,放在子目錄里不會被识別。用浏览器直接打開這個地址,應该能看到纯文本内容,狀態碼是 200。
如果返回 404,說明文件不存在,蜘蛛會預設全站可抓;如果返回 403 或 5xx,蜘蛛可能會在短時間内减少抓取,甚至暫停,這比寫错規則更麻烦。所以第一步不是改規則,而是確認它能被正常讀取。
二、規則里最容易出問题的地方
- 誤寫 Disallow: /:這一行會挡住全站,很多时候是測試时加上去,後来忘了删。
- 大小寫和拼寫:路径区分大小寫,/Article/ 和 /article/ 是两個地址,寫错就挡不住或者挡太多。
- 通配符和结尾符号:星号和美元符号的支持程度各家不同,用之前最好查一下對應蜘蛛的說明文档。
- Sitemap 行:寫成 Sitemap: 加上完整地址,有多個地图就寫多行,不要用逗号拼在一行里。
- Crawl-delay:不是所有蜘蛛都認這一項,把它当參考,而不是控制抓取节奏的手段。
- User-agent 分组:不同蜘蛛分開寫,组與组之間用空行隔開,避免規則互相串到別的分组里。
三、可以照着走一遍的自查清單
- 確認 robots.txt 能直接訪問,返回 200,内容是纯文本。
- 检查有没有意外的全站禁止,或者把样式、脚本、图片目錄一起挡掉了。
- 確認後台、登入頁、站内搜尋结果頁等不该被抓的路径已经收住。
- 確認栏目頁、文章頁、列表頁没有被規則誤伤。
- 確認 Sitemap 地址寫全,並且那個文件本身也能正常打開。
- 把規則和环境對應起来,測試站和正式站不要共用同一份文件。
四、改完之後怎么驗證
改完別急着關掉頁面,用搜尋资源平台提供的 robots.txt 測試工具跑一遍,或者直接抓取几個關键地址,看返回的是“允许”還是“被拦截”。站点有多個子域名的话要分別確認,不要只查主域就以為都好了。
robots.txt 只是给遵守規則的蜘蛛看的建议,不是權限控制。真正不想被看到的内容,應该放在登入之後,而不是靠一行 Disallow 挡着。
五、和 URL 發現的關系
對做 URL 發現相關工作的站点来说,robots.txt 是入口的第一道门。门開得太大,蜘蛛會把額度耗在無意义的參數頁和重复列表頁上;门關得太死,新發布的頁面又迟迟進不去。比較稳妥的做法是:把内容頁、栏目頁、站点地图放開,把篩選參數、站内搜尋、後台路径收住,然後隔一段時間對照訪問日誌回看一遍,看蜘蛛實际抓的是不是你想让它抓的那些地址。
把這件小事固定成流程,改版、上线新栏目、迁移目錄时都顺手检查一次,能省掉很多“頁面明明發了却没人来”的排查時間。