Thuật ngữ

Bot Traffic là gì - Chặn bot, nuôi bot, tối ưu AI cite

Bot Traffic là lưu lượng do bot tạo ra. Hướng dẫn đọc log phân biệt bot thật – bot giả, checklist chặn bot theo lớp (WAF/CDN, Nginx/Apache, WordPress, robots.txt), và cách “nuôi bot” để tối ưu crawl và tăng khả năng được AI trích dẫn.

Bot Traffic là gì - Chặn bot, nuôi bot, tối ưu AI cite
Bot Traffic là lưu lượng do bot tạo ra. Hướng dẫn đọc log phân biệt bot thật – bot giả, checklist chặn bot theo lớp (WAF/CDN, Nginx/Apache, WordPress, robots.txt), và cách “nuôi bot” để tối ưu crawl…

Bot Traffic là lượng request do bot tạo ra (crawler, scraper, scanner) thay vì người dùng thật. Dùng khi website bị chậm, log “ngập bot”, số liệu GA4/GSC lệch, hoặc cần điều phối crawl budget để Google/AI quét đúng trang quan trọng.

Lợi ích chính: giảm tải hệ thống, giảm rác index, giữ đường crawl cho trang chuyển đổi, và tăng khả năng nội dung được AI trích dẫn đúng bối cảnh.


1. Bot Traffic trong SEO: khi nào tốt, khi nào phá?

Bot Traffic có lợi khi là bot tìm kiếm/giám sát hợp lệ. Có hại khi là bot quét, scrape, brute-force hoặc giả mạo UA gây tải và làm bẩn dữ liệu. Không phải mục tiêu “chặn hết bot”, mà là phân loại đúng để chặn bot xấu và “nuôi” bot tốt đi đúng đường đến trang tạo giá trị.

Nhóm botVí dụ phổ biếnTác độngHành động khuyến nghị
Bot tìm kiếmGooglebot, BingbotCrawl/index, cập nhật nội dung mớiCho vào, tối ưu đường đi (sitemap, internal link, canonical, tốc độ)
Bot “tool” hợp lệUptime monitor, công cụ SEOTốn tài nguyên nhưng hữu íchRate-limit/allow theo IP nếu cần
Bot xấuScraper, scanner, brute-forceChậm web, tăng 403/404/5xx, rủi ro bảo mậtChặn WAF/CDN + server, theo hành vi (rate/path/ASN)

Bot Traffic là tổng request do chương trình tự động tạo ra, trong bối cảnh vận hành website và Technical SEO.

Ví dụ: GA4 user không tăng nhưng server CPU tăng đột biến vì hàng nghìn request vào /wp-login.php hoặc các URL tham số lọc.


UA (User-Agent) là chuỗi thông tin mà trình duyệt hoặc bot gửi kèm trong mỗi HTTP request để “tự giới thiệu” mình là ai (loại phần mềm, hệ điều hành, đôi khi cả phiên bản). Trong bối cảnh Bot Traffic, UA hay được dùng để phân loại nhanh bot/trình duyệt, nhưng không đủ tin vì bot xấu có thể giả UA.

Ví dụ UA của trình duyệt (Chrome trên macOS):

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36

Ví dụ UA của bot:

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

UA dùng khi nào trong thực chiến?

  • Dùng để lọc nhanh log: top UA nào đang hit nhiều, UA nào tạo 403/404/429 nhiều.
  • Dùng để chặn “scanner phổ biến” (nikto, sqlmap, masscan…) ở lớp server/WAF.
  • Không dùng UA làm bằng chứng duy nhất để allowlist Googlebot.

Đúng khi / Sai khi

  • Đúng khi: UA + hành vi (rate, path, status code) + IP/DNS verify (với bot quan trọng) cùng khớp.
  • Sai khi: thấy UA “Googlebot” rồi tin luôn và mở cửa toàn bộ.

Nếu bạn paste 1–2 dòng log mẫu (IP + URL + status + UA), mình sẽ chỉ ra ngay: UA đó “nghiêm túc” hay “đội mũ giả”.


2. Bot tốt vs bot xấu: checklist phân loại để quyết “chặn/cho/giới hạn”

Phân loại theo mục tiêu (crawl/index, giám sát, audit, tấn công) và theo hành vi (rate, path, status code) cho quyết định chính xác hơn UA. UA chỉ là “nhãn” và bị giả rất dễ. Hành vi + log mới là bằng chứng vận hành.

Tiêu chíĐúng (bot nên cho/giới hạn)Sai (bot nên chặn)Cách đo
Mục tiêuCrawl nội dung + sitemap hợp lýQuét lỗ hổng, brute-force, scrapeTop URL bị hit + referrer + pattern endpoint
Hành viRate ổn định, ít spikeBurst cao, quét dải URLRequest/phút theo IP/UA
Đường truy cậpBài viết, category, sitemap/wp-login, /xmlrpc, file nhạy cảmTop path 24h
Tín hiệu lỗi200/304 là chủ đạoNhiều 404/403/429Tỷ lệ status code

Output: 1 bảng danh sách “Allow / Rate-limit / Block” theo UA/IP + 1 bảng “Top URL bị bot đập”.

  • ☐ Top 20 User-Agent (24h)
  • ☐ Top 20 URL bị hit (24h)
  • ☐ Top 20 IP tạo 403/404/429 (24h)
  • ☐ Gắn nhãn: Allow / Rate-limit / Block
  • ☐ Ghi chú “ngoại lệ” (API hợp lệ, webhook, admin IP thay đổi)

2.1. Dấu hiệu nhận biết bot (bot thật, bot giả, bot phá)

Nhận biết bot chính xác nhất dựa vào hành vi (tần suất, đường dẫn, status code, pattern quét) hơn là chỉ dựa vào User-Agent. User-Agent có thể bị giả rất dễ. Bot thật thường có hành vi “có mục đích”, còn bot phá thường có hành vi “quét rộng, burst mạnh, đánh endpoint nhạy cảm”.

