Thứ Bảy, 11 tháng 5, 2019

Robots.txt là gì? Tối ưu SEO Blogger với Robots.txt


Robots.txt là một tập tin thuần văn bản text, nằm trong thư mục gốc của trang web, chứa đựng thông tin chỉ dẫn cho các search-engine để tìm kiếm và lập chỉ mục cho website. Trên Wordpress, hay Blogger, tùy biến Robots.txt cũng đem lại hiệu quả cao cho SEO, nhất là khi bạn tự hỏi, tại sao bài mình đăng lên lâu rồi mà không có view nào?



Sau khi cài đặt Robots.txt, bạn sẽ thấy rằng mỗi bài đăng của mình có ít nhất... 1 view. Đó là do search engine đã tìm đến và lập chỉ mục cho bài đó trên hệ thống index của nó. Bài viết này tôi sẽ giải thích đầy đủ các bạn về Robots.txt cũng như cách cài đặt Robots.txt không chỉ cho web/blog của mình mà còn cho cả Search Console của Google.

Mục lục:


Robots.txt là gì?


Robots.txt là một file text chứa vài dòng code đơn giản. Nó được lưu trữ trên  website hoặc blog’s server để hướng dẫn các bộ máy tìm kiếm cách đánh dấu chỉ mục thông tin của bạn. Điều này có nghĩa bạn hoàn toàn có thể chỉ định những trang nào không được hoặc được vào, như các trang đặc biệt như labels, trang demo hoặc bất cứ trang nào không quan trọng. Luôn chú ý rằng con bot tìm kiếm sẽ scan nội dung file này trước khi quét dữ liệu trang blog của bạn.

Không có tập tin robots.txt có sao không? 

Nếu tệp robots.txt không có (không được cài đặt, như mặc định blogger không có), thì các search engine sẽ xem như tất cả các trang hiện có trên trang web của bạn đều ở chế độ công khai và nó mặc nhiên quét và index tất cả vào bảng chỉ mục của nó.

Robots.txt có cần định dạng chuẩn/tốt?

Lúc đó thì cũng còn tùy. Nếu các search engine không thể hiểu nổi cú pháp của tệp vì sai sót, search engine sẽ coi như robots.txt của trang web không tồn tại và quay trở lại bước trên, tức là mặc nhiên nó quét và lập tất cả chỉ mục.

Khi nhỡ tay chặn search engine quét và lập chỉ mục website của chính mình?

Chuyện lớn rồi đây. Lúc đó search engine dần dần de-indexing các địa chỉ của bạn nếu nó đã tồn tại trước đó. Còn sau đó thì bạn với search engine như người dân nước lã, và có lẽ, bạn biến mất trên bản đồ internet.



Robots.txt có cần thiết không?


Chắc chắn là có rồi, ngay cả khi bạn không muốn nó loại trừ hay cho phép index trang nào, bởi vì theo mặc định, search engine sẽ tự động quét và indexing toàn bộ website của bạn. Vậy tại sao lại cần tới robots.txt nhỉ? Dưới đây là các lý do và trường hợp phổ biến khi sử dụng fiel robots.txt:

1. Chặn các search engine truy cập các trang hoặc thư mục cụ thể của trang web của bạn. Hãy xem ví dụ trực quan dưới đây.



Các dòng lệnh này hướng dẫn search engine khi thu thập thông tin được phép và không được phép lập chỉ mục những thư mục cụ thể nào. Ký tự * trong lập trình luôn là ký tự đại diện cho chuỗi ký tự bất kỳ.

Ví dụ dòng Disallow: /followerwonk/bio* thì tất cả những tệp, trang tại thư mục /followerwonk/bio đều bị chặn, ví dụ:

  • Disallow: /followerwonk/biovietnet.html
  • Disallow: /followerwonk/biovietnet.


2. Khi website/blog của bạn đạt đến một ngưỡng nào đó gọi là lớn đi, thì việc search và indexing website của bạn rất tốn thời gian, tài nguyên. Khi đó, việc quá nhiều truy vấn đến cùng lúc từ một hoặc nhiều search engine sẽ đem lại hậu quả khôn lường cho website của bạn.

