RUEN

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

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

Разбор этой статьи

AI-подкаст Botseller42 коммита превратили Botseller в SEO-машину
0:00 / 0:00

Эту тему разобрали в подкасте. Слушай параллельно с чтением.

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

Я Дмитрий Дьяконов, основатель Botseller AI. Это второй выпуск серии «Ретроспектива» - бортжурнал в прошлое. Сегодня разбираем неделю, которая превратила сайт из технически неподготовленного в SEO-ready.

Айсберг проекта: над водой 38 статей недели 140, под водой 42 SEO-коммита недели 139

Что было к началу недели: сайт без 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 статей в таком состоянии - это был бы контент в вакууме. Сначала - фундамент.

Диагностика сайта: 50 МБ картинок, 21 слепой компонент, ноль структурированных данных, 22 битые ссылки

SEO-аудит: 42 коммита за 7 дней

Мы не нанимали SEO-агентство. Не покупали аудит за 300 тысяч. Вместо этого - методичный проход по каждому элементу сайта с чеклистом. 42 коммита в репозиторий sitebs за одну неделю - это не героизм, а системный подход: один фикс - один коммит - одно ревью.

Разбивка по дням:

ДеньФокусКоммитов
Среда, 2 апреляSSR 21 компонента, Schema @id, trackpad UX, CI selective build6
Четверг, 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%) - одна операция с измеримым результатом.

Системный подход: один баг равен одному коммиту и одному ревью, распределение 42 коммитов по дням недели

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 начал понимать наш сайт как единую сущность, а не набор разрозненных страниц.

Entity Graph сайта: Organization в центре, FAQPage, Founder, BlogPosting и ContactPage связаны через @id

Производительность: 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 с разными размерами.

Производительность: диета картинок на 87 процентов и стабилизация CLS через width и height

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

Рендеринг для ботов: client-side отдаёт пустоту и SEO failure, server-side даёт мгновенную индексацию

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 на релевантные запросы.

Подготовка к AI-поиску: llms.txt на 62 КБ, Speakable-разметка и SiteNavigationElement для Bing

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: инфраструктура определяет скорость.

Архитектура автоматизаций: Event, Trigger, Message Broker RabbitMQ, Worker и Action

Каждая из автоматизаций позже стала темой для статьи: автоматизация продаж через CRM, ИИ-бот для бизнеса. Продукт и контент начали подпитывать друг друга.

Clubator: теги, квизы и реферальные цепочки

Pet-проект Clubator - платформа для клубов по подписке - тоже не стоял на месте. Пять коммитов, три значимые фичи:

Универсальная система тегов + Tally-квизы. Каждый подписчик клуба теперь получает теги на основе ответов в квизе. Tally (конструктор форм) отправляет webhook, Clubator разбирает ответы и навешивает теги. Это основа для сегментации: разным группам - разный контент.

Реферальные дожимные цепочки. Когда подписчик делится реферальной ссылкой, получатель попадает в автоматическую цепочку сообщений. Первый шаг отправляется мгновенно (отдельный коммит - «мгновенная отправка первого шага»). Дальше - серия дожимных сообщений с нарастающим давлением.

Безопасность Tally-вебхуков. Начали с глобального секрета (один ключ на все клубы) - быстро поняли ошибку. Переделали на per-club secret: каждый клуб имеет свой ключ верификации. Заодно обнаружили, что Tally подписывает вебхуки в base64, а не hex - ещё один коммит на фикс.

Эти фичи позже мигрировали в идеи для основной платформы. Тот же паттерн, что мы описывали в статье про архитектуру Botseller: pet-проект как песочница для экспериментов.

Песочница R&D: три новые фичи Clubator - теги с квизами, реферальные цепочки и безопасность вебхуков

Три статьи, которые мы успели написать

Между SEO-фиксами и CRM-автоматизациями мы опубликовали три статьи:

  1. MAX мессенджер для бизнеса - статья про новый российский мессенджер (бывший VK Teams). Инфоповод: MAX только запустился, конкуренция за ключевые слова минимальная. Классический пример ситуативного контента - писать надо сейчас, пока тема горячая.

  2. Купить лиды для бизнеса - коммерческая статья про перехват клиентов. Long-tail запрос с высоким коммерческим интентом. Человек, который ищет «купить лиды» - готов платить. Тот же подход мы позже применили в статье про конструктор ботов - коммерческий интент + сравнительный формат.

  3. Кейс: ИИ-бот для турагентства - первый кейс внедрения. Реальная история, реальные цифры. E-E-A-T в чистом виде: опыт (Experience) подтверждён конкретным результатом.

Три статьи на фоне 42 SEO-коммитов - капля в море. Но каждая из них уже ложилась на правильный фундамент: Schema.org разметка, WebP-картинки, SSR, внутренние ссылки. Контент, опубликованный после SEO-аудита, индексируется быстрее и ранжируется выше.

Контент на твёрдом фундаменте: MAX мессенджер, купить лиды и кейс турагентства поверх технической базы

Был - стал: до и после недели 139

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

Трансформация за неделю: Schema.org с 0 до 6 типов, SSR с 10 до 31 компонента, картинки минус 87 процентов

Цифры недели 139

МетрикаЗначение
Коммитов в sitebs42
Коммитов в CRM12
Коммитов в Clubator5
Schema.org типов внедрено6
Компонентов переведено на SSR21
Размер картинок после оптимизации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, визуальный редактор, документация.

Инфраструктура определяет скорость: Schema.org не приводит клиентов, но без неё машина работает вполсилы

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

В следующем выпуске ретроспективы - неделя 138: что происходило, когда мы только начинали думать о контент-стратегии, и почему первые попытки написать статью провалились.

Что дальше: ретроспектива 138 про провалы первых попыток контент-стратегии, документация и Telegram-канал


Это серия «Ретроспектива 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-фрагмент. Пока эта технология на раннем этапе, но ранние последователи получают преимущество.