Частина посилань на цій сторінці партнерські: якщо ви зареєструєтесь через них, сайт отримає комісію, для вас ціна не змінюється. На ціни й рекомендації це не впливає.

Ми підняли статичний сайт 15 жовтня, чотири дні не публікували нічого, потім за один вечір виклали три статті. Лог доступу писався весь цей час. Через пʼятнадцять днів у ньому 9 987 запитів, і порядок, у якому інтернет нас помітив, не той, що планують.

Жодної теорії далі. Кожна цифра з цього логу.

Першим відвідувачем був AI-кравлер, через 65 хвилин

Перша сторінка стала доступною о 13:14 UTC. Лог того, що було далі, у порядку першої появи:

КравлерПерша появаЗапитів, тиждень 1Запитів, 15 днів
ClaudeBot15.10, +65 хв від старту226484
GPTBot15.10, +70 хв від старту210391
OAI-SearchBot15.10, +70 хв від старту33108
bingbot16.1070164
Googlebot19.10, 19:41328541
GoogleOther19.10, 23:01281520
AhrefsBot20.1091202
ChatGPT-User21.10439

На сайт ще ніщо не посилалося. Ніде не було зроблено жодної заявки. Кравлери Anthropic і OpenAI знайшли новий хост на маленькому VPS протягом години й почали його обходити.

Практичний висновок простий: якщо ви сьогодні публікуєте технічні тексти, ваші перші читачі це retrieval-конвеєри, і вони приходять раніше, ніж будь-який пошуковик дізнається про ваше існування. Політику robots.txt вирішуйте до публікації, а не коли побачите наслідки.

Зверніть увагу, що ClaudeBot зробив у перших двох запитах із різницею в секунду: /robots.txt, потім /. За пʼятнадцять днів він запросив robots.txt 78 разів, по разу на сесію обходу. GPTBot за те саме вікно запросив його нуль разів, забравши 391 URL. Ті самі дві секунди роботи, протилежна поведінка. До цього ми повернемось окремим матеріалом, бо саме це вирішує, який метод блокування має сенс.

Google не бачив нас узагалі, поки не був зроблений один крок

Нуль запитів Googlebot за перші чотири дні. Не обмеження швидкості, не повільність: відсутність. Сайт був доступний, мав sitemap, мав robots.txt і був залінкований зі старшого домену, який ми теж тримаємо.

Змінило це підтвердження домену в Search Console і відправка sitemap. З логу того вечора:

  • 19:35 - домен підтверджено записом DNS TXT.
  • 19:41:31 - перший запит Googlebot в історії сайту: /robots.txt і /sitemap.xml в одну секунду.
  • 19:42 - 19:46 - Googlebot по черзі обходить усі мовні sitemap.

Шість хвилин. Можна сперечатися, чи Search Console формально обовʼязковий - він не обовʼязковий, - але різницю між чотирма днями тишею і шістьма хвилинами важко не помітити, коли ви стартуєте з нуля.

Беріть domain property, а не URL-prefix, якщо можете додати DNS-запис: один TXT на апексі покриває всі субдомени, які ви колись додасте, і переживає зміну http/https чи www, яка інакше розріже вашу статистику на дві.

Через три години двадцять хвилин після Googlebot прийшов GoogleOther і з того часу забрав майже стільки ж, скільки сам Googlebot: 520 запитів проти 541. Це окремий кравлер на тій самій інфраструктурі для непошукових продуктів. Якщо колись вирішите обмежити Google, знайте: це два імені, не одне.

Bing прийшов через IndexNow за дні й без жодного акаунта

IndexNow це проста угода: ви тримаєте файл-ключ, потім POST-ом віддаєте список змінених URL, і пошуковики-учасники (Bing, Yandex, Seznam, Naver) дізнаються одразу, а не чекають обходу.

Весь протокол це один запит:

curl -X POST https://api.indexnow.org/indexnow \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
    "host": "example.com",
    "key": "YOUR-KEY",
    "keyLocation": "https://example.com/YOUR-KEY.txt",
    "urlList": ["https://example.com/new-post/"]
  }'

Ключ це файл у корені домену, назва якого і є ключем, а вміст той самий рядок. Оце і вся верифікація: можете покласти туди файл - значить, хост ваш.

200 означає прийнято, не проіндексовано. Але bingbot прийшов сам наступного дня після першої відправки, без акаунта, консолі й жодного кроку підтвердження - на три дні раніше за Googlebot. Для нового сайту це відчутна перевага, і коштує вона одного рядка в деплої.

Пастка файлу-індексу