Lúc này ta mới thấy robots.txt hiệu quả như thế nào, trong việc giảm bớt truy vấn từ search engine bằng việc chỉ định search engine bỏ qua những trang không quan trọng, không cần thiết cho SEO, giúp giảm tải (như chống DDoS vậy ấy) cho máy chủ lưu trữ web cũng như giúp lập chỉ mục nhanh chóng hơn.

Hai điều quan trọng cần biết về robots.txt

Đầu tiên, những dòng lệnh trong file robots.txt là chỉ thị cho search engine. Nó sẽ lập trình cho search engine phải làm gì, và search engine theo giao thức này buộc phải đọc file Robots.txt trước tiên, tức bạn có thể tự chủ trong việc indexing nội dung website của mình.

Điều thứ hai và quan trọng nhất về bảo mật, đó là dù bạn có chặn bằng cú pháp Disallow một hay nhiều trang web, thì nó vẫn có khả năng xuất hiện trên trang SERP của Google hay các search engine khác như Bing, Yahoo,... chỉ bởi vì nó có link tới các bài viết được indexing khác (inpage-link). Đây là vấn đề rất quan trọng, và khi bạn muốn loại bỏ hoàn toàn một hay nhiều webpage ra khỏi internet, hãy đảm bảo không ai nói về nó, dù là một cái gợi ý hay anchor text inpage.

Cách chặn để bảo vệ một trang hay cả một thư mục miền con là sử dụng chỉ thị trong chính HTML code của website, bằng cách thêm vào giữa mục <head></head> dòng code sau:
<meta name=”robots” content=”noindex”>



Robots.txt hoạt động như thế nào?

Nhìn sơ qua cấu trúc của một file Robots.txt chuẩn thì bất cứ ai có kiến thức lập trình hay thao tác với dòng lệnh đều nắm bắt được vấn đề, trong đó quan trọng nhất là những chỉ dẫn sau:

User-agent, Disallow, Allow, Crawl-delay, Sitemap.

Ta sẽ cùng phân tích một ví dụ đơn giản của itbinhdan.com như sau:

User-agent: Mediapartners-Google
Disallow:
User-agent: *
Disallow: /search
Allow: /
Sitemap: http://itbinhdan.com/feeds/posts/default?orderby=UPDATED

User-agent: Chỉ định trình thu thập dữ liệu nào được đưa vào các chỉ thị. Bạn có thể sử dụng một * để cho tất cả các trình thu thập thông tin hoặc nếu không thích thì bạn có thể chỉ định tên của trình thu thập thông tin, xem ví dụ dưới đây.

Bạn có thể xem tất cả các tên và giá trị có sẵn cho chỉ thị user-agent, tại đây.

User-agent: * – bao gồm tất cả trình thu thập thông tin
User-agent: Googlebot – chỉ dành cho Google bot

Disallow: Chỉ thị bot không thu thập dữ liệu

Tham biến của Disallow có thể là một tập tin, một link URL nào đó hoặc một thư mục con domain cụ thể. Google có nói rõ vấn đề này ở đây.


Dưới đây là bảng tôi nhặt trên internet, và thấy rất trực quan dễ hiểu:

Các tham số của cú pháp trong Robots.txt



Allow: nói rõ cho search engine biết là nơi nào nó đươc phép tiếp cận và indexing, nhưng có lẽ cú pháp này chỉ dành cho những con spider của Googlebot.

Bạn có thể sử dụng Allow để cho phép truy cập vào một thư mục con cụ thể trên trang web của bạn, mặc dù thư mục gốc là không được phép.

Như ở ví dụ dưới, tôi cấm bot nó lập chỉ mục với tên miền photos sau tên miền chính, nhưng lại cho nó sờ mó tí ti ở vùng con của cái photos đó.

User-agent: *
Disallow: /photos
Allow: /photos/kiemtienonlinevoiitbinhdan/

