SEO Audit

Disallow Directive

Quy tắc trong robots.txt ngăn crawler truy cập vào thư mục hoặc URL cụ thể, nhưng không ngăn lập chỉ mục nếu có liên kết bên ngoài.

4 lượt xem Cập nhật: 31/05/2026

Disallow Directive là gì?

Disallow Directive là một quy tắc trong tập tin robots.txt cho phép chủ sở hữu website chỉ định các thư mục, tệp hoặc URL mà các công cụ tìm kiếm (như Googlebot, Bingbot) không được phép truy cập và thu thập dữ liệu. Đây là lệnh không phải yêu cầu — crawler có thể chọn tuân thủ hoặc bỏ qua, nhưng tất cả công cụ tìm kiếm lớn đều tuân thủ nghiêm ngặt nếu cấu hình đúng.

Lưu ý quan trọng: Disallow không ngăn việc lập chỉ mục. Nếu một URL bị chặn bởi Disallow nhưng vẫn có liên kết từ bên ngoài (ví dụ: trang khác liên kết tới nó), công cụ tìm kiếm vẫn có thể hiển thị URL đó trong kết quả tìm kiếm — dù không biết nội dung bên trong. Để ngăn lập chỉ mục thực sự, cần dùng thẻ noindex trong HTML hoặc header HTTP X-Robots-Tag.

Tại sao quan trọng trong SEO?

Disallow Directive đóng vai trò then chốt trong SEO Audit vì giúp kiểm soát hiệu quả tài nguyên thu thập (crawl budget), bảo vệ nội dung nhạy cảm và tránh trùng lặp nội dung. Khi crawler lãng phí thời gian vào các trang không cần thiết (như trang đăng nhập, bản in, bộ lọc sản phẩm, thư mục admin), chúng sẽ ít thời gian hơn để khám phá và lập chỉ mục các trang quan trọng như bài viết, danh mục sản phẩm hoặc trang chủ.

Ngoài ra, việc chặn sai có thể gây thiệt hại nghiêm trọng: ví dụ, vô tình chặn toàn bộ thư mục /blog/ khiến hàng trăm bài viết biến mất khỏi kết quả tìm kiếm — dù không bị xóa hay lỗi kỹ thuật.

Cách hoạt động

Khi crawler truy cập một website, bước đầu tiên là đọc tập tin https://example.com/robots.txt. Nếu tồn tại và hợp lệ, crawler sẽ phân tích từng quy tắc User-agentDisallow tương ứng. Quy tắc được áp dụng theo thứ tự xuất hiện và ưu tiên cao nhất cho phần khớp dài nhất (longest match).

Ví dụ: nếu có cả Disallow: /admin/Disallow: /admin/login.php, thì /admin/login.php sẽ bị chặn bởi cả hai — nhưng quy tắc cụ thể hơn không làm vô hiệu quy tắc chung hơn.

Crawler không gửi yêu cầu HTTP tới các đường dẫn bị Disallow, nên không tải HTML, CSS, JS hay hình ảnh từ những vị trí đó — điều này giúp giảm tải máy chủ và tiết kiệm băng thông.

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

  1. Xác định mục tiêu cần chặn: liệt kê rõ ràng các thư mục/tệp không cần lập chỉ mục (ví dụ: /wp-admin/, /cgi-bin/, /search/, /print/).
  2. Truy cập và chỉnh sửa robots.txt: file phải nằm ở gốc miền (https://example.com/robots.txt). Dùng trình soạn thảo văn bản thuần (không dùng Word), lưu dưới mã hóa UTF-8 không BOM.
  3. Viết quy tắc chuẩn: mỗi dòng Disallow bắt đầu bằng từ khóa, cách một dấu cách, rồi đến đường dẫn tương đối (không chứa domain hay giao thức). Ví dụ: Disallow: /tmp/, Disallow: /private.html.
  4. Thử nghiệm trước khi triển khai: dùng công cụ Robots Testing Tool trong Google Search Console để kiểm tra tính hợp lệ và hiệu lực của từng rule.
  5. Giám sát sau triển khai: theo dõi báo cáo Crawl StatsURL Inspection trong Search Console để đảm bảo không có trang quan trọng bị chặn nhầm.

Lỗi thường gặp

  • Chặn nhầm thư mục quan trọng: ví dụ Disallow: / (chặn toàn bộ site) hoặc Disallow: /blog (thiếu dấu gạch chéo cuối khiến khớp với /blogging hoặc /blog-post). Cách khắc phục: luôn kiểm tra bằng công cụ thử nghiệm; thêm dấu / cuối nếu muốn chặn toàn bộ thư mục.
  • Dùng ký tự đặc biệt không hỗ trợ: robots.txt không hỗ trợ biểu thức chính quy (regex) trừ khi dùng $* theo chuẩn Google Extended Syntax — nhưng không phải crawler nào cũng hỗ trợ. Cách khắc phục: chỉ dùng cú pháp chuẩn (không dấu * trừ trường hợp đơn giản như Disallow: /*.php$ — tùy trường hợp).
  • Không cập nhật khi thay đổi cấu trúc site: ví dụ website chuyển từ /category/ sang /danh-muc/ nhưng quên cập nhật robots.txt. Cách khắc phục: đưa robots.txt vào quy trình kiểm tra định kỳ trong SEO Audit.

Ví dụ thực tế

Dưới đây là một tập tin robots.txt mẫu cho website thương mại điện tử tiếng Việt:

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /cgi-bin/
Disallow: /search/
Disallow: /user/
Disallow: /checkout/
Disallow: /cart/
Disallow: /tmp/
Disallow: /*?s=
Disallow: /*&s=
Allow: /wp-admin/admin-ajax.php

User-agent: Googlebot-Image
Disallow: /images/private/

Sitemap: https://example.com/sitemap.xml

Giải thích:

  • Disallow: /*?s=Disallow: /*&s= chặn các URL tìm kiếm nội bộ (tránh trùng lặp).
  • Allow: /wp-admin/admin-ajax.php đảm bảo chức năng AJAX vẫn hoạt động dù thư mục /wp-admin/ bị chặn chung.
  • Quy tắc riêng cho Googlebot-Image giúp kiểm soát việc lập chỉ mục hình ảnh.

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

Disallow có ngăn Google hiển thị URL trong kết quả tìm kiếm không?

Không. Nếu URL bị chặn bởi Disallow nhưng có liên kết từ bên ngoài, Google vẫn có thể hiển thị URL đó trong kết quả — thường kèm dòng mô tả “Mô tả không khả dụng”. Để ẩn hoàn toàn, phải dùng noindex hoặc yêu cầu gỡ bỏ qua Search Console.

Có thể dùng Disallow để bảo vệ nội dung nhạy cảm không?

Không an toàn. robots.txt là file công khai — bất kỳ ai cũng có thể đọc. Không dùng Disallow để che giấu thông tin mật như trang quản trị, cơ sở dữ liệu hoặc tệp cấu hình. Thay vào đó, áp dụng xác thực người dùng (login), tường lửa hoặc chặn IP.

Một URL bị chặn bởi Disallow có ảnh hưởng đến PageRank của các trang liên kết tới nó không?

Theo tài liệu chính thức của Google (cập nhật tháng 9/2023), PageRank vẫn được truyền qua liên kết tới URL bị Disallow, nhưng không được phân bổ lại từ URL đó vì crawler không thu thập nội dung. Hiệu ứng tổng thể phụ thuộc vào cấu trúc liên kết — tuy nhiên, việc chặn quá nhiều trang trung gian có thể làm suy yếu luồng giá trị. Tùy trường hợp.

Bảng so sánh: Disallow vs Noindex

Tính năng Disallow Directive Noindex Meta Tag
Vị trí áp dụng Tập tin robots.txt ở gốc miền Thẻ <meta name="robots" content="noindex"> trong <head> HTML
Tác động lên crawl Crawler KHÔNG truy cập URL Crawler VẪN truy cập và thu thập nội dung
Tác động lên lập chỉ mục Không trực tiếp — có thể vẫn xuất hiện nếu có backlink Ngăn chặn chắc chắn việc lập chỉ mục
Yêu cầu crawler tuân thủ Có — nhưng chỉ với crawler tôn trọng robots.txt Có — nhưng chỉ với crawler hỗ trợ thẻ meta