Перейти к содержанию
Статья

Что боты находят на сайте, а вы – нет

Боты ходят по изнанке сайта, куда живой человек не забредёт, и фиксируют в логах то, чего не видно ни в Метрике, ни на витрине: падающие с ошибкой 500 страницы каталога, битый файл с 747 обращениями, поток сканеров секретов. Разбираю на реальных логах, что искать и как чинить.

Обновлено 22 июля 7 минут чтения 3 просмотра

Что боты находят на сайте, а вы – нет

Владелец сайта видит витрину: аккуратный каталог, работающие кнопки, красивые карточки. Боты видят изнанку – и заходят туда, куда живой человек не забредёт. Разбирая логи одного интернет-магазина, я нашла в этой изнанке то, о чём владелец не подозревал: страницы, которые падают с ошибкой, битый служебный файл, который дёргают сотни раз, и целую армию сканеров, простукивающих сайт на уязвимости. Ничего этого не видно ни в Метрике, ни на самом сайте – только в access-логах. Показываю, что искать.

Слепая зона владельца

Веб-аналитика показывает поведение людей на работающих страницах. Она молчит про всё, что сломалось: если страница отдаёт ошибку, счётчик на ней просто не срабатывает, и в отчётах её будто не существует. А боты по этим страницам ходят постоянно – и фиксируют каждую проблему в логе. Вот что нашлось за три дня.

Проблемные запросы в логах за 3 дня (всего 404: 3768, ошибок 500: 302)
Битый sourcemap (один файл)747Сканы уязвимостей и секретов620Ошибки сервера 500 на страницах302Прочие битые ссылки (404)2100

Находка №1: страницы, которые тихо падают

Самое важное – 302 ошибки сервера (код 500) за три дня, и не на служебных адресах, а на реальных страницах каталога: категории инструментов для эндоскопии, инфузионных насосов, ультразвуковых датчиков. Периодически сервер вместо страницы товара отдаёт «внутреннюю ошибку».

Для бизнеса это прямая потеря: покупатель на такой странице уходит, а поисковый бот, наткнувшись на 500, откладывает индексацию и понижает доверие к сайту. При этом в Метрике эти сбои не видны – счётчик на упавшей странице не запускается. Узнать о них можно только из лога, одной командой:

awk '$9 == 500 {print $7}' access.log | sort | uniq -c | sort -rn

Если в выдаче окажутся коммерческие страницы – это первое, что нужно чинить: каждая такая ошибка стоит денег.

Находка №2: один битый файл – 747 обращений

Лидер по числу ошибок 404 – файл swiper-bundle.min.js.map, к которому за три дня обратились 747 раз. Это sourcemap – служебная карта для отладки JavaScript. Сам скрипт работает, но в его коде осталась ссылка на карту, которую при сборке не выложили. Каждый браузер с открытой консолью и каждый бот послушно дёргают несуществующий файл – и получают 404.

На работе сайта это не сказывается, поэтому проблему годами не замечают. Но она засоряет лог, тратит запросы и выдаёт неаккуратную сборку. Лечится одной строчкой в настройках сервера или удалением ссылки на sourcemap – мелочь, которую видно только в логах.

Находка №3: сайт постоянно простукивают

Внушительная часть 404 – это автоматический перебор чужими сканерами. За три дня к сайту стучались по адресам /.aws/credentials, /.git-credentials, /credentials.json, /.ssh/known_hosts, /secrets.json, /.npmrc и десяткам похожих – это типовые места, где разработчики иногда забывают закрыть доступ к паролям и ключам. Часть таких запросов, как я показала в исследовании ботов, приходит под масками «ИИ-ботов».

Хорошая новость: на исследованном сайте все эти запросы получили 404 или 403 – сервер ничего не отдал, красть было нечего. Но сам поток сканирования – это нормальный фон жизни любого сайта в интернете, и полезно раз в месяц проверять по логам, что сервер отвечает на такие пробы отказом, а не отдаёт лишнего.

Находка №4: битые ссылки, по которым ходят боты

Помимо чужих сканеров, среди 404 прячутся и ваши битые ссылки: удалённые страницы, на которые ещё ведут ссылки внутри сайта или из поиска, опечатки в адресах, потерянные при переезде URL. Поисковый бот, регулярно натыкаясь на них, тратит на пустые страницы краулинговый бюджет, который мог бы потратить на реальный контент. Найти свои битые ссылки (в отличие от чужих сканов) можно по тому, что на них есть переходы с вашего же домена в поле referer.

Как найти свои проблемы: короткий чек-лист

Всё это ищется по логам за пять минут – подробно про выгрузку логов я писала в отдельном гайде. Минимальный набор проверок:

  1. Ошибки 500 – падающие страницы: awk '$9==500'. Коммерческие страницы в списке – чинить в первую очередь.
  2. Топ 404 – битые файлы и ссылки: awk '$9==404 {print $7}' | sort | uniq -c | sort -rn. Один адрес с сотнями обращений – почти всегда забытый служебный файл.
  3. Сканы секретов – проверьте, что запросы к /.env, /.git, /secrets.json получают 404/403, а не 200.
  4. Свои vs чужие 404 – смотрите referer: переходы с вашего домена означают внутреннюю битую ссылку.

Итог

Access-лог – это техосмотр сайта, который показывает то, чего не видно с витрины: падающие страницы, битые файлы, дыры, которые простукивают сканеры. Пятиминутная проверка раз в месяц ловит проблемы, теряющие деньги и позиции, задолго до того, как их заметит клиент. Хотите, чтобы логи вашего сайта разобрал специалист и составил список того, что стоит починить, – напишите мне или начните с бесплатной AI-диагностики.

Частые вопросы

Почему ошибки 500 не видны в Яндекс.Метрике?

Счётчик Метрики срабатывает через JavaScript на успешно загруженной странице. Если сервер отдаёт ошибку 500, страница не загружается и счётчик не запускается – в отчётах такой страницы просто нет. Ошибки 500 видны только в access-логах сервера.

Что такое файл .map (sourcemap) и почему он даёт 404?

Sourcemap – служебная карта, связывающая сжатый JavaScript с исходным кодом для отладки. Если в скрипте осталась ссылка на .map-файл, а сам файл при сборке не выложили, браузеры и боты обращаются к нему и получают 404. На работу сайта это не влияет, но засоряет логи.

Опасны ли запросы к /.env, /.git и /secrets.json в логах?

Это автоматический перебор сканерами типовых мест хранения паролей и ключей – нормальный фон для любого сайта. Опасность появляется, только если сервер отвечает на такой запрос кодом 200 (то есть отдаёт файл). Если ответ 404 или 403 – всё в порядке, красть нечего.

Как отличить свои битые ссылки от чужих сканеров в 404?

Смотрите поле referer в логе. Если на несуществующую страницу есть переходы с вашего же домена – это внутренняя битая ссылка, её нужно починить. Запросы с пустым referer к странным служебным путям – это чужие сканеры.

Как часто нужно проверять логи?

Для большинства сайтов достаточно раза в месяц: проверить ошибки 500, топ 404 и отклик на сканы секретов. Если ведёте активную разработку или переезжали на новый сайт – чаще, чтобы сразу ловить сломанные и потерянные страницы.

Валентина Меланина

Хотите обсудить свой проект?

Помогу с разработкой, аналитикой и AI-видимостью вашего сайта

Если у вас есть задача — от внедрения разметки и аналитики до полной переработки сайта — напишите, обсудим объём и подход.