Crawl-delay: chỉ định một khoảng thời gian cho phép trước khi bot được quyền truy cạp và lập chỉ mục. Việc này cũng thường xảy ra khi lập một nội dung khổng lồ và thời hạn từ lúc bắt đầu tới khi kết thúc rất dài, có khi không biết tới khi nào dừng. Đơn vị tính là mili giây.

Nhưng mà thằng Googlebot nó có quan tâm tới biến số này ở file obots.txt đâu, nên nếu bạn làm việc với Google, thì bạn cần cài đặt thông số độ trễ này trong Google Search Console.



Ngoài lý do dự án viết bài không hoàn hảo, dùng Crawl-delay còn giúp bạn phân bổ lại những request liên tục từ bot để lần mò indexing chỉ mục của website, giảm tải việc phải đáp ứng liên tục yêu cầu lập địa chỉ của bot.

Sitemap: Cái này là khá hay, và bạn nên kéo xuống tới cuối bài này để cẩn thận, vì một số bài viết trên mạng nhầm lẫn giữa những tham số trong câu lệnh. Sitemap bạn khai báo ở đây nhưng vẫn nên khai báo trong Google Seach Console để các con bot nó chủ động hơn.

Một điều lưu ý quan trọng cho bạn đó là cú pháp trong file robots.txt có phân biệt chữ hoa và chữ thường. Ví dụ: Disallow: /File.html thì sẽ không khóa được file.html


Cách cài đặt Robots.txt cho blog itbinhdan.com


Đầu tiên là cần khai báo đoạn code :

User-agent: Mediapartners-Google

Dòng code này dành cho con bot (spider) của Google Adsense (Mediapartners-Google), giúp chúng đưa ra quyết định nội dung quảng cáo nào tốt nhất cho thể loại trang blog của bạn. Dù bạn có dùng Google Adsense hay không cứ để mặc định như vậy.

User-agent: *

Dòng code này dành cho tất cả loại bot (ký hiệu * thay cho nghĩa All trong các ngôn ngữ lập trình). Mặc định, địa chỉ trang Label của blog không được khai báo để tạo chỉ mục, cũng bởi do chúng ta qui định việc đó trong robots.txt bởi dòng code sau:

Disallow: /search

Ví dụ như Label SEO của trang itbinhdan.com có dạng như sau: http://www.itbinhdan.com/search/label/SEO 

Đoạn /search nằm ngay sau tên miền bị Disallow theo như dòng code trên. Điều này có nghĩa, các URL có chữ search nằm ngay sau tên miền sẽ bị bỏ qua.

Nếu bây giờ ta gỡ bỏ dòng Disallow: /search thì con bot sẽ truy cập toàn bộ blog và index tất cả nội dung trang blog.

Allow: / 

Ký tự "/" đại diện cho trang Homepage (nằm ngay sau tên miền) có nghĩa các search engine có thể tìm kiếm và lập chỉ mục cho trang Homepage.

Cấm truy cập một bài post cụ thể:

Giả sử bạn muốn loại trừ một bài post cụ thể nào đó khỏi bị index, bạn hãy thêm dòng code sau vào.

Disallow: /yyyy/mm/post-url.html

Trong đó yyyy và mm là năm và tháng xuất bản post đó. Ví dụ như bài viết này có URL là: http://www.itbinhdan.com/2019/05/robotstxt-la-gi-toi-uu-seo-voi-robotstxt.html. Để báo bot không index trang bài này, tôi sẽ thêm dòng sau vào trong file Robots.txt:

Disallow: /2019/05/robotstxt-la-gi-toi-uu-seo-voi-robotstxt.html

Để đơn giản, bạn copy toàn bộ URL trang web rồi xóa bỏ tên miền là xong.

Cấm truy cập một trang cụ thể:

Nếu bạn muốn cấm một trang (page) cụ thể nào đó thì sử dụng phương pháp tương tự, copy URL, bỏ tên miền phía trước, như sau:

Disallow: /p/page-url.html


Sitemap: http://www.itbinhdan.com/feeds/posts/default?orderby=UPDATED

