SlideShare a Scribd company logo
1 of 103
Download to read offline
Жесточайшая
Дима Дудин @nedudi
Оптимизация скорости
загрузки веб-страниц
Зачем ?
… неужели это так важно
1секунда?
1 секунда в WEB
11% - потеря количества
просмотров.
16% - потеря удовлетворенности
клиентов
7% - потеря конверсии
Конверсия магазинов
увеличивается на
74%
при уменьшении
времени загрузки
с 8 до 2 секунд
Деньги - не главное
Как понять ?
… анализы, анализы
Pingdom
Pingdom
YSLOW
WEBPAGETEST
pagespeed
pagespeed
pagespeed
Типовые проблемы
… тяжко жить веб-разработчику
РАЗМЕР
ИЗОБРАЖЕНИЙ
авто
Сжималки
разрезалки
спрайты и тп…
grunt-contrib-imagemin
grunt-imageoptim
grunt-webp
grunt-imageNormalize
grunt-image-resize
grunt-spritefiles
grunt-montage
…….
addyosmani.com/blog/image-optimization-tools
<Picture>
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>
И еще …
<img src=“hi.png"
height="100" width=“100”
/>
ФОРМАТЫ
ИЗОБРАЖЕНИЙ
JPEG
PNG
SVG
Lazy
loading…
GZIP
Cache
CACHE отключен
1. Last-Modified
Last-modified: Fri, 16 Mar 2007 04:00:25 GMT File
Contents (could be an image, HTML, CSS,
Javascript...)
2. ETag
ETag: ead145f File Contents (could be an image,
HTML, CSS, Javascript...)
3. EXPIRES
Expires:Tue, 20 Mar 2007 04:00:25 GMT File
Contents (could be an image, HTML, CSS,
Javascript...)
<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
cache-control: max-age=0
1 day in seconds = 86400
1 week in seconds = 604800
1 month in seconds = 2629000
1 year in seconds = 31536000
(effectively infinite on internet time)
5. Public and Private
cache-control: private
Cache-control: public
Cache-control: private
Cache-control: no-cache
<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
DNS
Lookup time
feedthebot.com/tools/requests
<link rel="dns-prefetch" href="//trololo.com">
Enable
Keep-AlivE
избегаем
javascript
редиректов
Google Pagespeed
… xoчу все сразу
хочу
все
и
сразу
developers.google.com/speed/pagespeed/module/filters
pagespeed
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
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
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 +
recompress_images +
convert_png_to_jpeg +
resize_images
Apache
ModPagespeedEnableFilters local_storage_cache
Nginx
pagespeed EnableFilters local_storage_cache;
Local Storage Cache
ЭКСПЕРИМЕНТИРУЙТЕ
НИКОМУ НЕ ВЕРЬТЕ
@nedud @html5by
Вопросы ? nedudi@gmail.com
html5.by
vk.com/html5by
facebook.com/html5by
twitter.com/html5by

More Related Content

What's hot

The Need for Speed - SMX Sydney 2013
The Need for Speed - SMX Sydney 2013The Need for Speed - SMX Sydney 2013
The Need for Speed - SMX Sydney 2013Bastian Grimm
 
Harder, Better, Faster, Stronger
Harder, Better, Faster, StrongerHarder, Better, Faster, Stronger
Harder, Better, Faster, StrongerDavid Engel
 
Weniger aus Bilder holen
Weniger aus Bilder holenWeniger aus Bilder holen
Weniger aus Bilder holenWalter Ebert
 
Front end performance tip
Front end performance tipFront end performance tip
Front end performance tipSteve Yu
 
Frontend grote projecten
Frontend grote projectenFrontend grote projecten
Frontend grote projectenEdwin Martin
 
Front end performance optimization
Front end performance optimizationFront end performance optimization
Front end performance optimizationStevie T
 
implement lighthouse-ci with your web development workflow
implement lighthouse-ci with your web development workflowimplement lighthouse-ci with your web development workflow
implement lighthouse-ci with your web development workflowWordPress
 
Make your website 2 times faster
Make your website 2 times fasterMake your website 2 times faster
Make your website 2 times fasterSatoshi Kikuchi
 
Slides pour blog
Slides pour blogSlides pour blog
Slides pour bloglyago
 
Rapid Testing, Rapid Development
Rapid Testing, Rapid DevelopmentRapid Testing, Rapid Development
Rapid Testing, Rapid Developmentmennovanslooten
 
Software Support Done Right
Software Support Done RightSoftware Support Done Right
Software Support Done RightAndreas Zeitler
 
Maurizio Mangione - Get the best out of your PWA with Workbox JS - Codemotion...
Maurizio Mangione - Get the best out of your PWA with Workbox JS - Codemotion...Maurizio Mangione - Get the best out of your PWA with Workbox JS - Codemotion...
Maurizio Mangione - Get the best out of your PWA with Workbox JS - Codemotion...Codemotion
 
Web Performance Workshop - Velocity London 2013
Web Performance Workshop - Velocity London 2013Web Performance Workshop - Velocity London 2013
Web Performance Workshop - Velocity London 2013Andy Davies
 
MOConf'13: WebNotBombs: Optimize this
MOConf'13: WebNotBombs: Optimize thisMOConf'13: WebNotBombs: Optimize this
MOConf'13: WebNotBombs: Optimize thisBoris Zapolsky
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJSNicolas PENNEC
 
Biological Modelling, Powered by AngularJS
Biological Modelling, Powered by AngularJSBiological Modelling, Powered by AngularJS
Biological Modelling, Powered by AngularJSGil Fink
 
Cache Money Business
Cache Money BusinessCache Money Business
Cache Money BusinessMark Jaquith
 

What's hot (20)

The Need for Speed - SMX Sydney 2013
The Need for Speed - SMX Sydney 2013The Need for Speed - SMX Sydney 2013
The Need for Speed - SMX Sydney 2013
 
Harder, Better, Faster, Stronger
Harder, Better, Faster, StrongerHarder, Better, Faster, Stronger
Harder, Better, Faster, Stronger
 
DevNexus 2016
DevNexus 2016DevNexus 2016
DevNexus 2016
 
Weniger aus Bilder holen
Weniger aus Bilder holenWeniger aus Bilder holen
Weniger aus Bilder holen
 
Front end performance tip
Front end performance tipFront end performance tip
Front end performance tip
 
Frontend grote projecten
Frontend grote projectenFrontend grote projecten
Frontend grote projecten
 
Front end performance optimization
Front end performance optimizationFront end performance optimization
Front end performance optimization
 
Front End Performance
Front End PerformanceFront End Performance
Front End Performance
 
implement lighthouse-ci with your web development workflow
implement lighthouse-ci with your web development workflowimplement lighthouse-ci with your web development workflow
implement lighthouse-ci with your web development workflow
 
Make your website 2 times faster
Make your website 2 times fasterMake your website 2 times faster
Make your website 2 times faster
 
Slides pour blog
Slides pour blogSlides pour blog
Slides pour blog
 
Rapid Testing, Rapid Development
Rapid Testing, Rapid DevelopmentRapid Testing, Rapid Development
Rapid Testing, Rapid Development
 
Software Support Done Right
Software Support Done RightSoftware Support Done Right
Software Support Done Right
 
Maurizio Mangione - Get the best out of your PWA with Workbox JS - Codemotion...
Maurizio Mangione - Get the best out of your PWA with Workbox JS - Codemotion...Maurizio Mangione - Get the best out of your PWA with Workbox JS - Codemotion...
Maurizio Mangione - Get the best out of your PWA with Workbox JS - Codemotion...
 
Web Performance Workshop - Velocity London 2013
Web Performance Workshop - Velocity London 2013Web Performance Workshop - Velocity London 2013
Web Performance Workshop - Velocity London 2013
 
Jag tag
Jag tagJag tag
Jag tag
 
MOConf'13: WebNotBombs: Optimize this
MOConf'13: WebNotBombs: Optimize thisMOConf'13: WebNotBombs: Optimize this
MOConf'13: WebNotBombs: Optimize this
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
 