Tín hiệuBot tốt (thường gặp)Bot giả / bot phá (thường gặp)Hành động khuyến nghị
Tần suất (rate)Ổn định, ít burstBurst theo giây/phút, tăng đột ngột ban đêmRate-limit / Challenge / Block
Đường dẫn (path)Hit sitemap, bài viết, category hợp lýĐánh /wp-login.php, /xmlrpc.php, /.env, /.git, search nội bộBlock theo path ở WAF/CDN
Status code200/304 chủ đạo403/404/429 dày đặc, đôi khi kéo theo 5xxChặn sớm để giảm tải
Pattern crawlCrawl theo cụm (cluster), có logicQuét dải URL, tham số lọc/sort vô hạn (crawl trap)Dọn crawl trap + disallow pattern rác
User-Agent (UA)Nhất quán, dễ đối chiếuRỗng, đổi liên tục hoặc giả “Googlebot”Không tin UA 100%, kiểm bằng hành vi
ReferrerCó thể rỗng (bot thường rỗng)Referrer giả/loạn để đánh lừaKhông dùng referrer làm tiêu chí chính
IP/ASNỔn định theo nhà cung cấpIP thay đổi liên tục, dải IP “độc lạ”Block theo ASN/IP khi có bằng chứng
Mục tiêu nội dungĐọc trang phổ biến/quan trọngScrape bảng, FAQ, đoạn “answer-first”Challenge + chống scrape + theo dõi hit

2.2. Checklist nhận biết bot trong 3 phút (không cần tool phức tạp)

Chỉ cần 4 câu hỏi: ai vào nhiều nhất, vào URL nào, tạo lỗi gì, và có burst không là đã phân loại được 80%. Mục tiêu là ra quyết định Allow/Rate-limit/Block nhanh, không phải ngồi “đọc log cho vui”.

Output: Danh sách 10 IP/UA đáng chú ý + nhãn hành động (Allow / Rate-limit / Block).

  • ☐ Top 20 User-Agent trong 24h (UA nào chiếm nhiều nhất?)
  • ☐ Top 20 URL bị hit (có tập trung vào login/xmlrpc/search/param không?)
  • ☐ Top IP tạo 403/404/429 (có trùng với UA/URL đáng nghi không?)
  • ☐ Có burst theo phút/giây không (đột biến ban đêm)?

2.3. Dấu hiệu “bot giả danh Googlebot” (đừng allowlist nhầm)

Bot giả danh Googlebot thường lộ qua hành vi quét endpoint nhạy cảm, burst cao và tỷ lệ lỗi lớn. User-Agent ghi “Googlebot” không phải bằng chứng. Nếu một IP “Googlebot” mà lại hit /wp-login.php hoặc quét tham số loạn, đó gần như chắc chắn là bot giả.

Output: Danh sách IP tự xưng Googlebot cần verify DNS + danh sách IP fail verify để block.

  • ☐ UA có chữ “Googlebot” nhưng hành vi quét login/xmlrpc/.env/.git
  • ☐ Burst cao theo giây/phút
  • ☐ 404/403/429 dày đặc
  • ☐ Không hit sitemap hoặc không crawl theo cụm nội dung
  • ☐ Fail verify DNS (reverse + forward)

2.4. Dấu hiệu “bot scrape content” (copy bảng, FAQ, đoạn ngon)

Bot scrape thường tập trung vào trang có bảng/FAQ, request theo pattern đều đặn và có thể lấy nhiều trang liên tiếp trong thời gian ngắn. Nếu thấy một IP/UA “đọc” quá nhiều bài có cấu trúc (bảng, FAQ) theo nhịp máy chạy, đó là tín hiệu scrape.

Output: Danh sách IP/UA scrape + rule WAF challenge/rate-limit + theo dõi hit theo giờ.

  • ☐ Hit nhiều bài có bảng/FAQ liên tiếp (đặc biệt ban đêm)
  • ☐ Không có hành vi giống người (không assets, không delay tự nhiên)
  • ☐ Tần suất đều, nhịp máy chạy
  • ☐ Referrer rỗng hoặc giả
  • ☐ Tạo spike băng thông (download KB tăng)

3. Đọc log để phân biệt bot thật và bot giả (không cần đoán mò)

Log giúp thấy ai đang ăn tài nguyên và đánh vào URL nào. Bot giả thường lộ qua burst + path bất thường + tỷ lệ lỗi cao. Nếu không đọc log, chặn sai rất dễ: chặn nhầm bot tốt hoặc bỏ sót bot xấu “nhìn như người”.

Output: 3 bảng: Top UA, Top URL, Top IP theo lỗi (403/404/429) để ra quyết định chặn.

Đọc log để phân biệt bot thật và bot giả

3.1. Lọc nhanh log (Nginx/Apache) để ra danh sách bot

Chỉ cần lọc 3 thứ: UA, URL, IP lỗi là đủ thấy 80% vấn đề bot traffic. Mục tiêu là tạo “danh sách hành động” (block/rate-limit/allow), không phải ngắm log.

Output: 3 danh sách Top 30: User-Agent, URL, IP theo lỗi.

# 1) Top User-Agent (ổn định hơn nếu log có nhiều dấu ")
awk -F\" '{print $(NF-1)}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -30

# 2) Top URL (lấy URL từ request line, rồi cắt querystring)
awk -F\" '{print $2}' /var/log/nginx/access.log \
| awk '{print $2}' \
| sed 's/\?.*$//' \
| sort | uniq -c | sort -nr | head -30

# 3) Top IP theo 403/404/429 (đỡ lệ thuộc vị trí cột)
awk -F\" '{
  split($1,a," "); ip=a[1];
  split($3,b," "); status=b[2];
  if (status ~ /^(403|404|429)$/) print ip
}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -30

