Как Googlebot и Яндекс видят сайт
Бот — не обычный браузер: разбираем рендеринг и бюджет обхода, чтобы понимать, что реально видит поисковик.
Бюджет краулинга (crawl budget) — ограниченное число запросов, которое бот готов потратить на ваш сайт за период. Тратить его на мусор — значит не дать боту дойти до важных страниц.
Бот видит не то же, что вы
Когда вы открываете страницу в браузере, вы дожидаетесь всех запросов, шрифтов, картинок и анимаций. Бот ведёт себя экономнее: у него лимит времени и ресурсов на страницу, он может не выполнить часть JS, не дождаться медленных запросов и проигнорировать то, что появляется только после действий пользователя (клик, скролл).
Главный практический принцип: важный контент должен присутствовать в HTML сразу или появляться быстро и без действий пользователя. Контент, спрятанный за «бесконечной прокруткой» или загружаемый по клику, бот может не увидеть.
Две волны индексации
Googlebot обрабатывает страницу в две волны. Первая — мгновенный разбор сырого HTML. Вторая — рендеринг JavaScript, который ставится в отдельную очередь и может выполниться спустя время (иногда дни). Это значит, что для чистого client-side рендеринга индексация задерживается, а часть контента может вообще не дойти.
Волна 1 (сразу): скачали HTML -> разобрали то, что есть в исходнике
Волна 2 (позже): очередь рендера -> запустили JS -> увидели итоговый DOM
(может быть отложено на часы/дни и ограничено бюджетом)
Как проверить, что видит бот
Не доверяйте «View Source» в браузере с включённым JS — вы видите уже отрендеренный DOM. Чтобы увидеть то, что получает бот в первой волне, смотрите именно сырой ответ сервера:
# Сырой HTML, как его получает бот первой волной
curl -s https://codechick.io/ | head -50
# Притворимся Googlebot через User-Agent
curl -s -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" \
https://codechick.io/tutorials
Если в сыром HTML нет вашего основного текста и заголовков — значит, контент существует только после JS, и это риск для индексации. В Google Search Console есть инструмент «Проверка URL», который показывает отрендеренный ботом HTML и скриншот.
Как работает под капотом: бюджет краулинга
Бюджет складывается из двух частей: crawl rate limit (сколько запросов сервер выдерживает без деградации) и crawl demand (насколько поисковику интересен ваш сайт). На больших сайтах бюджет — реальное ограничение: если бот тратит обход на тысячи дублей, фильтров и параметров URL, до новых важных страниц он доходит медленно.
Что экономит бюджет: закрытие в robots.txt бесполезных для поиска URL (корзина, фильтры, поиск по сайту), отсутствие цепочек редиректов, быстрый ответ сервера, корректные коды состояния (404 для несуществующего, а не 200 с пустой страницей).
Частые ошибки
- «В браузере же всё видно». View Source с JS показывает отрендеренный DOM, а не то, что получил бот. Проверяйте сырой ответ сервера.
- Контент за скроллом/кликом. Бот не скроллит и не кликает — то, что грузится только по действию, может остаться невидимым.
- Слив бюджета на мусор. Тысячи URL с параметрами фильтров и сортировок съедают обход. Управляйте этим через robots.txt и canonical.
Итог
- Бот экономнее браузера: лимит ресурсов, отложенный рендер JS, игнор контента за действиями пользователя.
- Google индексирует в две волны: сырой HTML сразу, JS-рендер — позже и не гарантированно.
- Бюджет краулинга ограничен; не давайте боту тратить его на дубли и мусорные URL.