Меня нет в ответах ChatGPT. Пошаговый гайд как это починить за один вечер

 Публичный пост
29 мая 2026  101

Сидел я как-то вечером пил чай, а потом почему-то меня ебануло и я решил спросить у ChatGPT и Claude: «список топовых продакт-менеджеров, которые делают AI-продукты в России». Был уверен, что увижу себя, не увидел, неприятно. Зато увидел знакомых и кек в том, что только тереть из них вообще не делают AI-продукты, а вторая треть уехала и делает AI где-то в дургом месте.

А я тут руковожу всякими продуктовыми направлением в Т-Банке, пилю LLM-агентов для автоматизации саппорта, выступаю на конфах, веду телеграм канал, а cовременные LLM про меня не знают ничего. Полный отстой!

Когда полез разбираться, выяснилось, что LLM получают информацию о людях из 2 типов источников: структурированные базы (Wikidata, Google Knowledge Graph, etc) и проиндексированные тексты, то есть страницы, которые модели нашли и сумели прочитать. Я отсутствовал в обоих, так что всё честно, модели неоткуда было меня знать. Очень затревожился, в тот же вечер (ну ладно еще и ночь) сел и починил.

Дальше рассказываю по шагам как починил, и где конкретно облажался по дороге (а облажался много где), чтобы вы прошли тот же путь быстрее.

Шаг №1: перестать быть пустым местом

Сайт ( https://llmceo.com/) у меня уже был, на React, такой знаете красивый one pager с анимациями. Я и подумать не мог, что проблема в нём, а проблема была в нем.

Когда человек открывает страницу, браузер качает JS, выполняет его и рисует текст. Агент так не умеет, он приходит на URL, забирает голый HTML за долю секунды и уходит, то есть JavaScript он не запускает, а у React в этом голом HTML лежит пустой <div id="root"> и ссылка на скрипт. Весь текст появляется потом, крч агент открывал мой сайт и видел пустоту.

Если у тебя есть свой сайт проверь у себя за 3 секунды, нажми Ctrl+U. Видишь свои заголовки и тексты, значит видит и агент-краулер. Видишь пустой div и кучу .js, значит для моделей твой сайт не существует

Лечится переездом на SSR: страницу собирает не браузер, а сервер, и отдаёт боту готовый HTML сразу. Переехал на FastAPI с Jinja2

Фейл №1: я случайно стал руководителем 0 человек

На главной у меня крутилась анимация, где цифра размера команды листалась от 0 до 250. Людям красиво, а самые умные краулеры OpenAI и Google заходят через headless-браузер (настоящий Chrome без экрана) и JS таки выполняют. Но снимок страницы делают через долю секунды после загрузки, когда моя анимация ещё на первом кадре, то есть на кадре где на писано I LEAD 0 PEOPLE. Топовый руководитель, ничего не скажешь.

Вывод: всё, что хочешь донести до агента, должно быть статичным текстом в HTML, без всякого JS.

Шаг 2. Пригласить всех и вся
После того как сайт начал отдавать контент в HTML, нужно было решить следующий слой задач: явно сказать LLM-агентам, что они здесь желанные гости, то есть объяснить кто я в структурированном виде и дать карту всех страниц.

robots.txt
Файл robots.txt лежит в корне каждого сайта по адресу сайт.com/robots.txt. Это первое, что проверяет любой добросовестный LLM-агент перед тем, как читать содержимое. Он заходит туда автоматически и смотрит, есть ли разрешение.

В 2023-2024 крупные издатели (New York Times, Reddit) массово заблокировали AI-краулеров в robots.txt. После этого OpenAI и Anthropic выставили своим ботам осторожные дефолты: если разрешение неоднозначное, лучше пропустить сайт. Формально достаточной строки User-agent: * / Allow: / на практике может не хватить, потому что GPTBot, ClaudeBot, PerplexityBot ищут явное упоминание своего имени. Поэтому надо перечислить каждого агента конкретно, чтобы дать однозначный сигнал

llms.txt
это формат свежий, гарантий нет, но стоит 2 минуты: даёт агенту мгновенный контекст про тебя одним абзацем. Кто ты, где работаешь и ссылки.

JSON-LD
это невидимый для людей блок данных по стандарту Schema.org, который говорит общается с можелью структурой: вот имя, вот должность, вот работодатель, etcю.. Google из этого строит Knowledge Graph. Ключевое поле sameAs, оно перечисляет все твои аккаунты и сшивает их в одного человека.

sitemap.xml
это карта всех страниц с датами. Без неё агент сам будет что-то там ходить бродит по ссылкам и угадывать структуру, а если на страницу нет прямой ссылки, он её просто не найдёт.

Шаг 3. Засветиться в поисковиках и поймать ботов
Сам новый домен агенты найдут через полгода, потому что бюджет на обход ограничен и неизвестный сайт стоит в конце очереди краулеров. Чтобы с этим справиться надо самим ручками зарегистрироваться в разных консолях

1/ Google Search Console подтвердил домен через DNS, отдал sitemap, все пошло все чики-пуки

2/ Bing! Ебать какой бинг мы не в 2008, на самом деле он супер важен, потому что свежие ответы ChatGPT идут через его движок, поэтому его обязательно надо добавлдять

Фейл №2:
В консоле бинга есть кнопка «Import from Google Search Console», жмёшь и всё переезжает одним кликом. Нажал, все сломалось и ничего не заработало, поэтому лучше сразу делать все руками через BingSiteAuth.xml, его надо кинуть в static и выкатить, потерял тут немного нервов и минут 20 времени))