Biological Modelling, Powered by AngularJS
Biological Modelling, Powered by AngularJSBiological Modelling, Powered by AngularJS
Biological Modelling, Powered by AngularJS
 
Cache Money Business
Cache Money BusinessCache Money Business
Cache Money Business
 

Viewers also liked

ESRI Dev Meetup: Building Distributed JavaScript Map Widgets
ESRI Dev Meetup: Building Distributed JavaScript Map WidgetsESRI Dev Meetup: Building Distributed JavaScript Map Widgets
ESRI Dev Meetup: Building Distributed JavaScript Map WidgetsAllan Glen
 
Webpage Caches - the big picture (WordPress too)
Webpage Caches - the big picture (WordPress too)Webpage Caches - the big picture (WordPress too)
Webpage Caches - the big picture (WordPress too)Erich
 
Running PHP on Nginx / PHP wgtn
Running PHP on Nginx / PHP wgtnRunning PHP on Nginx / PHP wgtn
Running PHP on Nginx / PHP wgtnHarald Zeitlhofer
 
Accelerating Nginx Web Server Performance
Accelerating Nginx Web Server PerformanceAccelerating Nginx Web Server Performance
Accelerating Nginx Web Server PerformanceBruce Tolley
 
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupWeb Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupJonathan Klein
 
Caching and tuning fun for high scalability @ FOSDEM 2012
Caching and tuning fun for high scalability @ FOSDEM 2012Caching and tuning fun for high scalability @ FOSDEM 2012
Caching and tuning fun for high scalability @ FOSDEM 2012Wim Godden
 
High Performance Php My Sql Scaling Techniques
High Performance Php My Sql Scaling TechniquesHigh Performance Php My Sql Scaling Techniques
High Performance Php My Sql Scaling TechniquesZendCon
 
Maximizing PHP Performance with NGINX
Maximizing PHP Performance with NGINXMaximizing PHP Performance with NGINX
Maximizing PHP Performance with NGINXNGINX, Inc.
 
Nginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaNginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaTony Fabeen
 
How to secure your web applications with NGINX
How to secure your web applications with NGINXHow to secure your web applications with NGINX
How to secure your web applications with NGINXWallarm
 
How to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - EnglishHow to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - EnglishKoombea
 
Load Balancing and Scaling with NGINX
Load Balancing and Scaling with NGINXLoad Balancing and Scaling with NGINX
Load Balancing and Scaling with NGINXNGINX, Inc.
 
The 3 Models in the NGINX Microservices Reference Architecture
The 3 Models in the NGINX Microservices Reference ArchitectureThe 3 Models in the NGINX Microservices Reference Architecture
The 3 Models in the NGINX Microservices Reference ArchitectureNGINX, Inc.
 
Swift for back end: A new generation of full stack languages?
Swift for back end: A new generation of full stack languages?Swift for back end: A new generation of full stack languages?
Swift for back end: A new generation of full stack languages?Koombea
 

Viewers also liked (20)

ESRI Dev Meetup: Building Distributed JavaScript Map Widgets
ESRI Dev Meetup: Building Distributed JavaScript Map WidgetsESRI Dev Meetup: Building Distributed JavaScript Map Widgets
ESRI Dev Meetup: Building Distributed JavaScript Map Widgets
 
Chrome Extensions
Chrome ExtensionsChrome Extensions
Chrome Extensions
 
Webpage Caches - the big picture (WordPress too)
Webpage Caches - the big picture (WordPress too)Webpage Caches - the big picture (WordPress too)
Webpage Caches - the big picture (WordPress too)
 
Running PHP on Nginx / PHP wgtn
Running PHP on Nginx / PHP wgtnRunning PHP on Nginx / PHP wgtn
Running PHP on Nginx / PHP wgtn
 
Accelerating Nginx Web Server Performance
Accelerating Nginx Web Server PerformanceAccelerating Nginx Web Server Performance
Accelerating Nginx Web Server Performance
 
5 critical-optimizations.v2
5 critical-optimizations.v25 critical-optimizations.v2
5 critical-optimizations.v2
 
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupWeb Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
 