Nếu dùng Cloudflare và không có Nginx/Apache, vẫn làm được bằng cách xuất log/analytics từ Cloudflare rồi xử lý tương tự trong Sheets. Gợi ý đọc nền tảng: Log File Analysis.

3.2. Verify Googlebot thật trước khi chặn (tránh tự bắn chân)

UA “Googlebot” có thể bị giả. Cần xác minh bằng reverse DNS và forward DNS với các IP tự xưng Googlebot hit nhiều. Chỉ cần verify nhóm “ảnh hưởng SEO” (Googlebot/AdsBot), không cần verify mọi bot lặt vặt.

Output: danh sách IP Googlebot đã verify + danh sách IP giả để block.

# IP -> hostname (reverse DNS)
host 66.249.66.1

# hostname -> IP (forward DNS) để đối chiếu
host crawl-66-249-66-1.googlebot.com
  • ☐ Lấy 5 IP “Googlebot” hit nhiều nhất trong 24h
  • ☐ Reverse DNS từng IP
  • ☐ Hostname phải thuộc domain Google hợp lệ
  • ☐ Forward DNS và đối chiếu IP khớp IP ban đầu
  • ☐ Fail → coi như bot giả, xử lý như bot xấu

4. Checklist chặn bot theo 4 lớp: WAF/CDN → Server → WordPress → robots.txt

Chặn càng gần “cửa” càng tốt: ưu tiên WAF/CDN, rồi mới tới server và WordPress. Robots.txt chỉ là lớp hướng dẫn bot tuân chuẩn. Nếu bot xấu bị chặn sau khi đã vào PHP/MySQL thì bạn vẫn trả “chi phí tài nguyên” cho nó.

LớpChặn đượcƯu điểmRủi ro
WAF/CDNBurst, scanner, bot xấu theo hành viGiảm tải trước serverRule quá gắt có thể gây false positive
Nginx/ApachePath/UA/rateChủ động, chi tiếtDeploy sai có thể 403 diện rộng
WordPressLogin/XML-RPC/API endpointDễ làm với site nhỏKhông chặn được bot trước khi PHP chạy
robots.txtBot ngoan (tuân chuẩn)Chuẩn SEO, minh bạchKhông phải cơ chế “ẩn index”

4.1. Cloudflare/WAF: bộ rule tối thiểu cho WordPress

Chặn brute-force và scanner ở WAF thường cho hiệu quả nhanh nhất: giảm request vào endpoint nhạy cảm và giảm lỗi 5xx. Rule tốt là rule “ít chữ”: tập trung vào path nhạy cảm + rate + hành vi.

Output: 1 rule rate-limit login, 1 rule block xmlrpc (nếu không dùng), 1 rule chặn file nhạy cảm.

  • ☐ Rate-limit: /wp-login.php (5–10 req/phút/IP tùy site)
  • ☐ Block hoặc challenge: /xmlrpc.php (nếu không dùng)
  • ☐ Chặn truy cập: /.env, /.git, /wp-config.php, /phpmyadmin
  • ☐ Challenge UA rỗng + burst
  • ☐ Không chặn theo quốc gia/ASN nếu chưa có bằng chứng từ log
RuleDùng khiNguy cơCách giảm rủi ro
Rate-limit wp-loginLogin bị đập ban đêmAdmin bị chặn nhầmAllow admin IP / tăng burst hợp lý
Block xmlrpcKhông dùng Jetpack/ứng dụng cần xmlrpcHỏng tích hợpKiểm tra plugin trước khi block
Challenge UA rỗngLog có UA empty nhiềuWebhook hợp lệAllow endpoint webhook theo path

4.2. Nginx: chặn endpoint nhạy cảm + rate-limit

Nginx phù hợp khi bạn đã có “danh sách vấn đề” từ log và cần cắt nhanh bot xấu theo path/rate. Ưu tiên chặn theo path trước; chặn theo UA chỉ dùng cho scanner phổ biến vì UA dễ bị giả.

Output: 1 snippet chặn xmlrpc + 1 rule rate-limit wp-login.

# http { ... } (đặt trong nginx.conf hoặc file include ở cấp http)
limit_req_zone $binary_remote_addr zone=login_zone:10m rate=5r/m;

server {
  # Block xmlrpc (nếu không dùng)
  location = /xmlrpc.php { return 403; }

  # Rate-limit wp-login
  location = /wp-login.php {
    limit_req zone=login_zone burst=10 nodelay;
    try_files $uri =404;
  }
}

4.3. Apache/.htaccess: chặn cơ bản theo path và UA

Apache chặn nhanh theo rewrite rule, phù hợp shared hosting hoặc site nhỏ chưa có WAF. Luôn test phạm vi nhỏ và có khả năng rollback để tránh 403 nhầm.

Output: 1 nhóm rule chặn xmlrpc + 1 nhóm rule chặn scanner phổ biến.

RewriteEngine On
RewriteRule ^xmlrpc\.php$ - [F,L]

RewriteCond %{HTTP_USER_AGENT} (masscan|nikto|sqlmap|python-requests|curl/) [NC]
RewriteRule .* - [F,L]

4.4. WordPress: giảm bot rác vào PHP/MySQL

Với WP, bot rác thường đánh vào login/xmlrpc và tạo URL rác bằng search/param; dọn đúng giúp giảm tải PHP rõ. Nếu có WAF/server thì chặn trước; WP layer là lớp “phòng thủ cuối”.

Output: tắt/giới hạn xmlrpc (nếu không dùng), hardening login, hạn chế URL rác từ search/param.

  • ☐ Tắt XML-RPC nếu không dùng (hoặc giới hạn theo IP)
  • ☐ Bật 2FA và giới hạn login attempts
  • ☐ Kiểm soát search nội bộ tạo URL rác (nếu không cần index)
  • ☐ Bật cache đúng để bot tốt crawl “nhẹ”

4.5. robots.txt: mẫu thực chiến “chặn đường cụt” nhưng không chặn bừa

