Robots.txt là một tập tin văn bản chứa các quy tắc hướng dẫn cho các bot quét web và công cụ tìm kiếm về việc truy cập hoặc bỏ qua các phần cụ thể của website của bạn. Các bot quét web, thường được gọi là web robots, sẽ tuân theo các chỉ thị trong tập tin robots.txt trước khi quét bất kỳ phần nào của website. Tập tin robots.txt cần được đặt trong thư mục gốc tài liệu của website để các bot có thể truy cập.
Bài viết này sẽ giải thích cách bạn có thể sử dụng robots.txt để điều khiển các bot quét web trên website của mình.
Yêu cầu
-
Đăng nhập qua SSH với tư cách là người dùng không phải root có quyền sudo.
-
Lưu trữ một website trên máy chủ, ví dụ như WordPress.
Cấu trúc tập tin Robots.txt
Một tập tin robots.txt hợp lệ chứa một hoặc nhiều chỉ thị được khai báo theo định dạng: trường, dấu hai chấm, giá trị.
-
User-agent: Khai báo bot quét web mà quy tắc áp dụng.
-
Allow: Chỉ định đường dẫn mà bot quét web nên truy cập.
-
Disallow: Khai báo đường dẫn mà bot quét web không nên truy cập.
-
Sitemap: URL đầy đủ đến sơ đồ cấu trúc website.
Các giá trị cần bao gồm các đường dẫn tương đối cho các trường allow/disallow, đường dẫn tuyệt đối (URL hợp lệ) cho sitemap, và tên của bot quét web cho trường user-agent. Các tên user-agent phổ biến và công cụ tìm kiếm tương ứng mà bạn có thể khai báo an toàn trong tập tin robots.txt bao gồm:
Alexa
- ia_archiver
AOL
- aolbuild
Bing
- Bingbot
- BingPreview
DuckDuckGo
- DuckDuckBot
- Googlebot
- Googlebot-Image
- Googlebot-Video
Yahoo
- Slurp
Yandex
- Yandex
Các bot không được khai báo sẽ tuân theo chỉ thị User-agent: *
.
Các chỉ thị Robots.txt phổ biến
Các quy tắc trong tập tin robots.txt phải hợp lệ, nếu không các bot quét web sẽ bỏ qua các quy tắc có cú pháp không hợp lệ. Một quy tắc hợp lệ phải bao gồm đường dẫn hoặc URL đầy đủ. Các ví dụ dưới đây giải thích cách cho phép, từ chối và điều khiển các bot quét web trong tập tin robots.txt.
1. Cho phép Bot quét Web truy cập các tập tin Website
Cho phép một bot quét web truy cập toàn bộ tập tin của website:
User-agent: Bingbot Allow: /
Cho phép tất cả các bot quét web truy cập tập tin của website:
User-agent: * Allow: /
Cho phép một bot quét web truy cập một tập tin cụ thể:
User-agent: Bingbot Allow: /documents/helloworld.php
Cho phép tất cả các bot quét web truy cập một tập tin cụ thể:
User-agent: * Allow: /documents/helloworld.php
2. Từ chối Bot quét Web truy cập các tập tin Website
Từ chối một bot quét web truy cập toàn bộ tập tin của website:
User-agent: Googlebot Disallow: /
Từ chối tất cả các bot quét web truy cập toàn bộ tập tin của website:
User-agent: * Disallow: /
Từ chối một bot quét web truy cập một hình ảnh cụ thể:
User-agent: MSNBot-Media Disallow: /documents/helloworld.jpg
Từ chối một bot quét web truy cập tất cả hình ảnh của một loại cụ thể:
User-agent: MSNBot-Media Disallow: /*.jpg$
Từ chối một bot quét hình ảnh (ví dụ Google images) truy cập tất cả và yêu cầu loại bỏ hình ảnh đã được lập chỉ mục:
User-agent: Googlebot-Image Disallow: /
Từ chối bot quét web truy cập tất cả các tập tin ngoại trừ một tập tin:
User-agent: * Disallow: /~documents/helloworld.php
Để cho phép truy cập một cách rõ ràng tới nhiều tập tin, hãy lặp lại quy tắc Disallow:
User-agent: * Disallow: /~documents/hello.php Disallow: /~documents/world.php Disallow: /~documents/again.php
Hướng dẫn tất cả các bot quét web truy cập các tập tin của website, nhưng bỏ qua một tập tin cụ thể:
User-agent: * Allow: / Disallow: /documents/index.html
Hướng dẫn tất cả các bot quét web bỏ qua một thư mục cụ thể, ví dụ: wp-admin.
User-agent: * Disallow: /wp-admin/
3. Nhóm các chỉ thị Robots.txt
Để áp dụng các chỉ thị robots.txt theo nhóm, hãy khai báo nhiều user-agent và áp dụng chung một quy tắc.
User-agent: Googlebot # First Group User-agent: Googlebot-News Allow: / Disallow: /wp-admin/ User-agent: Bing # Second Group User-agent: Slurp Allow: / Disallow: /wp-includes/ Disallow: /wp-content/uploads/ # Ignore WordPress Images
Các chỉ thị trên áp dụng cùng một quy tắc cho từng nhóm user-agent đã khai báo.
4. Điều khiển khoảng thời gian giữa các yêu cầu của Bot quét Web
Các yêu cầu từ bot quét web có thể làm tăng tải của máy chủ, vì vậy bạn cần điều chỉnh tốc độ mà các bot quét website của bạn.
Ví dụ, chỉ thị sau yêu cầu tất cả các bot quét web chờ ít nhất 60 giây giữa các yêu cầu liên tiếp đến máy chủ:
User-agent: * Crawl-delay: 60
Ví dụ
Tập tin robots.txt mẫu dưới đây hướng dẫn tất cả các bot quét web truy cập các tập tin của website, bỏ qua các thư mục quan trọng, và sử dụng sơ đồ website để hiểu cấu trúc website.
User-agent: * Allow: / Disallow: /cgi-bin/ Disallow: /wp-admin/ Disallow: /wp-includes/ Sitemap: https://www.example.com/sitemap_index.xml
Để kiểm tra và xem tập tin robots.txt của bạn, hãy truy cập website của bạn và tải tập tin này từ thư mục gốc. Ví dụ:http://example.com/robots.txt
Nếu website của bạn trả về lỗi 404, hãy tạo một tập tin robots.txt mới và tải nó lên thư mục gốc tài liệu, thường là /var/www/html
hoặc /var/www/public_html
.
Hầu hết các bot quét web sẽ tuân theo các chỉ thị trong robots.txt của bạn. Tuy nhiên, các bot xấu và các crawler độc hại có thể bỏ qua các quy tắc của bạn. Để bảo vệ máy chủ, bạn có thể chặn các bot xấu qua tập tin .htaccess
nếu bạn đang sử dụng LAMP stack trên máy chủ, bằng cách thêm các dòng sau vào tập tin:
SetEnvIfNoCase User-Agent ([a-z0-9]{2000}) bad_bots SetEnvIfNoCase User-Agent (archive.org|binlar|casper|checkpriv|choppy|clshttp|cmsworld|diavol|dotbot|extract|feedfinder|flicky|g00g1e|harvest|heritrix|httrack|kmccrew|loader|miner|nikto|nutch|planetwork|postrank|purebot|pycurl|python|seekerspider|siclab|skygrid|sqlmap|sucker|turnit|vikspider|winhttp|xxxyy|youda|zmeu|zune) bad_bots Order Allow,Deny Allow from All Deny from env=bad_bots