Bỏ qua tới nội dung chính
Chất lượng Traffic & Chống gian lận

Bot tốt và bot xấu: Cách phân biệt trước khi chặn

Bot tốt và bot xấu: Cách phân biệt trước khi chặn

Một IP gọi 600 trang trong 10 phút. Nếu đó là scraper lấy giá, bạn muốn chặn ngay. Nếu đó là Googlebot vừa phát hiện sitemap mới, chặn nhầm có thể làm hàng nghìn sản phẩm chậm index. Cùng một hành vi “đi rất nhanh”, nhưng quyết định vận hành trái ngược nhau.

Phân biệt bot tốt và bot xấu không thể chỉ dựa vào user-agent, tốc độ hoặc việc có chạy JavaScript. Cần trả lời ba câu: bot là ai, nó đang làm gì và tác động tới hệ thống ra sao.

Bot tốt, bot xấu và bot không rõ là gì?

Bot tốt

Bot tốt hoạt động vì một mục đích mà website chấp nhận hoặc có lợi:

  • crawler công cụ tìm kiếm;
  • bot kiểm tra link, uptime hoặc bảo mật do chính bạn cấu hình;
  • trình tạo preview khi chia sẻ mạng xã hội;
  • dịch vụ accessibility hoặc lưu trữ được ủy quyền;
  • API client của đối tác có thỏa thuận.

“Tốt” không có nghĩa được phép truy cập mọi nơi. Googlebot vẫn phải tuân thủ robots.txt cho crawl tự động; bot monitoring cần giới hạn endpoint và tốc độ.

Bot xấu

Bot xấu tạo thiệt hại hoặc truy cập trái mục đích:

  • click quảng cáo để đốt ngân sách;
  • thu thập giá, nội dung hoặc dữ liệu khách hàng;
  • dò mật khẩu, credential stuffing;
  • tạo tài khoản, spam form, giữ hàng;
  • quét lỗ hổng;
  • giả traffic để làm sai analytics.

Bot không rõ

Đây là nhóm lớn nhất: automation của công cụ SEO, ứng dụng mobile, headless browser, proxy kiểm thử hoặc dịch vụ AI mới. Chặn ngay có thể làm hỏng tích hợp; cho qua vô điều kiện lại tăng rủi ro.

Với nhóm này, áp dụng rate limit và quan sát thêm thường tốt hơn quyết định trắng/đen.

User-agent không phải giấy tờ tùy thân

Một request ghi:

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

chưa chứng minh nó đến từ Google. Bất kỳ script nào cũng có thể sao chép chuỗi này.

Google khuyến nghị hai cách xác minh:

  1. reverse DNS từ IP phải trả hostname thuộc domain Google hợp lệ, sau đó forward DNS hostname đó phải quay lại cùng IP;
  2. đối chiếu IP với dải Googlebot công bố chính thức.

Chỉ allowlist dựa trên user-agent mở cửa cho bot giả mạo. Chỉ chặn theo user-agent cũng có thể bỏ sót bot đổi tên thành trình duyệt.

Ma trận tín hiệu để phân loại bot

Không có tín hiệu đơn lẻ nào hoàn hảo. Hãy ghép nhiều lớp:

Tín hiệu Câu hỏi
Danh tính mạng IP thuộc residential, datacenter, VPN, Tor hay dải crawler đã xác minh?
User-agent Chuỗi có hợp lý với fingerprint TLS và hành vi không?
Tốc độ Bao nhiêu request trong 1 phút, 5 phút, 1 giờ?
Đường đi Có tải HTML, CSS, ảnh như trình duyệt hay chỉ gọi endpoint có giá trị?
Hành vi Có scroll, click, focus, thời gian đọc và chuyển trang tự nhiên không?
Mục tiêu Bot đang crawl public page hay dò login, checkout, form?
Tác động Tốn tài nguyên, làm sai dữ liệu hoặc gây chi phí quảng cáo bao nhiêu?

Một crawler tốt có thể nhanh nhưng danh tính xác minh được, đọc robots và tập trung public content. Một scraper có thể giả Chrome nhưng bỏ qua asset, đổi IP liên tục và chỉ lấy trang sản phẩm.

Sáu mẫu hành vi đáng nghi

1. Velocity cao nhưng không có nhịp người dùng

Hàng trăm click theo khoảng cách đều đặn 200ms hiếm khi là người. Tuy nhiên, crawler hợp lệ cũng có velocity cao, nên phải ghép với IP và mục tiêu URL.

