Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Оптимизация скорости сайта
без использования AMP
Front End Team Lead at KeepSolid
Дмитрий Шевченко
Немного обо мне
➔ 6 лет опыта в web разработке
➔ Почти 5 лет в KeepSolid
➔ 1 год руковожу лучшей командой Front End
➔ Имею опыт в Back End и немного в Android разработке
➔ Женат и есть прекрасная дочь
Зачем нам быстрый сайт?
- счастливые пользователи
Зачем нам быстрый сайт?
- счастливый босс и вся компания
Быть или не быть… AMP...
AMP
Accelerated Mobile Pages
Open-source библиотека, которая предоставляет “легкий
путь” для создания быстрых страниц.
Активно продвигается Google
AMP
Преимущества:
- быстрый сайт без знаний оптимизации
- показ в карусели при поиске
- хорошо индексируется
- есть интеграция с популярными CMS
AMP
Недостатки:
- необходимость поддержки 2 версий сайта
- навязывание интернет гигантом
- жесткие ограничения
- не всегда сразу пройдешь валидацию
- не всегда быстрый…
* Я НЕ пропагандирую НЕ использовать AMP ;-)
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10
В чем секрет AMP?
- минимум css(<50кб)
- минимум js
- оптимизация
- ленивая загрузка
- предварительная загрузка
- кеширование на стороне CDN (Google, Cloudflare, etc.)
всего по чуть-чуть
в AMP
Как этого добиться без AMP?
Измерить
Нам поможет Lighthouse
доступен в Chrome Dev Tools
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10
Основные метрики
FCP(First Contentful Paint) - до первой порции отрендереного контента
FMP(First Meaningful Paint) - завершение рендеринга
FCI(First CPU Idle) - до первой интерактивности
Speed Index - показатель производительности загрузки страницы
Estimated Input Latency - скорость отклика
TTI(Time to Interactive) - до полной интерактивности
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10
Диагностика
Lighthouse предоставляет чеклист с подсказками и
рекомендациями для улучшения сайта
Найти слабые места
Обычно это:
- много jquery плагинов
- блокирующие запросы
- не используется ~90% загруженного CSS
- страшные селекторы (#main > div .col h1 > .simple span)
- многократная перезапись стилей
- плохо настроенный сервер
с кем не бывает...
Минимум css
- избегать большой вложенности
- избегать дублирования
- удалить лишнее
- минифицированный код
Минимум js
- Vanilla JS
- оптимизированный и минифицированный код
- асинхронная загрузка (async)
- загружать, то что сейчас необходимо
Оптимизация
- избегать сторонних шрифтов или оптимизировать их использование
- оптимизация изображений и видео(если есть)
- инлайн стилей в head
- минификация html
- минимум reflow и repaint
Ленивая загрузка
- для изображений
- для видео
- для iframe
Intersection Observer API идёт на помощь
только по необходимости
Предварительная загрузка
- preconnect
- prerender (low)
- prefetch (low)
- preload (high)
<link rel="preconnect" href="//cdn.example.com">
<link rel="prerender" href="/next-page.html">
<link rel="prefetch" href="/data.json" as="fetch">
<link rel="preload" href="/other.js" as="script">
Chrome 46+, Safari 11.1+
IE11, Chrome 13+
IE11, Edge, Firefox 2+, Chrome 8+
Chrome 50+, Safari 11.1+
Кеширование
- заголовки для браузерного кеширования
- использовать CDN
В итоге
СКОРОСТЬ ВОЗМОЖНОСТИ
РАЗРАБОТЧИК
Дмитрий Шевченко
Website
когда-то будет...
Facebook
facebook.com/dmitry.schewchenko
Email
dschewchenko@keepsolid.com
LinkedIn
linkedin.com/in/dschewchenko

More Related Content

Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10