Lighthouse — это инструмент для анализа качества веб-страниц, включающий оценку производительности, SEO, доступности и мобильной адаптивности. Mobile-friendly проверки фокусируются на том, насколько сайт корректно отображается и работает на устройствах с ограниченной шириной экрана, сенсорным управлением и ограниченными ресурсами.
Viewport Configuration Проверяется наличие
корректного мета-тега <meta name="viewport">. Он
определяет, как страница масштабируется и подстраивается под размеры
экрана устройства. Неправильная конфигурация viewport может привести
к:
Touch Target Sizes Все интерактивные элементы должны быть удобными для сенсорного ввода. Минимальный рекомендуемый размер — 48x48 пикселей. Lighthouse проверяет кнопки, ссылки и элементы управления, выявляя:
Font Sizes Текст на мобильных устройствах должен быть читабельным без необходимости масштабирования. Lighthouse фиксирует:
Content Width and Horizontal Scrolling Содержимое страницы не должно выходить за пределы экрана. Основные проверки включают:
width и
max-widthViewport-fit и Safe Areas Для устройств с
вырезами (notch) или закругленными краями важно учитывать
viewport-fit=cover и корректное использование безопасных
областей с помощью CSS переменных env(safe-area-inset-*).
Lighthouse фиксирует ошибки, когда контент обрезается или элементы
перекрываются системными панелями.
Адаптивные медиа-запросы Lighthouse проверяет правильное использование медиазапросов. Основные рекомендации:
@media (max-width: …) для изменения стилей
под узкие экраныflex/grid решенияmax-width: 100%)Оптимизация изображений Большие изображения замедляют загрузку на мобильных устройствах. Lighthouse анализирует:
srcset и sizes для
адаптивной подгрузкиСкроллинг и Fixed элементы Фиксированные элементы (например, меню или кнопки) могут перекрывать контент. Проверки включают:
Запуск через Chrome DevTools
Использование Node.js API
import lighthouse from 'lighthouse';
import chromeLauncher from 'chrome-launcher';
async function runLighthouse(url) {
const chrome = await chromeLauncher.launch({chromeFlags: ['--headless']});
const options = {logLevel: 'info', output: 'html', port: chrome.port, formFactor: 'mobile'};
const runnerResult = await lighthouse(url, options);
console.log('Lighthouse score:', runnerResult.lhr.categories['performance'].score * 100);
await chrome.kill();
}
runLighthouse('https://example.com');
Ключевой параметр — formFactor: 'mobile'. Он имитирует
узкий экран и медленное соединение, что критично для проверки
адаптивности.
Time to Interactive).rem,
em)srcsetLighthouse предоставляет комплексную диагностику мобильной адаптивности, объединяя проверки CSS, HTML, взаимодействия пользователя и ресурсов страницы. Соблюдение рекомендаций позволяет обеспечить:
Каждая проверка Lighthouse снабжена детальными объяснениями и ссылками на исправление ошибок, что делает его незаменимым инструментом для веб-разработчиков.