2. Chỉ gọi endpoint có giá trị kinh doanh

Bot giữ hàng chỉ gọi add-to-cart; bot dò mật khẩu tập trung login; click fraud bám landing page quảng cáo. Việc bỏ qua navigation thông thường là tín hiệu mạnh.

3. Fingerprint và user-agent mâu thuẫn

User-agent tự nhận Safari trên iPhone nhưng TLS, header order hoặc viewport giống headless Chromium desktop. Sự mâu thuẫn đáng chú ý hơn chính chuỗi user-agent.

4. IP thay đổi nhưng dấu vết thiết bị giữ nguyên

Residential proxy giúp bot luân phiên IP. Nếu cookie, fingerprint, hành vi và target lặp lại, chặn từng IP sẽ thành cuộc đuổi bắt vô tận.

5. Không tải tài nguyên phụ

Trình duyệt người dùng thường tải CSS, JavaScript, font và ảnh cần thiết. Scraper đơn giản chỉ lấy HTML hoặc API. Đây không phải bằng chứng tuyệt đối vì cache và privacy tool có thể thay đổi mẫu.

6. Thất bại rồi thử lại theo danh sách

Hàng loạt username, coupon, số thẻ hoặc đường dẫn admin theo thứ tự là dấu automation. Rate limit theo IP chưa đủ khi bot phân tán; cần theo account, fingerprint và hành động.

Đừng chặn bot tốt bằng rule quá đơn giản

Chặn toàn bộ datacenter

Nhiều bot xấu chạy từ datacenter, nhưng monitoring, webhook, crawler tìm kiếm và dịch vụ doanh nghiệp cũng vậy. Rule này phù hợp hơn cho hành động nhạy cảm như redeem coupon, không nên áp thẳng cho toàn website.

Chặn mọi request nhanh

Search crawler hoặc uptime monitor có thể gửi nhiều request hợp lệ. Dùng rate limit theo nhóm endpoint và danh tính, thay vì một con số chung.

Challenge JavaScript cho mọi crawler

Bot tìm kiếm có khả năng render nhất định nhưng challenge chống bot, CAPTCHA hoặc cookie bắt buộc có thể ngăn crawl. Public content quan trọng cần đường truy cập sạch cho crawler đã xác minh.

Tin allowlist cũ mãi mãi

Dải IP, dịch vụ và nhu cầu kinh doanh thay đổi. Allowlist phải có nguồn, chủ sở hữu, ngày xem lại và log sử dụng.

Chính sách xử lý theo mức rủi ro

Mức 1: Cho phép và ghi log

Dành cho crawler đã xác minh, monitoring do bạn quản lý và đối tác rõ danh tính. Vẫn giới hạn khu vực riêng tư bằng authentication, không dựa vào “bot tốt”.

Mức 2: Rate limit mềm

Dành cho bot không rõ nhưng đang đọc public content. Trả 429 cùng Retry-After khi vượt ngưỡng; tránh block vĩnh viễn sau một đợt tăng ngắn.

Mức 3: Challenge hoặc giảm chức năng

Áp dụng với hành vi rủi ro vừa: tìm kiếm quá nhanh, tạo nhiều giỏ hàng, submit form lặp. Có thể yêu cầu JavaScript, CAPTCHA sau ngưỡng hoặc giới hạn dữ liệu trả về.

Mức 4: Chặn

Dành cho credential stuffing, khai thác lỗ hổng, spam chắc chắn, click fraud có đủ bằng chứng hoặc IP/dấu vết nằm trong denylist chất lượng.

Mức 5: Điều tra và lưu bằng chứng

Với gian lận quảng cáo hoặc tấn công kéo dài, lưu request ID, timestamp, IP hash, user-agent, fingerprint, campaign và hành động. Đừng giữ dữ liệu cá nhân vượt nhu cầu; mục tiêu là tái hiện quyết định chặn.

Cách bảo vệ từng bề mặt

Trang nội dung và SEO

Cho crawler xác minh truy cập, cache mạnh, rate limit bot không rõ và theo dõi scrape. Không đặt CAPTCHA trước bài viết hoặc danh mục cần index.

Login và reset password

Rate limit theo account lẫn IP, phát hiện danh sách username, dùng MFA và cảnh báo khi thất bại tăng. Bot có IP residential vẫn bị bắt bằng mẫu hành động.

Form lead

Honeypot, thời gian hoàn thành tối thiểu, validation server-side và rate limit giúp giảm spam. Không chỉ dựa CAPTCHA vì bot farm có thể vượt qua.

