SlideShare a Scribd company logo
Жесточайшая
Оптимизация скорости
загрузки веб-страниц
Дима Дудин @nedudi
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Зачем ?
… неужели это так важно
1секунда?
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
1 секунда в WEB
11% - потеря количества
просмотров.
16% - потеря удовлетворенности
клиентов.
7% - потеря конверсии.
Конверсия магазинов
увеличивается на
74%
при уменьшении
времени загрузки
с 8 до 2 секунд
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Деньги - не главное
Деньги - не главное
ГЛАВНОЕ, что-бы все было
четко
ГЛАВНОЕ, что-бы все было
четко
прочувствуйте боль…
прочувствуйте боль…
Как понять ?
… анализы, анализы
Pingdom
Pingdom
YSLOW
WEBPAGETEST
pagespeed
pagespeed
pagespeed
Типовые проблемы
… тяжко жить веб-разработчику
РАЗМЕР
ИЗОБРАЖЕНИЙ
авто
Сжималки
разрезалки
спрайты и тп…
grunt-svgmin
gulp-svgmin
grunt-spritesmith
gulp-sprite
grunt-webp
gulp-webp
grunticon
addyosmani.com/blog/image-optimization-tools
и еще тут
frontender.info/performance-optimization
<Picture>
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
vimeo.com/108326836
<picture>
<source
media="(min-width: 650px)"
srcset="images/kitten-stretching.png">
<source
media="(min-width: 465px)"
srcset="images/kitten-sitting.png">
<img
src="images/kitten-curled.png"
alt="a cute kitten">
</picture>
scottjehl.github.io/picturefill
И еще …
<img src=“hi.png"
height="100" width="100"
/>
ФОРМАТЫ
ИЗОБРАЖЕНИЙ
JPEG
PNG
SVG
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Lazy
loading…
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
GZIP
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Cachehtml5.by/blog/cache
CACHE отключен
1. Last-Modified
2. ETag
3. EXPIRES
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"
</IfModule>
server {
...
location ~* .(gif|ico|jpe?g|png)(?[0-9]+)?$ {
expires 1w;
}
location ~* .(css|js)$ {
expires 1d;
}
...
}
4. MAX AGE
<ifModule mod_headers.c>
<FilesMatch ".(gif|ico)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
<FilesMatch ".(js)$">
Header set Cache-Control "max-age=86400,
private, must-revalidate"
</FilesMatch>
<FilesMatch ".(php)$">
Header set Cache-Control "private, no-store, no-cache,
must-revalidate, no-transform, max-age=0"
Header set Pragma "no-cache"
</FilesMatch>
</ifModule>
server {
...
location ~* .(?:ico|css|js|gif|jpe?g|png)$ {
add_header Cache-Control "max-age=86400, public";
}
...
}
обфускация
js сss html
Сборка
js сss
JavaScript
в конец документа
CSS
в начало документа
?
CDN
:( :)
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
DNS
Lookup time
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
feedthebot.com/tools/requests
feedthebot.com/tools/requests
WTF?
<link rel="dns-prefetch" href="//trololo.com">
Enable
Keep-AlivE
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
избегаем
javascript
редиректов
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
2013 GRUNT
2013 GRUNT
2014 GULP
2013 GRUNT
2014 GULP
…2015 GROLOLO
2013 GRUNT
2014 GULP
…2015 GROLOLO
2013 GRUNT
2014 GULP
…2015 GROLOLO
2013 GRUNT
2014 GULP
…2015 GROLOLO
2013 GRUNT
2014 GULP
…2015 GROLOLO
2013 GRUNT
2014 GULP
…2015 GROLOLO
2005-2012
2005-2012
+
2005-2012
+
2005-2012
?
+
2005-2012
?=
+
2005-2012
?=
+
2005-2012
?=
хочу
все
и
сразу
хочу
все
и
сразу
pagespeed
pagespeed
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
developers.google.com/speed/pagespeed/module/filters
Build from source :( Package :)
Build from source :( Package :)
Apache
ModPagespeedEnableFilters collapse_whitespace
Nginx
pagespeed EnableFilters collapse_whitespace;
Collapse Whitespace
Apache
ModPagespeedEnableFilters insert_dns_prefetch
Nginx
pagespeed EnableFilters insert_dns_prefetch;
Pre-Resolve DNS
Apache
ModPagespeedEnableFilters combine_css
Nginx
pagespeed EnableFilters combine_css;
combine css
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Apache
ModPagespeedEnableFilters rewrite_css
Nginx
pagespeed EnableFilters rewrite_css;
Minify CSS
Apache
ModPagespeedEnableFilters move_css_to_head
Nginx
pagespeed EnableFilters move_css_to_head;
Move CSS to Head
Apache
ModPagespeedEnableFilters prioritize_critical_css
Nginx
pagespeed EnableFilters prioritize_critical_css;
Prioritize Critical CSS
Apache
ModPagespeedEnableFilters combine_javascript
Nginx
pagespeed EnableFilters combine_javascript;
combine js
Apache
ModPagespeedEnableFilters rewrite_javascript
Nginx
pagespeed EnableFilters rewrite_javascript;
Minify Js
Apache
ModPagespeedEnableFilters canonicalize_javascript_libraries
Nginx
pagespeed EnableFilters
canonicalize_javascript_libraries;
Canonicalize JavaScript Libraries
Apache
ModPagespeedEnableFilters
include_js_source_maps
Nginx
pagespeed EnableFilters
include_js_source_maps;
Include JavaScript Source Maps
Apache
ModPagespeedEnableFilters
move_css_above_scripts
Nginx
pagespeed EnableFilters
move_css_above_scripts;
Move CSS Above Scripts
Apache
ModPagespeedEnableFilters defer_javascript
Nginx
pagespeed EnableFilters defer_javascript;
Defer JavaScript
Apache
ModPagespeedEnableFilters dedup_inlined_images
Nginx
pagespeed EnableFilters dedup_inlined_images;
Deduplicate Inlined Images
Apache
ModPagespeedEnableFilters elide_attributes
Nginx
pagespeed EnableFilters elide_attributes;
Elide Attributes
Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Apache
ModPagespeedEnableFilters extend_cache
Nginx
pagespeed EnableFilters extend_cache;
Extend Cache
Apache
ModPagespeedEnableFilters flatten_css_imports
Nginx
pagespeed EnableFilters flatten_css_imports;
Flatten CSS Imports
Apache
ModPagespeedEnableFilters lazyload_images
Nginx
pagespeed EnableFilters lazyload_images;
Lazyload Images
Apache
ModPagespeedEnableFilters sprite_images
Nginx
pagespeed EnableFilters sprite_images;
Sprite Images
Apache
ModPagespeedEnableFilters rewrite_images
Nginx
pagespeed EnableFilters rewrite_images;
Optimize Images
inline_images +
inline_preview_images +
recompress_images +
convert_jpeg_to_webp +
resize_images
<img src=“data:image/png;base64,iVBORw…”>
<img src=“girl.png”>
…
Apache
ModPagespeedEnableFilters local_storage_cache
Nginx
pagespeed EnableFilters local_storage_cache;
Local Storage Cache
ЭКСПЕРИМЕНТИРУЙТЕ
ЭКСПЕРИМЕНТИРУЙТЕ
НИКОМУ НЕ ВЕРЬТЕ
НИКОМУ НЕ ВЕРЬТЕ
@nedudi @html5by
Вопросы ? nedudi@gmail.com
html5.by
vk.com/html5by
facebook.com/html5by
twitter.com/html5by

