SlideShare una empresa de Scribd logo
1 de 176
Descargar para leer sin conexión
@portentint
WAYS TO MAKE YOUR SITE FASTER
THE SITE SPEED DOWNLOAD
@portentint
h‫﬙‬p://portent.co/speedy-sites
@portentint
SITE SPEED IS A LITTLE SCARY
WHAT THE HELL IS
TTFB?!!!
@portentint
WE’LL WALK
THROUGH IT
well,
that’s a
relief
@portentint
I’ll explain relative
difficul‫,﬚‬ impact & when
to use each technique
@portentint
Ratings Scale
difficul‫:﬚‬
impact:
@portentint
These are just the techniques
I’ve found to be the biggest wins
@portentint
WHY?
@portentint
HERE’S THE THING
FASTER IS
BETTER
@portentint
HERE’S THE THING
MOSTLY.
heh. Oops.
@portentint
must…
deliver…
@portentint
HERE’S THE THING
@portentint
HERE’S THE THING
@portentint
HERE’S THE THING
@portentint
WHY?
$-
$10.00
$20.00
$30.00
1 2 3 4 5 6 7 8 9
Load time (seconds)
Page Value vs. Load Time
@portentint
WHY?
$-
$10.00
$20.00
$30.00
1 2 3 4 5 6 7 8 9
Load time (seconds)
Page Value vs. Load Time
WHY NOT?!!!!
@portentint
THREE BOTTLENECKS
@portentint
SERVING
@portentint
TRANSMISSION
@portentint
RENDERING
@portentint
DIAGNOSTIC TOOLS
@portentint
GOOGLE PAGE SPEED INSIGHTS
BASIC ANALYSIS
@portentint
Mostly transmission diagnostics
@portentint
developers.google.com/speed/pagespeed/insights/
@portentint
YSLOW
READ YOUR WEB SITE’S MIND
@portentint
Powerful
@portentint
Less intuitive
@portentint
yslow.org
@portentint
WEBPAGETEST.ORG
A HAPPY MEDIUM
@portentint
Captures many important stats
Hard-to-read HAR
@portentint
WHY YOU CAN’T TRUST TOOLS
@portentint
Webpagetest.org: > 8 seconds
@portentint
Pingdom: 1.67 seconds
@portentint
Reali‫﬚‬
@portentint
USE HAR
SITE SPEED SUPERPOWERS
@portentint
HAR: A direct, step-by-step view of site load & rendering
@portentint
@portentint
@portentint
@portentint
@portentint
DIAGNOSING BOTTLENECKS
& SPEEDING UP YOUR SITE
@portentint
TRANSMISSION
@portentint
WHY START WITH TRANSMISSION?
IT’S GOT THE EASIEST WINS
@portentint
Blue = Download time
It’s about bandwidth
@portentint
Image Compression
difficul‫:﬚‬
impact:
@portentint
Google PageSpeed
@portentint
HAR
@portentint
JPG format, 100% quali‫,﬚‬ 800 x 540: 400kb
@portentint
JPG format, 90% quali‫,﬚‬ 800 x 540: 217kb
@portentint
JPG format, 80% quali‫,﬚‬ 800 x 540: 100kb
@portentint
JPG format, 60% quali‫,﬚‬ 800 x 540: 67kb
@portentint
Page Speed Insights…
@portentint
…But it only does png
@portentint
Compression tools
Imageoptim (Mac)
Caesium (PC)
Fireworks/Photoshop
@portentint
Start at 60% JPG and
work your way up/down
@portentint
Start at 128 color PNG
@portentint
USE WHEN
WHY THE HELL NOT?!
@portentint
Use the right image format
difficul‫:﬚‬
impact:
@portentint
PNG format, 800 x 540: 1,000kb
@portentint
JPG format, 100% quali‫:﬚‬ 60kb
@portentint
PNG format, 32m color: 13kb
@portentint
PNG format, 256k color: 8kb
@portentint
USE WHEN
WHY THE HELL NOT?!
@portentint
Minification
difficul‫:﬚‬
impact:
@portentint
Not minified: 260kb
@portentint
Minified: 32kb
@portentint
Google PageSpeed
@portentint
Use .MIN.JS version of
javascript libraries
@portentint
jscompress.com
@portentint
cssminifier.com
@portentint
HTML, too
@portentint
USE WHEN
Always
@portentint
HTTP compression
difficul‫:﬚‬
impact:
@portentint
Lossless compression of HTML,
javascript, css, other files
@portentint
Hey, thanks! I’ll
extract it here.
I’m going to
compress these
files for you so
they arrive more
quickly.
@portentint
CHECKGZIPCOMPRESSION.COM
@portentint
Google PageSpeed
@portentint
Apache
mod_deflate
@portentint
nginx
ngx_h‫﬙‬p_gzip_module
@portentint
IIS
Click the checkbox
@portentint
Not always possible
with 3rd-par‫﬚‬ scripts
@portentint
NOT OVER SSLunless you really know what you’re doing
@portentint
USE WHEN
Any non-encrypted
@portentint
Expires Headers
difficul‫:﬚‬
impact:
@portentint
this file
doesn’t change
that often.
ok, i’ll save it
to my hard drive.
@portentint
Google PageSpeed
@portentint
Not possible w/ 3rd-par‫﬚‬ scripts
@portentint
Apache
mod_expires
@portentint
nginx
ngx_h‫﬙‬p_headers_module
@portentint
IIS
clientCache or h‫﬙‬pExpires or …?
@portentint
USE WHEN
Site uses many static files
@portentint
HERE’S THE THING
TEST.my bad.
@portentint
RENDERING
@portentint
It’s about browser performance
How quickly can a browser ‘draw’ this page?
@portentint
Webpagetest.org
@portentint
This line
HAR view
This number
@portentint
APPARENT RENDER TIME
MEASURED RENDER TIME
@portentint
Load order
difficul‫:﬚‬
impact:
@portentint
CSS first. Javascript last.
@portentint
<script src=“script.js” defer>
Load in parallel, don’t block
@portentint
<script src=“script.js” async>
Load in parallel, execute
as soon as possible
@portentint
Tag managers…?
@portentint
Google PageSpeed
@portentint
HAR
@portentint
May break 3rd-par‫﬚‬ javascript
@portentint
USE WHEN
You can
@portentint
Parallel downloads
difficul‫:﬚‬
impact:
@portentint
3 different subdomains
@portentint
Parallel load
@portentint
USE WHEN
You can use multiple subdomains
You use a CDN
@portentint
Optimizing HTML
difficul‫:﬚‬
impact:
@portentint
35,000 lines of code
Render time: 1.5s
html: 900kb
@portentint
why?
@portentint
Put in .css instead
@portentint
Much be‫﬙‬er
@portentint
Minified html
@portentint
DOM elements
(yslow)
@portentint
At least get rid of the white space
@portentint
USE WHEN
Always
@portentint
Lazy loading
difficul‫:﬚‬
impact:
@portentint
Image loads when
I scroll to here
@portentint
h‫﬙‬p://portent.co/load-lazy
@portentint
USE WHEN
You have below-the-fold images
You have a gallery
@portentint
DNS prefetch
difficul‫:﬚‬
impact:
@portentint
HAR
@portentint
<link rel="dns-prefetch" href="//domainname.com" />

