站点运营

站点运营:robots.txt 自查,把允许和禁止的邊界寫清楚

robots.txt 放在站点根目錄,文件很小,寫错一行却可能影响整站抓取。這篇文章按“先確認能否訪問、再检查規則、最後對照日誌驗證”的顺序,整理了一份可以直接照着走的自查清單,也說明了它不能当權限控制来用的原因。

站点运营

站点运营:robots.txt 自查,把允许和禁止的邊界寫清楚

robots.txt 是放在站点根目錄下的一個纯文本文件,它告诉搜尋引擎蜘蛛哪些地址可以抓、哪些先別来。文件本身很小,寫错一行却可能让整站的頁面迟迟進不了索引,所以值得把它当成一次固定自查来做,而不是上线时随手一寫就再也不看。

一、先把文件位置和訪問狀態確認好

robots.txt 只能放在域名根目錄,也就是 https://example.com/robots.txt,放在子目錄里不會被识別。用浏览器直接打開這個地址,應该能看到纯文本内容,狀態碼是 200。

如果返回 404,說明文件不存在,蜘蛛會預設全站可抓;如果返回 403 或 5xx,蜘蛛可能會在短時間内减少抓取,甚至暫停,這比寫错規則更麻烦。所以第一步不是改規則,而是確認它能被正常讀取。

二、規則里最容易出問题的地方

  • 誤寫 Disallow: /:這一行會挡住全站,很多时候是測試时加上去,後来忘了删。
  • 大小寫和拼寫:路径区分大小寫,/Article/ 和 /article/ 是两個地址,寫错就挡不住或者挡太多。
  • 通配符和结尾符号:星号和美元符号的支持程度各家不同,用之前最好查一下對應蜘蛛的說明文档。
  • Sitemap 行:寫成 Sitemap: 加上完整地址,有多個地图就寫多行,不要用逗号拼在一行里。
  • Crawl-delay:不是所有蜘蛛都認這一項,把它当參考,而不是控制抓取节奏的手段。
  • User-agent 分组:不同蜘蛛分開寫,组與组之間用空行隔開,避免規則互相串到別的分组里。

三、可以照着走一遍的自查清單

  1. 確認 robots.txt 能直接訪問,返回 200,内容是纯文本。
  2. 检查有没有意外的全站禁止,或者把样式、脚本、图片目錄一起挡掉了。
  3. 確認後台、登入頁、站内搜尋结果頁等不该被抓的路径已经收住。
  4. 確認栏目頁、文章頁、列表頁没有被規則誤伤。
  5. 確認 Sitemap 地址寫全,並且那個文件本身也能正常打開。
  6. 把規則和环境對應起来,測試站和正式站不要共用同一份文件。

四、改完之後怎么驗證

改完別急着關掉頁面,用搜尋资源平台提供的 robots.txt 測試工具跑一遍,或者直接抓取几個關键地址,看返回的是“允许”還是“被拦截”。站点有多個子域名的话要分別確認,不要只查主域就以為都好了。

robots.txt 只是给遵守規則的蜘蛛看的建议,不是權限控制。真正不想被看到的内容,應该放在登入之後,而不是靠一行 Disallow 挡着。

五、和 URL 發現的關系

對做 URL 發現相關工作的站点来说,robots.txt 是入口的第一道门。门開得太大,蜘蛛會把額度耗在無意义的參數頁和重复列表頁上;门關得太死,新發布的頁面又迟迟進不去。比較稳妥的做法是:把内容頁、栏目頁、站点地图放開,把篩選參數、站内搜尋、後台路径收住,然後隔一段時間對照訪問日誌回看一遍,看蜘蛛實际抓的是不是你想让它抓的那些地址。

把這件小事固定成流程,改版、上线新栏目、迁移目錄时都顺手检查一次,能省掉很多“頁面明明發了却没人来”的排查時間。