Tệp tin robots.txt là phương thức cơ bản để nói cho một công cụ tìm kiếm biết được nơi nào nó được quét và không được quét trên website của bạn. Đa số những công cụ tìm kiếm phổ biến hiện tại đều có hỗ trợ nền tảng cơ bản mà tệp robots.txt cung cấp. Có một vài nguyên tắc được các công cụ áp dụng cũng khá hữu ích. Hướng dẫn này bao gồm tất cả những ứng dụng của robots.txt cho website. Trông thì khá đơn giản, nhưng chỉ cần một sai sót nhỏ với robots.txt cũng có thể ảnh hưởng nghiêm trọng cho website, vì thế hãy chắc rằng bạn đọc và nắm những kiến thức dưới đây thật chắc.
robots.txt là gì?
robots.txt là một tệp tin văn bản, tuân theo cú pháp chặt chẽ. Nó sẽ được quét bởi các Spider – công cụ thu thập dữ liệu của các công cụ tìm kiếm. Những Spider này, còn có tên gọi khác là Robot, vì đó mà cái tên robots.txt ra đời. Cú pháp của tệp này phải thật chuẩn xác, đơn giản vì nó chỉ dành cho hệ thống máy tính đọc.
Còn có tên gọi khác là “Robots Exclusion Protocol”, robots.txt được sinh ra từ sự hợp tác nghiên cứu của những người phát triển Spider đầu tiên. Đến nay, nó chưa thật sự có một chuẩn chính thức nào từ bất kì tổ chức uy tín nào, nhưng gần như tất cả những công cụ tìm kiếm lớn nhất hiện nay đều dùng nó.
Tệp robots.txt có tác dụng gì?
Các công cụ tìm kiếm sẽ xếp hạng trang của bạn bằng cách quét nó. Spider theo những liên kết để khám phá không ngừng nghỉ từ trang A đến B, từ B đến C,… Trước khi “con nhện” khám một trang từ tên miền mà nó chưa từng gặp trước đây, nó sẽ tìm và mở file robots.txt. Tệp robots.txt sẽ báo cho công cụ tìm kiếm biết được URL nào trong website được phép để index.
Công cụ tìm kiếm thường lưu trữ lại nội dung của robots.txt, nhưng thường sẽ quét để cập nhật lại file này vài lần một ngày. Đó là lí do khi chỉnh sửa tệp đuôi txt này, bạn sẽ thấy những thay đổi nhanh chóng.
Tôi nên đặt tệp robots.txt ở đâu?
Tệp robots.txt nên luôn luôn đặt ở đuôi của tên miền. Ví dụ, nếu tên miền của bạn là https://seomxh.com, thì nên sắp đặt là https://seomxh.com/robots.txt . LƯU Ý: nếu tên miền không có “www.”, hãy chắc rằng nó cũng có đường dẫn tương tự! Điều này thì vẫn giống nhau cho HTTP và HTTPS. Khi một công cụ tìm kiếm cử một Spider đi khám một URL như: https://seomxh.com/test, nó sẽ khám file https://seomxh.com/robots.txt trước tiên. Khi nó cần quét cùng một đường dẫn đó nhưng trên giao thức HTTPS, nó cũng sẽ tự động nhảy vào tìm.
Cũng nhắc thêm một điều quan trọng là “robots.txt” phải được viết đúng “robots.txt”. Sẽ có phân biệt giữa viết hoa và viết thường. Vì thế đừng mắc những sai lầm ngớ ngẫn và nó sẽ không vận hành được.
Lợi và Hại của việc dùng “robots.txt”
LỢI
Mỗi trang sẽ có một “hạn định” cụ thể về việc có bao nhiêu URL của trang mà cho các ông lớn như Google sẽ quét qua, trong SEO gọi điều này là “Crawl Budget”. Bằng việc khóa những phần của site bạn khỏi Spider, bạn có thể dành phần “Crawl Budget” cho những mục khác mà bạn muốn. Đặc biệt đối với những site còn nhiều mục chưa kịp tối ưu chuẩn SEO, thì sẽ cần thiết lúc ban đầu để khóa đi những phần cho công cụ tìm kiếm không “chạm tay” đến được.
HẠI
Sử dụng file robots.txt để báo cho một Spider nơi nào nó không được đi tới trong website của bạn. Nhưng bạn không thể nói với công cụ tìm kiếm: liên kết nào không được hiển thị trong kết quả tìm kiếm. Điều này có nghĩa là, không cho phép một công cụ tìm kiếm quét qua một URL – tạm gọi là khóa nó – thì không có nghĩa URL đó sẽ không xuất hiện trong kết quả tìm kiếm. Cho dù bạn đã ngăn cấm việc quét trang trong tệp txt, nhưng nếu Google nhận thấy rằng có n liên kết đều trỏ về URL đó (n là một số đủ lớn với Google), nó sẽ tự động bao gồm luôn trang đó.
Nếu muốn ẩn khỏi kết quả tìm kiếm, bạn có thể sử dụng thẻ meta robot “noindex”. Tôi sẽ nói rõ hơn điều này ở phần sau.
Một điều bất tiện nữa của file text này là: khi mà công cụ tìm kiếm không thể quét qua trang, nó không thể phân loại được “link value” cho những liên kết trỏ về trang mà bạn đã khóa. Nếu nó có thể quét, nhưng không index, chất lượng của những liên kết trỏ về trang vẫn được tính toán. Nhưng nếu khóa bằng robots.txt, những backlink trở về gần như bị mất “link value”
Cú pháp của robots.txt
Một file robots.txt sẽ bao gồm một hoặc nhiều câu lệnh, mỗi lệnh như vậy bắt đầu bằng một dòng “user agent”. “user-agent” là tên của Spider đặc trưng mà nó chỉ định. Bạn có thể khóa một lần cho tất cả công cụ tìm kiếm, sử dụng một kí tự đại diện cho user-agent hoặc chỉ khóa riêng đối với một công cụ tìm kiếm nào đó.
Một khóa điều hướng sẽ có dạng như thế này – đừng hoảng, tôi có giải thích bên dưới:
User-agent: *
Disallow: /
User-agent: Googlebot
Disallow:
User-agent: bingbot
Disallow: /not-for-bing/
Những lệnh như là Allow và Disallow thì viết in hoa hay thường đều được. Tuy vậy các biến bên trong thì sẽ phân biệt hoa và thường, /photo/ thì sẽ khác với /Photo/. Tôi thường in hoa những chỉ thị để có thể dễ đọc khi kiểm tra.
Lệnh User-agent
Mục đầu tiên của bất kì lệnh khóa nào chính là user-agent. Một user-agent thì đặc trưng cho một spider. Trường user-agent này sẽ được đọ với user-agent của Spider tương ứng đó. Lấy ví dụ, Spider phổ biến nhất của Google sẽ có user-agent sau đây:
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Chỉ với một dòng đơn giản User-agent: Googlebot sẽ là đủ khi bạn muốn nói với Spider này làm điều gì đó.
Chú ý rằng hầu hết các công cụ tìm kiếm đều có hàng tá loại Spider. Họ sẽ dùng những Spider đặc trưng riêng cho việc index thông thường, cho các trình chạy quảng cáo, cho hình ảnh, cho video,…vv
Công cụ tìm kiếm sẽ luôn luôn chọn bộ lệnh đặc trưng nhất mà họ có thể tìm thấy. Nếu nói bạn có 3 bộ lệnh: một cho *, một cho Googlebot và một cho Googlebot-News. Nếu một bot đến từ user-agent là Googlebot-Video, nó sẽ theo sự chi phối của Googlebot . Một bot với user-agent là Googlebot-News sẽ dùng lệnh theo Googlebot-News đặc trưng.
Những user-agent phổ biến nhất
Dưới đây là danh sách các user-agent bạn có thể sử dụng trong file robots.txt của mình để phù hợp với hầu hết các công cụ tìm kiếm hiện tại:
Search engine | Field | User-agent |
Baidu | General | baiduspider |
Baidu | Images | baiduspider-image |
Baidu | Mobile | baiduspider-mobile |
Baidu | News | baiduspider-news |
Baidu | Video | baiduspider-video |
Bing | General | bingbot |
Bing | General | msnbot |
Bing | Images & Video | msnbot-media |
Bing | Ads | adidxbot |
General | Googlebot | |
Images | Googlebot-Image | |
Mobile | Googlebot-Mobile | |
News | Googlebot-News | |
Video | Googlebot-Video | |
AdSense | Mediapartners-Google | |
AdWords | AdsBot-Google | |
Yahoo! | General | slurp |
Yandex | General | yandex |
Lệnh Disallow
Dòng thứ hai trong bất kì lệnh khóa trang nào chính là Disallow. Bạn có thể có một hoặc nhiều dòng lệnh, ghi rõ mục nào của site mà spider đặc trưng nào không thể tiếp cận. Một dòng Disallow bị bỏ trống tức là bạn không từ chối quét mục nào cả, đơn giản là spider sẽ thỏa sức tung hoành khắp site của bạn.
User-agent: *
Disallow: /
Ví dụ bên trên sẽ block tất cả các công cụ tìm kiếm trong việc nghe theo robots.txt để khám quét của bạn
User-agent: *
Disallow:
Còn ví dụ này , chỉ với một kí tự ít hơn, sẽ cho phép tất cả công cụ tìm kiếm khám toàn bộ trang của bạn.
User-agent: googlebot
Disallow: /Photo
Còn ví dụ này được hiểu là Google sẽ bị cấm trong việc kiểm tra thư mục \photo và tất cả những thứ trong đó. Điều này tức là những thư mục con nằm trong thư mục \Photo cũng sẽ không bị quét. Nhưng nó sẽ không cấm cản được việc quét trong thư mục \photo, đơn giản vì có sự phân biệt viết hoa và viết thường.
Cách sử dụng những kí tự đặc biệt hoặc biểu thức chính quy
Chính thống mà nói, chuẩn robots.txt không hỗ trợ dạng biểu thức này. Tuy vậy hầu hết các công cụ tìm kiếm vẫn hiểu nó. Tức là bạn vẫn có thể dùng những dòng dạng này để khóa một nhóm những tệp dữ liệu:
Disallow: /*.php
Disallow: /copyrighted-images/*.jpg
Trong ví dụ trên, * được hiểu là phần tên của file. Chú ý rằng phần còn lại của dòng này vẫn là phân biệt hoa thường, vậy nên dòng thứ 2 sẽ không khóa file nếu nó có tên là /copyrighted-images/example.JPG
Một số ông lớn, như Google, cho phép những kí tự phức tạp hơn xuất hiện. Nhưng lưu ý là không phải công cụ nào cũng sẽ hiểu thuật toán này đâu nhé. Chức năng hữu ích mà thuật toán này cung cấp là $ để thể hiện thị vị trí cuối cùng trong 1 URL. Xem ví dụ sau để hiểu rõ hơn:
Disallow: /*.php$
Nó có nghĩa là /index.php sẽ không được index, nhưng /index.php?p=1 có thể index. Dĩ nhiên, đây là chỉ tác dụng trong một trường hợp rất cụ thể và cũng có phần nguy hiểm khi nó sẽ mở khóa những thứ mà bạn không muốn mở.
Những lệnh quét robots.txt khác
Lệnh Allow
Đã có những cuộc tranh luận về lệnh Allow từ rất sớm. Hầu như mọi cổ máy tìm kiếm đều hiểu nó, nó được chấp nhận vì tính đơn giản và dễ hiểu, kiểu như thế này:
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Một cách khác để đạt được cùng một kết quả mà không cần phải sử dụng allow đó là dùng lệnh disallow với từng file trong thư mục wp-admin ( dùng phép loại trừ).
Lệnh host
Được hỗ trợ bởi Yandex ( không phải bởi Google, mặc dù một số bài báo nói như vậy) lệnh này cho phép bạn quyết định công cụ tìm kiếm sẽ hiển thị example.com hay www.example.com. Ví dụ:
host: example.com
Bởi vì Yandex hỗ trợ lệnh host, chúng tôi sẽ không khuyến khích bạn phụ thuộc vào nó. Đặc biệt khi nó không cho phép bạn chọn lựa giao thức (http or https). Một giải pháp tốt hơn mà mọi công cụ tìm kiếm đều hỗ trợ đó là “301 redirect” và cài tên host mà bạn không mong muốn.
Lệnh crawl-delay
Lệnh này được hỗ trợ bởi Yahoo, Bing và Yandex, khá hữu ích trong việc làm chậm chạp đi những spider của 3 ông lớn trên trong việc ngấu nghiến thông tin trên web của bạn. Những công cụ tìm kiếm sẽ có phương thức tiếp cận trang khác đi một chút so với cách thông thường, tuy nhiên kết quả cuối cùng nhận được thường là vẫn vậy.
Một dòng như bên dưới sẽ làm cho Yahoo và Bing đợi thêm 10s sau khi có một hoạt động quét dữ liệu. Yandex thì cũng chỉ tiếp cận được site với tần số 10s một lần
crawl-delay: 10
Nhưng hãy cẩn trọng khi sử dụng lệnh này, nếu bạn hoãn 10s mỗi lần quét, tức là chỉ cho phép mỗi ngày quét được 8640 trang trong site của bạn. Nghe thì có vẻ nhiều cho những site nhỏ, nhưng những site lớn chẳng đáng là bao nhiêu. Ở một góc nhìn khác, nếu bạn được truy cập ít hơn từ những công cụ tìm kiếm, cũng là một cách giúp tiết kiệm băng thông. Đó là lí do ra đời của lệnh này.
Lệnh sitemap
Dùng sitemap, bạn có thể nói với “ông cụ” – đặc biệt là Google, Yahoo, Bing – vị trí của sitemap XML. Tất nhiên bạn cũng có thể gửi XML sitemap cho từng “ông cụ”, bằng cách sử dụng công cụ quản lí webmaster uy tín của từng hãng tìm kiếm. Trong thực tế, chúng tôi khuyến nghị nên làm theo cách đó. Chương trình webmaster tool của mỗi công cụ tìm kiếm sẽ cung cấp những thông tin rất cụ thể và có ích cho website của bạn. Còn nếu không muốn, thì cứ thêm dòng sitemap cho file robots.txt thôi, đây là một cách “mỳ ăn liền”.
Hợp thức hóa file robots.txt của bạn
Có một vài công cụ sẽ hợp thức hóa robots.txt, chúng tôi thường tin tưởng vào những nguồn đáng tin cậy. Google có một công cụ kiểm tra robots.txt trong Google Search Console (ở dưới Crawl menu) và chúng tôi khuyến nghị nên dùng nó:
Hãy chắc rằng bạn đã kiểm tra những thay đổi trước khi cho nó lên sóng! Bạn sẽ không muốn là một trong nhiều trường hợp gặp tai nạn với robots.txt khiến cho toàn bộ trang web gần như rơi vào quên lãng với những ông lớn như Google mà tôi đã từng gặp.
Viết viết được biên soạn bởi SEOMxh.com, mọi sao chép vui lòng ghi nguồn SEOMxh.com