Неделя 139. SEO-марафон и рождение автоматизаций

Разбор этой статьи
Эту тему разобрали в подкасте. Слушай параллельно с чтением.
Бывают недели, которые не видны снаружи. Ни новых статей в блоге, ни анонсов в Telegram. Но именно такие недели определяют всё, что произойдёт дальше. Неделя 139 была такой: 42 коммита в SEO-инфраструктуру сайта, полный цикл CRM-автоматизаций от первого класса до визуального редактора, и три фичи в Clubator. Без этого фундамента контент-машина на 38 статей (неделя 140) просто не взлетела бы.
Я Дмитрий Дьяконов, основатель Botseller AI. Это второй выпуск серии «Ретроспектива» - бортжурнал в прошлое. Сегодня разбираем неделю, которая превратила сайт из технически неподготовленного в SEO-ready.

Что было к началу недели: сайт без SEO-фундамента
К концу марта 2026 у Botseller был работающий сайт на Next.js: лендинг, блог на Nextra, документация. Внешне всё выглядело прилично. Но под капотом - проблемы, которые делали любой контент-маркетинг бессмысленным.
Google видел наши страницы, но не понимал их. Не было структурированной разметки Schema.org - поисковик не знал, что это за организация, кто автор статей, какие вопросы мы отвечаем. Не было FAQPage, не было BlogPosting с правильными полями, не было Organization JSON-LD.
Картинки весили неприлично: 50 мегабайт PNG-файлов в блоге. Core Web Vitals страдали. Двадцать один компонент рендерился только на клиенте - поисковые боты видели пустые div-ы вместо контента. Двадцать две ссылки в статьях вели на несуществующие страницы /solutions/*, оставшиеся от старой навигации.
И самое важное: AI-поисковики (ChatGPT, Perplexity, Claude) не имели никакой точки входа. Ни llms.txt, ни speakable-разметки, ни оптимизации для Bing (который питает Copilot и ChatGPT).
Если бы мы начали публиковать 38 статей в таком состоянии - это был бы контент в вакууме. Сначала - фундамент.

SEO-аудит: 42 коммита за 7 дней
Мы не нанимали SEO-агентство. Не покупали аудит за 300 тысяч. Вместо этого - методичный проход по каждому элементу сайта с чеклистом. 42 коммита в репозиторий sitebs за одну неделю - это не героизм, а системный подход: один фикс - один коммит - одно ревью.
Разбивка по дням:
| День | Фокус | Коммитов |
|---|---|---|
| Среда, 2 апреля | SSR 21 компонента, Schema @id, trackpad UX, CI selective build | 6 |
| Четверг, 3 апреля | Динамический OG image, Schema/Sitemap/Docs полировка | 3 |
| Пятница, 4 апреля | Entity graph, FAQPage, PNG→WebP, BlogPosting, CLS-фиксы | 17 |
| Суббота, 5 апреля | Финальный polish: broken links, GEO/AI readiness, docs overhaul, 3 новые статьи | 16 |
Сорок два коммита звучит как хаос. На практике - каждый коммит решал ровно одну проблему. SEO: entity graph, FAQPage, og:image, meta descriptions, duplicate headers - это один проход по чеклисту. perf: все blog PNG → WebP (50 MB → 6.7 MB, -87%) - одна операция с измеримым результатом.

Schema.org: как мы рассказали Google, кто мы
Структурированная разметка - это язык, на котором вы разговариваете с поисковиком. Без неё Google видит текст. С ней - понимает сущности: организацию, автора, статью, вопрос-ответ, контакты.
За неделю мы внедрили:
Organization JSON-LD - в layout блога. Google теперь знает: Botseller AI - это организация, у неё есть основатель, сайт, логотип, социальные сети. Это основа entity graph - сети связей между сущностями, которую Google строит для Knowledge Panel.
BlogPosting - для каждой статьи. Автор связан с Organization через @id (а не дублируется отдельным объектом). Keywords конвертированы из slug-ов в читаемые имена категорий. Поле author ссылается на #founder - тот же человек, что в Organization.
FAQPage - перенесён в серверный компонент. До этого FAQ рендерился на клиенте - поисковый бот его не видел. Теперь это SSR-компонент с SEO-ключевиками в формулировках вопросов. Разница для CTR: FAQ в выдаче Google занимает больше места и привлекает клики.
ContactPage.mainEntity - inline @type + name для Google Rich Results. Мелкая деталь, но без неё Google не показывает контактную информацию в расширенных результатах.
AggregateRating - добавлен itemReviewed с правильным @type. До этого Google игнорировал наш рейтинг, потому что не понимал, к какому объекту он относится.
Каждый из этих фиксов - 5-15 минут работы. Но совокупный эффект - Google начал понимать наш сайт как единую сущность, а не набор разрозненных страниц.

Производительность: 50 мегабайт превращаются в 6.7
Один коммит. Одна команда. Минус 87% веса картинок.
Все PNG-файлы в блоге были конвертированы в WebP. Результат: с 50 МБ до 6.7 МБ. Для пользователя на мобильном интернете это разница между «страница грузится 8 секунд» и «страница грузится 2 секунды». Для Google - прямое влияние на Core Web Vitals и позицию в выдаче.
Параллельно исправили CLS (Cumulative Layout Shift): добавили width и height на все картинки в blog card и related articles. Без этих атрибутов браузер не знает размер картинки до загрузки - контент прыгает. CLS больше 0.1 - жёлтый сигнал в PageSpeed Insights. После фикса - стабильная раскладка с первого рендера.
Убрали unoptimized: true у Next.js Image - флаг, который отключал всю оптимизацию картинок. Зачем он был? Артефакт раннего этапа разработки, когда CDN ещё не был настроен. Теперь Next.js сам генерирует srcset с разными размерами.

SSR для 21 компонента - отдельная история. До этого компоненты рендерились через 'use client' без fallback. Поисковый бот видел loading-состояние или пустоту. После переноса на серверный рендеринг - контент доступен в HTML сразу, без JavaScript.

AI-поисковики: готовимся к новой реальности
В марте 2026 AI-поисковики уже отъедали заметную долю трафика у Google. ChatGPT с Browse, Perplexity, Claude - все они сканируют веб и формируют ответы. Но в отличие от Google, у них нет 20-летней истории индексации вашего сайта. Им нужны явные сигналы.
Что мы сделали:
llms.txt - текстовый файл размером 62 КБ с полной информацией о продукте. Формат, который AI-краулеры понимают лучше HTML. Когда пользователь спрашивает ChatGPT «что такое Botseller», данные из этого файла помогают сформировать точный ответ.
Speakable-разметка - Schema.org property, которое указывает AI-ассистентам, какие фрагменты текста подходят для голосового ответа. Google Assistant и Alexa используют эту разметку для формирования spoken snippets.
SiteNavigationElement - структурированная навигация для Bing. Bing питает Microsoft Copilot и ChatGPT Browse. Правильная SiteNav-разметка помогает Bing быстрее проиндексировать структуру сайта.
Эти три вещи вместе превратили наш сайт из «невидимого для AI» в «оптимизированного для AI-поиска». Результат мы увидели позже - Botseller начал появляться в ответах Perplexity и ChatGPT на релевантные запросы.

CRM-автоматизации: от нуля до визуального редактора за 4 дня
Пока сайт проходил SEO-марафон, в CRM происходила параллельная революция. За четыре дня - с 31 марта по 3 апреля - мы построили полный цикл автоматизаций.
День 1 (понедельник). Написаны логические классы для Action Bots. Это ядро: определение триггеров, условий и действий. Какой ивент запускает бота? Какое условие проверяем? Что делаем?
День 2 (вторник). Внедрён брокер сообщений (RabbitMQ). Автоматизации работают асинхронно: создание лида кидает событие в очередь, робот подхватывает и выполняет действия. Без брокера всё было бы синхронным - API зависал бы на каждом триггере.
День 3 (среда). API автоматических ботов завершён и передан на вёрстку фронтенда. Параллельно в data_service добавлены новые enum-ы для типов пользователей и убран lazy="selectin" из relationship-ов (урок, который мы выучили: selectin создаёт N+1 запросов на каждом чтении).
День 4 (четверг). Визуальный редактор автоматизаций в frontend_platform. Документация всех эндпоинтов. Багфиксы (неправильный ивент при обновлении нод, нейминг). Полировка UI/UX.
Четыре дня - от первого класса до рабочего UI с документацией. Это стало возможным потому что архитектура CRM уже была готова: модели, API-паттерны, фронтенд-компоненты. Новая фича ложилась на существующий фундамент. Тот же принцип, что и с SEO: инфраструктура определяет скорость.

Каждая из автоматизаций позже стала темой для статьи: автоматизация продаж через CRM, ИИ-бот для бизнеса. Продукт и контент начали подпитывать друг друга.
Clubator: теги, квизы и реферальные цепочки
Pet-проект Clubator - платформа для клубов по подписке - тоже не стоял на месте. Пять коммитов, три значимые фичи:
Универсальная система тегов + Tally-квизы. Каждый подписчик клуба теперь получает теги на основе ответов в квизе. Tally (конструктор форм) отправляет webhook, Clubator разбирает ответы и навешивает теги. Это основа для сегментации: разным группам - разный контент.
Реферальные дожимные цепочки. Когда подписчик делится реферальной ссылкой, получатель попадает в автоматическую цепочку сообщений. Первый шаг отправляется мгновенно (отдельный коммит - «мгновенная отправка первого шага»). Дальше - серия дожимных сообщений с нарастающим давлением.
Безопасность Tally-вебхуков. Начали с глобального секрета (один ключ на все клубы) - быстро поняли ошибку. Переделали на per-club secret: каждый клуб имеет свой ключ верификации. Заодно обнаружили, что Tally подписывает вебхуки в base64, а не hex - ещё один коммит на фикс.
Эти фичи позже мигрировали в идеи для основной платформы. Тот же паттерн, что мы описывали в статье про архитектуру Botseller: pet-проект как песочница для экспериментов.

Три статьи, которые мы успели написать
Между SEO-фиксами и CRM-автоматизациями мы опубликовали три статьи:
-
MAX мессенджер для бизнеса - статья про новый российский мессенджер (бывший VK Teams). Инфоповод: MAX только запустился, конкуренция за ключевые слова минимальная. Классический пример ситуативного контента - писать надо сейчас, пока тема горячая.
-
Купить лиды для бизнеса - коммерческая статья про перехват клиентов. Long-tail запрос с высоким коммерческим интентом. Человек, который ищет «купить лиды» - готов платить. Тот же подход мы позже применили в статье про конструктор ботов - коммерческий интент + сравнительный формат.
-
Кейс: ИИ-бот для турагентства - первый кейс внедрения. Реальная история, реальные цифры. E-E-A-T в чистом виде: опыт (Experience) подтверждён конкретным результатом.
Три статьи на фоне 42 SEO-коммитов - капля в море. Но каждая из них уже ложилась на правильный фундамент: Schema.org разметка, WebP-картинки, SSR, внутренние ссылки. Контент, опубликованный после SEO-аудита, индексируется быстрее и ранжируется выше.

Был - стал: до и после недели 139
| Метрика | До (29 марта) | После (5 апреля) |
|---|---|---|
| Schema.org сущностей | 0 | 6 типов (Organization, BlogPosting, FAQPage, ContactPage, AggregateRating, SiteNav) |
| SSR-компонентов | ~10 | 31 (+21) |
| Вес картинок блога | 50 МБ | 6.7 МБ (-87%) |
| Битых внутренних ссылок | 22 | 0 |
| llms.txt | Нет | 62 КБ |
| CRM-автоматизаций | 0 | 4 типа нод + визуальный редактор |
| Clubator фич | Базовые | +теги, +квизы, +реферальные цепочки |
| Коммитов за неделю | - | 60+ (все репозитории) |

Цифры недели 139
| Метрика | Значение |
|---|---|
| Коммитов в sitebs | 42 |
| Коммитов в CRM | 12 |
| Коммитов в Clubator | 5 |
| Schema.org типов внедрено | 6 |
| Компонентов переведено на SSR | 21 |
| Размер картинок после оптимизации | 6.7 МБ (-87%) |
| Битых ссылок исправлено | 22 |
| Новых статей | 3 |
| Дней от первого класса до UI автоматизаций | 4 |
Урок: инфраструктура определяет скорость
Главный вывод недели 139: невидимая работа определяет видимый результат. 42 коммита в SEO-инфраструктуру - это нулевой трафик в моменте. Ни один из этих коммитов не привёл ни одного посетителя. Но без них контент-машина недели 140 работала бы вполсилы.
Schema.org не приводит клиентов. Но без неё Google не покажет ваш FAQ в расширенных результатах. WebP-оптимизация не продаёт продукт. Но без неё Core Web Vitals будут красными, и Google задвинет вас ниже конкурента с зелёными показателями. SSR не создаёт контент. Но без него поисковый бот видит пустые страницы.
Тот же принцип в CRM: четыре дня на автоматизации - это инвестиция. Каждый клиент, который настроит Action Bot, будет экономить часы ручной работы. Но чтобы это случилось, нужен фундамент: логические классы, брокер сообщений, API, визуальный редактор, документация.

Если вы строите SaaS - не пропускайте «невидимые» недели. Они определяют всё, что будет потом. Мы подробно разбирали этот принцип в статье про внедрение ИИ-ассистента - сначала фундамент, потом масштабирование. Попробуйте начать с быстрого старта, чтобы увидеть, как выглядит продукт, построенный на таком фундаменте.
В следующем выпуске ретроспективы - неделя 138: что происходило, когда мы только начинали думать о контент-стратегии, и почему первые попытки написать статью провалились.

Это серия «Ретроспектива Botseller» - путешествие от первого коммита до рабочего продукта. Читайте в любом порядке. Подписывайтесь на Telegram-канал, чтобы не пропустить новые выпуски.
FAQ
Зачем делать SEO-аудит самостоятельно, а не нанимать агентство?
Для стартапа на ранней стадии собственный аудит эффективнее по трём причинам: вы лучше знаете свой продукт (агентство потратит неделю на изучение), вы можете исправлять баги в реальном времени (без цикла «отчёт → ТЗ → разработчик»), и вы учитесь - знания остаются в команде, а не в PDF-отчёте.
Что даёт Schema.org разметка для стартапа?
Schema.org помогает поисковику понять не просто текст, а сущности: кто автор, какая организация, какие вопросы раскрыты. Практический эффект - расширенные сниппеты в выдаче (FAQ, рейтинги, контакты), которые увеличивают CTR в 2-3 раза по сравнению с обычной ссылкой.
Стоит ли конвертировать PNG в WebP?
Однозначно да. В нашем случае - минус 87% веса (с 50 до 6.7 МБ). WebP поддерживается всеми современными браузерами. Единственное исключение - Telegram-превью (OG image), для которого мы используем JPEG-фоллбэк через отдельный API-прокси.
Что такое llms.txt и нужен ли он моему сайту?
llms.txt - текстовый файл с описанием продукта, оптимизированный для AI-краулеров. Если ваш продукт B2B или SaaS - да, нужен. AI-поисковики (ChatGPT, Perplexity) используют его для формирования ответов. Без llms.txt AI может галлюцинировать или вовсе не знать о вашем продукте.
Можно ли построить CRM-автоматизацию за 4 дня?
Можно, если фундамент уже готов. В нашем случае архитектура CRM (модели, API-паттерны, компоненты фронтенда) была отработана за предыдущие месяцы. Новая фича ложилась на существующие абстракции. Без фундамента те же 4 дня превратились бы в 4 недели.
Зачем переносить компоненты на SSR для SEO?
Поисковые боты (Googlebot, Bingbot) не всегда исполняют JavaScript. Компонент с 'use client' без серверного fallback может отрендериться пустым div-ом для бота. SSR гарантирует: контент есть в HTML сразу, до загрузки JS. Для SEO-важных элементов (FAQ, описания, навигация) это критично.
Как Speakable-разметка помогает в продвижении?
Speakable указывает голосовым ассистентам (Google Assistant, Alexa, Siri), какие фрагменты текста подходят для озвучивания. Когда пользователь спрашивает голосом «что такое CRM-автоматизация», ассистент может процитировать именно ваш speakable-фрагмент. Пока эта технология на раннем этапе, но ранние последователи получают преимущество.



