Виж кои AI ботове четат сайта ти за 0 €, от собствените логове
Накратко
- Можеш да видиш кои AI ботове четат сайта ти със свободен скрипт върху собствените ти сървърни логове, за около 20 минути.
- Скриптът разделя кроулърите за обучение (GPTBot, ClaudeBot) от ботовете, които взимат страница, защото човек е питал (ChatGPT-User, Claude-User).
- Фрилансър на 30 €/час, който го прави месечно, струва 360 € на година. Скриптът струва 0 €.
AI асистентите вече четат сайтове вместо хората. ChatGPT, Claude и Perplexity изпращат собствени ботове. Знаеш ли колко от тях са били на сайта ти миналата седмица? Повечето собственици не знаят. Отговорът вече стои във файл на сървъра ти и да го прочетеш не струва нищо.
Това е домашната версия на нещото, което Cloudflare тъкмо добави в таблото си. Работи на всякакъв хостинг, с всякакъв CMS и отнема около 20 минути еднократно.
Старият начин и новият
Старият начин: плащаш за инструмент за мониторинг или караш фрилансър да погледне трафика. Новият: уеб сървърът ти вече записва по един ред за всяка заявка в access log. Във всеки ред има user agent, тоест името, с което ботът се представя. Преброй правилните имена и имаш доклад за AI трафика.
Сметката (мое предположение): фрилансър на 30 € на час, който отделя час месечно за такъв доклад, ти струва 360 € на година. Скриптът по-долу струва 0 € и работи, докато спиш.
Какво ти трябва
- Достъп до суровите access логове. При cPanel хостинг търси Raw Access или Metrics. На собствен сървър обикновено са в /var/log/nginx/access.log или /var/log/apache2/access.log.
- Python 3 за скрипта или просто терминал за кратката команда.
- Логове, записвани на сървъра. Ако CDN връща кеширана страница, сървърът ти не вижда това посещение. Помни го, когато числата изглеждат малки.
Цена: безплатно. Без акаунт, без API ключ.
Стъпка по стъпка
Стъпка 1. Намери access лога и го копирай в работна папка, за да не пипаш оригинала.
Стъпка 2. Пусни бързата бройка. Тя брои посещенията по имената на ботовете, които те интересуват:
awk -F'"' '{print $6}' access.log | grep -Eio 'GPTBot|ChatGPT-User|OAI-SearchBot|ClaudeBot|Claude-User|Claude-SearchBot|PerplexityBot|Perplexity-User|Bytespider|CCBot|Amazonbot|Meta-ExternalAgent' | sort | uniq -c | sort -rn
Стъпка 3. Прочети резултата. Всеки ред показва брой и име на бот. ChatGPT-User и Claude-User вземат страница, защото човек е питал асистента за нея. GPTBot и ClaudeBot са кроулъри, които събират съдържание за обучение. OAI-SearchBot и Claude-SearchBot захранват търсенето на асистентите. Различни ботове, различни решения.
Стъпка 4. Запази този скрипт като botreport.py. Той брои заявките по бот, броя грешките (4xx и 5xx) и печата топ 3 страници на всеки бот. Чете и ротирани .gz логове:
import gzip, re, sys, collections
BOTS = ['GPTBot', 'ChatGPT-User', 'OAI-SearchBot', 'ClaudeBot', 'Claude-User', 'Claude-SearchBot', 'PerplexityBot', 'Perplexity-User', 'Bytespider', 'CCBot', 'Amazonbot', 'Applebot', 'Meta-ExternalAgent', 'Googlebot', 'bingbot']
line_re = re.compile(r'"(?:GET|POST|HEAD) (S+) [^"]*" (d{3}) S+ "[^"]*" "([^"]*)"')
hits = collections.Counter()
errors = collections.Counter()
pages = collections.defaultdict(collections.Counter)
for path in sys.argv[1:]:
opener = gzip.open if path.endswith('.gz') else open
with opener(path, 'rt', errors='ignore') as f:
for line in f:
m = line_re.search(line)
if not m:
continue
url, status, ua = m.groups()
for bot in BOTS:
if bot.lower() in ua.lower():
hits[bot] += 1
pages[bot][url] += 1
if status[0] in '45':
errors[bot] += 1
break
for bot, n in hits.most_common():
print(f'{bot}: {n} requests, {errors[bot]} errors')
for url, c in pages[bot].most_common(3):
print(f' {c:5d} {url}')
Стъпка 5. Пусни го с python3 botreport.py access.log. Можеш да подадеш няколко файла наведнъж, например access.log access.log.1 access.log.2.gz.
Стъпка 6. Автоматизирай. Cron задача може да ти праща доклада всеки понеделник в 08:00. Това иска работеща команда mail на сървъра:
0 8 * * 1 python3 /home/youruser/botreport.py /home/youruser/logs/access.log | mail -s "AI bot report" [email protected]
Стъпка 7. Действай. Отвори robots.txt и реши за всеки бот: allow или disallow. robots.txt е молба, не ключалка. За реално блокиране ползвай firewall, Cloudflare или инструментите на хостинга.
Реални случаи
Собственик на онлайн магазин може да види дали асистентите взимат страници с продукти и кои точно. Ако ChatGPT-User удря непрекъснато страница на една категория, тя е новата ти витрина. Бъди сигурен, че цените, наличността и доставката са в обикновен текст там.
Сайт със съдържание може да сравни кроулърите за обучение с ботовете, задействани от човек. Посещение от такъв бот значи, че някой е питал и страницата ти е била отговорът. Това е читател, не крадец.
Агенция може да изпраща доклада на клиентите всеки понеделник и да таксува за тълкуването, не за броенето.
Ограничения и слаби места
User agent е само табелка с име и всеки може да го фалшифицира. За сериозни решения проверявай IP адреса срещу диапазоните, които доставчикът публикува, или ползвай reverse DNS. Скриптът брои твърдения, не доказателства.
Кешираните страници скриват посещения. Ако имаш CDN или пълен кеш пред сървъра, гледай и логовете на CDN-а.
Имената на ботовете се менят. Нови агенти се появяват всеки месец, така че преглеждай списъка BOTS всяко тримесечие. И Google-Extended е само robots.txt токен. Никога не се появява като user agent в логовете, така че тук не можеш да го преброиш.
Скриптът чете стандартния combined лог формат на Apache и nginx. За произволен формат ще трябва малка промяна в regex-а.
Алтернативи
- Cloudflare Security Analytics: новата категория Personal Assistants показва агентите визуално, но сайтът трябва да е през Cloudflare.
- GoAccess: безплатен open-source анализатор на логове с жив терминал и HTML табло.
- Вградената статистика на хостинга: добра за общи бройки, обикновено слаба в именуването на ботове.
Какво означава
Преди година трафик означаваше хора и Google. Днес все по-голям дял са асистенти, които четат страницата ти и отговарят на посетителя. Ако не мериш този дял, не можеш нито да го оцениш, нито да го защитиш, нито да продаваш на него.
Мнението на Иван
Бих го сложил на всеки мой сайт още днес. Безплатно е, числата са честни, от собствения ми сървър, и показва кои страници асистентите приемат за отговори. Само помни, че user agent може да се фалшифицира, затова го ползвам за тенденции, не за обвинения.
Ако не ти спестява време или пари, няма да го видиш тук
- Факти, не шумВсяка цена и цифра е проверена в официалния източник
- Винаги реалната ценаВиждаш колко струва, преди да кликнеш
- Казвам, когато е слабоДори да е OpenAI или Google


