Robots.txt so với Noindex: Sự khác biệt là gì (và khi nào nên dùng từng loại)
Chặn một trang trong robots.txt và thêm thẻ noindex làm những việc rất khác nhau — dùng sai cách là một cách phổ biến vô tình khiến một trang bị kẹt trong kết quả tìm kiếm, hoặc hoàn toàn biến mất khỏi đó.
Chúng giải quyết hai vấn đề khác nhau
robots.txt kiểm soát việc crawl — liệu bot của công cụ tìm kiếm có được phép tải một URL hay không. Thẻ noindex kiểm soát việc lập chỉ mục — liệu một trang đã được crawl có được phép xuất hiện trong kết quả tìm kiếm hay không. Nhầm lẫn hai điều này là một trong những cách phổ biến nhất khiến một trang bị kẹt trong kết quả tìm kiếm khi bạn muốn nó biến mất, hoặc vô hình khi bạn thực sự muốn nó được tìm thấy.
robots.txt thực sự làm gì
Một quy tắc Disallow trong robots.txt yêu cầu các crawler tuân thủ quy tắc không tải một URL. Nó không xóa một trang đã được lập chỉ mục. Nếu Google đã lập chỉ mục một URL trước khi nó bị chặn — hoặc tìm thấy nó được liên kết từ nơi khác và chỉ lập chỉ mục URL cùng văn bản liên kết mà chưa bao giờ tải trang — nó có thể tiếp tục hiển thị URL đó trong kết quả vô thời hạn, thường không có tiêu đề hoặc mô tả, vì Google tôn trọng việc chặn và không bao giờ crawl lại để kiểm tra.
Noindex thực sự làm gì
Một thẻ <meta name="robots" content="noindex"> (hoặc header HTTP X-Robots-Tag tương đương) nói rõ ràng với một crawler đã tải trang: bạn có thể đọc cái này, chỉ đừng đưa nó vào chỉ mục của bạn. Đây là cách đáng tin cậy để loại bỏ một trang khỏi kết quả tìm kiếm — nhưng chỉ khi crawler thực sự được phép tải trang và thấy thẻ đó ngay từ đầu.
Lỗi kinh điển: chặn một trang mà bạn cũng đặt noindex
Nếu một URL bị chặn trong robots.txt và có thẻ noindex, thẻ noindex sẽ không bao giờ được đọc — crawler đã được yêu cầu không tải trang chút nào, vì vậy nó không bao giờ thấy hướng dẫn nằm trên trang đó. Trang có thể vẫn được lập chỉ mục (nếu nó đã từng, hoặc được liên kết từ nơi khác) mà không có cách nào để Google biết khác đi, vì việc gỡ bỏ nó đòi hỏi phải đọc một thẻ mà nó đã bị chặn không được đọc. Đây là một cách thực sự phổ biến khiến các trang web vô tình giữ các trang giá trị thấp bị kẹt trong kết quả tìm kiếm trong nhiều tháng.
Khi nào nên dùng robots.txt
- Quản lý ngân sách crawl trên các trang web lớn — giữ crawler tránh xa các đường dẫn giá trị thấp, khối lượng cao (kết quả tìm kiếm nội bộ, các tổ hợp bộ lọc theo thuộc tính) để chúng dành nhiều thời gian hơn cho các trang quan trọng.
- Chặn hoàn toàn môi trường staging, các đường dẫn quản trị và điểm cuối API.
- Các trang bạn không bao giờ muốn được crawl chút nào — thậm chí không để kiểm tra nội dung — vì bản thân việc crawl tiêu tốn tài nguyên của cả hai bên.
Khi nào nên dùng noindex
- Các trang bạn muốn tồn tại và có thể crawl được — cho liên kết nội bộ, cho người dùng, cho cấu trúc trang web — nhưng không bao giờ xuất hiện trong kết quả tìm kiếm: kho lưu trữ thẻ/danh mục, các trang phân trang ngoài trang đầu tiên, trang cảm ơn.
- Nội dung sơ sài hoặc trùng lặp mà bạn chưa sẵn sàng xóa hoàn toàn, nơi bạn vẫn muốn nó có thể truy cập được cho khách truy cập và các công cụ nội bộ.
- Loại bỏ một trang đã được lập chỉ mục — điều này chỉ hoạt động nếu trang vẫn có thể crawl được để Google thực sự thấy được thẻ đó.
Quy tắc quyết định nhanh
Hãy tự hỏi: một crawler có cần đọc trang này để biết phải làm gì với nó không? Nếu hướng dẫn phụ thuộc vào việc nội dung của chính trang đó được nhìn thấy (như thẻ noindex), robots.txt phải cho phép crawl. Nếu bạn muốn ngăn chặn chính việc crawl — bất kể nội dung trên trang là gì — robots.txt là công cụ đúng, và noindex là thừa vì nó sẽ không bao giờ được đọc dù sao đi nữa. Đối với nội dung có thể crawl được và trùng lặp thay vì hoàn toàn không mong muốn, một thẻ canonical thường phù hợp hơn cả hai.
Muốn trang tiếp theo của bạn được tìm thấy nhanh hơn so với việc chỉ chờ crawl tự nhiên?
IndexLaunch đẩy trực tiếp mọi URL bạn gửi đến Bing, Yandex, Seznam và Naver thông qua IndexNow ngay khi bạn đưa vào hàng đợi.
Xem bảng giá