Dòng này chính là sitemap của trang blog. Bằng cách khai báo sitemap ở đây, chúng ta tối ưu việc tìm kiếm và lập chỉ mục cho trang blog một cách đơn giản nhất. Điều này giúp các crawlers dễ dàng quét qua blog của bạn và tạo chỉ mục nhanh chóng, chính xác, toàn bộ, không bỏ sót một bài nào.

Chú ý: cú pháp của dòng lệnh trên chỉ thông báo cho bot cập nhật 25 bài sau cùng (mới nhất) của trang blog. Nếu bạn muốn tăng số lượng bài trong Sitemap bạn cần sử dụng đến một cách truy vấn khác. Như cách dưới đây sẽ khai báo 500 bài đầu tiên (cũ nhất).

Sitemap: http://www.itbinhdan.com/atom.xml?redirect=false&start-index=1&max-results=500

Nếu bạn có hơn 500 bài, thêm một dòng tương tự như vậy nữa, và cứ thêm như vậy nếu bạn có nhiều hơn nữa. Chú ý là mỗi dòng chỉ dành khai báo cho 500 bài:

Sitemap: http://www.itbinhdan.com/atom.xml?redirect=false&start-index=1&max-results=500
Sitemap: http://www.itbinhdan.com/atom.xml?redirect=false&start-index=501&max-results=500


Cài đặt Robots.txt cho Blogger


  1. Mở blogger.
  2. Đến Settings\Search Preferences\Crawlers and indexing\Custom robots.txt\Edit\Yes
  3. Dán đoạn code bên dưới vào.
  4. Nhấn nút Save Changes button.
  5. Xong!
Custom-robots.txt
Custom robots.txt
Custom-robots.txt
Custom robots.txt


User-agent: Mediapartners-Google
Disallow:
User-agent: *
Disallow: /search
Allow: /
Sitemap: http://www.itbinhdan.com/atom.xml?redirect=false&start-index=1&max-results=500

Chú ý: thay itbinhdan.com bằng tên miền trang blog của bạn.


Test Robots.txt cho Blogger

Để kiểm tra lại xem bạn đã cài đặt Custom Robots.txt đúng chưa, hãy nhập URL sau vào trình duyệt web (nhớ thay itbinhdan.com bằng tên miền trang blog/web của bạn)

http://www.itbinhdan.com/robots.txt

Nếu kết quả ra là nội dung text đã cài đặt như hình dưới thì bạn đã thành công

Test-Robots.txt
Test-Robots.txt



Các lưu ý khi cài đặt Custom Robots.txt

1. Lỗi khai báo Sitemap

Mọi việc đơn giản khi trang blog/web của bạn có dưới 500 bài viết. Nhưng khi số lượng lớn hơn, đó là lúc bạn sẽ phải khai báo thêm dòng Sitemap. Việc này có đôi chút nhầm lẫn và cũng có người thực hiện không chuẩn.

Một số bài hướng dẫn sẽ khuyến cáo mọi người khai báo thêm dòng code sau trong Robots.txt:

Sitemap: http://www.itbinhdan.com/atom.xml?redirect=false&start-index=500&max-results=1000

...nhưng thật ra đúng chuẩn phải là thế này:

Sitemap: http://www.khotuts.com/atom.xml?redirect=false&start-index=501&max-results=500

 ... nếu không muốn con bot phải quét thừa 500 bài ở lần thứ 2, và nếu có thêm dòng nữa thì việc lặp lại còn tăng lên khủng khiếp.

2. Lỗi bảo mật thông tin

Nội dung của tập tin robots.txt được công khai trên Internet. Hiện tôi cũng không rõ có cách nào bảo mật thông tin trong tập tin này không, để làm sao chỉ các search engine mới đọc được còn người khác không đọc được, nhưng có lẽ chưa có phương án nào khả thi để làm việc đó. Còn giờ thì ai cũng vào URL của robots.txt mà đọc được nội dung, vì vậy đây không phải là nơi để thêm nội dung mà bạn không muốn người khác xem.


Chúc các bạn thành công.

Related Posts