Checkout và coupon

Theo dõi velocity trên account, device, thẻ và mã giảm giá. Chặn datacenter có thể hữu ích, nhưng cần ngoại lệ cho khách doanh nghiệp hoặc mạng công ty.

Landing page quảng cáo

Gắn campaign, click ID, timestamp và quality score. So sánh click mạng quảng cáo với session, log và conversion. Một click đáng ngờ cần nhiều bằng chứng trước khi loại khỏi báo cáo tài chính.

Quy trình điều tra một IP hoặc fingerprint

  1. Xác định loại IP bằng IP Checker.
  2. Kiểm tra reverse DNS nếu request tự nhận là crawler lớn.
  3. Lấy chuỗi hành động trong cửa sổ 5–30 phút.
  4. So sánh user-agent, header, fingerprint và asset requests.
  5. Xem campaign, landing page và giá trị hành động.
  6. Gán mức tin cậy thay vì nhãn đúng/sai tuyệt đối.
  7. Chọn allow, limit, challenge hoặc block.
  8. Đặt ngày hết hạn cho rule tạm thời.

Mô hình điểm 0–100 hữu ích vì giữ được vùng xám. Ví dụ:

  • 80–100: nhiều tín hiệu người thật;
  • 50–79: cần theo dõi hoặc hạn chế nhẹ;
  • dưới 50: nhiều dấu hiệu automation/rủi ro.

Ngưỡng phải được hiệu chỉnh theo website. Blog, ngân hàng và game có mức chấp nhận khác nhau.

Đo false positive như một chỉ số sản phẩm

Một hệ thống chặn 99% bot nhưng làm mất 5% khách thật có thể tệ hơn hệ thống chặn ít hơn. Theo dõi:

  • số challenge thành công;
  • người dùng bị block rồi liên hệ hỗ trợ;
  • conversion trước/sau rule;
  • tỷ lệ bot quay lại bằng IP mới;
  • endpoint nào có false positive cao.

Mỗi rule cần lý do, người sở hữu và cách rollback. “Cảm thấy IP này lạ” không phải chính sách vận hành.

Robots.txt có phải công cụ chống bot?

Robots.txt là quy ước cho crawler hợp tác. Bot xấu có thể bỏ qua hoàn toàn. Nó vẫn cần cho Googlebot và crawler hợp lệ, nhưng không thay WAF, authentication, rate limit hoặc kiểm tra hành vi.

Dùng Robots.txt Checker để chắc bạn không vô tình chặn crawler tìm kiếm trong lúc cố kiểm soát scraper.

Nhìn toàn bộ bức tranh: đọc báo cáo Quality Score và chạy SEO audit miễn phí trước khi áp rule chặn trên toàn site.

Kết luận

Bot tốt và bot xấu không khác nhau chỉ ở tốc độ hay tên user-agent. Danh tính có thể xác minh, mục tiêu truy cập, chuỗi hành vi và tác động kinh doanh mới tạo ra quyết định đúng. Hãy cho phép có kiểm soát, rate limit vùng xám và chỉ chặn mạnh khi bằng chứng đủ rõ. Một hệ thống chống bot tốt không chỉ bắt được automation; nó còn biết khi nào nên để crawler hợp lệ đi qua.

Nguồn tham khảo: Google Search Central – GooglebotGoogle crawler overview.

Quảng cáo

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

Chỉ nhìn user-agent có xác minh được Googlebot không?
Không. User-agent dễ giả mạo. Hãy dùng reverse DNS hai chiều hoặc đối chiếu IP với dải crawler chính thức do Google công bố.
Có nên chặn toàn bộ IP datacenter không?
Không nên áp cho toàn site. Datacenter chứa nhiều bot xấu nhưng cũng có crawler, monitoring, webhook và dịch vụ hợp lệ. Hãy xét endpoint và hành vi.
Robots.txt có chặn được bot xấu không?
Không đáng tin. Robots.txt là quy ước cho crawler hợp tác; bot xấu có thể bỏ qua và cần được kiểm soát bằng rate limit, WAF, authentication hoặc phân tích hành vi.
#Bot Traffic #VPN & Proxy #Quality Score

Nhận bản tóm tắt SEO checklist qua email

Đăng ký để nhận bản tóm tắt các bước tối ưu SEO quan trọng nhất từ bài viết này.

Kiểm tra website của bạn miễn phí

Chạy SEO audit hoặc kiểm tra chất lượng traffic ngay — không cần đăng ký.