<link rel=“dns-prefetch” href=“https://api.twitter.com” />
@portentint
Prefetch/Prerender
difficul‫:﬚‬
impact:
@portentint
You go to
this page a lot.
I’m going to get it
ready ahead of
time.
@portentint
Most popular page
prerendered
@portentint
@portentint
<link rel="prerender" href=”images/kittens.jpg">
Load file in advance
@portentint
<link rel=”prefetch" href="http://my-site.com/bar.html">
Load & render page in advance
@portentint
USE WHEN
You know certain pages dominate
@portentint
HERE’S THE THING
TEST!!!d’oh
@portentint
SERVING
@portentint
Nerds required
yeah baby
@portentint
TTFB: Time To First Byte
@portentint
Google PageSpeed
@portentint
HAR
@portentint
Time to First Byte (TTFB) should not > 500ms
@portentint
But <250ms is be‫﬙‬er
@portentint
CDN
difficul‫:﬚‬
impact:
@portentint
No CDN
hellloooooo
@portentint
CDN
@portentint
A lot of work, but also helps with
h‫﬙‬p compression, parallel loading,
cookieless delivery, expires headers
@portentint
USE WHEN
You can
@portentint
disk & query caching
difficul‫:﬚‬
impact:
@portentint
STORED ON DISK
@portentint
That’s a long time.
Are you using disk
caching?
@portentint
Stalled may indicate a page
generation bo‫﬙‬leneck. Use
disk/query caching
@portentint
USE WHEN
…
@portentint
keep-alive
difficul‫:﬚‬
impact:
@portentint
No keep-alive
Sure!
may i have
index.html?
@portentint
No keep-alive
Sure!
may i have
index.html?
ok! can I have
styles.css? uh, ok
@portentint
No keep-alive
Sure!
may i have
index.html?
ok! can I have
styles.css? uh, okthanks! can i have
jquery.js?
@portentint
No keep-alive
Sure!
may i have
index.html?
ok! can I have
styles.css? uh, okthanks! can i have
jquery.js?
can i have
image.gif?
@portentint
Maintains connection, so fewer ‘handshakes’
Keep-alive
@portentint
Keep-alive
Sure!
can i have index.html,
image.gif, jquery.js
and styles.css
please?
@portentint
USE WHEN
Always
@portentint
php/code acceleration
difficul‫:﬚‬
impact:
@portentint
Xcache
APC
@portentint
USE WHEN
It’s available
@portentint
pre-rendering/server caching
difficul‫:﬚‬
impact:
@portentint
Request page
Store rendered page
Deliver page
Generate page
Web/application server
Phantomjs
Cache server
@portentint
USE WHEN
It’s doable
@portentint
HERE’S THE THING
TEST!!!whoopsie
@portentint
GOOGLE AMP?
FACEBOOK INSTANT PAGES?
@portentint
First, do it right
@portentint
MORE TO DO
@portentint
Sprites/Reduce HTTP calls
Responsive image scaling
CSS optimization
Javascript optimization
Cookieless delivery
@portentint
REMEMBER THE BOTTLENECKS
@portentint
SERVING
@portentint
TRANSMISSION
@portentint
RENDERING
@portentint
HERE’S THE THING
TEST!!!
@portentint
Ian Lurie
@portentint
www.portent.com
h‫﬙‬p://portent.co/speedy-sites
h‫﬙‬p://portent.co/page-speed-guide

