Insights / Технические материалы
Улучшение сайта Astro: измерение скорости, SEO и доступности
Измерение CSS, шрифтов, изображений и внешних скриптов, улучшение SEO и удобства. Мобильные 99 баллов PageSpeed от 25 марта 2026 показывают выбор мер и повторных измерений.

Содержание
Дополнение от 26 сентября 2026 года: Эта статья фиксирует улучшения на 25 марта 2026 года. Тогда 99 баллов считались практическим пределом, но повторный замер 29 марта показал 100. Это результаты отдельных измерений, а не текущие оценки. Документация Google объясняет колебания.
Выбор первого улучшения по объёму передачи страницы
Измерьте главную и типовую статью в одинаковых условиях, сравнив CSS, шрифты, изображения и внешний JavaScript. Измените один крупный компонент, повторите измерение, проверьте формы и поиск. Автоматические 100 баллов не доказывают полное соответствие WCAG; отдельно проверяйте клавиатуру и экранный диктор.
PageSpeed Insights:Лабораторные измерения и реальные данные
Введение
Официальный сайт Acecore, перезапущенный в марте 2026 года, был создан на Astro 6 + UnoCSS + Cloudflare Pages. Однако только что запущенный сайт находился в лучшем случае на уровне «работает» — с пространством для улучшений по производительности, SEO, доступности и UX.
Эта статья подводит итог пути через более чем 150 улучшений для достижения PageSpeed Insights Mobile 99 и идеальных 100 баллов по всем метрикам на десктопе.
Задача PageSpeed Mobile 99
Первое, что нужно сообщить: достижение высокой оценки PageSpeed Insights на мобильных значительно сложнее, чем можно ожидать.
Мобильная симуляция Lighthouse
PageSpeed Insights запускает Lighthouse под капотом, применяя следующие ограничения для мобильных тестов:
| Параметр | Значение |
|---|---|
| Скорость скачивания | ~1,6 Мбит/с (медленный 4G) |
| Скорость загрузки | ~0,75 Мбит/с |
| Задержка | 150 мс (RTT) |
| CPU | Замедление в 4 раза |
Это означает, что даже страница, загружающаяся за 1 секунду на оптоволокне, будет загружаться 5–6 секунд при симуляции Lighthouse. Загрузка 200 КиБ CSS вызывает примерно 1 секунду блокировки на медленном 4G.
Нелинейная шкала оценок
Оценки PageSpeed не линейны:
- 50 → 90: Достижимо базовыми оптимизациями (сжатие изображений, удаление ненужных скриптов)
- 90 → 95: Требует стратегического подхода к доставке CSS, шрифтов и изображений
- 95 → 99: Тюнинг на уровне миллисекунд. Решения между инлайнингом CSS и внешними файлами становятся критичными
- 99 → 100: Зависит от времени ответа внешних CDN и собственной погрешности измерений Lighthouse. Крайне сложно достигать стабильно для сайтов с AdSense или GA4
Разброс оценок
Даже для одного и того же сайта оценки могут колебаться на 2–5 баллов между измерениями. Причины:
- Время ответа сервисов преобразования изображений (например, Cloudflare Images)
- Статус кэша пограничных серверов Cloudflare Pages
- Собственная погрешность измерений Lighthouse
По этой причине целью должна быть «стабильно высокая оценка при повторных измерениях», а не «один раз набрать 100».
Итоговые оценки
Несмотря на эти трудности, мы смогли стабильно достигать следующих оценок:
| Метрика | Мобильные | Десктоп |
|---|---|---|
| Производительность | 99 | 100 |
| Доступность | 100 | 100 |
| Лучшие практики | 100 | 100 |
| SEO | 100 | 100 |
Четыре столпа улучшений
Улучшения были организованы в четыре основные категории, каждая из которых подробно описана в отдельных статьях.
1. Производительность
Оптимизация производительности внесла наибольший вклад в достижение Mobile 99. Мы систематически устраняли узкие места: стратегия доставки CSS (инлайн против внешних файлов), самостоятельный хостинг шрифтов, оптимизация адаптивных изображений и отложенная загрузка AdSense/GA4.
Три наиболее значимых изменения:
- Вынос CSS во внешний файл: Переход от инлайнинга 190 КиБ CSS к внешнему файлу сократил размер передачи HTML до 91%
- Исправление несоответствия имени шрифта:
@fontsource-variable/noto-sans-jpрегистрирует имя шрифтаNoto Sans JP Variable, но CSS ссылался наNoto Sans JP— это несоответствие было обнаружено и исправлено - Адаптивные изображения: Установлены
srcset+sizesдля всех изображений для подачи изображений соответствующего размера на мобильных
2. SEO
Для поддержки расширенных результатов Google мы реализовали 7 типов структурированных данных JSON-LD. В сочетании с OGP-мета-тегами, каноническими URL, оптимизацией sitemap и улучшениями RSS-ленты мы создали основу для точной передачи структуры сайта поисковым системам.
3. Доступность
Оценка PageSpeed Accessibility 100 была достигнута прохождением автоматизированных тестов axe DevTools и Lighthouse. Это включало добавление aria-hidden к декоративным иконкам (более 30 случаев), уведомления screen reader для внешних ссылок, исправления контрастности (text-slate-400 → text-slate-500) и глобальное применение стилей focus-visible — стабильная, постепенная работа.
4. UX и качество кода
Мы устранили проблемы поломки скриптов, вызванные View Transitions (ClientRouter), во всех компонентах и внедрили полнотекстовый поиск с Pagefind. На стороне кода была улучшена типобезопасность TypeScript и централизованы константы (URL соцсетей, ID рекламы, GA4 ID объединены в константы SITE), что значительно повысило поддерживаемость.
Технологический стек
| Технология | Назначение |
|---|---|
| Astro 6 | Генерация статического сайта (архитектура zero-JS) |
| UnoCSS (presetWind3) | Utility-first CSS |
| Cloudflare Pages | Хостинг, CDN, управление заголовками |
| @fontsource-variable/noto-sans-jp | Самостоятельный хостинг японского шрифта |
| Cloudflare Images | Преобразование изображений (автоконвертация AVIF/WebP) |
| Pagefind | Полнотекстовый поиск для статических сайтов |
Заключение
Достижение PageSpeed Insights Mobile 99 сводится к строгому следованию принципу «не отправляй то, что не нужно». Стратегия доставки CSS, самостоятельный хостинг шрифтов, оптимизация изображений, отложенная загрузка внешних скриптов — каждое из этих мер само по себе простое, но в совокупности они дают значительный эффект.
Параллельное улучшение SEO, доступности и UX позволяет достичь высоких оценок во всех четырёх категориях. Вместо того чтобы зацикливаться на 100, стремление к стабильным 95+ — более реалистичная цель.
Подробное описание каждой темы смотрите по ссылкам выше. Информацию о рабочем процессе улучшений и отражении изменений в коде также смотрите в статье Налоговый пример совместных записей решений с ИИ.
Процесс улучшений
Измерение
Выявление узких мест с помощью PageSpeed Insights и axe.
Анализ
Изучение разбивки оценки и определение наиболее эффективных улучшений.
Реализация
Внесение изменений по одному с подтверждением отсутствия ошибок сборки.
Повторное измерение
Повторное измерение после деплоя и валидация результатов цифрами.
До и после улучшений
До
- Оценка PageSpeed Mobile в районе 70
- Нет настроенных структурированных данных или OGP
- Нет поддержки доступности
- Скрипты ломаются при View Transitions
- Жёстко закодированные константы разбросаны по коду
После
- Mobile 99 / 100 / 100 / 100 (все метрики десктопа — 100)
- 7 типов структурированных данных + OGP + canonical полностью реализованы
- Улучшены контраст, aria, уведомления диктора и focus-visible
- Все компоненты совместимы с View Transitions
- Константы SITE, URL соцсетей и ID рекламы — централизованное управление
Связанные страницы
- Оптимизация производительностиКак достичь PageSpeed 99 с помощью стратегий доставки CSS, настроек шрифтов, адаптивных изображений и кэширования.
- SEO и структурированные данныеПрактическое руководство по реализации JSON-LD, OGP, sitemaps и RSS.
- ДоступностьПримеры для aria, контраста и форм; отдельно от проверки всех требований WCAG.
- UX и качество кодаПрактические подходы к подводным камням View Transitions, полнотекстовому поиску Pagefind и типобезопасности TypeScript.
Часто задаваемые вопросы
Можно ли получить 100 баллов в PageSpeed Insights на мобильных?
Да. Здесь зафиксированы 99 баллов на мобильных устройствах 25 марта 2026 года, а [повторный замер 29 марта](/insights/website-improvement-final-batch/) показал 100. Ни один из результатов не гарантирует сегодняшнюю оценку.
В каком порядке следует проводить улучшения?
Начните с оценки текущего состояния в PageSpeed Insights, затем устраняйте наиболее значимые проблемы первыми. Обычно рекомендуемый порядок: производительность → SEO → доступность.
Можно ли применить эти методы улучшения к другим сайтам на Astro?
Да. Стратегии доставки CSS, самостоятельный хостинг шрифтов, структурированные данные и улучшения доступности — это лучшие практики, применимые ко всем сайтам на Astro.
Использовался ли GitHub Copilot для улучшений?
Да. Практически все улучшения были выполнены в сотрудничестве с GitHub Copilot. Подробности описаны в статье «Рабочий процесс разработки с GitHub Copilot».