Перейти к содержимому
  • кейс
  • архитектура
  • производительность
  • SEO

Блог за три дня: что внутри и зачем было так заморачиваться

· 7 мин · 1 просмотр ·

Блог можно было завести за вечер на готовой платформе. Мы за три дня сделали свой — с Lighthouse 100, автопостингом в соцсети и оптимизацией под поисковики и нейросети. Рассказываю, что внутри и почему это эксперимент, результаты которого я покажу через полгода.

Блог за три дня: что внутри и зачем было так заморачиваться — Lighthouse 100
// содержание

Завести блог можно за вечер. Tilda, Telegraph, vc.ru, просто Telegram-канал: выбирай любую площадку, пиши и публикуй. Бесплатно или почти бесплатно.

Мы пошли другим путём и сделали свой: сайт, API, админку, автопостинг в соцсети. От пустых репозиториев до работающего сайта прошло три дня.

Зачем так заморачиваться? Мы постоянно говорим клиентам, что качество разработки напрямую влияет на результат: скорость сайта, позиции в поиске, заявки. Этот блог — способ проверить наш тезис на себе, публично. Через полгода я покажу цифры, и станет видно, были мы правы или нет.

Почему не готовая площадка

Причин несколько, и все они важны.

  • Трафик на свой домен. Статья на vc.ru или в Telegraph работает на чужую площадку. Статья на pisarevvlad.ru работает на нас: каждая ссылка, каждый переход из поиска укрепляет наш сайт.
  • Полный контроль над SEO. Мы сами решаем, как выглядит страница для поисковика и нейросети, какие данные в ней размечены и как быстро она грузится. На платформе это решают за вас.
  • Нужные нам функции. Публикация по расписанию, автопостинг анонсов в несколько соцсетей, раздел с видео, свой счётчик просмотров. Ни одна платформа не даёт всего этого сразу.
  • Витрина команды. Главная причина. Мы можем сколько угодно рассказывать, что делаем быстрые и надёжные продукты. А можно просто показать: вот сайт, на котором вы читаете эту статью, проверьте сами.

Что внутри

Блог состоит из трёх частей, и у каждой своя задача:

  • Сайт — то, что видите вы. Он отдаёт готовые страницы, быстро открывается и правильно читается поисковиками.
  • API — сердце блога. Здесь хранятся статьи, картинки и ролики, здесь же работает публикация по расписанию и отправка анонсов в соцсети.
  • Админка — рабочее место автора: редактор статей, видео, статусы постов в соцсетях.

Всё это живёт в Yandex Cloud. Сайт и API работают на одной скромной виртуальной машине: 2 ядра и 4 ГБ памяти. Для блога этого с запасом. База данных — управляемая MySQL, с автоматическими резервными копиями. Картинки, видео и статические файлы лежат в Object Storage и отдаются через CDN, а админка вообще не требует сервера: это статические файлы в хранилище.

Схема блога в Yandex Cloud: читатель получает картинки, видео и статику через CDN из Object Storage, а страницы — с сайта на Next.js. Сайт и API на Symfony работают на одной виртуальной машине с 2 ядрами и 4 ГБ памяти. API хранит данные в Managed MySQL и отправляет анонсы в Telegram и Max. Админка — статические файлы, которые обращаются к API.
Как устроен блог

Для тех, кому интересны технологии:

ЧастьТехнологии
СайтNext.js 16, React 19, серверный рендеринг
APISymfony 8.1 на PHP 8.5, Doctrine, очереди Symfony Messenger
АдминкаReact 19, Vite, редактор на CodeMirror
ДанныеManaged MySQL 8.4, Object Storage, Cloud CDN
Картинки и видеоНарезка в AVIF и WebP под размеры экранов, перекодирование видео через ffmpeg
Доставка кодаJenkins: тесты, сборка, выкладка с проверкой и автоматическим откатом

Скорость

Скорость сайта — первое, что замечает и читатель, и поисковик. Мы проверяем её Lighthouse, стандартным инструментом Google.

Результат: 100 из 100 по производительности на большинстве страниц. Исключение — страницы статей с крупной обложкой на мобильных: там 94–95. Причина понятна: мобильный тест эмулирует медленный телефон и слабую сеть, а большая картинка в первом экране весит заметно больше текста. Мы решили, что ради красивой цифры убирать обложки не стоит.