Más contenido relacionado

La actualidad más candente

Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick StoxPubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stoxpatrickstox
 
Split Testing for SEO - 9 Months of Learning
Split Testing for SEO - 9 Months of LearningSplit Testing for SEO - 9 Months of Learning
Split Testing for SEO - 9 Months of LearningDominic Woodman
 
Browser Changes That Will Impact SEO From 2019-2020
Browser Changes That Will Impact SEO From 2019-2020Browser Changes That Will Impact SEO From 2019-2020
Browser Changes That Will Impact SEO From 2019-2020Tom Anthony
 
Hey Googlebot, did you cache that ?
Hey Googlebot, did you cache that ?Hey Googlebot, did you cache that ?
Hey Googlebot, did you cache that ?Petra Kis-Herczegh
 
The New Renaissance of JavaScript
The New Renaissance of JavaScriptThe New Renaissance of JavaScript
The New Renaissance of JavaScriptHamlet Batista
 
So you think you know canonical tags - Sean Butcher Brighton SEO presentation
So you think you know canonical tags -  Sean Butcher Brighton SEO presentationSo you think you know canonical tags -  Sean Butcher Brighton SEO presentation
So you think you know canonical tags - Sean Butcher Brighton SEO presentationSean Butcher
 
11 Advanced Uses of Screaming Frog Nov 2019 DMSS
11 Advanced Uses of Screaming Frog Nov 2019 DMSS11 Advanced Uses of Screaming Frog Nov 2019 DMSS
11 Advanced Uses of Screaming Frog Nov 2019 DMSSOliver Brett
 
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEO
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEORendering SEO Manifesto - Why we need to go beyond JavaScript SEO
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEOOnely
 
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018patrickstox
 
Pubcon florida 2018 logs dont lie dawn anderson
Pubcon florida 2018 logs dont lie dawn andersonPubcon florida 2018 logs dont lie dawn anderson
Pubcon florida 2018 logs dont lie dawn andersonDawn Anderson MSc DigM
 
How I learned to stop worrying and love the .htaccess file
How I learned to stop worrying and love the .htaccess fileHow I learned to stop worrying and love the .htaccess file
How I learned to stop worrying and love the .htaccess fileRoxana Stingu
 
15 Ways To A Blistering-Fast Web Site
15 Ways To A Blistering-Fast Web Site15 Ways To A Blistering-Fast Web Site
15 Ways To A Blistering-Fast Web SiteIan Lurie
 
TechSEO Boost 2017: The State of Technical SEO
TechSEO Boost 2017: The State of Technical SEOTechSEO Boost 2017: The State of Technical SEO
TechSEO Boost 2017: The State of Technical SEOCatalyst
 
Brighton SEO Sept 2019 PowerShell
Brighton SEO Sept 2019 PowerShellBrighton SEO Sept 2019 PowerShell
Brighton SEO Sept 2019 PowerShellMike Osolinski
 
TechSEO Boost 2017: Making the Web Fast
TechSEO Boost 2017: Making the Web FastTechSEO Boost 2017: Making the Web Fast
TechSEO Boost 2017: Making the Web FastCatalyst
 
#CMC2019: Advanced SEO: Competitive intelligence, Web Scraping, and More.
#CMC2019: Advanced SEO: Competitive intelligence, Web Scraping, and More. #CMC2019: Advanced SEO: Competitive intelligence, Web Scraping, and More.
#CMC2019: Advanced SEO: Competitive intelligence, Web Scraping, and More. Mel Sciorra
 
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital MarketersSearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital MarketersDistilled
 
TFM - Using Google Tag Manager for ecom
TFM - Using Google Tag Manager for ecom TFM - Using Google Tag Manager for ecom
TFM - Using Google Tag Manager for ecom Gerry White
 

La actualidad más candente (19)

Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick StoxPubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
 
Split Testing for SEO - 9 Months of Learning
Split Testing for SEO - 9 Months of LearningSplit Testing for SEO - 9 Months of Learning
Split Testing for SEO - 9 Months of Learning
 
Browser Changes That Will Impact SEO From 2019-2020
Browser Changes That Will Impact SEO From 2019-2020Browser Changes That Will Impact SEO From 2019-2020
Browser Changes That Will Impact SEO From 2019-2020
 
Hey Googlebot, did you cache that ?
Hey Googlebot, did you cache that ?Hey Googlebot, did you cache that ?
Hey Googlebot, did you cache that ?
 
SEO for Large Websites
SEO for Large WebsitesSEO for Large Websites
SEO for Large Websites
 