More Related Content

PPTX
SubmitJS: Vue.js - make frontend developement great again. Andrii Grachov
PDF
Будущее WordPress (SPB, 2014)
PDF
ChocoDevDay — Grunt - Advanced Tips (NIkita Bayev)
PDF
Основы HTML - шесть лет спустя
PDF
Фронтенд разработка без боли
PDF
Скриншоты как сервис
PPTX
Yarfrontend #2. Как мы делали гуя...
PDF
D2D Pizza JS Илья Беда "Куда мы все катимся?"
SubmitJS: Vue.js - make frontend developement great again. Andrii Grachov
Будущее WordPress (SPB, 2014)
ChocoDevDay — Grunt - Advanced Tips (NIkita Bayev)
Основы HTML - шесть лет спустя
Фронтенд разработка без боли
Скриншоты как сервис
Yarfrontend #2. Как мы делали гуя...
D2D Pizza JS Илья Беда "Куда мы все катимся?"

What's hot (6)

PDF
Optimizaciya vremeni zagruzki_azat_razetdinov
PDF
Mobile Web Apps development essentials
PDF
Павел Юрийчук - Разработка приложений под мобильные браузеры
PPTX
От 40 до 2 секунд
PDF
MVC in JavaScript
PPTX
WebGL - создание 3D графики в браузере
Optimizaciya vremeni zagruzki_azat_razetdinov
Mobile Web Apps development essentials
Павел Юрийчук - Разработка приложений под мобильные браузеры
От 40 до 2 секунд
MVC in JavaScript
WebGL - создание 3D графики в браузере
Ad