robots.txt nên chặn các đường dẫn nội bộ không cần Search và các pattern tạo crawl trap; đồng thời khai báo sitemap để bot tốt đi đúng map. Không nên dùng Disallow: /*?* cho mọi site vì có thể chặn nhầm trang hợp lệ có query; hãy chặn theo pattern rõ và kiểm bằng log.

Output: 1 robots.txt chạy được + danh sách pattern “cần chặn theo site”.

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

# Chặn search nội bộ tạo URL rác (nếu không muốn index)
Disallow: /?s=
Disallow: /search/

# Một số pattern WP hay gây crawl waste (chỉ bật khi log cho thấy bị crawl nhiều)
Disallow: /*?replytocom=
Disallow: /*?orderby=
Disallow: /*?filter=

Sitemap: https://www.vlink.asia/sitemap_index.xml

Tài liệu nội bộ liên quan: Robots.txt OptimizationAdvanced Robots.txt Rules.


5. “Nuôi bot” đúng nghĩa: cho bot tốt ăn đúng phần (crawl ít mà trúng)

5.1. robots.txt để “nuôi bot”: chặn đường cụt, mở đường cho trang quan trọng

robots.txt “nuôi bot” tốt nhất khi nó giúp bot tìm kiếm đi thẳng vào sitemap và khu vực nội dung có giá trị, đồng thời tránh các URL rác gây crawl trap. Ưu tiên chặn theo pattern cụ thể (dựa trên log), không chặn theo kiểu “quét sạch” /*?* vì dễ chặn nhầm URL hợp lệ.

Output: 1 file robots.txt chạy được + 1 danh sách “pattern cần chặn” lấy từ log (replytocom, orderby, add-to-cart, sort/filter rác...).

Nhóm URLNên làm gì trong robots.txtVì saoKiểm bằng
Trang cần index (KB, dịch vụ, pillar)Không disallow; dẫn bot bằng sitemap + internal linkGiữ crawl tập trung vào trang tạo giá trịLog hit Googlebot vào money page
WP adminDisallow /wp-admin/ + Allow admin-ajaxChuẩn vận hành WPKhông ảnh hưởng index
Search nội bộDisallow /?s= và /search/ (nếu không muốn index)Giảm URL rácTop URL bị hit trong log
Tham số rác (crawl trap)Disallow theo pattern cụ thể (replytocom, orderby, filter...)Tránh bot lạc vào mê cung tham sốLog + GSC Crawl Stats

5.2. robots.txt mẫu “nuôi bot” cho WordPress (an toàn, không chặn bừa)

Mẫu dưới đây giữ đường crawl sạch cho bot tìm kiếm: chặn khu vực admin và các “đường cụt” phổ biến, đồng thời khai báo sitemap để bot đi đúng map. Các dòng chặn tham số là dạng “bật khi cần”, chỉ dùng khi log cho thấy bị crawl nhiều hoặc tạo quá nhiều URL vô nghĩa.

Output: robots.txt (v1) + danh sách tham số cần chặn theo site.

User-agent: *
# 1) Giữ bot ra khỏi admin, nhưng vẫn cho admin-ajax chạy
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

# 2) Chặn search nội bộ nếu bạn không muốn index trang tìm kiếm
Disallow: /?s=
Disallow: /search/

# 3) Chặn các "đường cụt" WP hay tạo crawl waste (BẬT KHI CẦN, dựa trên log)
Disallow: /*?replytocom=
Disallow: /*?orderby=
Disallow: /*?filter=
Disallow: /*?sort=
Disallow: /*?page=
Disallow: /*?add-to-cart=
Disallow: /*?wc-ajax=

# 4) Khai báo sitemap để bot đi đúng map
Sitemap: https://www.vlink.asia/sitemap_index.xml

5.3. Checklist “nuôi bot” bằng robots.txt (có tiêu chí đúng/sai)

Checklist này giúp robots.txt phục vụ đúng mục tiêu: bot tốt crawl đúng trang, bot không lãng phí vào URL rác. Mỗi thay đổi robots.txt đều phải có log trước/sau để tránh chặn nhầm.

Output: file robots.txt v2 + bảng đối chiếu “trước/sau” (Top URL bị hit, Googlebot hit money page).

  • ☐ robots.txt trả 200 và tải nhanh (không 403/5xx, không redirect vòng)
  • ☐ Sitemap index khai đúng URL, truy cập được
  • ☐ Không chặn nhầm khu vực nội dung cần index (KB, dịch vụ, pillar)
  • ☐ Chỉ chặn tham số sau khi thấy nó tạo crawl waste trong log
  • ☐ Không dùng Disallow: /*?* nếu chưa chứng minh site không cần query hợp lệ
  • ☐ Sau khi chỉnh robots, kiểm tra Googlebot vẫn crawl sitemap và money page đều
  • ☐ Nếu GSC/Crawl Stats tụt mạnh: rollback và kiểm tra pattern bị chặn nhầm

5.4. Ngoại lệ quan trọng khi “nuôi bot” bằng robots.txt

Không có một robots.txt “chuẩn cho mọi site”. Robots tốt là robots khớp hành vi URL thật của site và mục tiêu index. Các site có filter faceted navigation, tracking query, hoặc ecommerce thường có query hợp lệ. Chặn bừa sẽ làm mất crawl các trang có giá trị.

Trường hợpVì sao dễ chặn nhầmCách làm đúngTiêu chí đạt
Ecommerce (add-to-cart, sort, filter)Query tạo UX, đôi khi có landing hợp lệChặn theo tham số rác; canonical/noindex cho trang filter không cầnBot giảm hit URL rác, trang sản phẩm vẫn crawl đều
Site có tracking UTMQuery hợp lệ cho đo lườngKhông chặn UTM bằng robots; xử lý bằng canonical/param rulesIndex sạch, tracking vẫn chạy
Search nội bộ dùng thậtSearch tạo URL vô hạnDisallow search nếu không muốn index; hoặc noindex trang searchKhông nổ index URL search

Gợi ý đọc nền tảng: Log File Analysis.


5.5. Phân loại bot theo mục đích (để quyết định Allow / Rate-limit / Block)

Phân loại bot theo “mục đích + mức độ tin cậy + mức tiêu tốn tài nguyên” giúp xử lý đúng: bot tìm kiếm thì nuôi, bot SEO tool thì giới hạn, bot xấu thì chặn. Không có “danh sách bot đầy đủ cho mọi website”, vì bot thay đổi liên tục. Cách đúng là dùng taxonomy (nhóm) + map theo log để ra quyết định.

Bảng này gắn tên bot (User-Agent / token) với mục đíchhành động mặc định (Allow / Rate-limit / Block). Dùng để ra quyết định nhanh: chặn bot phá, hạn chế bot tool, và “nuôi” bot tốt để tăng cơ hội được AI trích dẫn. Nhìn vào 1 hàng là biết: bot đó vào để làm gì, nên xử lý ở lớp nào, và cách xác thực để tránh chặn nhầm.

Nhóm botTên bot hay gặp (UA / robots.txt token)Vào để làm gìHành động mặc địnhCách xác thực nhanh (tránh chặn nhầm)
Search Indexing (bot xếp hạng) Google: Googlebot, Googlebot-Image, Googlebot-Video, Googlebot-News
Bing: bingbot
Crawl để lập chỉ mục, hiểu nội dung, phục vụ xếp hạng và các tính năng Search. Allow + chặn khu vực nhạy cảm (wp-admin, login, tham số rác).
Rate-limit nếu server yếu nhưng không “cấm cửa” toàn site.
Với Googlebot/bingbot: kiểm tra Reverse DNS + Forward DNS từ IP log để xác thực bot thật.
SEO Tools (crawl phân tích/so sánh) AhrefsBot
SemrushBot (các biến thể hay gặp: SemrushBot, SemrushBot-SA, SemrushBot-SI, SemrushBot-BA, SemrushBot-OCOB, SemrushBot-SWA…)
MJ12bot (Majestic)
DotBot (Moz)
Thu thập dữ liệu link/onpage/technical để hiển thị trong công cụ SEO (backlink, audit, template…). Rate-limit (giờ hành chính/ban đêm tuỳ tải).
Allow có kiểm soát nếu cần cho đối tác/đội SEO; Block nếu crawl quá đà làm nghẽn server.
Ưu tiên nhận diện theo User-Agent và (nếu có) đối chiếu bot “verified” trong hệ WAF/CDN hoặc log pattern ổn định.
AI Training Crawlers (thu thập dữ liệu huấn luyện) GPTBot (OpenAI)
ClaudeBot (Anthropic)
CCBot (Common Crawl)
Thu thập nội dung công khai để đưa vào tập dữ liệu huấn luyện / kho dữ liệu nền. Allow chọn lọc: cho “knowledge pages” (wiki/KB) ăn, hạn chế “money/sensitive pages”.
Nếu không muốn bị thu thập: Disallow theo UA trong robots.txt, và chặn thêm ở WAF nếu cần.
Kiểm tra UA + đối chiếu chính sách bot theo tài liệu chính thức; với CCBot có khuyến nghị kiểm tra IP/rDNS do có tình trạng giả mạo.
AI Search / Index Bots (để xuất hiện link trong AI Search) OAI-SearchBot (OpenAI)
Claude-SearchBot (Anthropic)
PerplexityBot
Crawl/index để hiển thị website như nguồn tham khảo trong kết quả tìm kiếm của nền tảng AI. Allow (nếu mục tiêu là “được dẫn link”).
Nếu dùng WAF: whitelist theo UA + IP range chính thức (đừng chỉ match mỗi UA).
Kết hợp User-Agent + IP ranges chính thức (khi nền tảng công bố) để tránh bot giả.
User-triggered Fetchers (fetch theo yêu cầu người dùng)OpenAI: ChatGPT-User
Khác: có thể có fetcher riêng tuỳ nền tảng (hãy xác nhận bằng log hoặc Verified Bots)
Khi người dùng hỏi, hệ thống AI sẽ “fetch” trang để đọc/trích dẫn tại thời điểm đó. Allow nếu muốn được trích dẫn theo phiên hỏi đáp.
Rate-limit mềm (đừng bóp như bot rác), và đảm bảo trả HTML sạch (canonical chuẩn, nội dung không phụ thuộc JS nặng).
Kết hợp User-Agent + hành vi (rate/path/status) + (nếu có) Verified Bots để tránh bot giả.
Page Preview (bot tạo preview khi share link) FacebookExternalHit (facebookexternalhit) Lấy title/description/thumbnail để hiển thị khi chia sẻ link lên mạng xã hội. Allow (để share link đẹp).
Chặn/throttle chỉ khi bị lợi dụng để scrape ảnh/meta hàng loạt.
Nhận diện UA + tần suất request theo sự kiện share (thường theo “đợt”, không crawl liên tục như bot rác).
Robots.txt control token (token điều khiển, không nhất thiết thấy trong log) Google-Extended (robots.txt token) Điều khiển việc nội dung bị dùng cho một số mục đích AI/grounding của Google; không phải lúc nào cũng có UA HTTP riêng. Dùng khi muốn “tách” chính sách: vẫn cho Googlebot crawl để SEO, nhưng kiểm soát phần dùng cho AI theo Google-Extended. Lưu ý: token này có thể không xuất hiện như UA riêng trong log, vì crawling có thể dùng UA Google hiện có.
Bad Bots / Scanner / Scraper (bot phá/giả danh) Thường UA rỗng, UA giả browser, hoặc UA “lạ” không ổn định Scan lỗ hổng (wp-admin, xmlrpc, plugin path), crawl URL rác/param, scrape bảng/FAQ, bắn request dày để làm nghẽn. Block ở WAF + rule theo path/ASN/geo/rate-limit.
Chặn trước khi vào WordPress để giảm CPU/PHP.
Dấu hiệu thường gặp: 404 spike, request vào đường dẫn nhạy cảm, tốc độ bất thường, pattern không giống bot verified.

UA (User-Agent) là chuỗi nhận diện client/bot gửi trong HTTP header. WAF (Web Application Firewall) là lớp tường lửa ứng dụng web, chặn request xấu trước khi chạm vào WordPress/PHP.

Verified bot là bot đã được một nền tảng (thường là CDN/WAF) xác minh danh tính bằng IP validation hoặc cơ chế xác thực riêng.

Ví dụ: trong Cloudflare có danh mục “Verified Bots” và có thể lọc theo category để set rule.


5.6. Danh sách bot “nên allow” tối thiểu (nuôi bot để crawl ít mà trúng)

Bot tìm kiếm hợp lệ nên được allow để crawl/index ổn định, vì đây là “đầu vào” tạo traffic bền vững và cơ hội được AI trích dẫn. Allow không có nghĩa là thả cửa. Hãy dọn crawl trap và tối ưu đường đi (sitemap, internal link, canonical) để bot tự crawl “đúng phần”.

  • Googlebot (bao gồm biến thể Image/Video/News nếu xuất hiện trong log)
  • Bingbot

5.7. Danh sách bot “nên rate-limit” (hữu ích nhưng dễ tốn tài nguyên)

Nhóm SEO tools tạo giá trị cho team, nhưng nếu để crawl tự do sẽ ăn crawl budget và tải server. Rate-limit theo phút/giờ + ưu tiên cache sẽ giữ lợi ích phân tích mà không làm web ì.

  • AhrefsBot (crawler phục vụ bộ dữ liệu link)
  • SemrushBot (crawler phục vụ audit/onpage & research)
  • MJ12bot (crawler phục vụ dữ liệu link Majestic)

5.8. SOP phân loại bot từ log (5 phút là ra quyết định)

SOP này giúp biến “một User-Agent lạ” thành quyết định rõ ràng: allow, rate-limit hay block. Không tin User-Agent một mình. Luôn nhìn thêm IP, hành vi và đường dẫn bị hit.

Output: 1 dòng nhãn cho bot (Category + Action) + 1 rule triển khai (WAF/server/robots) + 1 ghi chú kiểm tra an toàn SEO sau khi áp dụng.

  • ☐ Lấy 20–50 dòng log của bot đó: IP, UA, path, status code, request/phút.
  • ☐ Nhìn “mục tiêu” qua path: có hit /wp-login.php, /xmlrpc.php, /?s=, tham số lọc/排序… không?
  • ☐ Nhìn “hành vi”: burst theo giây/phút hay crawl đều? tỷ lệ 404/403/429 có cao bất thường?
  • ☐ Nếu tự xưng Google/Bing: verify bằng DNS/IP (đừng allowlist chỉ vì UA giống).
  • ☐ Map vào 6 nhóm ở bảng 5.5 → chọn action: Allow / Rate-limit / Block.
  • ☐ Triển khai ở lớp gần cửa nhất: WAF/CDN trước → server → WordPress.
  • ☐ Chạy “Checklist kiểm tra an toàn SEO” (robots 200, sitemap ok, 5xx không tăng, Googlebot vẫn crawl trang quan trọng).

6. Tối ưu để AI trích dẫn: cấu trúc Answer-first + entity + bằng chứng

AI thường trích nội dung có câu trả lời ngắn ngay dưới tiêu đề, thuật ngữ nhất quán, tiêu chí đúng/sai, bảng so sánh và checklist có output. Muốn AI trích đúng thì phải “dạy cách đọc”: nội dung rõ, có cấu trúc, có bằng chứng và có schema hỗ trợ.

Yếu tốAI dễ trích khiAI khó trích khiCách làm nhanh
Answer-first2 dòng đầu trả lời thẳngVòng voMỗi H2/H3 có 2 dòng kết luận
Entity nhất quánGọi 1 tên xuyên bàiĐổi thuật ngữTạo bộ thuật ngữ (DefinedTermSet)
Bằng chứngCó “Đúng khi / Sai khi”Chỉ lời khuyên chungChuyển lời khuyên thành điều kiện
Cấu trúcBảng + checklist + ví dụChỉ kể chuyệnMỗi mục có ít nhất 1 bảng + 1 checklist

Tham khảo nội bộ: AI Overview FriendlySGE & AI Overview Tracking.


7. Dashboard theo dõi bot: từ log đến quyết định (chặn gì, sửa gì, ưu tiên gì)

Dashboard bot phải trả lời 3 câu: bot nào ăn tài nguyên, URL nào bị đập nhiều nhất, và Googlebot có còn crawl đúng trang quan trọng không. Đo để ra backlog: chặn ở lớp nào, dọn crawl trap ở đâu, tối ưu trang nào để tăng AI cite.

KhốiChỉ sốNguồnHành động khi tăng
Bot LoadRequest/phút, băng thôngCDN/server logWAF rate-limit, block pattern
Top URL bị hitTop pathLogChặn endpoint, dọn param
Status Codes403/404/429/5xxLogKiểm rule mới, rollback nếu cần
Googlebot HealthHit sitemap/money pageLog + GSCKiểm internal link, canonical, robots

Nền tảng nội bộ: Log File Analysis.


8. 3 tình huống thực tế (site Việt) và cách xử lý

80% case bot traffic rơi vào: brute-force WP, crawl trap từ tham số lọc/sort, và scraper copy nội dung. Mỗi case cần đúng “thuốc”: brute-force chặn ở WAF, crawl trap xử lý IA/param, scraper chặn theo hành vi + bảo toàn canonical.

Tình huốngDấu hiệuNguyên nhân gốcXử lý ưu tiên
Web chậm ban đêmRequest tăng, GA4 user không tăngScanner/brute-forceWAF rate-limit + chặn endpoint nhạy cảm
Google crawl lung tungBot hit URL rác nhiềuCrawl trapDọn param + internal link + canonical
Bài bị scrapeNhiều request theo pattern copyScraper farmChallenge/bot rule + theo dõi referrer

9. Lỗi thường gặp khi chặn bot và cách sửa (thực chiến)

Lỗi nguy hiểm nhất là chặn nhầm Googlebot hoặc chặn nhầm đường dẫn hợp lệ; lỗi phổ biến nhất là dùng robots.txt như “công tắc ẩn index”. Mọi rule cần có log trước/sau và checklist kiểm tra để tránh “tối ưu mù”.

LỗiHậu quảDấu hiệuCách sửa
Block nhầm GooglebotIndex/refresh chậmTrang mới vào index chậmGỡ rule, verify bot trước khi block
Robots chặn quá rộngMất crawl URL hợp lệURL quan trọng không được crawlChặn theo pattern cụ thể, kiểm bằng log
Không cho robots.txt truy cậpBot không đọc luậtCrawl lỗi bất thườngĐảm bảo robots.txt trả 200, nhanh

10. Checklist triển khai 90 phút + checklist kiểm tra an toàn SEO

90 phút đủ để giảm phần lớn bot rác nếu làm theo thứ tự: đo log → phân loại → chặn WAF → chặn server → chỉnh robots → kiểm tra lại. Làm nhanh nhưng phải có tiêu chí đúng/sai và số trước-sau để chứng minh hiệu quả.

BướcOutputThời gianTiêu chí đạt
Xuất log 24hTop UA/URL/IP10’Có danh sách Top 20
Phân loại botAllow/Rate-limit/Block10’Không chặn nhầm bot tốt
WAF ruleRate-limit + block endpoint15’Giảm hit vào login/xmlrpc
Server ruleChặn path/rate15’Giảm 403/404 do bot xấu
robots.txtChặn đường cụt + sitemap15’Không chặn nhầm URL quan trọng
Kiểm tra lạiBảng “an toàn SEO”25’Googlebot vẫn crawl ổn
  • ☐ (10’) Xuất log 24h: Top UA/URL/IP lỗi
  • ☐ (10’) Gắn nhãn: Allow / Rate-limit / Block
  • ☐ (15’) WAF: rate-limit wp-login, block xmlrpc (nếu không dùng)
  • ☐ (15’) Server: chặn endpoint nhạy cảm, rate-limit nếu burst
  • ☐ (15’) robots.txt: chặn search/param theo pattern rõ, khai sitemap
  • ☐ (10’) Verify Googlebot nếu có nghi ngờ bị chặn nhầm
  • ☐ (15’) Ghi số trước-sau: request/phút, 5xx, top URL bị đập

Checklist kiểm tra an toàn SEO:

  • ☐ robots.txt trả về 200 và tải nhanh (không 403/5xx, không redirect vòng).
  • ☐ Sitemap index truy cập được và cập nhật đúng (không 404, không trả 5xx).
  • ☐ Không tăng 5xx sau khi triển khai rule (so sánh 24h trước và 24h sau).
  • ☐ Googlebot vẫn crawl đều sitemap và các trang quan trọng (money page, pillar, bài mới).
  • ☐ Không chặn nhầm CSS/JS cần render (đặc biệt với theme/plugin cần asset riêng).
  • ☐ Không chặn nhầm endpoint phục vụ người dùng thật (checkout, form submit, payment, API hợp lệ).
  • ☐ 403/429 tăng chỉ tập trung ở endpoint nhạy cảm (wp-login/xmlrpc), không lan sang nội dung.
  • ☐ Coverage/Indexing trong GSC không xuất hiện spike lỗi bất thường sau thay đổi (Excluded tăng đột biến cần soi).
  • ☐ Crawl Stats (GSC) không tụt mạnh do tự chặn nhầm (requests/day, downloaded KB, avg response time).
  • ☐ Log cho thấy bot xấu giảm hit vào URL rác, còn bot tốt tăng tỷ lệ hit vào URL có giá trị.

11. Hiểu lầm và tranh luận phổ biến (để khỏi làm sai)

3 hiểu lầm phổ biến: robots.txt là cách “ẩn index”, chặn theo User-Agent là đủ, và chặn càng nhiều bot càng tốt. Vận hành đúng phải dựa vào log + hành vi. “Chặn đúng” quan trọng hơn “chặn nhiều”.

Hiểu lầmVì sao saiCách đúngNgoại lệ
Robots.txt = ẩn khỏi GoogleRobots.txt chủ yếu điều phối crawl; URL vẫn có thể xuất hiện nếu có link trỏ tới.Nội dung không muốn xuất hiện: dùng noindex hoặc chặn truy cập bằng auth.Site nội bộ không public, không có backlink và không mở internet.
Chặn theo User-Agent là đủUser-Agent bị giả rất dễ.Chặn theo hành vi (rate), theo path nhạy cảm và theo tín hiệu lỗi; verify bot quan trọng bằng DNS khi cần.Scanner phổ biến có UA cố định, có thể block UA như một lớp phụ.
Chặn càng nhiều bot càng tốtChặn nhầm bot tốt làm hại crawl/index; mất cơ hội cập nhật nội dung mới.Allow bot tìm kiếm, tối ưu đường crawl; chỉ chặn bot xấu và crawl trap.Website yêu cầu khóa dữ liệu theo policy (ví dụ nội dung trả phí).

12. Kết quả mong muốn và kinh nghiệm vận hành

Kết quả tốt là bot xấu giảm mạnh, server ổn định hơn, Googlebot crawl tập trung vào trang quan trọng, và nội dung có cấu trúc để tăng khả năng AI trích dẫn. Đừng chỉ đo “đã chặn bao nhiêu”; hãy đo “có giữ được đường crawl đúng và dữ liệu sạch không”.

Chỉ sốTrướcSau (kỳ vọng)Cách đo
Request/phútSpike bất thườngỔn định hơn (spike giảm rõ)CDN/server analytics
5xxTăng khi bot burstGiảmLog status code
Top URL bị đậpwp-login/xmlrpc/search/paramGiảm hitTop path 24h
Googlebot hit money pageKhông đềuĐều hơnLog + GSC Crawl Stats

Kinh nghiệm vận hành: Chặn bot “đúng” luôn đi kèm 2 việc: (1) dọn URL rác/crawl trap để Googlebot không lạc, (2) chuẩn hóa content theo Answer-first để bot tốt đọc nhanh và AI trích đúng. Chỉ chặn mà không dọn đường đi thì bot vẫn tốn quota vào phần vô nghĩa.


13. Nguồn tham khảo chính thức của Google

Các trang dưới đây là nguồn chuẩn để đối chiếu khi audit robots, crawl và verify bot. Ưu tiên Google Search Central/Crawling Infrastructure để tránh “mẹo truyền miệng”.


14. FAQ về Bot Traffic (hỏi nhanh đáp gọn)

Phần này gom các câu hỏi thực chiến khi chặn bot, nuôi bot và tối ưu để AI trích dẫn. Mỗi câu trả lời đi thẳng vào cách làm và tiêu chí đúng/sai để dễ áp dụng.

Bot Traffic là gì?

Bot Traffic là tổng lượng request do bot (crawler, scraper, scanner) tạo ra thay vì người dùng thật, trong bối cảnh vận hành website và Technical SEO.

Ví dụ: GA4 không tăng user nhưng server load tăng vì bot quét /wp-login.php hoặc URL tham số lọc.

Vì sao Bot Traffic làm web chậm nhưng GA4 không tăng?

Nguyên nhân chính: bot tạo nhiều request ngắn, burst theo phút/giây và đánh vào endpoint nặng (login, search, API), khiến PHP/MySQL bận nhưng không tạo phiên người dùng hợp lệ trong GA4.

Đúng khi: log tăng request/phút, 403/429 tăng, nhưng GA4 users/sessions đứng yên.

Có nên chặn bot bằng robots.txt không?

Robots.txt phù hợp để điều phối crawl với bot tuân chuẩn (chặn đường cụt, khai sitemap), không phải lớp chặn bảo mật.

Sai khi: dùng robots.txt như cách “ẩn khỏi Google” hoặc chặn quá rộng làm mất crawl URL hợp lệ.

User-Agent có đủ để nhận diện bot không?

Không đủ. User-Agent là “nhãn” và bị giả rất dễ; cần nhìn thêm IP, rate truy cập, path, tỷ lệ lỗi (403/404/429) và pattern quét.

Đúng khi: quyết định chặn dựa trên hành vi + bằng chứng log, không dựa UA một mình.

Làm sao phân biệt Googlebot thật với bot giả?

Cách chắc nhất: xác minh bằng reverse DNS và forward DNS với IP tự xưng Googlebot hit nhiều trong log.

Sai khi: thấy UA “Googlebot” là tin ngay rồi allowlist toàn bộ.

Nên chặn bot ở lớp nào để hiệu quả nhất?

Ưu tiên: chặn càng gần “cửa” càng tốt: WAF/CDN → server (Nginx/Apache) → WordPress. Robots.txt chỉ là lớp hướng dẫn.

Đúng khi: bot xấu bị chặn trước khi vào PHP/MySQL, giảm tải rõ rệt.

Website không có Nginx/Apache thì làm sao chặn bot?

Cách làm thực tế: dùng WAF/CDN (ví dụ Cloudflare) để rate-limit/challenge theo path và hành vi; kết hợp WordPress hardening (2FA, limit login, tắt xmlrpc nếu không dùng).

Đúng khi: request vào /wp-login.php/xmlrpc.php giảm mạnh dù không chạm server config.

“Nuôi bot” nghĩa là gì và làm sao để bot tốt crawl đúng?

“Nuôi bot” là tối ưu để bot tốt crawl ít mà trúng: sitemap chuẩn, internal link theo cụm, canonical sạch, giảm redirect vòng, dọn crawl trap do tham số.

Đúng khi: log cho thấy Googlebot hit đều sitemap và money page, thay vì sa vào URL rác.

Chặn tham số /*?* trong robots.txt có an toàn không?

Thường không an toàn nếu site có trang hợp lệ dùng query (tracking, filter hợp pháp, tìm kiếm nội bộ cần dùng). Nên chặn theo pattern cụ thể dựa trên log.

Đúng khi: chỉ chặn các tham số tạo crawl waste như replytocom, orderby, filter rác… sau khi đã thấy chúng bị bot crawl nhiều.

Tối ưu gì để nội dung dễ được AI trích dẫn?

Ưu tiên 4 thứ: 2 dòng trả lời ngay dưới mỗi H2/H3, thuật ngữ nhất quán (entity), tiêu chí “Đúng khi/Sai khi”, và bảng + checklist có output.

Đúng khi: nội dung có cấu trúc rõ, schema khớp nội dung thật và trang quan trọng được crawl/index ổn định.

Checklist kiểm tra an toàn SEO sau khi chặn bot gồm gì?

Kiểm tra tối thiểu: robots.txt 200, sitemap truy cập được, 5xx không tăng, Googlebot vẫn crawl sitemap/money page, không chặn nhầm asset/endpoint người dùng thật.

Đúng khi: bot xấu giảm, nhưng crawl của bot tìm kiếm vẫn “khỏe” và không xuất hiện spike lỗi trong GSC.

15. Lời kết

Bot Traffic không phải kẻ thù, nó là hệ sinh thái. Chặn bot xấu, dẫn bot tốt, và trình bày nội dung rõ để AI trích dẫn đúng. Khi có log + checklist + số trước-sau, quyết định kỹ thuật không còn dựa trên cảm giác mà dựa trên bằng chứng.