The New Renaissance of JavaScript
The New Renaissance of JavaScriptThe New Renaissance of JavaScript
The New Renaissance of JavaScript
 
So you think you know canonical tags - Sean Butcher Brighton SEO presentation
So you think you know canonical tags -  Sean Butcher Brighton SEO presentationSo you think you know canonical tags -  Sean Butcher Brighton SEO presentation
So you think you know canonical tags - Sean Butcher Brighton SEO presentation
 
11 Advanced Uses of Screaming Frog Nov 2019 DMSS
11 Advanced Uses of Screaming Frog Nov 2019 DMSS11 Advanced Uses of Screaming Frog Nov 2019 DMSS
11 Advanced Uses of Screaming Frog Nov 2019 DMSS
 
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEO
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEORendering SEO Manifesto - Why we need to go beyond JavaScript SEO
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEO
 
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
 
Pubcon florida 2018 logs dont lie dawn anderson
Pubcon florida 2018 logs dont lie dawn andersonPubcon florida 2018 logs dont lie dawn anderson
Pubcon florida 2018 logs dont lie dawn anderson
 
How I learned to stop worrying and love the .htaccess file
How I learned to stop worrying and love the .htaccess fileHow I learned to stop worrying and love the .htaccess file
How I learned to stop worrying and love the .htaccess file
 
15 Ways To A Blistering-Fast Web Site
15 Ways To A Blistering-Fast Web Site15 Ways To A Blistering-Fast Web Site
15 Ways To A Blistering-Fast Web Site
 
TechSEO Boost 2017: The State of Technical SEO
TechSEO Boost 2017: The State of Technical SEOTechSEO Boost 2017: The State of Technical SEO
TechSEO Boost 2017: The State of Technical SEO
 
Brighton SEO Sept 2019 PowerShell
Brighton SEO Sept 2019 PowerShellBrighton SEO Sept 2019 PowerShell
Brighton SEO Sept 2019 PowerShell
 
TechSEO Boost 2017: Making the Web Fast
TechSEO Boost 2017: Making the Web FastTechSEO Boost 2017: Making the Web Fast
TechSEO Boost 2017: Making the Web Fast
 
#CMC2019: Advanced SEO: Competitive intelligence, Web Scraping, and More.
#CMC2019: Advanced SEO: Competitive intelligence, Web Scraping, and More. #CMC2019: Advanced SEO: Competitive intelligence, Web Scraping, and More.
#CMC2019: Advanced SEO: Competitive intelligence, Web Scraping, and More.
 
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital MarketersSearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
 
TFM - Using Google Tag Manager for ecom
TFM - Using Google Tag Manager for ecom TFM - Using Google Tag Manager for ecom
TFM - Using Google Tag Manager for ecom
 

Similar a Lots of ways to speed up your site

Bullshit, Own It: A Temperamental SEO's Guide To Getting Shit Done
Bullshit, Own It: A Temperamental SEO's Guide To Getting Shit DoneBullshit, Own It: A Temperamental SEO's Guide To Getting Shit Done
Bullshit, Own It: A Temperamental SEO's Guide To Getting Shit DoneIan Lurie
 
Offline of web applications
Offline of web applicationsOffline of web applications
Offline of web applicationsFDConf
 
Offline for web - Frontend Dev Conf Minsk 2014
Offline for web - Frontend Dev Conf Minsk 2014Offline for web - Frontend Dev Conf Minsk 2014
Offline for web - Frontend Dev Conf Minsk 2014Jan Jongboom
 
Performance as User Experience [AEADC 2018]
Performance as User Experience [AEADC 2018]Performance as User Experience [AEADC 2018]
Performance as User Experience [AEADC 2018]Aaron Gustafson
 
High Performance Web - Full Stack Toronto
High Performance Web - Full Stack TorontoHigh Performance Web - Full Stack Toronto
High Performance Web - Full Stack TorontoMaximiliano Firtman
 
Progressively Enhancing WordPress Themes
Progressively Enhancing WordPress ThemesProgressively Enhancing WordPress Themes
Progressively Enhancing WordPress ThemesDigitally
 
Scraping with Python for Fun and Profit - PyCon India 2010
Scraping with Python for Fun and Profit - PyCon India 2010Scraping with Python for Fun and Profit - PyCon India 2010
Scraping with Python for Fun and Profit - PyCon India 2010Abhishek Mishra
 
Voices that matter: High Performance Web Sites
Voices that matter: High Performance Web SitesVoices that matter: High Performance Web Sites
Voices that matter: High Performance Web SitesStoyan Stefanov
 
Microsoft Expression Web: From Comp, to CSS, to Code!
Microsoft Expression Web: From Comp, to CSS, to Code!Microsoft Expression Web: From Comp, to CSS, to Code!
Microsoft Expression Web: From Comp, to CSS, to Code!goodfriday
 
YGLF 2015 - Boom Performance | Eran Zinman (daPulse)
YGLF 2015 -  Boom Performance | Eran Zinman (daPulse)YGLF 2015 -  Boom Performance | Eran Zinman (daPulse)
YGLF 2015 - Boom Performance | Eran Zinman (daPulse)Eran Zinman
 
