Ресурсы
Ресурсы — изображения, шрифты, скрипты — напрямую влияют на LCP и CLS. Правильная стратегия загрузки, форматы и resource hints ускоряют первый экран без изменений в логике приложения.
Изображения
MUST
- Современные форматы — WebP или AVIF с fallback на JPEG/PNG.
- Retina — размер ресурса не превышает 2x от отображаемого размера.
- Адаптивность — обязательно использовать атрибуты
srcset/sizes. - LCP-изображение —
fetchpriority="high", запрещёнloading="lazy". - Lazy loading — для изображений below the fold; место резервируется для предотвращения CLS.
- Явные размеры —
widthиheightобязательны, либоaspect-ratioдля защиты от CLS.
FORBIDDEN
loading="lazy"для изображений первого экрана (LCP).- Изображения без указания размеров — приводит к layout shift (CLS).
Next.js — next/image
// ✅ LCP-изображение — priority, без lazy
import Image from 'next/image';
export function Hero() {
return (
<Image
src="/hero.avif"
alt="Product hero"
width={1200}
height={640}
priority // fetchpriority="high", без lazy
/>
);
}
// ✅ Изображение below the fold — lazy по умолчанию
<Image src="/product.webp" alt="Product" width={400} height={300} />;
Astro — astro:assets
---
import { Image } from 'astro:assets';
import hero from '../assets/hero.jpg';
---
<Image src={hero} alt="Product hero" width={1200} height={640} format="webp" />