купи-медцентр.рф: лендинг на Astro, который весит меньше одной фотографии

Год
2025
Стек
Astro, Инструменты Яндекса
Сайт
купи-медцентр.рф

Страница весит 57 КБ вместо 1,3 МБ: готовый HTML без фреймворка в браузере и картинки, которые Astro сам нарезает под размер экрана.

57КБ
было 1 356 КБ
вес страницы
Собственные файлы сайта на экране 1280 px, без счётчика Метрики и шрифтов Google: работающий сайт до и после оптимизации картинок, 15 сентября 2026
A
65КБ
было 1 344 КБ
картинки на телефоне
До оптимизации телефон получал те же JPG и PNG, что и компьютер, теперь — AVIF под свой экран
A
0КБ
JavaScript-фреймворка в браузере
Astro отдаёт готовый HTML; тема и меню — два коротких встроенных скрипта
B
купи-медцентр.рфкупи-медцентр.рф

Задача

Работающий бизнес выставили на продажу, и для объявления понадобился отдельный сайт. Не каталог и не блог — одна страница: что продаётся, ключевые цифры, почему это выгодно, и крупная кнопка звонка.

Такие ссылки открывают из объявлений и мессенджеров, чаще всего с телефона и на ходу. Значит, страница должна появляться сразу, даже на слабом мобильном интернете.

Первый экран

Что продаётся, где и почему стоит позвонить — всё на первом экране; номер телефона — в шапке, на телефоне — в менюЧто продаётся, где и почему стоит позвонить — всё на первом экране; номер телефона — в шапке, на телефоне — в меню
Что продаётся, где и почему стоит позвонить — всё на первом экране; номер телефона — в шапке, на телефоне — в меню

Почему Astro

Готовый HTML вместо приложения. Astro собирает сайт заранее: в браузер уходит обычная страница, а не JavaScript, который строит её на месте. HTML этого сайта после сжатия весит 5 КБ, стили — 6 КБ.

Острова — когда они нужны. Если на странице понадобится калькулятор или форма на React, Vue или Svelte, Astro подключит такой компонент отдельным «островом», и его код загрузится только для этого кусочка страницы. Здесь не понадобилось ни одного: переключатель темы и мобильное меню — два коротких встроенных скрипта.

Быстро собрать. Вёрстка — Tailwind CSS 4 через Vite, HTML дополнительно сжимается при сборке. Сайт вырос из готовой темы, переделанной под задачу, и собирается за пару секунд.

Картинки: 1,3 МБ → 46 КБ

Первая версия страницы весила 1,36 МБ, и почти всё это были три картинки: фотография на первом экране в JPG и два PNG с прозрачным фоном, один из них — 838 КБ. Телефон получал те же файлы, что и большой монитор.

Теперь картинки подключены через встроенный в Astro компонент <Picture>. При сборке он сам нарезает каждую в нескольких размерах, в AVIF и WebP, сохраняет прозрачность и прописывает браузеру, какой размер нужен для какого экрана. Первая фотография грузится в первую очередь, остальные — только когда до них докрутят. На компьютере все три картинки теперь весят 46 КБ, на телефоне — 65 КБ.

Одна картинка — много размеров

---
import { Picture } from "astro:assets";
import photo from "../../assets/images/photo.png";
---

<!-- при сборке: 3 размера × AVIF и WebP, прозрачность сохраняется -->
<Picture src={photo} formats={["avif", "webp"]} fallbackFormat="webp"
  widths={[360, 540, 806]} sizes="(max-width: 640px) 300px, 360px"
  alt="…" />

Размеры и форматы описаны один раз в разметке; файлы Astro генерирует сам при каждой сборке.

Звонки и аналитика

Цель страницы — звонок, поэтому номер телефона стоит в шапке (на телефоне — в меню) и крупной кнопкой в финальном блоке, и по нажатию сразу начинается вызов. Яндекс Метрика считает не только визиты, но и нажатия на номер, так что видно, сколько людей дошло до звонка.