Знакомство с Lighthouse

Как мы видели в предыдущем разделе, Core Web Vitals фокусируются на аспектах пользовательского опыта через производительность загрузки (Largest Contentful Paint), интерактивность (First Input Delay) и визуальную стабильность (Cumulative Layout Shift).

В этом уроке мы сосредоточимся на том, как измерить Core Web Vitals с помощью симулированной среды под названием Lighthouse.

Примечание: В этом уроке мы будем использовать Chrome Dev Tools. Однако существует множество способов запуска Lighthouse.

Lighthouse работает, проводя серию проверок на предоставленном URL. На основе этих проверок он генерирует отчет о том, насколько хорошо страница показала себя. Если есть области, требующие улучшения, отчет предоставит рекомендации по их оптимизации.

Давайте рассмотрим два примера отчета Lighthouse, чтобы увидеть разницу между сайтом с хорошими показателями Core Web Vitals и сайтом без них.

Оптимизированный пример

Чтобы увидеть пример работы Lighthouse, мы воспользуемся нашей главной страницей.

  • Откройте Chrome.
  • В режиме инкогнито перейдите по адресу https://nextjs.org.
  • Откройте DevTools и нажмите на вкладку Lighthouse.
  • Нажмите Generate Report.

Это запустит отчет, который должен занять менее 60 секунд.

Примечание: Важно запускать отчеты в режиме инкогнито, так как сторонние плагины могут повлиять на результаты.

Кроме того, блокировщики рекламы могут препятствовать загрузке скриптов, что приведет к неполной проверке. Рекомендуется использовать чистый профиль для измерения производительности.

Вот пример отчета:

Отчет Lighthouse для главной страницы Next.js

Неоптимизированный пример

Для целей этого руководства мы создали приложение без каких-либо оптимизаций.

Настройка проекта

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

Загрузка стартового кода

npx create-next-app@latest nextjs-lighthouse --use-npm --example "https://github.com/vercel/next-learn/tree/main/seo"

Запуск production-сборки

Для получения точных отчетов от Lighthouse ваше приложение всегда должно тестироваться в production-сборке. Чтобы запустить production-сборку, перейдите в директорию проекта:

cd nextjs-lighthouse

Соберите ваше приложение, выполнив next build, и запустите сервер в режиме production, выполнив next start.

npm run build && npm run start

Давайте запустим отчет Lighthouse с помощью Chrome DevTools. После завершения отчета начнем оптимизировать сайт и улучшать показатели.

Дополнительные материалы