BOOM Performance
BOOM PerformanceBOOM Performance
BOOM Performancedapulse
 
Frontend Performance: Illusions & browser rendering
Frontend Performance: Illusions & browser renderingFrontend Performance: Illusions & browser rendering
Frontend Performance: Illusions & browser renderingManuel Garcia
 
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...Jazkarta, Inc.
 
Responsive Web Design - but for real!
Responsive Web Design - but for real!Responsive Web Design - but for real!
Responsive Web Design - but for real!Rudy Rigot
 
Topsy Turvy Design
Topsy Turvy DesignTopsy Turvy Design
Topsy Turvy DesignRich Quick
 
Why Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your ClientsWhy Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your ClientsPantheon
 
Twiggy - let's get our widget on!
Twiggy - let's get our widget on!Twiggy - let's get our widget on!
Twiggy - let's get our widget on!Elliott Kember
 
Fantastic Front-End Performance Tricks & Why We Do Them
Fantastic Front-End Performance Tricks & Why We Do ThemFantastic Front-End Performance Tricks & Why We Do Them
Fantastic Front-End Performance Tricks & Why We Do ThemC4Media
 
Getting Started with WordPress Development
Getting Started with WordPress DevelopmentGetting Started with WordPress Development
Getting Started with WordPress DevelopmentRyan Welcher
 

Similar a Lots of ways to speed up your site (20)

Bullshit, Own It: A Temperamental SEO's Guide To Getting Shit Done
Bullshit, Own It: A Temperamental SEO's Guide To Getting Shit DoneBullshit, Own It: A Temperamental SEO's Guide To Getting Shit Done
Bullshit, Own It: A Temperamental SEO's Guide To Getting Shit Done
 
Offline of web applications
Offline of web applicationsOffline of web applications
Offline of web applications
 
Offline for web - Frontend Dev Conf Minsk 2014
Offline for web - Frontend Dev Conf Minsk 2014Offline for web - Frontend Dev Conf Minsk 2014
Offline for web - Frontend Dev Conf Minsk 2014
 
Performance as User Experience [AEADC 2018]
Performance as User Experience [AEADC 2018]Performance as User Experience [AEADC 2018]
Performance as User Experience [AEADC 2018]
 
High Performance Web - Full Stack Toronto
High Performance Web - Full Stack TorontoHigh Performance Web - Full Stack Toronto
High Performance Web - Full Stack Toronto
 
Progressively Enhancing WordPress Themes
Progressively Enhancing WordPress ThemesProgressively Enhancing WordPress Themes
Progressively Enhancing WordPress Themes
 
Reification
ReificationReification
Reification
 
Scraping with Python for Fun and Profit - PyCon India 2010
Scraping with Python for Fun and Profit - PyCon India 2010Scraping with Python for Fun and Profit - PyCon India 2010
Scraping with Python for Fun and Profit - PyCon India 2010
 
Voices that matter: High Performance Web Sites
Voices that matter: High Performance Web SitesVoices that matter: High Performance Web Sites
Voices that matter: High Performance Web Sites
 
Microsoft Expression Web: From Comp, to CSS, to Code!
Microsoft Expression Web: From Comp, to CSS, to Code!Microsoft Expression Web: From Comp, to CSS, to Code!
Microsoft Expression Web: From Comp, to CSS, to Code!
 
YGLF 2015 - Boom Performance | Eran Zinman (daPulse)
YGLF 2015 -  Boom Performance | Eran Zinman (daPulse)YGLF 2015 -  Boom Performance | Eran Zinman (daPulse)
YGLF 2015 - Boom Performance | Eran Zinman (daPulse)
 
BOOM Performance
BOOM PerformanceBOOM Performance
BOOM Performance
 
Frontend Performance: Illusions & browser rendering
Frontend Performance: Illusions & browser renderingFrontend Performance: Illusions & browser rendering
Frontend Performance: Illusions & browser rendering
 
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
 
Responsive Web Design - but for real!
Responsive Web Design - but for real!Responsive Web Design - but for real!
Responsive Web Design - but for real!
 
Topsy Turvy Design
Topsy Turvy DesignTopsy Turvy Design
Topsy Turvy Design
 
Why Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your ClientsWhy Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your Clients
 
Twiggy - let's get our widget on!
Twiggy - let's get our widget on!Twiggy - let's get our widget on!
Twiggy - let's get our widget on!
 
Fantastic Front-End Performance Tricks & Why We Do Them
Fantastic Front-End Performance Tricks & Why We Do ThemFantastic Front-End Performance Tricks & Why We Do Them
Fantastic Front-End Performance Tricks & Why We Do Them
 
Getting Started with WordPress Development
Getting Started with WordPress DevelopmentGetting Started with WordPress Development
Getting Started with WordPress Development
 

Más de Ian Lurie

Data Visualization For Marketers
Data Visualization For MarketersData Visualization For Marketers
Data Visualization For MarketersIan Lurie
 
Starting, Running, And Selling An Agency: Life Among The Monsters
Starting, Running, And Selling An Agency: Life Among The MonstersStarting, Running, And Selling An Agency: Life Among The Monsters
Starting, Running, And Selling An Agency: Life Among The MonstersIan Lurie
 
Core Web Vitals and SEO: Don't Panic. Improve.
Core Web Vitals and SEO: Don't Panic. Improve.Core Web Vitals and SEO: Don't Panic. Improve.
Core Web Vitals and SEO: Don't Panic. Improve.Ian Lurie
 
Big Content, Small Teams: Content Creation For The Real World
Big Content, Small Teams: Content Creation For The Real WorldBig Content, Small Teams: Content Creation For The Real World
Big Content, Small Teams: Content Creation For The Real WorldIan Lurie
 
Teaching SEO To Internal Teams: Don't Be Ridiculous
Teaching SEO To Internal Teams: Don't Be RidiculousTeaching SEO To Internal Teams: Don't Be Ridiculous
Teaching SEO To Internal Teams: Don't Be RidiculousIan Lurie
 
E-A-T: Myths, Truths, And Implications for SEO
E-A-T: Myths, Truths, And Implications for SEOE-A-T: Myths, Truths, And Implications for SEO
E-A-T: Myths, Truths, And Implications for SEOIan Lurie
 
SEO Copywriting: The Blank Sheet Of Paper Test
SEO Copywriting: The Blank Sheet Of Paper TestSEO Copywriting: The Blank Sheet Of Paper Test
SEO Copywriting: The Blank Sheet Of Paper TestIan Lurie
 
Your Content Doesn't Matter Without Technology
Your Content Doesn't Matter Without TechnologyYour Content Doesn't Matter Without Technology
Your Content Doesn't Matter Without TechnologyIan Lurie
 
The Dungeons & Dragons Guide to Marketing
The Dungeons & Dragons Guide to MarketingThe Dungeons & Dragons Guide to Marketing
The Dungeons & Dragons Guide to MarketingIan Lurie
 
Advanced SEO: No More Bullshit
Advanced SEO: No More BullshitAdvanced SEO: No More Bullshit
Advanced SEO: No More BullshitIan Lurie
 
Advanced SEO: Logs, Load, and Language
Advanced SEO: Logs, Load, and LanguageAdvanced SEO: Logs, Load, and Language
Advanced SEO: Logs, Load, and LanguageIan Lurie
 
A Beginner's Guide to PPC: Fast Times, Easy Wins, And Burned Money
A Beginner's Guide to PPC: Fast Times, Easy Wins, And Burned MoneyA Beginner's Guide to PPC: Fast Times, Easy Wins, And Burned Money
A Beginner's Guide to PPC: Fast Times, Easy Wins, And Burned MoneyIan Lurie
 
5 Lessons For Entrepreneurs: 2018 Edition
5 Lessons For Entrepreneurs: 2018 Edition5 Lessons For Entrepreneurs: 2018 Edition
5 Lessons For Entrepreneurs: 2018 EditionIan Lurie
 
Advanced Content Workflow Using GitHub and Markdown
Advanced Content Workflow Using GitHub and MarkdownAdvanced Content Workflow Using GitHub and Markdown
Advanced Content Workflow Using GitHub and MarkdownIan Lurie
 
Tip Per Minute: A Hyper-Active SEO Brain Dump
Tip Per Minute: A Hyper-Active SEO Brain DumpTip Per Minute: A Hyper-Active SEO Brain Dump
Tip Per Minute: A Hyper-Active SEO Brain DumpIan Lurie
 
Intelligent CX: 25 Years of Marketing, And Where to Go Next
Intelligent CX: 25 Years of Marketing, And Where to Go NextIntelligent CX: 25 Years of Marketing, And Where to Go Next
Intelligent CX: 25 Years of Marketing, And Where to Go NextIan Lurie
 
Burying Hate Sites in the SERPs
Burying Hate Sites in the SERPsBurying Hate Sites in the SERPs
Burying Hate Sites in the SERPsIan Lurie
 
Marketing Worldbuilding: Collaborative Storytelling for Digital
Marketing Worldbuilding: Collaborative Storytelling for DigitalMarketing Worldbuilding: Collaborative Storytelling for Digital
Marketing Worldbuilding: Collaborative Storytelling for DigitalIan Lurie
 
Lean Content: Marketing Profs B2B
Lean Content: Marketing Profs B2BLean Content: Marketing Profs B2B
Lean Content: Marketing Profs B2BIan Lurie
 
Needs into Wants: Amazon, Google and the Race for Rankings
Needs into Wants: Amazon, Google and the Race for RankingsNeeds into Wants: Amazon, Google and the Race for Rankings
Needs into Wants: Amazon, Google and the Race for RankingsIan Lurie
 

Más de Ian Lurie (20)

Data Visualization For Marketers
Data Visualization For MarketersData Visualization For Marketers
Data Visualization For Marketers
 
Starting, Running, And Selling An Agency: Life Among The Monsters
Starting, Running, And Selling An Agency: Life Among The MonstersStarting, Running, And Selling An Agency: Life Among The Monsters
Starting, Running, And Selling An Agency: Life Among The Monsters
 
Core Web Vitals and SEO: Don't Panic. Improve.
Core Web Vitals and SEO: Don't Panic. Improve.Core Web Vitals and SEO: Don't Panic. Improve.
Core Web Vitals and SEO: Don't Panic. Improve.
 
Big Content, Small Teams: Content Creation For The Real World
Big Content, Small Teams: Content Creation For The Real WorldBig Content, Small Teams: Content Creation For The Real World
Big Content, Small Teams: Content Creation For The Real World
 
Teaching SEO To Internal Teams: Don't Be Ridiculous
Teaching SEO To Internal Teams: Don't Be RidiculousTeaching SEO To Internal Teams: Don't Be Ridiculous
Teaching SEO To Internal Teams: Don't Be Ridiculous
 
E-A-T: Myths, Truths, And Implications for SEO
E-A-T: Myths, Truths, And Implications for SEOE-A-T: Myths, Truths, And Implications for SEO
E-A-T: Myths, Truths, And Implications for SEO
 
SEO Copywriting: The Blank Sheet Of Paper Test
SEO Copywriting: The Blank Sheet Of Paper TestSEO Copywriting: The Blank Sheet Of Paper Test
SEO Copywriting: The Blank Sheet Of Paper Test
 
Your Content Doesn't Matter Without Technology
Your Content Doesn't Matter Without TechnologyYour Content Doesn't Matter Without Technology
Your Content Doesn't Matter Without Technology
 
The Dungeons & Dragons Guide to Marketing
The Dungeons & Dragons Guide to MarketingThe Dungeons & Dragons Guide to Marketing
The Dungeons & Dragons Guide to Marketing
 
Advanced SEO: No More Bullshit
Advanced SEO: No More BullshitAdvanced SEO: No More Bullshit
Advanced SEO: No More Bullshit
 
Advanced SEO: Logs, Load, and Language
Advanced SEO: Logs, Load, and LanguageAdvanced SEO: Logs, Load, and Language
Advanced SEO: Logs, Load, and Language
 
A Beginner's Guide to PPC: Fast Times, Easy Wins, And Burned Money
A Beginner's Guide to PPC: Fast Times, Easy Wins, And Burned MoneyA Beginner's Guide to PPC: Fast Times, Easy Wins, And Burned Money
A Beginner's Guide to PPC: Fast Times, Easy Wins, And Burned Money
 
5 Lessons For Entrepreneurs: 2018 Edition
5 Lessons For Entrepreneurs: 2018 Edition5 Lessons For Entrepreneurs: 2018 Edition
5 Lessons For Entrepreneurs: 2018 Edition
 
Advanced Content Workflow Using GitHub and Markdown
Advanced Content Workflow Using GitHub and MarkdownAdvanced Content Workflow Using GitHub and Markdown
Advanced Content Workflow Using GitHub and Markdown
 
Tip Per Minute: A Hyper-Active SEO Brain Dump
Tip Per Minute: A Hyper-Active SEO Brain DumpTip Per Minute: A Hyper-Active SEO Brain Dump
Tip Per Minute: A Hyper-Active SEO Brain Dump
 
Intelligent CX: 25 Years of Marketing, And Where to Go Next
Intelligent CX: 25 Years of Marketing, And Where to Go NextIntelligent CX: 25 Years of Marketing, And Where to Go Next
Intelligent CX: 25 Years of Marketing, And Where to Go Next
 
Burying Hate Sites in the SERPs
Burying Hate Sites in the SERPsBurying Hate Sites in the SERPs
Burying Hate Sites in the SERPs
 
Marketing Worldbuilding: Collaborative Storytelling for Digital
Marketing Worldbuilding: Collaborative Storytelling for DigitalMarketing Worldbuilding: Collaborative Storytelling for Digital
Marketing Worldbuilding: Collaborative Storytelling for Digital
 
Lean Content: Marketing Profs B2B
Lean Content: Marketing Profs B2BLean Content: Marketing Profs B2B
Lean Content: Marketing Profs B2B
 
Needs into Wants: Amazon, Google and the Race for Rankings
Needs into Wants: Amazon, Google and the Race for RankingsNeeds into Wants: Amazon, Google and the Race for Rankings
Needs into Wants: Amazon, Google and the Race for Rankings
 

Último

Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 

Último (20)

Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 

Lots of ways to speed up your site

