SEO E-Commerce

Robots.txt Optimization

Tối ưu tệp robots.txt để chặn các thư mục không cần lập chỉ mục (admin, cart, filter params) mà không ảnh hưởng đến crawl chính.

3 lượt xem Cập nhật: 26/05/2026

Robots.txt Optimization là gì?

Robots.txt Optimization là quá trình điều chỉnh tệp robots.txt trên website thương mại điện tử sao cho bộ máy tìm kiếm (như Googlebot) chỉ được phép truy cập và lập chỉ mục các trang có giá trị, đồng thời chặn hiệu quả những phần không cần thiết — như trang quản trị, giỏ hàng, URL chứa tham số lọc hoặc phân trang dư thừa — mà không làm gián đoạn việc thu thập dữ liệu chính (trang sản phẩm, danh mục, bài viết).

Tại sao quan trọng trong SEO?

Trong môi trường e-commerce, số lượng URL có thể lên đến hàng chục nghìn — nhiều trong số đó là bản sao (do tham số lọc: ?color=red&size=m, ?sort=price_asc), trang tạm (/cart/, /checkout/) hoặc nội dung nhạy cảm (/admin/, /wp-admin/). Nếu không kiểm soát, bot sẽ lãng phí crawl budget (ngân sách thu thập) vào những URL này, dẫn đến:

  • Trang quan trọng bị thu thập chậm hoặc không đủ lần;
  • Tăng nguy cơ lập chỉ mục nội dung trùng lặp;
  • Hiệu suất indexation giảm, ảnh hưởng trực tiếp đến thứ hạng từ khóa;
  • Rủi ro lộ thông tin nhạy cảm nếu vô tình để lộ thư mục quản trị.

Optimization giúp định hướng lại crawl budget một cách chủ động và an toàn — đặc biệt với website có cấu trúc phức tạp, nhiều tham số và hệ thống phân trang tự động.

Cách hoạt động