Caching and tuning fun for high scalability @ FOSDEM 2012
Caching and tuning fun for high scalability @ FOSDEM 2012Caching and tuning fun for high scalability @ FOSDEM 2012
Caching and tuning fun for high scalability @ FOSDEM 2012
 
High Performance Php My Sql Scaling Techniques
High Performance Php My Sql Scaling TechniquesHigh Performance Php My Sql Scaling Techniques
High Performance Php My Sql Scaling Techniques
 
Maximizing PHP Performance with NGINX
Maximizing PHP Performance with NGINXMaximizing PHP Performance with NGINX
Maximizing PHP Performance with NGINX
 
Nginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaNginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with Lua
 
Nginx pres
Nginx presNginx pres
Nginx pres
 
How to secure your web applications with NGINX
How to secure your web applications with NGINXHow to secure your web applications with NGINX
How to secure your web applications with NGINX
 
Documents in JavaScript
Documents in JavaScriptDocuments in JavaScript
Documents in JavaScript
 
How to monitor NGINX
How to monitor NGINXHow to monitor NGINX
How to monitor NGINX
 
How to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - EnglishHow to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - English
 
Load Balancing and Scaling with NGINX
Load Balancing and Scaling with NGINXLoad Balancing and Scaling with NGINX
Load Balancing and Scaling with NGINX
 
The 3 Models in the NGINX Microservices Reference Architecture
The 3 Models in the NGINX Microservices Reference ArchitectureThe 3 Models in the NGINX Microservices Reference Architecture
The 3 Models in the NGINX Microservices Reference Architecture
 
Swift for back end: A new generation of full stack languages?
Swift for back end: A new generation of full stack languages?Swift for back end: A new generation of full stack languages?
Swift for back end: A new generation of full stack languages?
 
Tehnik trading
Tehnik tradingTehnik trading
Tehnik trading
 

Similar to Web page load speed optimization

The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014Bastian Grimm
 
Build Better Responsive websites. Hrvoje Jurišić
Build Better Responsive websites. Hrvoje JurišićBuild Better Responsive websites. Hrvoje Jurišić
Build Better Responsive websites. Hrvoje JurišićMeetMagentoNY2014
 
Bringing the JAMstack to the Enterprise
Bringing the JAMstack to the EnterpriseBringing the JAMstack to the Enterprise
Bringing the JAMstack to the EnterpriseJamund Ferguson
 
The High Performance Web Application Lifecycle
The High Performance Web Application LifecycleThe High Performance Web Application Lifecycle
The High Performance Web Application LifecycleAlois Reitbauer
 
Design & Performance - Steve Souders at Fastly Altitude 2015
Design & Performance - Steve Souders at Fastly Altitude 2015Design & Performance - Steve Souders at Fastly Altitude 2015
Design & Performance - Steve Souders at Fastly Altitude 2015Fastly
 
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 201210 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 2012Bastian Grimm
 
Design+Performance Velocity 2015
Design+Performance Velocity 2015Design+Performance Velocity 2015
Design+Performance Velocity 2015Steve Souders
 
CSS and image optimization
CSS and image optimizationCSS and image optimization
CSS and image optimizationStoyan Stefanov
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
[cssdevconf] Adaptive Images in RWD
[cssdevconf] Adaptive Images in RWD[cssdevconf] Adaptive Images in RWD
[cssdevconf] Adaptive Images in RWDChristopher Schmitt
 
When dynamic becomes static - the next step in web caching techniques
When dynamic becomes static - the next step in web caching techniquesWhen dynamic becomes static - the next step in web caching techniques
When dynamic becomes static - the next step in web caching techniquesWim Godden
 
Minimalism in Web Development
Minimalism in Web DevelopmentMinimalism in Web Development
Minimalism in Web DevelopmentJamie Matthews
 
[rwdsummit2012] Adaptive Images in Responsive Web Design
[rwdsummit2012] Adaptive Images in Responsive Web Design[rwdsummit2012] Adaptive Images in Responsive Web Design
[rwdsummit2012] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
Progressive Downloads and Rendering
Progressive Downloads and RenderingProgressive Downloads and Rendering
Progressive Downloads and RenderingStoyan Stefanov
 
Web Performance: 3 Stages to Success
Web Performance: 3 Stages to SuccessWeb Performance: 3 Stages to Success
Web Performance: 3 Stages to SuccessAustin Gil
 
[html5tx] Adaptive Images in Responsive Web Design
[html5tx] Adaptive Images in Responsive Web Design[html5tx] Adaptive Images in Responsive Web Design
[html5tx] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
A High-Performance Solution To Microservices UI Composition
A High-Performance Solution To Microservices UI CompositionA High-Performance Solution To Microservices UI Composition
A High-Performance Solution To Microservices UI CompositionAlexey Gravanov
 
A holistic approach to web performance
A holistic approach to web performanceA holistic approach to web performance
A holistic approach to web performanceAustin Gil
 
Progressive downloads and rendering (Stoyan Stefanov)
Progressive downloads and rendering (Stoyan Stefanov)Progressive downloads and rendering (Stoyan Stefanov)
Progressive downloads and rendering (Stoyan Stefanov)Ontico
 

Similar to Web page load speed optimization (20)

The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
 
Build Better Responsive websites. Hrvoje Jurišić
Build Better Responsive websites. Hrvoje JurišićBuild Better Responsive websites. Hrvoje Jurišić
Build Better Responsive websites. Hrvoje Jurišić
 
Bringing the JAMstack to the Enterprise
Bringing the JAMstack to the EnterpriseBringing the JAMstack to the Enterprise
Bringing the JAMstack to the Enterprise
 
The High Performance Web Application Lifecycle
The High Performance Web Application LifecycleThe High Performance Web Application Lifecycle
The High Performance Web Application Lifecycle
 
Design & Performance - Steve Souders at Fastly Altitude 2015
Design & Performance - Steve Souders at Fastly Altitude 2015Design & Performance - Steve Souders at Fastly Altitude 2015
Design & Performance - Steve Souders at Fastly Altitude 2015
 
Web performance tuning
Web performance tuning Web performance tuning
Web performance tuning
 
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 201210 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
 
Design+Performance Velocity 2015
Design+Performance Velocity 2015Design+Performance Velocity 2015
Design+Performance Velocity 2015
 
CSS and image optimization
CSS and image optimizationCSS and image optimization
CSS and image optimization
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design
 
[cssdevconf] Adaptive Images in RWD
[cssdevconf] Adaptive Images in RWD[cssdevconf] Adaptive Images in RWD
[cssdevconf] Adaptive Images in RWD
 
When dynamic becomes static - the next step in web caching techniques
When dynamic becomes static - the next step in web caching techniquesWhen dynamic becomes static - the next step in web caching techniques
When dynamic becomes static - the next step in web caching techniques
 
Minimalism in Web Development
Minimalism in Web DevelopmentMinimalism in Web Development
Minimalism in Web Development
 
[rwdsummit2012] Adaptive Images in Responsive Web Design
[rwdsummit2012] Adaptive Images in Responsive Web Design[rwdsummit2012] Adaptive Images in Responsive Web Design
[rwdsummit2012] Adaptive Images in Responsive Web Design
 
Progressive Downloads and Rendering
Progressive Downloads and RenderingProgressive Downloads and Rendering
Progressive Downloads and Rendering
 
Web Performance: 3 Stages to Success
Web Performance: 3 Stages to SuccessWeb Performance: 3 Stages to Success
Web Performance: 3 Stages to Success
 
[html5tx] Adaptive Images in Responsive Web Design
[html5tx] Adaptive Images in Responsive Web Design[html5tx] Adaptive Images in Responsive Web Design
[html5tx] Adaptive Images in Responsive Web Design
 
A High-Performance Solution To Microservices UI Composition
A High-Performance Solution To Microservices UI CompositionA High-Performance Solution To Microservices UI Composition
A High-Performance Solution To Microservices UI Composition
 
A holistic approach to web performance
A holistic approach to web performanceA holistic approach to web performance
A holistic approach to web performance
 
Progressive downloads and rendering (Stoyan Stefanov)
Progressive downloads and rendering (Stoyan Stefanov)Progressive downloads and rendering (Stoyan Stefanov)
Progressive downloads and rendering (Stoyan Stefanov)
 

Recently uploaded

TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)dollysharma2066
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniquesugginaramesh
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 

Recently uploaded (20)

TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniques
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 

Web page load speed optimization

Editor's Notes

  1. 1-секундная задержка в загрузке веб-страницы влечет за собой: 11% - потеря количества просмотров. 16% - потеря удовлетворенности клиентов 7% - потеря конверсии
  2. Иногда мы не знаем, что будет через 1 сек
  3. Иногда 1 сек все тотально решает
  4. According to the Guinness Book of World Records, Steven Petrosino is the Beer Chugging World Champion. On June 22, 1977, he drank 1 liter of beer in 1.3 seconds at the Gingerbreadman in Carlise, PA, a 56% improvement over the previous world record set several years earlier by Peter Dowdeswell of England (2.3 seconds for 1 liter)
  5. 1-секундная задержка в загрузке веб-страницы влечет за собой: 11% - потеря количества просмотров. 16% - потеря удовлетворенности клиентов 7% - потеря конверсии
  6. 1-секундная задержка в загрузке веб-страницы влечет за собой: 11% - потеря количества просмотров. 16% - потеря удовлетворенности клиентов 7% - потеря конверсии
  7. Shopzilla ускорить среднее время загрузки страницы из 6 секунд до 1,2 секунд, а увеличение доходов на 12% и просмотров страниц на 25%. Amazon увеличил выручку на 1% за каждые 100 мс улучшения (так же, как Walmart). Yahoo увеличение трафика на 9% за каждые 400 мс улучшения. Наконец, Mozilla получили 60 миллионов больше Firefox загрузок в год, делая свои страницы 2,2 секунды быстрее.
  8. мы все ждем такой реакции пользователя
  9. а что мы зачастую получаем
  10. информационно-развлекательных систем
  11. http://addyosmani.com/blog/image-optimization-tools/ As we saw a few weeks ago, the weight of an average web page is now almost 1.5MB (median ~1MB), with > 50% of this being images указывайте аттрибуты юзайте спратйы
  12. . Why GZIP? • GZIP is not the best compression method, but there are a few good reasons to use it. • Provides a good tradeoff between speed and ratio. • Difficulty to add newer compression methods. The "Content-Encoding"/"Accept-Encoding" and "Transfer-Encoding"/"TE" headers in HTTP/1.1 allow clients to optionally receive compressed HTTP responses and (less commonly) to send compressed requests. The specification for HTTP/1.1 (RFC 2616) specifies three compression methods: "gzip" (RFC 1952; the content wrapped in a gzip stream), "deflate" (RFC 1950; the content wrapped in a zlib-formatted stream), and "compress" (explained in RFC 2616 section 3.5 as "The encoding format produced by the common UNIX file compression program compress. This format is an adaptive Lempel-Ziv-Welch coding (LZW)."). Many client libraries, browsers, and server platforms (including Apache and Microsoft IIS) support gzip. Many agents also support deflate, although several important players incorrectly implement deflate support using the format specified by RFC 1951 instead of the correct format specified by RFC 1950 (which encapsulates RFC 1951). Notably, Internet Explorer versions 6, 7, and 8 report deflate support but do not actually accept RFC 1950 format, making actual use of deflate highly unusual. Many clients accept both RFC 1951 and RFC 1950-formatted data for the "deflate" compressed method, but a server has no way to detect whether a client will correctly handle RFC 1950 format.[9]
  13. Accept-Encoding: gzip
  14. What is GZIP? Web server GET index.html Accept-Encoding: gzip
  15. Add an Expires header
  16. http://betterexplained.com/articles/how-to-optimize-your-site-with-http-caching/ http://www.mobify.com/blog/beginners-guide-to-http-cache-headers/
  17. Browser: Hey, give me logo.png, but only if it’s been modified since Mar 16, 2007. Server: (Checking the modification date) Server: Hey, you’re in luck! It was not modified since that date. You have the latest version. Browser: Great! I’ll show the user the cached version. Sending the short “Not Modified” message is a lot faster than needing to download the file again, especially for giant javascript or image files. Caching saves the day (err… the bandwidth).
  18. Сравнивая версии с временем изменения обычно работает, но может привести к проблемам. Что делать, если часы сервера изначально неправильно, а затем устроился? Что делать, если летнее время наступает рано и сервер не обновляется? В тайниках может быть неточным. Browser: Can I get logo.png, if nothing matches tag “ead145f”? Server: (Checking fingerprint on logo.png) Server: You’re in luck! The version here is “ead145f”. It was not modified. Browser: Score! I’ll show the user my cached version.
  19. Browser: Self, is it before the expiration date of Mar 20, 2007? (Assume it is). Browser: Verily, I will show the user the cached version.
  20. Avoid CSS @import
  21. Но на самом деле все не так просто. У Tizen есть длинная предистория. Выглядит она приблизительно так:
  22. Но на самом деле все не так просто. У Tizen есть длинная предистория. Выглядит она приблизительно так:
  23. Но на самом деле все не так просто. У Tizen есть длинная предистория. Выглядит она приблизительно так:
  24. Но на самом деле все не так просто. У Tizen есть длинная предистория. Выглядит она приблизительно так:
  25. Но на самом деле все не так просто. У Tizen есть длинная предистория. Выглядит она приблизительно так:
  26. Reduce DNS Lookups: DNS (Domain Name System) Lookup occurs when a URL (hostname) is typed in a browser and a DNS resolver returns that server’s IP address. The time needed for this process is around 20 – 120 milliseconds, however, multiple hostnames can be used for various elements on a website, which includes the URL, images, script files, style sheets and flash elements. With multiple unique hostnames the DNS lookup also increases thus increasing the page load time. Reducing the number of unique hostnames will reduce the number of parallel downloads, which may increase the page loading time. It is thus ideal to use one host when you have less than six resources. You can also use URL paths instead of hostnames. This means that if you have a blog page that is hosted on blog.yoursite.com, you can instead host it on www.yoursite.com/blog.
  27. Know what your webpage is doing. Decide what is important to your page.
  28. Know what your webpage is doing. Decide what is important to your page.
  29. Know what your webpage is doing. Decide what is important to your page.
  30. Reduce DNS Lookups: DNS (Domain Name System) Lookup occurs when a URL (hostname) is typed in a browser and a DNS resolver returns that server’s IP address. The time needed for this process is around 20 – 120 milliseconds, however, multiple hostnames can be used for various elements on a website, which includes the URL, images, script files, style sheets and flash elements. With multiple unique hostnames the DNS lookup also increases thus increasing the page load time. Reducing the number of unique hostnames will reduce the number of parallel downloads, which may increase the page loading time. It is thus ideal to use one host when you have less than six resources. You can also use URL paths instead of hostnames. This means that if you have a blog page that is hosted on blog.yoursite.com, you can instead host it on www.yoursite.com/blog.
  31. Know what your webpage is doing. Decide what is important to your page.
  32. Know what your webpage is doing. Decide what is important to your page.
  33. информационно-развлекательных систем
  34. MaxCombinedCssBytes MaxSegmentLength
  35. MaxCombinedCssBytes MaxSegmentLength
  36. MaxCombinedCssBytes MaxSegmentLength
  37. MaxCombinedCssBytes MaxSegmentLength
  38. MaxCombinedCssBytes MaxSegmentLength
  39. MaxCombinedCssBytes MaxSegmentLength
  40. MaxCombinedCssBytes MaxSegmentLength
  41. MaxCombinedCssBytes MaxSegmentLength
  42. MaxCombinedCssBytes MaxSegmentLength
  43. MaxCombinedCssBytes MaxSegmentLength
  44. defer_javascript tries to defer JavaScript execution until page load. It defers this by changing the type and src attributes of <script> elements on the HTML page to pagespeed_orig_type and pagespeed_orig_src respectively. It also adds a new type attribute whose value is set to text/psajs. A window.onload handler is added to the HTML, which executes all the deferred scripts. defer_javascript doesn't defer a script tag if it has the pagespeed_no_defer attribute. This is useful when a script tag needs to be executed while loading the page. For example, a script tag may be updating the main content dynamically as a slideshow of images in the visible content of the page. Usage:
  45. defer_javascript tries to defer JavaScript execution until page load. It defers this by changing the type and src attributes of <script> elements on the HTML page to pagespeed_orig_type and pagespeed_orig_src respectively. It also adds a new type attribute whose value is set to text/psajs. A window.onload handler is added to the HTML, which executes all the deferred scripts. defer_javascript doesn't defer a script tag if it has the pagespeed_no_defer attribute. This is useful when a script tag needs to be executed while loading the page. For example, a script tag may be updating the main content dynamically as a slideshow of images in the visible content of the page. Usage:
  46. defer_javascript tries to defer JavaScript execution until page load. It defers this by changing the type and src attributes of <script> elements on the HTML page to pagespeed_orig_type and pagespeed_orig_src respectively. It also adds a new type attribute whose value is set to text/psajs. A window.onload handler is added to the HTML, which executes all the deferred scripts. defer_javascript doesn't defer a script tag if it has the pagespeed_no_defer attribute. This is useful when a script tag needs to be executed while loading the page. For example, a script tag may be updating the main content dynamically as a slideshow of images in the visible content of the page. Usage:
  47. defer_javascript tries to defer JavaScript execution until page load. It defers this by changing the type and src attributes of <script> elements on the HTML page to pagespeed_orig_type and pagespeed_orig_src respectively. It also adds a new type attribute whose value is set to text/psajs. A window.onload handler is added to the HTML, which executes all the deferred scripts. defer_javascript doesn't defer a script tag if it has the pagespeed_no_defer attribute. This is useful when a script tag needs to be executed while loading the page. For example, a script tag may be updating the main content dynamically as a slideshow of images in the visible content of the page. Usage:
  48. Description dedup_inlined_images replaces repeated inlined images with JavaScript that loads the image from the first occurence of the image. If the first image doesn't have an id, one is generated and added to it. Operation dedup_inlined_images rewrites inlined images: If the image's data URL has not appeared earlier in the page then, if it doesn't already have one an id attribute is generated and added to the tag, then the existing/added id is recorded along with the data URL for comparison with subsequent inlined images. Otherwise, the <img> tag is replaced with an inline <script> tag that replaces itself with an <img> tag, loading the data URL from the preceding <img> tag with the id matching this tag's data URL.
  49. defer_javascript tries to defer JavaScript execution until page load. It defers this by changing the type and src attributes of <script> elements on the HTML page to pagespeed_orig_type and pagespeed_orig_src respectively. It also adds a new type attribute whose value is set to text/psajs. A window.onload handler is added to the HTML, which executes all the deferred scripts. defer_javascript doesn't defer a script tag if it has the pagespeed_no_defer attribute. This is useful when a script tag needs to be executed while loading the page. For example, a script tag may be updating the main content dynamically as a slideshow of images in the visible content of the page. Usage:
  50. MaxCombinedCssBytes MaxSegmentLength
  51. 'Extend Cache' seeks to improve the cacheability of a web page's resources without compromising the ability of site owners to change the resources and have those changes propagate to users' browsers. This filter is based on the best practice to optimize caching, as applied to the browser.
  52. Reduce the number of HTTP round-trips by combining multiple CSS resources into one.
  53. Reduce the number of HTTP round-trips by combining multiple CSS resources into one.
  54. Reduce the number of HTTP round-trips by combining multiple CSS resources into one.
  55. Reduce the number of HTTP round-trips by combining multiple CSS resources into one.
  56. Reduce the number of HTTP round-trips by combining multiple CSS resources into one.
  57. информационно-развлекательных систем
  58. MaxCombinedCssBytes MaxSegmentLength