Viewers also liked (20)

PPTX
経験値ゼロの素人が2,3日がんばると出来るリフォームの例
 
PPTX
De moord op JFK.
KEY
Game based learning
PPT
99986 633606064364218750
PPTX
Emeralds
PPTX
Vastgoedseminar (alle sheets)
PPTX
Google Cloud - An Introduction
PPTX
WebKit - DAIICT SBG Proposal
PPTX
Universidad metropilitana de educacion, ciencia y tecnologia
PDF
Be cse
PPTX
Importaciones e impuestos sobre la renta.
PPTX
Horror genres
PPTX
England v san marino
PPT
Blog
PPTX
Langkah langkah donasi saung sapayadhu
PPSX
Sapa yatim rba
PPTX
Appathon'16, DAIICT
PPTX
початкова школа1
PPTX
経験値ゼロの素人が2,3日がんばると出来るリフォームで買った工具や資材
 
PPTX
Eminem
経験値ゼロの素人が2,3日がんばると出来るリフォームの例
 
De moord op JFK.
Game based learning
99986 633606064364218750
Emeralds
Vastgoedseminar (alle sheets)
Google Cloud - An Introduction
WebKit - DAIICT SBG Proposal
Universidad metropilitana de educacion, ciencia y tecnologia
Be cse
Importaciones e impuestos sobre la renta.
Horror genres
England v san marino
Blog
Langkah langkah donasi saung sapayadhu
Sapa yatim rba
Appathon'16, DAIICT
початкова школа1
経験値ゼロの素人が2,3日がんばると出来るリフォームで買った工具や資材
 
Eminem
Ad

Similar to Жесточайшая оптимизация производительности веб-страниц. Google pagespeed. (20)

PDF
Speed Up Your Website
POT
Оптимизация времени загрузки сайта: проблемы и решения
PDF
Скорость работы интернет-магазина
PPT
website optimization on client side
PPTX
10 шагов к ускорению сайта
PDF
Быстродействие веб сайта. Методичный анализ и глубины клиентской оптимизации
PDF
скорость загрузки
PPTX
Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс.
PDF
WebCamp: Developer Day: Быстродействие веб-сайта. Методичный анализ и глубины...
PDF
Производительность Client-Side
PDF
Иван Карев — Клиентская оптимизация
PDF
Скорость работы интернет магазина
PDF
Иван Карев — Клиентская оптимизация
PPT
PPT
Битва за миллисекунды: практика ускорения веб сайтов
PDF
Ускорение client-side для мобильных устройств. Failoverconf 2014
PDF
Отдаем страницы быстрее или как вписаться в требования Google
PDF
Неочевидные возможности ускорения работы сайта
PDF
Марина Широчкина: Верстка. Вид снизу
PPTX
Ускорение сайта на стороне клиента
Speed Up Your Website
Оптимизация времени загрузки сайта: проблемы и решения
Скорость работы интернет-магазина
website optimization on client side
10 шагов к ускорению сайта
Быстродействие веб сайта. Методичный анализ и глубины клиентской оптимизации
скорость загрузки
Все о скорости сайтов. Мастер-класс на партнерской конференции 1С-Битрикс.
WebCamp: Developer Day: Быстродействие веб-сайта. Методичный анализ и глубины...
Производительность Client-Side
Иван Карев — Клиентская оптимизация
Скорость работы интернет магазина
Иван Карев — Клиентская оптимизация
Битва за миллисекунды: практика ускорения веб сайтов
Ускорение client-side для мобильных устройств. Failoverconf 2014
Отдаем страницы быстрее или как вписаться в требования Google
Неочевидные возможности ускорения работы сайта
Марина Широчкина: Верстка. Вид снизу
Ускорение сайта на стороне клиента

Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.