Hầu hết các trang web đều có một file robots.txt, nhưng không phải ai cũng hiểu ý nghĩa của nó. Vậy robots.txt là gì? Nó kiểm soát và giới hạn quyền truy cập vào trang web ra sao? Làm sao để sử dụng robots.txt cho WordPress? Tất cả sẽ có trong bài viết sau đây.
Robots.txt là gì?
Trước khi tìm hiểu về robots.txt, hãy thống nhất về cách hiểu của “Robot” trong trường hợp này. Robot là bất kỳ loại “bot” nào truy cập vào các trang web trên internet. Ví dụ phổ biến nhất là search engine crawler (trình thu thập thông tin của search engine). Các bot này sẽ thu thập dữ liệu (crawl) trên web. Từ đó giúp các search engine như Google có thể index và xếp hạng hàng tỉ các trang web trên internet.
Do đó, nói chung thì bot là một thứ hữu ích, hoặc ít nhất là cần thiết, cho internet. Nhưng chắc hẳn không quản trị viên web nào lại muốn các bot loanh quanh trang web mà không được kiểm soát. Vì vậy, nhu cầu kiểm soát cách các robot tương tác với website đã dẫn đến sự ra đời của tiêu chuẩn loại trừ robot vào giữa thập niên những năm 1990. Và robots.txt chính là một triển khai của tiêu chuẩn đó. Nó cho phép người dùng kiểm soát cách các bot tương tác với trang web của mình. Thậm chí, ta có thể chặn hoàn toàn các bot. Hoặc là hạn chế quyền truy cập của chúng vào một số khu vực nhất định trên trang web….
Tuy nhiên, robots.txt không thể buộc các bot tuân theo các chỉ thị của nó. Đồng thời, các bot độc hại có thể bỏ qua file robots.txt này. Bên cạnh đó, một số tổ chức lớn cũng sẵn sàng bỏ qua một số lệnh mà ta có thể thêm vào Robots.txt. Chẳng hạn, Google sẽ bỏ qua bất kỳ quy tắc robots.txt nào liên quan đến tần suất quá trình các crawler truy cập.
Tại sao ta cần quan tấm đến file robots.txt?
Đối với hầu hết các quản trị viên web, robots.txt cung cấp hai lợi ích chính:
- Tối ưu hóa tài nguyên của crawl từ các search engine. Cụ thể, robots.txt có thể cho các crawler biết những trang không cần được thu thập. Khi đó, các search engine sẽ chỉ tập trung crawl những trang quan trọng nhất. Từ đó tiết kiệm thời gian lẫn tài nguyên đáng kể.
- Tối ưu hóa việc sử dụng server bằng cách chặn các bot đang lãng phí tài nguyên.
Tuy nhiên, robots.txt không hẳn là một cách tối ưu để kiếm soát crawl của các search engine. Nếu bạn muốn chặn một số trang nhất định được thêm vào trong kết quả của search engine, hãy cân nhắc sử dụng một meta noindex tag.
Sở dĩ là vì Robots.txt không trực tiếp kiểm soát index của các search engine. Nó chỉ đơn thuần yêu cầu các engine này không crawl nội dung nào đó. Mặc dù Google sẽ không crawl các khu vực đã được đánh dấu. Nhưng nếu có một trang web bên ngoài liên kết đến trang của ta, và trang web đó được loại trừ bằng file Robots.txt, thì vẫn sẽ được index bởi Google.
Cách tạo và edit file Robots.txt cho WordPress
Theo mặc định, WordPress sẽ tự động tạo một file robots.txt ảo cho trang web. Vì vậy, trang web luôn có sẵn file robots.txt mặc định. Ta có thể kiểm tra bằng cách thêm “/robots.txt” vào cuối tên miền. Ví dụ: “vietnix.vn/robots.txt” sẽ hiển thị file robots.txt được sử dụng trong trang web của chúng tôi.
Đây là một file ảo, do đó ta không thể edit nó. Để có thể edit file robots.txt, ta sẽ cần tạo một file vật lý trên server.
Một số plugin có hỗ trợ tạo file robots.txt như:
Sau đây là 3 cách đơn giản để tạo file robots.txt cho WordPress:
Tạo và edit file Robots.txt bằng Yoast SEO
Nếu đang sử dụng plugin Yoast SEO, file robots.txt có thể được tạo ngay từ giao diện của Yoast. Trước đó, ta cần enable tính năng nâng cao của Yoast SEO bằng cách đi đến SEO > Dashboard > Features. Sau đó vào Advanced settings pages:
Sau khi kích hoạt thành công, vào SEO > Tools rồi nhấp vào File editor:
Giả sử rằng ta chưa có file Robots.txt vật lý nào, khi đó Yoast sẽ đưa ra option Create robots.txt file.
Sau khi nhấp vào nút, ta có thể chỉnh sửa trực tiếp các nội dung trong file Robots.txt:
Ở phần sau của bài viết, chúng tôi sẽ đi sâu hơn vào các chỉ thị nên được đặt vào file robots.txt cho WordPress.
Tạo và edit file Robots.txt bằng All In One SEO
Nếu đang sử dụng plugin All in One SEO Pack, file robots.txt cũng có thể được tạo và edit ngay từ giao diện của plugin. Đầu tiên, điều hướgn đến All in One SEO > Feature Manager, chọn Active tính năng Robots.txt:
Sau đó, ta có thể quản lý file Robots.txt bằng cách đi đến All in One SEO > Robots.txt:
Tạo và edit file Robots.txt qua FTP
Nếu không sử dụng plugin SEO nào cung cấp chức năng robots.txt, ta vẫn có thể tự tạo file robtos.txt qua SFTP. Trước tiên, sử dụng bất kỳ text editor nào để tạo một file trống, đặt tên là “robots.txt”:
Sau đó, kết nối đến trang web bằng SFTP. Sau đó upload file đó vào folder root của trang web. Ta có thể sửa đổi thêm file robots.txt bằng cách chỉnh sửa nó thông qua SFTP. Ngoài ra ta cũng có thể upload các phiên bản mới hơn của file lên trang web.
Những gì nên được đưa vào file Robots.txt?
Vậy là ta đã tạo thành công một file robots.txt vật lý trên server. Nhưng, bây giờ nên thêm gì vào file nhỉ? Như đã biết, robots.txt cho phép ta kiểm soát cách robot tương tác với trang web. Ta có thể làm việc này bằng hai loại command chính:
- User-agent: Lệnh này cho phép chỉ định các bot cụ thể. User agent là những gì mà bot sử dụng để nhận dạng chính chúng. Do đó, ví dụ, bằng lệnh này ta có thể tạo một quy tắc áp dụng cho Bing, thay vì Google.
- Disallow: Cho phép chặn các bot không được truy cập vào một số khu vực nhất định trên trang web.
Bên cạnh đó, còn có lệnh Allow, được sử dụng trong một vài tình huống đặc biệt. Theo mặc định, mọi thứ trên trang web đều được đánh dấu Allow. Do đó, trong 99% các trường hợp thì ta không cần sử dụng lệnh Allow. Nhưng giả sử ta muốn Disallow quyền truy cập vào một folder và các folder con của nó. Mà đồng thời lại muốn Allow một folder con cụ thể nào đó. Khi đó, lệnh Allow sẽ được áp dụng.
Ta có thể thêm các quy tắc bằng cách chỉ định User-agent nào mà quy tắc nên áp dụng. Sau đó, liệt kê những quy tắc nào cần áp dụng bằng cách sử dụng Disallow và Allow. Ngoài ra còn có một số lệnh khác nữa, chẳng hạn như Crawl-delay hay Sitemap. Tuy nhiên chúng:
- Bị bỏ qua bởi hầu hết các crawler. Hoặc có thể được hiểu không đúng theo mục đích ban đầu, đặc biệt là crawl delay.
- Dư thừa trong các công cụ như Google Search Console (đối với sitemap).
Sử dụng Robots.txt để chặn truy cập vào toàn bộ trang
Bây giờ, hãy cùng xem qua một số trường hợp để ta có thể hình dung cách sử dụng các lệnh này. Giả sử ta muốn chặn tất cả crawler truy cập vào trang web. Việc này khá là có ích cho các trang web develop. Để thực hiện, hãy thêm code này vào file robots.txt cho WordPress:
User-agent: *
Disallow: /
Trong đó, dấu * bên cạnh User-agent có nghĩa là “tất cả user agent”. Dấu * là một wildcard, tức là nó có thể được áp dụng cho mọi user agent. Dấu / bên cạnh Disallow cho biết rằng, mọi truy cập đến các trang chứa “yourdomain.com/” đều bị chặn.
Sử dụng Robots.txt để chặn truy cập của một bot
Bây giờ, giả sử ta không muốn các crawler của Bing truy cập vào trang. Khi đó, để block chỉ crawler từ Bing truy cập trang web, thay dấu * bằng Bingbot:
User-agent: Bingbot
Disallow: /
Về cơ bản, đoạn code có nghĩa là: chỉ áp dụng quy tắc Disallow cho các bot với user-agent “Bingbot“.
Sử dụng Robots.txt để chặn truy cập vào một folder hay file cụ thể
Tiếp theo, ví dụ ta muốn chặn truy cập vào một file hay folder (và mọi subfolder của folder đó), cụ thể là chặn:
- Toàn bộ folder wp-admin
- wp-login.php
Khi đó, hãy sử dụng các lệnh sau:
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-login.php
Sử dụng Robots.txt để cho phép truy cập đến một file trong folder đã disallow
Giả sử ta muốn chặn cả một folder, nhưng vẫn muốn cho phép truy cập đến một file cụ thể ở trong folder. Khi đó, ta có thể sử dụng lệnh Allow. Trong thực tế, file robots.txt cho WordPress ảo minh họa ví dụ này một cách hoàn hảo:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Khi đó, mọi truy cập đến folder /wp-admin/ sẽ bị chặn, ngoại trừ file /wp-admin/admin-ajax.php.
Sử dụng Robots.txt để chặn các bot không crawl kết quả tìm kiếm của WordPress
Một tweak dành riêng cho WordPress là ngăn việc crawl trang kết quả tìm kiếm. Theo mặc định, WordPress sử dụng tham số truy vấn “?s=”. Do đó, để chặn các truy cập, ta chỉ cần thêm vào quy tắc sau:
User-agent: *
Disallow: /?s=
Disallow: /search/
Cách tạo các quy tắc khác nhau cho từng bot trong Robots.txt
Cho đến thời điểm này, tất cả ví dụ đều chỉ xử lý một quy tắc một lần. Nhưng giả sử ta muốn áp dụng nhiều quy tắc cho nhiều bot thì sao? Rất đơn giản! Chỉ cần thêm từng bộ quy tắc trong phần khai báo User-agent cho mỗi bot. Lấy ví dụ, chẳng hạn ta muốn một quy tắc áp dụng cho mọi bot và một quy tắc chỉ cho Bingbot. Khi đó, hãy thực hiện như sau:
User-agent: *
Disallow: /wp-admin/
User-agent: Bingbot
Disallow: /
Khi đó, mọi bot sẽ bị chặn truy cập vào /wp-admin. Nhưng Bingbot sẽ bị chặn truy cập vào toàn bộ trang.
Kiểm tra file Robots.txt cho WordPress
Các file robots.txt cho WordPress có thể được kiểm tra trong Google Search Console để đảm bảo nó được thiết lập chính xác. Chỉ cần nhấp vào trang web, rồi chọn “robots.txt Tester” trong phần “Crawl”. Sau đó, ta có thể gửi bất kỳ URL nào, kể cả homepage của mình. Nếu tất cả đều có thể được crawl, ta sẽ thấy chữ Allowed màu xanh. Ngoài ra, ta cũng có thể kiểm tra các URL đã bị chặn (Disallowed).
Hãy cẩn thận với UTF-8 BOM!
BOM là viết tắt của “byte order mark” (dấu thứ tự byte). Về cơ bản, nó là một ký tự vô hình, đôi khi được thêm vào các file bởi các text editor cũ. Khi đó, Google có thể không đọc các file robots.txt một cách chính xác. Do đó, cần phải kiểm tra các file cẩn thận để tòm ra lỗi. Quan sát ví dụ ở dưới, file của chúng tôi đã có một kí tự ẩn, và Google không thể hiểu được cú pháp. Về cơ bản thì dòng đầu tiên trong file robots.txt mất hiệu lực hoàn toàn. Do đó, SEO của trang web có thể bị ảnh hưởng xấu.
Sử dụng Robots.txt cho WordPress đúng cách
Lời cuối cùng, chúng tôi muốn nhắc lại một lần nữa, rằng việc sử dụng lệnh Disallow trong file không hề giống với việc sử dụng một noindex tag. Robots.txt có thể chặn crawl, nhưng nó không hề chặn việc index. Do đó, ta có thể sử dụng Robots.txt để thêm các quy tắc cụ thể, nhằm định hình cách các search engine và bot tương tác với trang web. Nhưng nó sẽ không kiểm soát việc các nội dung được index.
Đối với hầu hết các người dùng WordPress, việc sửa đổi file robots.txt ảo là không cần thiết. Nhưng nếu gặp một vấn đề nào đó với một bot cụ thể, hoặc chỉ đơn giản là muốn thay đổi cách các search engine tương tác với một plugin hay chủ đề nào đó, thì ta có thể thêm các quy tắc mới vào trong robots.txt.
Chúng tôi hy vọng bạn có thể hiểu hết các thông tin ở trong hướng dẫn này. Chúc các bạn thành công với việc cấu hình file robots.txt cho WordPress!