Tệp robots.txt nằm ở gốc miền (ví dụ: https://example.com/robots.txt) và hoạt động như một bảng chỉ dẫn cho bot. Nó dùng cú pháp chuẩn Robots Exclusion Protocol (REP). Các quy tắc chính gồm:

  • User-agent: * — áp dụng cho mọi bot (hoặc chỉ định riêng như User-agent: Googlebot);
  • Disallow: /path/ — cấm truy cập thư mục hoặc file cụ thể;
  • Allow: /path/file.html — cho phép một đường dẫn con dù cha bị chặn (ưu tiên cao hơn Disallow khi xung đột);
  • Sitemap: https://example.com/sitemap.xml — khai báo vị trí bản đồ trang (không bắt buộc nhưng khuyến khích).

Lưu ý: robots.txt không phải công cụ bảo mật — nó chỉ là yêu cầu, không ngăn được truy cập trực tiếp hay index nếu URL đã được liên kết từ nơi khác. Để chặn index thực sự, cần dùng thẻ noindex hoặc header X-Robots-Tag.

Hướng dẫn thực hiện

  1. Phân tích hiện trạng: Dùng Google Search Console > Crawl > robots.txt Tester để kiểm tra lỗi cú pháp và mô phỏng cách bot đọc tệp.
  2. Danh sách URL cần chặn:
    • Thư mục quản trị: /admin/, /wp-admin/, /backend/;
    • Trang chức năng người dùng: /cart/, /checkout/, /account/, /login/;
    • Tham số gây trùng lặp: ?ref=, &utm_, &sort=, &filter= — nên chặn bằng Disallow: /*?* hoặc chi tiết hơn nếu cần giữ một số tham số;
    • Thư mục tạm/thử nghiệm: /staging/, /test/, /dev/.
  3. Viết quy tắc ưu tiên đúng thứ tự: Bot đọc từ trên xuống, nên đặt Allow trước Disallow nếu cần ghi đè (ví dụ: Disallow: /product/ nhưng muốn cho phép /product/detail.html → dùng Allow: /product/detail.html trước dòng Disallow).
  4. Thử nghiệm và kiểm tra: Dùng công cụ robots.txt Tester trong GSC hoặc trình kiểm tra trực tuyến như TechnicalSEO Robots Tester. Kiểm tra cả với User-agent: GooglebotUser-agent: *.
  5. Triển khai và theo dõi: Upload tệp lên root domain, đợi 1–3 ngày rồi kiểm tra lại trong GSC phần CoverageCrawl Stats để xác nhận lưu lượng bot tập trung vào URL mong muốn.

Lỗi thường gặp

  • Chặn nhầm thư mục quan trọng: Ví dụ Disallow: /product/ khiến toàn bộ trang sản phẩm bị bỏ qua. → Khắc phục: Dùng Disallow: /product/search hoặc Disallow: /product/*?* thay vì chặn nguyên thư mục.
  • Quy tắc mâu thuẫn do thứ tự sai: Đặt Disallow: / ở đầu rồi mới Allow: /sitemap.xml → không có tác dụng vì Disallow: / chặn tất cả. → Khắc phục: Luôn đặt Allow trước Disallow nếu muốn ghi đè.
  • Dùng ký tự đặc biệt sai cú pháp: Dấu sao (*) chỉ hỗ trợ ở một số bot (Google, Bing), không phải tiêu chuẩn REP. → Khắc phục: Với bot không hỗ trợ, dùng $ để kết thúc chuỗi (ví dụ: Disallow: /*.php$) hoặc liệt kê rõ ràng hơn.
  • Quên cập nhật khi thay đổi cấu trúc: Website thêm tính năng lọc mới nhưng không cập nhật robots.txt → bot crawl hàng loạt URL dư thừa. → Khắc phục: Thiết lập quy trình kiểm tra robots.txt mỗi lần triển khai tính năng mới.

Ví dụ thực tế

Dưới đây là tệp robots.txt tối ưu cho website thương mại điện tử WordPress + WooCommerce:

User-agent: *
Allow: /wp-content/uploads/
Allow: /sitemap_index.xml
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/
Disallow: /feed/
Disallow: /*?add-to-cart=
Disallow: /*?ref=
Disallow: /*&utm_
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?page=
Disallow: /tag/
Disallow: /author/
Sitemap: https://example.com/sitemap_index.xml

Bảng sau so sánh hiệu quả trước – sau tối ưu:

Chỉ số Trước tối ưu Sau tối ưu Ghi chú
Crawl budget sử dụng cho /cart/ 12% 0% Giảm hoàn toàn nhờ Disallow: /cart/
URL bị chặn do tham số lọc ~8.400 URL < 200 URL Chặn nhóm tham số bằng pattern
Tỷ lệ index trang sản phẩm 63% 89% Tăng nhờ giải phóng crawl budget
Thời gian crawl trang mới 4–7 ngày 1–2 ngày Bot ưu tiên trang quan trọng hơn

Câu hỏi thường gặp

robots.txt có chặn được Google index trang không?

Không. robots.txt chỉ ngăn bot truy cập, không ngăn index. Nếu một trang bị chặn bởi robots.txt nhưng vẫn có liên kết từ bên ngoài, Google vẫn có thể hiển thị nó trong kết quả tìm kiếm (dạng “URL chỉ có tiêu đề”). Để chặn index thực sự, dùng thẻ noindex hoặc header X-Robots-Tag: noindex.

Có nên dùng robots.txt cho từng bot riêng biệt?

Có thể, nhưng không bắt buộc. Một số website chặn Baiduspider hoặc YandexBot nếu không phục vụ thị trường Trung Quốc/Nga. Tuy nhiên, với đa số website Việt Nam, dùng User-agent: * là đủ. Việc tách riêng chỉ cần khi có nhu cầu kiểm soát chi tiết theo bot — ví dụ: cho phép Googlebot crawl API nhưng chặn AdsBot-Google.

Cập nhật robots.txt bao lâu một lần?

Không có chu kỳ cố định. Nên cập nhật mỗi khi có thay đổi lớn về cấu trúc URL, thêm tính năng mới (lọc, so sánh, wishlist), hoặc phát hiện bất thường trong báo cáo crawl. Tối thiểu: kiểm tra định kỳ 3 tháng/lần hoặc sau mỗi đợt nâng cấp hệ thống.