Ось частина, яка нас майже обманула, і це найкорисніший абзац у тексті.

Багатомовний Hugo генерує на /sitemap.xml індекс sitemap - список інших sitemap, по одному на мову, - а не список сторінок. Ми відправили його, і Search Console відповів:

Status: Success. Discovered pages: 0.

Обидві половини правдиві й виглядають суперечливо. Індекс завантажили й розібрали правильно, тому статус успішний; сам індекс не містить URL сторінок, тому лічильник знайдених лишається нулем, поки дочірні файли не заберуть окремо. Один погляд на «Success» - і ви йдете з переконанням, що справу зроблено.

Ми відправили ще й дочірній sitemap основної мови:

Status: Success. Discovered pages: 23.

Отже: якщо ваш sitemap це індекс, відправляйте й дочірні файли по мовах, і вважайте показником успіху кількість знайдених сторінок, а не слово в статусі. Те саме стосується будь-якого генератора, що видає індекс - великі WordPress із Yoast роблять так само, як і все, що розбиває sitemap після 50 000 URL.

Дванадцятий день: хвіст приходить одразу весь

Одинадцять днів у логу було вісім-девʼять різних кравлерів. Потім між 26 і 29 жовтня за чотири дні зʼявилося чотирнадцять нових:

ElevenlabsCrawler (448 запитів), meta-externalagent (322), MJ12bot (319), AwarioBot (308), SofyaBot (232), SemrushBot (213), Amazonbot (96), PerplexityBot (63), DataForSeoBot (62), YandexBot (49), Applebot (30), archive.org_bot (26), Baiduspider (14), DuckDuckBot (8).

Патерн достатньо чистий, щоб його планувати. SEO-кравлери посилань, кравлери моніторингу брендів і другий ешелон AI-кравлерів не шукають сайти самі - вони читають чужі індекси. Щойно вас мають Google і Bing, ви в потоці, який перепродає відкриття, і решта приходить протягом двох тижнів, хотіли ви цього чи ні.

Скільки це коштує, у замірі: зі 153.4 МБ, відданих за пʼятнадцять днів, 88.8 МБ пішли user agent, які самі називають себе кравлерами. Це 58% усіх байтів проти приблизно 4 000 браузероподібних запитів. На статичному сайті з крихітного VPS це ніхто не помітить. На будь-чому, що рендерить сторінку на запит, це ваш план потужності.

Порядок, який справді працює

Для нового сайту, у цьому порядку, з причиною для кожного кроку:

  1. Будьте залінковані звідти, де вже ходять кравлери. Одне посилання в підвалі зі старшого домену варте більше за будь-яку форму відправки. Відкриття досі тримається на посиланнях.
  2. Віддавайте sitemap і тримайте robots.txt чесним. Вказуйте sitemap у robots.txt; переконайтесь, що жоден із них не лишився зі staging-конфігу, який забороняє все.
  3. Надсилайте IndexNow на кожну публікацію, з пайплайна. Дешево, миттєво, без акаунта. Покриває Bing і компанію; для Google не робить нічого, бо той не бере участі.
  4. Підтвердьте домен у Search Console і відправте sitemap - разом із дочірніми. Саме цей крок перетворив чотири дні нічого на шість хвилин.
  5. Далі чекайте. Бути обійденим це не бути проіндексованим, а бути проіндексованим це не ранжуватися. Перші дві речі це інфраструктура і займають хвилини; третя це контент і займає місяці.

Що ми зробили б інакше

Відправили б sitemap у Search Console першого дня, ще до появи контенту. Підтвердження це DNS-запис на пʼять хвилин; зробити його рано означає, що кравлер уже знає сайт, коли виходить перша стаття, а не починає відлік після неї. Ми чотири дні публікували в пустоту, якої можна було уникнути.

Пінг IndexNow ми таки виправили: тепер він крок у workflow деплою, в тому самому місці, що й smoke-тест після деплою, тому публікація, яка дійшла до сервера, завжди доходить і до пошуковиків. Робити це руками означає забути рівно один раз - на статті, яка мала значення.

Чого цей лог не скаже

Це один сайт, одна ніша, одне пʼятнадцятиденне вікно, хост без історії. Краулінговий бюджет старого домену поводиться інакше. Ми також не можемо на вибірці з одного сайту відділити «прийшов через Search Console» від «прийшов, бо був четвертий день» - шість хвилин це підозріло, але не контрольований експеримент. І кількість завантажень robots.txt міряє завантаження, а не послух: кравлер, який прочитав файл і проігнорував його, у цих даних виглядає так само, як чемний.