3/ Яндекс.Вебмастер — для русскоязычного контента критичен, YandexGPT опирается на его индекс. Добавил сайт, скачал HTML-файл верификации, положил на сервер, подтвердил, отдал sitemap, изи

Шаг 4. Залезть в веса (самый жирный шаг)

Всё выше влияет только на то, сможет ли модель вытащить тебя из интернета в моменте, а можно сделать так чтобы топовые лабы обучились на твоих данных и инфа что ты = самая прекрасная печенька зашьется в веса gpt-7,3. Сделать это можно через Wikidata данные оттуда уходят в Google Knowledge Graph, а тот утекает в обучающие датасеты крупных лаб.

Ловушка-Джакушкера: просто прийти и описать себя нельзя, нужен минимум 1 независимый источник, что ты вообще существуешь (статья в СМИ, интервью, страница спикера на конфе). Планка стоит специально, чтобы граф не зарос самопровозглашёнными гениями. Без пруфа запись сносит модератор и увы и ах, вы больше не самая прекрасная печенька.

Мне повезло, конфы и публикации были, заявку приняли. Если источника нет, порядок переворачивается: сначала добываешь повод для упоминания, потом идёшь оформляться.

Дальше создаёшь запись через Special:NewItem, заполняешь утверждения в формате «свойство → значение» (человек, род занятий, работодатель, сайт, профили), на ссылку обязательно вешаешь reference с пруфом. На выходе получаешь свой ID вида Q12345678, что само по себе приятно.

Шаг 5. Сшить все профили перекрёстными ссылками

Последняя проблема: машина не знает, что все твои профили это ты. Она видит «Daniel Levinishnikov» на GitHub, «Даниэль» в Telegram, продакта на LinkedIn, все блин написано как-то коряво и по разному Для неё это с равным успехом один человек и 3 случайных однофамильца, а если ты не Левинишников, а какой-нибудь Ким, которых тысячи, шансов угадать у неё вообще нет.

Решается перекрёстными ссылками: с сайта ставишь ссылку на каждый профиль (с атрибутом rel="me"), а с каждого профиля обратную ссылку на сайт. GitHub, LinkedIn, Telegram у всех в био есть поле под сайт. Получается замкнутая петля, и модель перестаёт сомневаться: чем больше взаимных связей, тем увереннее она сшивает всё про тебя в одну сущность.

Конец!!! Есть ощущение, что это паррето оптимум, а чтобы вы не собирали всё с нуля, я навайбкодил сайт и выложил репозиторий под форк. Внутри уже лежит SSR на FastAPI, готовые robots.txt и llms.txt, JSON-LD на всех страницах, динамический sitemap и тд!! Крч все для людей, а вы надеюсь мне звездочек накидаете <3

Форкайте: github.com/levinishnikov/personal-site

Тема свежая, всё выше это мой личный опыт, так что если знаете, как сделать лучше, или видите, где я налажал, залетайте в комменты.

Откомментируйте первым 👇

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб