Технический блог

SVG против PNG: батл производительности

Почему векторная графика стала стандартом для современных интерфейсов и как это влияет на ваши метрики Core Web Vitals.

Алексей Громов · Lead Frontend Developer · 12.10.2023
Сравнение структуры SVG и PNG файлов в редакторе

Сравнение размеров файлов

В мире, где каждый килобайт влияет на конверсию, выбор формата графики — это не вопрос эстетики, а вопрос математики. Традиционные растровые форматы (PNG, JPG) хранят информацию о каждом пикселе. Если вы увеличите изображение в 2 раза, вес файла вырастет в 4 раза.

Векторная графика (SVG) оперирует математическими формулами: координатами, кривыми Безье и цветами. Это делает SVG идеальным для интерфейсов.

Бенчмарк: Иконка "User" (24x24px)

SVG (без сжатия)
1.2 KB
Масштабируется бесконечно
PNG (2x Retina)
8.4 KB
Размывается при зуме

Разница в 7 раз. Если ваш проект использует 100 иконок, переход на PNG добавляет лишние 720 KB к первому запросу, что критично для мобильных сетей 3G/LTE.

Влияние на Core Web Vitals

Google перешел на ранжирование сайтов с учетом пользовательского опыта (Page Experience). Графика — главный виновник плохих показателей LCP (Largest Contentful Paint) и CLS (Cumulative Layout Shift).

LCP (Время загрузки)

SVG рендерится мгновенно, так как браузеру не нужно декодировать битовую карту. Это снижает время отрисовки первого контента на 200-500мс, что критично для достижения зеленой зоны (< 2.5s).

CLS (Сдвиг макета)

С PNG часто возникают проблемы с "прыгающим" контентом, если не заданы жесткие размеры. SVG позволяет задать точные пропорции через viewBox, полностью исключая сдвиг элементов при загрузке.

FCP (Первый кадр)

Меньший размер HTML/CSS-бандла при инлайн-вставке SVG (inline SVG) означает быстрее парсинг DOM-дерева. Браузер тратит меньше ресурсов на загрузку внешних ресурсов.

Кросс-браузерная совместимость

Мифы о том, что SVG плохо работает в старых браузерах, остались в 2015 году. Сегодня SVG поддерживается всеми современными браузерами на уровне 99.8% пользователей.

  • Chrome, Edge, Safari, Firefox (100% поддержка)
  • Android Webview и iOS Safari
  • Поддержка CSS-анимаций внутри SVG

Единственная проблема — Internet Explorer 11, но поддержка которого уже не является обязательной для большинства коммерческих проектов.

Поддержка браузеров (2023)

Chrome / Edge 100%
Safari / iOS 99.9%
Firefox 100%
IconKit Pro

Рекомендации для оптимизации

Как получить максимальную производительность, не усложняя рабочий процесс дизайнеров и разработчиков.

SVG Sprites & Symbol

Вместо сотен HTTP-запросов на иконки, используйте технику SVG Sprites. IconKit Pro автоматически собирает все ваши активы в один файл, который подключается один раз.

Автоматический SVGO

Файлы из Illustrator или Figma часто содержат лишний мусор. Наши пайплайны автоматически запускают SVGO, удаляя метаданные и сокращая код на 50%.

currentColor вместо HEX

Настраивайте иконки так, чтобы они наследовали цвет текста. Это позволяет менять цвет SVG через CSS-классы родителя, не переписывая код самой иконки.

Единая точка истины

Используйте IconKit Pro для генерации готовых компонентов React/Vue/Svelte, которые уже содержат оптимизированный SVG-код. Никаких ручных правок.

Готовы ускорить свой сайт?

Попробуйте IconKit Pro бесплатно и автоматизируйте оптимизацию графики уже сегодня.

Начать работу бесплатно