За счёт чего так быстро:

  • Готовые страницы. Сайт отдаёт браузеру уже собранный HTML, а не пустую заготовку, которую надо долго наполнять скриптами.
  • Картинки под каждый экран. Каждая загруженная картинка нарезается на несколько размеров в современных форматах AVIF и WebP. Телефон получает маленькую версию, большой монитор — крупную, и никто не качает лишнего.
  • CDN. Картинки, видео и статические файлы отдаются с серверов CDN, ближайших к читателю.
  • Ничего лишнего. На сайте нет тяжёлых виджетов, сторонних трекеров и десятков подключаемых скриптов. Даже счётчик просмотров у нас свой.

SEO и оптимизация под нейросети

Сегодня статью находят не только через поиск Яндекса и Google, но и через ответы нейросетей: Алисы, ChatGPT и других. Мы готовили сайт и к тому, и к другому:

  • Чистая разметка. Заголовки, абзацы, списки и таблицы размечены по смыслу, поэтому и поисковик, и нейросеть понимают структуру текста.
  • Структурированные данные. Каждая страница сообщает машинам, что на ней: статья, автор, компания, видео, путь по разделам. Поисковики используют это для расширенных сниппетов, нейросети — чтобы понять, кто и о чём пишет.
  • Sitemap и RSS. Поисковики и агрегаторы сразу узнают о новых статьях.
  • Превью для соцсетей. Для каждой статьи генерируется картинка-превью, поэтому ссылка в мессенджере выглядит аккуратно.
  • Открытость. Сайт открыт для поисковых роботов и краулеров нейросетей. Мы хотим, чтобы нас читали и цитировали.

Одна статья — несколько площадок

Писать статью удобнее всего в обычном Markdown, в папке рядом с картинками. Дальше всё происходит само:

  1. Папка упаковывается в архив, и одна команда загружает её на сервер. Текст проверяется, картинки нарезаются под разные экраны.
  2. Вторая команда ставит статью на публикацию: сразу или на нужные дату и время.
  3. В назначенный момент статья появляется на сайте, а в Telegram-канал уходит анонс: обложка, заголовок, короткий текст, хештеги и кнопка «Читать».
Путь статьи: article.md с картинками проходит импорт с проверкой и нарезкой, затем публикацию сразу или по расписанию, после чего появляется на сайте, в Telegram, а скоро и в Max.
Путь статьи от Markdown до сайта и соцсетей

Пост в канале живёт вместе со статьёй: если я исправлю статью, пост можно обновить, а если сниму её с публикации, пост удалится. Следующим подключаем канал в Max, дальше — другие площадки. Для чтения прямо внутри мессенджеров у сайта есть облегчённая версия страниц.

Три дня до запуска

Как это выглядело по дням:

  • 1 ноября. Пустые репозитории. К вечеру — каркас всех трёх частей, тесты, вход в админку, первые спецификации.
  • 2 ноября. Статьи, редактор, публикация по расписанию, автопостинг в Telegram.
  • 3 ноября. Сайт на проде. Импорт статей из Markdown одной командой.
  • 6–8 ноября. Счётчик просмотров, раздел «Видео» с перекодированием роликов на сервере.
Хронология: 1 ноября — от пустых репозиториев к каркасу, 2 ноября — статьи, редактор и автопостинг в Telegram, 3 ноября — сайт на проде и импорт из Markdown, 6–8 ноября — счётчик просмотров и раздел «Видео».
Неделя разработки

Такой темп был бы невозможен без помощника: в разработке мне помогал ИИ-агент. Архитектура, решения и проверка результата — на мне, большая часть рутины — на нём. Как это устроено, почему я считаю, что без таких инструментов разработка скоро станет неконкурентной, и где ИИ всё ещё ошибается — расскажу в отдельной статье: «Почему разработка без AI-инструментов — путь в никуда».

Эксперимент: что покажу через полгода

Этот блог — публичная проверка тезиса «качество разработки окупается». Через полгода я опубликую отчёт с реальными цифрами:

  • посещаемость — сколько людей пришло и откуда;
  • позиции в Яндексе и Google по темам блога;
  • упоминания в ответах нейросетей — цитируют ли нас Алиса, ChatGPT и другие;
  • подписчики — цель 1000 суммарно по всем площадкам;
  • заявки — сколько клиентов пришло через блог.

Покажу как есть, даже если цифры окажутся скромнее, чем хотелось бы. Чтобы не пропустить отчёт и статью про ИИ в разработке, подписывайтесь на Telegram-канал. Скоро он появится и в Max.

// поделиться

  • Telegram
Владислав Писарев

Владислав Писарев

Технический директор в ИН-ЖИР. Помогаю компаниям строить надёжные продукты и команды. Обо мне

обсудить проект