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

PPTX
10 шагов к ускорению сайта
PDF
1 2 2_1_c-bitrix_kuleshov
PDF
Промышленное ускорение сайтов
PPT
Drupal 6 performance
PDF
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
PDF
Тема " Скрипты продаж в интернет-магазинах" в рамках конкурса "Бизнес на милл...
PDF
Выбор CMS для вашего сайта
PPTX
В топку Postman - пишем API автотесты в привычном стеке
10 шагов к ускорению сайта
1 2 2_1_c-bitrix_kuleshov
Промышленное ускорение сайтов
Drupal 6 performance
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
Тема " Скрипты продаж в интернет-магазинах" в рамках конкурса "Бизнес на милл...
Выбор CMS для вашего сайта
В топку Postman - пишем API автотесты в привычном стеке

What's hot (17)

PDF
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
PPTX
Оптимизация скорости загрузки сайта
PPTX
PPTX
Браузеры
PDF
Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
PPTX
Автоматизированное тестирование UI на C# + Selenium WebDriver
PDF
Как я перестал бояться и полюбил SVG -- Руслан Каймаков -- MoscowJS 17
PPTX
Разумная безопасность сайта
PDF
В offline и обратно
PPTX
Chrome push notifications. Анатомия и разработка
PPTX
Brauzery
PDF
Как стать front-end разработчиком с 0? (2)
PPTX
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
PPTX
Обзор интернет браузеров
PPTX
обзор браузеров
PPTX
Best Browser
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
Оптимизация скорости загрузки сайта
Браузеры
Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
Автоматизированное тестирование UI на C# + Selenium WebDriver
Как я перестал бояться и полюбил SVG -- Руслан Каймаков -- MoscowJS 17
Разумная безопасность сайта
В offline и обратно
Chrome push notifications. Анатомия и разработка
Brauzery
Как стать front-end разработчиком с 0? (2)
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
Обзор интернет браузеров
обзор браузеров
Best Browser
Ad

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

PPTX
NoBigData - потоковая система аналитики clientside производительности, Сергей...
PPT
website optimization on client side
PPT
HappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный веб
PPTX
Оптимизируем скорость загрузки страницы
PPT
Drupal Perfomance issues, tips & tricks. Антон Иванов.
PPT
Как провести технический аудит сайта. Е. Аралов
PPTX
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
PDF
Производительность Client-Side
PPT
Использование встроенных или подключаемых средств браузеров для тестирования ...
PPTX
От 40 до 2 секунд
POT
Оптимизация времени загрузки сайта: проблемы и решения
PPT
Профилирования и оптимизация jQuery-кода
PPTX
Антон Рева - презентация с конференции NaZapad
PDF
Неочевидные возможности ускорения работы сайта
PDF
Highload++ 2015
PPTX
Tuning HighLoad J2EE web application
PPT
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
PPT
Профилирование и оптимизация jQuery–кода
PDF
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
PDF
SEMPRO 2018 - Олег Искевич и Владислав Моргун - Тех-оптимизация и внутренние ...
NoBigData - потоковая система аналитики clientside производительности, Сергей...
website optimization on client side
HappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный веб
Оптимизируем скорость загрузки страницы
Drupal Perfomance issues, tips & tricks. Антон Иванов.
Как провести технический аудит сайта. Е. Аралов
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Производительность Client-Side
Использование встроенных или подключаемых средств браузеров для тестирования ...
От 40 до 2 секунд
Оптимизация времени загрузки сайта: проблемы и решения
Профилирования и оптимизация jQuery-кода
Антон Рева - презентация с конференции NaZapad
Неочевидные возможности ускорения работы сайта
Highload++ 2015
Tuning HighLoad J2EE web application
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
SEMPRO 2018 - Олег Искевич и Владислав Моргун - Тех-оптимизация и внутренние ...
Ad

More from OdessaFrontend (20)

PDF
Викторина | Odessa Frontend Meetup #19
PDF
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
PDF
Великолепный Gatsby.js | Odessa Frontend Meetup #19
PDF
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
PDF
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
PDF
Викторина | Odessa Frontend Meetup #17
PDF
Антихрупкий TypeScript | Odessa Frontend Meetup #17
PDF
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
PDF
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
PPTX
Объекты в ECMAScript | Odessa Frontend Meetup #16
PPTX
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
PPTX
Cлайдер на CSS | Odessa Frontend Meetup #16
PDF
Современный станок верстальщика
PDF
Викторина | Odessa Frontend Meetup #15
PDF
DRY’им Vuex | Odessa Frontend Meetup #15
PDF
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
PDF
Пощупать 3д в браузере | Odessa Frontend Meetup #15
PDF
Викторина | Odessa Frontend Meetup #14
PDF
Викторина | Odessa Frontend Meetup #13
PPTX
Структуры данных в JavaScript | Odessa Frontend Meetup #13
Викторина | Odessa Frontend Meetup #19
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Великолепный Gatsby.js | Odessa Frontend Meetup #19
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
Викторина | Odessa Frontend Meetup #17
Антихрупкий TypeScript | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
Объекты в ECMAScript | Odessa Frontend Meetup #16
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16
Современный станок верстальщика
Викторина | Odessa Frontend Meetup #15
DRY’им Vuex | Odessa Frontend Meetup #15
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15
Викторина | Odessa Frontend Meetup #14
Викторина | Odessa Frontend Meetup #13
Структуры данных в JavaScript | Odessa Frontend Meetup #13

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