Часть 7 из 22

Картинки, шрифты и скрипты: классическое трио производительности

Эта тема — про производительность. Картинки как канал трафика — alt, поиск по изображениям, схема ImageObject — разобраны в Image SEO.

Картинки. next/image даёт lazy loading, AVIF/WebP и правильные размеры — но только при честной настройке:

import Image from "next/image";

// LCP-картинка: priority, без lazy loading
<Image
  src="/hero.jpg"
  alt="Команда работает над роадмапом продукта"
  width={1200}
  height={630}
  priority
  sizes="(max-width: 768px) 100vw, 1200px"
/>;
  • priority — только на LCP-картинке (обычно hero). Всё ниже первого экрана остаётся lazy.
  • sizes должен соответствовать вашей вёрстке — без него мобильные устройства качают файлы десктопного размера.
  • alt описывает картинку и для скринридеров, и для поиска по картинкам. Пустой alt="" — только для чисто декоративных изображений.

Шрифты. next/font селф-хостит Google Fonts, убирает сторонний запрос и сам ставит font-display: swap:

import { Inter } from "next/font/google";

const inter = Inter({ subsets: ["latin", "cyrillic"], display: "swap" });

Скрипты. Каждый сторонний скрипт конкурирует с вашим контентом за главный поток:

import Script from "next/script";

// Аналитика: после того как страница стала интерактивной
<Script src="https://www.googletagmanager.com/gtm.js?id=GTM-XXX" strategy="afterInteractive" />

// Чат-виджеты, тепловые карты: только когда браузер простаивает
<Script src="https://widget.example.com/chat.js" strategy="lazyOnload" />

Аудитируйте, что грузите: снимите трейс в Lighthouse и поставьте под сомнение каждый скрипт, не критичный для страницы. Тег-менеджер с забытыми пикселями — самый частый убийца INP, который мы видим на аудитах.

Чеклист:

  • У hero-картинки есть priority, корректный sizes и осмысленный alt
  • Все шрифты через next/font, никакого внешнего font-CSS
  • Сторонние скрипты на afterInteractive или lazyOnload
  • Картинки не вызывают сдвигов вёрстки (width/height всегда заданы)

01—22

Все темы гайда

  1. 01Стратегия рендеринга: что на самом деле видит краулер?
  2. 02Metadata API: тайтлы, описания и паттерн с шаблоном
  3. 03Canonical и hreflang: одна страница — один адрес
  4. 04Open Graph и динамические OG-картинки
  5. 05sitemap.ts и robots.ts: файловые конвенции вместо рукописного XML
  6. 06Структурированные данные: JSON-LD, который приносит rich results
  7. 07Картинки, шрифты и скрипты: классическое трио производительности
  8. 08Core Web Vitals: три числа, которые измеряет Google
  9. 09Редиректы, 404 и коды ответов
  10. 10Кеширование и свежесть контента
  11. 11AEO/GEO: как попасть в ответы ChatGPT, Perplexity и Google AI Overviews
  12. 12Мониторинг: SEO — это цикл, а не задача на запуск
  13. 13Траст и E-E-A-T: как сделать сайт заслуживающим доверия
  14. 14Image SEO: как превратить картинки в трафик
  15. 15Внутренняя перелинковка и архитектура сайта
  16. 16Поисковые интенты: страницы под то, что люди реально ищут
  17. 17Programmatic SEO в Next.js: страницы в масштабе без спама
  18. 18SEO-миграция: переезд на Next.js без потери трафика
  19. 19Пагинация и фасетная навигация без раздувания индекса
  20. 20Доступность и SEO: одна работа — две награды
  21. 21Угасание контента: обновить, склеить или удалить
  22. 22Off-page для разработчиков: ссылки, которые не покупают

Нужно, чтобы это сделали за вас?

Я провожу аудит и чиню техническое SEO на сайтах Next.js — индексация, скорость, hreflang и видимость в AI.

Услуга «Техническое SEO»