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

129
Жесточайшая Оптимизация скорости загрузки веб-страниц Дима Дудин @nedudi

Transcript of Жесточайшая оптимизация производительности...

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

Жесточайшая

Оптимизация скорости

загрузки веб-страниц

Дима Дудин @nedudi

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

Зачем ?… неужели это так важно

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

1 секунда?

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

1 секунда в WEB

11% - потеря количества просмотров.

16% - потеря удовлетворенности клиентов.

7% - потеря конверсии.

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

Конверсия магазинов увеличивается на

74%

при уменьшении времени загрузки

с 8 до 2 секунд

Page 12: Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Page 13: Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Page 14: Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Page 15: Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Page 16: Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.

Деньги - не главное

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

Деньги - не главное

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

ГЛАВНОЕ, что-бы все было

четко

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

ГЛАВНОЕ, что-бы все было

четко

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

прочувствуйте боль…

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

прочувствуйте боль…

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

Как понять ?… анализы, анализы

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

Pingdom

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

Pingdom

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

YSLOW

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

WEBPAGETEST

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

pagespeed

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

pagespeed

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

pagespeed

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

Типовые проблемы… тяжко жить веб-разработчику

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

РАЗМЕР ИЗОБРАЖЕНИЙ

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

авто

Сжималки

разрезалки

спрайты и тп…

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

grunt-svgmingulp-svgmin

grunt-spritesmithgulp-spritegrunt-webpgulp-webpgrunticon

addyosmani.com/blog/image-optimization-tools

и еще тутfrontender.info/performance-optimization

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

<Picture>

Page 35: Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Page 36: Жесточайшая оптимизация производительности веб-страниц. Google pagespeed.
Page 37: Жесточайшая оптимизация производительности веб-страниц. 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

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

И еще …

<img src=“hi.png" height="100" width="100"

/>

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

ФОРМАТЫ

ИЗОБРАЖЕНИЙ

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

JPEG

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

PNG

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

SVG

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

Lazy

loading…

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

GZIP

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

Cache html5.by/blog/cache

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

CACHE отключен

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

1. Last-Modified

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

2. ETag

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

3. EXPIRES

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

<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>

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

server { ...

location ~* \.(gif|ico|jpe?g|png)(\?[0-9]+)?$ { expires 1w; } location ~* \.(css|js)$ { expires 1d; } ...

}

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

4. MAX AGE

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

<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>

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

server { ...

location ~* \.(?:ico|css|js|gif|jpe?g|png)$ { add_header Cache-Control "max-age=86400, public"; } ...

}

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

обфускация

js сss html

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

Сборка

js сss

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

JavaScript в конец документа

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

CSS в начало документа

?

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

CDN

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

:( :)

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

DNS Lookup time

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

feedthebot.com/tools/requests

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

feedthebot.com/tools/requests

WTF?

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

<link rel="dns-prefetch" href="//trololo.com">

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

Enable Keep-AlivE

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

избегаем

javascript редиректов

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

2013 GRUNT

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

2013 GRUNT

2014 GULP

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

2013 GRUNT

2014 GULP

…2015 GROLOLO

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

2013 GRUNT

2014 GULP

…2015 GROLOLO

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

2013 GRUNT

2014 GULP

…2015 GROLOLO

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

2013 GRUNT

2014 GULP

…2015 GROLOLO

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

2013 GRUNT

2014 GULP

…2015 GROLOLO

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

2013 GRUNT

2014 GULP

…2015 GROLOLO

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

2005-2012

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

2005-2012

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

+2005-2012

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

+2005-2012

?

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

+2005-2012

?=

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

+2005-2012

?=

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

+2005-2012

?=

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

хочу все и

сразу

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

хочу все и

сразу

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

pagespeed

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

pagespeed

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

developers.google.com/speed/pagespeed/module/filters

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

Build from source :( Package :)

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

Build from source :( Package :)

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

Apache ModPagespeedEnableFilters collapse_whitespace

Nginx pagespeed EnableFilters collapse_whitespace;

Collapse Whitespace

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

Apache ModPagespeedEnableFilters insert_dns_prefetch

Nginx pagespeed EnableFilters insert_dns_prefetch;

Pre-Resolve DNS

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

Apache ModPagespeedEnableFilters combine_css

Nginx pagespeed EnableFilters combine_css;

combine css

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

Apache ModPagespeedEnableFilters rewrite_css

Nginx pagespeed EnableFilters rewrite_css;

Minify CSS

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

Apache ModPagespeedEnableFilters move_css_to_head

Nginx pagespeed EnableFilters move_css_to_head;

Move CSS to Head

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

Apache ModPagespeedEnableFilters prioritize_critical_css

Nginx pagespeed EnableFilters prioritize_critical_css;

Prioritize Critical CSS

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

Apache ModPagespeedEnableFilters combine_javascript

Nginx pagespeed EnableFilters combine_javascript;

combine js

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

Apache ModPagespeedEnableFilters rewrite_javascript

Nginx pagespeed EnableFilters rewrite_javascript;

Minify Js

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

Apache ModPagespeedEnableFilters canonicalize_javascript_libraries

Nginx pagespeed EnableFilters

canonicalize_javascript_libraries;

Canonicalize JavaScript Libraries

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

Apache ModPagespeedEnableFilters include_js_source_maps

Nginx pagespeed EnableFilters

include_js_source_maps;

Include JavaScript Source Maps

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

Apache ModPagespeedEnableFilters move_css_above_scripts

Nginx pagespeed EnableFilters

move_css_above_scripts;

Move CSS Above Scripts

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

Apache ModPagespeedEnableFilters defer_javascript

Nginx pagespeed EnableFilters defer_javascript;

Defer JavaScript

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

Apache ModPagespeedEnableFilters dedup_inlined_images

Nginx pagespeed EnableFilters dedup_inlined_images;

Deduplicate Inlined Images

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

Apache ModPagespeedEnableFilters elide_attributes

Nginx pagespeed EnableFilters elide_attributes;

Elide Attributes

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

Apache ModPagespeedEnableFilters extend_cache

Nginx pagespeed EnableFilters extend_cache;

Extend Cache

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

Apache ModPagespeedEnableFilters flatten_css_imports

Nginx pagespeed EnableFilters flatten_css_imports;

Flatten CSS Imports

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

Apache ModPagespeedEnableFilters lazyload_images

Nginx pagespeed EnableFilters lazyload_images;

Lazyload Images

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

Apache ModPagespeedEnableFilters sprite_images

Nginx pagespeed EnableFilters sprite_images;

Sprite Images

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

Apache ModPagespeedEnableFilters rewrite_images

Nginx pagespeed EnableFilters rewrite_images;

Optimize Imagesinline_images +

inline_preview_images +recompress_images +

convert_jpeg_to_webp + resize_images

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

<img src=“data:image/png;base64,iVBORw…”>

<img src=“girl.png”>

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

Apache ModPagespeedEnableFilters local_storage_cache

Nginx pagespeed EnableFilters local_storage_cache;

Local Storage Cache

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

ЭКСПЕРИМЕНТИРУЙТЕ

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

ЭКСПЕРИМЕНТИРУЙТЕ

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

НИКОМУ НЕ ВЕРЬТЕ

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

НИКОМУ НЕ ВЕРЬТЕ

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

@nedudi @html5by

Вопросы ? [email protected]

html5.by

vk.com/html5byfacebook.com/html5bytwitter.com/html5by