Notas del editor

  1. Thank you so so much
  2. Here are the links
  3. Here are the links
  4. This is going to be a super rapid-fire walk through site speed issues and how to deal with them.. It’ll be a bit terrifying if you’re not a serious nerd.
  5. The main goal here is to walk through it all
  6. and get you an idea of relative impact/difficulty for each technique. With that, you can decide what to do next and research if necessary.
  7. Everything’s rated by difficulty and impact.
  8. And, these aren’t every technique. They’re just the ones I’ve found to offer the most impact for the time and money spent.
  9. Well, of course, faster is better.
  10. You do need to test stuff. I’ll bring that up a few times.
  11. If you put in the effort to create great content, don’t kill it w/ a slow site.
  12. There is SOME correlation to organic search rankings. But it’s weak. Google says it’s a ‘tie breaker.’
  13. The correlation to lead generation and sales, on the other hand, is VERY strong.
  14. Getting under 2 seconds generates a very high return.
  15. So the real question is: Why on earth would you not do this? Before we go through the techniques and tricks, though, I need to talk about bottlenecks and measurement.
  16. There are three places that can slow sites down – three bottlenecks or chokepoints.
  17. Serving the content – the web server generating web pages and content – is the first bottleneck. It’s hard to make a site faster if the server’s slow.
  18. The bottleneck most people focus on is transmission: Basically, how your site uses bandwidth.
  19. And the most-forgotten bottleneck is rendering. Your browser has to draw the page or content. If the page/content has problems, it can slow rendering, which creates a slower perceived load time.
  20. There are tools that let you measure and diagnose issues at all three chokepoints.
  21. If you want basic, easy-to-read site speed diagnosis, Google Page Speed Insights is great. If you’re just starting out with a site performance audit, start here.
  22. Google PageSpeed Insights mostly focuses on transmission – on bandwidth.
  23. Don’t worry – it’s in the link
  24. Yslow has more oomph. If you want to really dig I, Yslow looks at more metrics.
  25. Yslow is very, very powerful.
  26. It’s less intuitive. But it’s worth using if you’ve exhausted Google PageSpeed Insights
  27. WebPageTest.org – I’d love to love it. It’s just got some issues.
  28. It captures such a nice set of metrics. But the diagnostics and the HTTP Archive are harder to get at.
  29. When you’re ready to really nerd out – learn to read and use an HTTP Archive, or HAR.
  30. You can generate it in Chrome w/ a few clicks.
  31. Just open the console, refresh the page, and you’re good to go.
  32. Now we get to the heavy stuff: How to actually diagnose and fix/optimize
  33. Starting w/ Transmission
  34. In this HAR diagram, the blue line is download time. It’s an indicator of bandwidth used.
  35. This is the single easiest win in all of site speed.
  36. Google PageSpeed will provide the analysis
  37. And, of course, the HAR will do it.
  38. A few quick examples. This image totally uncompressed was 4 megabytes. Doing even a tiny bit of compression reduced it to 400kb.
  39. Look at what happens – can you see a difference? No? But it’s half the size.
  40. Even smaller
  41. And yes, even smaller
  42. PageSpeed isn’t bad, either, but…
  43. It only uses lossless – PNG - compression.
  44. You can use Photoshop, of course, but here are two other tools. Be very careful about using web-based compression tools, Make sure they’re reputable.
  45. Always always always do this.
  46. Using the right image format is another one
  47. JPG is for photos, PNG is really for line art. So convert my friend to PNG and it balloons back to 1 megabyte.
  48. Put our logo in JPG and it’s 60k
  49. In PNG, it’s 13kb. And this isn’t even the vector version
  50. Take out some colors and it’s down to 8kb.
  51. Always always always do this.
  52. This is an unminified file.
  53. This is the same file, minified. The difference? Tabs, blank lines are all removed. Invisible characters are still characters!!! Removing them from a large file makes a huge difference. Obviously, keep an editable version of the files. How can you do this?
  54. In Google PageSpeed, you can download the minified files with a click.
  55. But many libraries already come w/ minified versions – Jquery, for example.
  56. Again, there’s no reason not to.
  57. Seriously. Doesn’t get much easier.
  58. I’ve never seen this break anything. I’ve heard rumors it can cause issues, which is why I advocate testing. But in 20 years I’ve never seen an issue.
  59. Set expires headers for static files
  60. When you set far-future expires headers, the server tells visiting browsers that a particular file isn’t going to change any time soon.
  61. Google PageSpeed will show you issues. So will Yslow, etc., but PageSpeed is easy.
  62. But you can’t usually do this w/ third-party scripts.
  63. Really, it’s any site. But expires headers work well for ‘static’ files that don’t change that often. So that’s when/where to use it.
  64. Test all of these things. Again – I haven’t seen them break anything, but…
  65. Some resources can block page load.
  66. At it’s most basic: Load CSS first. Defer javascript as long as possible. That means all CSS includes should come before any javascript includes. But it’s more subtle than that.
  67. You can load javascript in parallel.
  68. Google will show render-blocking javascript. That’s the stuff that’s in the wrong load order – the page is stuck.
  69. Use HAR to really drill down and get a look at what loads when.
  70. Do the same for javascript. This ensures visiting browsers only load the javascript/css once per session. They they cache it locally.
  71. Yslow is my favorite tool here.
  72. I don’t know why you’d write crappy code. It’s actually more work.
  73. When you set far-future expires headers, the server tells visiting browsers that a particular file isn’t going to change any time soon.
  74. This not only means faster load time because server is closer – it also means the main server doesn’t have to retrieve and deliver the files.
  75. Retrieving from a database is slower than retrieving from disk (you can also cache in memory – that’s a separate topic, really)
  76. I won’t go into a lot of detail here – code acceleration usually caches executed code so that the server doesn’t have to re-run the code.