Speed matters, So why is your site so slow?

Andy Davies
Andy DaviesIndependent Web Performance Consultant at Asteno
https://www.flickr.com/photos/sharynmorrow/643126727
Speed Matters…
So why is your site so slow?
@AndyDavies
ReDevelop 2015, August 2015
https://www.flickr.com/photos/dullhunk/3930915541
But I’m frustrated…
http://www.flickr.com/photos/sybrenstuvel/2468506922
The Web is Too Slow
http://www.flickr.com/photos/the_justified_sinner/3507390621
Speed matters, So why is your site so slow?
(it’s just) Too many sites are too slow
http://www.flickr.com/photos/the_justified_sinner/3507390621
and it’s getting worse!
Only 12% of the top 100 (US) retail sites rendered
feature content in less than 3 seconds. !
!
Year-on-year the median page has slowed down
by 23%
Tammy Everts - Radware State of the Union Fall 2014
“We’re not being deliberate about performance”!
Tim Kadlec
https://www.flickr.com/photos/lukew/7382528728
But only if we build it that way…
http://3.bp.blogspot.com/-0RqujOyE1ro/Up9HF7bPxbI/AAAAAAAAAbM/Ijudm6uq-dg/s1600/This+is+for+Everyone.jpg
Reader panel (3,000 people) rated speed (fast page
load time) as their second most important driver!
!
Speed had the highest percentage of people saying it
was VERY important to them
Speed matters!
Walmart 2012
http://www.slideshare.net/cliffcrocker/velocity-ny-how-to-measure-revenue-in-milliseconds
Increased conversions by 10%!
!
Shaved 1 second off median home page time!
6 seconds of 98th percentile
Improved load time from 1.2s to 0.5s!
!
+28% page views / session!
+21% time on site / visit!
+20% conversion rate
http://blog.quanta-computing.com/etam-earns-20-of-conversion-by-optimising-its-online-store/
We’re more tolerant as we get further into purchase funnels
Less Tolerant
More Tolerant
and sometimes we get suspicious if something’s too fast
and sometimes we get suspicious if something’s too fast
Design is all about finding solutions within constraints,!
if there were no constraints, it’s not design — it’s art.!
Matias Duarte
“
”
http://www.flickr.com/photos/communityfriend/2342578485
Embrace those constraints… set a performance budget
Setting a budget
An event that matters to the visitor!
within a set time!
under defined network conditions
“Usable within 10 seconds on GPRS connection”!
BBC News
“SpeedIndex under 1000”!
Paul Irish
Could use page size or number of objects but…
…how well would they work here?
We know how to make fast sites, there are plenty of recipes out there
How well do we understand our medium?
https://www.flickr.com/photos/37873897@N06/6924775578
Do we understand our fundamental building blocks?
https://www.flickr.com/photos/ogimogi/2253657555
Which will be faster?
10Mbps 1Mbps
Which will be faster?
10Mbps 1Mbps
Which will be faster?
10Mbps 1Mbps
Which will be faster?
10Mbps 1Mbps
Which will be faster?
10Mbps 1Mbps/ 280ms RTT / 28ms RTT
We often think of the network as a pipe
https://www.flickr.com/photos/63567936@N00/4181042889
that’s sometimes really bad
https://www.flickr.com/photos/chesh2000/4487000196
but the reality is closer to
http://1m0esx2939yhjwld8419obqhyb.wpengine.netdna-cdn.com/wp-content/uploads/2014/06/DSC_0492.jpg
“More Bandwidth Doesn’t Matter (much)”!
Mike Belshe
PageLoadTime
Bandwidth (Mbps)
1 2 3 4 5 6 7 8 9 10
1.36s1.37s1.38s1.39s1.41s1.44s1.50s
1.63s
1.95s
3.11s
Latency = time between request and response
Browser Server
Request
Response
Time
But latency has a linear impact
PageLoadTime(s)
1
2
3
4
Round Trip Time (ms)
0 20 40 60 80 100 120 140 160 180 200 220 240
http://www.vectortemplates.comBT Backbone roundtrip times from London: http://ippm.bt.net/hour/europe/lo.shtml
Latency increases with distance
http://www.vectortemplates.comBT Backbone roundtrip times from London: http://ippm.bt.net/hour/europe/lo.shtml
Latency increases with distance
81ms
201ms
156ms
266ms
232ms
28ms
http://www.vectortemplates.com
CDN = content closer to visitor = less latency = faster
There’s the last mile latency too
(and routers, other networking kit, mobile latencies too)
https://www.flickr.com/photos/kiwanja/3170292282
TCP and the Lower Bound of Web Performance!
John Rauser
Will probably need more than one round trip
71kB
143kB
214kB
285kB
1 2 3 4 5 6 7 8 9 10 11
(TCP Segments)
Round Trips
Size
We can cheat the latency penalty
(sometimes)
https://speakerdeck.com/mikeyk/secrets-to-lightning-fast-mobile-design
Speed matters, So why is your site so slow?
User gets
feedback
User gets
feedback
Network request
still in progress
???
Convert HTML …
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="styles.css" rel="stylesheet">
<script src="script.js"></script>
<title>HTML Example</title>
</head>
<body>
<h1>Title</h1>
<p>Some introductory text and picture! <img src="image.jpg"/></p>
</body>
</html>
… into Document Object Model (DOM)
html
head body
meta link script title h1 p
img
Convert CSS …
body { font-size: 16px }
h1 { text-decoration: underline}
p { font-weight: bold }
p > span { color: #000 }
img { border: 1px solid #ccc }
… into CSS Object Model (CSSOM)
body
h1 p
span
font-size: 16px
font-size: 16px
text-decoration: underline
font-size: 16px
font-weight: bold
font-size: 16px
font-weight: bold
color: #000
img
font-size: 16px
border: 1px solid #ccc
Combine DOM and CSSOM to build Render Tree
body
h1 p
img
font-size: 16px
text-decoration: underline
font-size: 16px
font-weight: bold
border: 1px solid #ccc
font-size: 16px
font-weight: bold
Render the Page
HTML
CSS
DOM
CSSOM
Render!
Tree
Layout Paint
But what about JavaScript?
HTML
CSS
DOM
CSSOM
Render!
Tree
Layout PaintJavaScript
But what about JavaScript?
HTML
CSS
DOM
CSSOM
Render!
Tree
Layout PaintJavaScript
DOM
CSSOM
JavaScript
JavaScript blocks DOM construction!
CSSOM construction blocks JavaScript execution
async attribute avoids JavaScript blocking DOM construction
!
<script async src="myscript.js"></script>
Widely supported - 89.59% (http://caniuse.com/script-async)!
!
Doesn’t incur delays of using inline script to load other scripts e.g.
Google Analytics snippet
HTML
CSS
DOM
CSSOM
Render!
Tree
Layout PaintJavaScript Render!
Tree
HTML
CSS
DOM
CSSOM
Render!
Tree
Layout PaintJavaScript Render!
Tree
Fonts and background
images discovered
when render tree builds
And we all hate this… right?
Use font foundries that prioritise your visitor’s experience
http://www.flickr.com/photos/splorp/4951916342
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q
R S T U V W X Y Z [  ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ ¡ ¢ £ ¤ ¥ ¦
§ ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö
× Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Ā ā Ă ă Ą ą Ć
ć Ĉ ĉ Ċ ċ Č č Ď ď Đ đ Ē ē Ĕ ĕ Ė ė Ę ę Ě ě Ĝ ĝ Ğ ğ Ġ ġ Ģ ģ Ĥ ĥ Ħ ħ Ĩ ĩ Ī ī Ĭ ĭ Į į İ ı IJ ij Ĵ ĵ Ķ ķ
ĸ Ĺ ĺ Ļ ļ Ľ ľ Ŀ ŀ Ł ł Ń ń Ņ ņ Ň ň ʼn Ŋ ŋ Ō ō Ŏ ŏ Ő ő Œ œ Ŕ ŕ Ŗ ŗ Ř ř Ś ś Ŝ ŝ Ş ş Š š Ţ ţ Ť ť Ŧ ŧ
Ũ ũ Ū ū Ŭ ŭ Ů ů Ű ű Ų ų Ŵ ŵ Ŷ ŷ Ÿ Ź ź Ż ż Ž ž ſ ƒ Ơ ơ Ư ư ǰ Ǻ ǻ Ǽ ǽ Ǿ ǿ Ș ș Ț ț ȷ ʼ ˆ ˇ ˉ ˘ ˙
˚ ˛ ˜ ˝ ˳ ̀ ́ ̃ ̉ ̏ ̣΄ ΅ Ά · Έ Ή Ί Ό Ύ Ώ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ
ή ί ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ϑ ϒ ϖ Ѐ Ё Ђ Ѓ Є Ѕ І Ї Ј Љ
Њ Ћ Ќ Ѝ Ў Џ А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б
в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я ѐ ё ђ ѓ є ѕ і ї ј љ њ ћ ќ ѝ ў џ Ѡ ѡ
Ѣ ѣ Ѥ ѥ Ѧ ѧ Ѩ ѩ Ѫ ѫ Ѭ ѭ Ѯ ѯ Ѱ ѱ Ѳ ѳ Ѵ ѵ Ѷ ѷ Ѹ ѹ Ѻ ѻ Ѽ ѽ Ѿ ѿ Ҁ ҁ ҂ ҃ ҄ ҅ ҆ ҈ ҉ Ҋ ҋ Ҍ ҍ
Ҏ ҏ Ґ ґ Ғ ғ Ҕ ҕ Җ җ Ҙ ҙ Қ қ Ҝ ҝ Ҟ ҟ Ҡ ҡ Ң ң Ҥ ҥ Ҧ ҧ Ҩ ҩ Ҫ ҫ Ҭ ҭ Ү ү Ұ ұ Ҳ ҳ Ҵ ҵ Ҷ ҷ Ҹ
ҹ Һ һ Ҽ ҽ Ҿ ҿ Ӏ Ӂ ӂ Ӄ ӄ Ӆ ӆ Ӈ ӈ Ӊ ӊ Ӌ ӌ Ӎ ӎ ӏ Ӑ ӑ Ӓ ӓ Ӕ ӕ Ӗ ӗ Ә ә Ӛ ӛ Ӝ ӝ Ӟ ӟ Ӡ ӡ Ӣ ӣ
Ӥ ӥ Ӧ ӧ Ө ө Ӫ ӫ Ӭ ӭ Ӯ ӯ Ӱ ӱ Ӳ ӳ Ӵ ӵ Ӷ ӷ Ӹ ӹ Ӻ ӻ Ӽ ӽ Ӿ ӿ Ԁ ԁ Ԃ ԃ Ԅ ԅ Ԇ ԇ Ԉ ԉ Ԋ ԋ Ԍ ԍ Ԏ
ԏ Ԑ ԑ Ԓ ԓ Ḁ ḁ Ḿ ḿ Ẁ ẁ Ẃ ẃ Ẅ ẅ Ạ ạ Ả ả Ấ ấ Ầ ầ Ẩ ẩ Ẫ ẫ Ậ ậ Ắ ắ Ằ ằ Ẳ ẳ Ẵ ẵ Ặ ặ Ẹ ẹ Ẻ ẻ
Ẽ ẽ Ế ế Ề ề Ể ể Ễ ễ Ệ ệ Ỉ ỉ Ị ị Ọ ọ Ỏ ỏ Ố ố Ồ ồ Ổ ổ Ỗ ỗ Ộ ộ Ớ ớ Ờ ờ Ở ở Ỡ ỡ Ợ ợ Ụ ụ Ủ ủ
Ứ ứ Ừ ừ Ử ử Ữ ữ Ự ự Ỳ ỳ Ỵ ỵ Ỷ ỷ Ỹ ỹ Ὅ – — ― ‗ ‘ ’ ‚ ‛ “ ” „ † ‡ • … ‰ ′ ″ ‹ › ‼ ⁄ ⁰ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁿ ₣
₤ ₧ ₫ € ℅ № ℠ ™ Ω ⅛ ⅜ ⅝ ⅞ ∂ ∆ ∏ ∑ − √ ∞ ∫ ≈ ≠ ≤ ≥ ◊ ff fi fl ffi ffl 
Do we need all those glyphs?
Open Sans — 22.1 kB
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q
R S T U V W X Y Z [  ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ ¡ ¢ £ ¤ ¥ ¦
§ ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö
× Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Ā ā Ă ă Ą ą Ć
ć Ĉ ĉ Ċ ċ Č č Ď ď Đ đ Ē ē Ĕ ĕ Ė ė Ę ę Ě ě Ĝ ĝ Ğ ğ Ġ ġ Ģ ģ Ĥ ĥ Ħ ħ Ĩ ĩ Ī ī Ĭ ĭ Į į İ ı IJ ij Ĵ ĵ Ķ ķ
ĸ Ĺ ĺ Ļ ļ Ľ ľ Ŀ ŀ Ł ł Ń ń Ņ ņ Ň ň ʼn Ŋ ŋ Ō ō Ŏ ŏ Ő ő Œ œ Ŕ ŕ Ŗ ŗ Ř ř Ś ś Ŝ ŝ Ş ş Š š Ţ ţ Ť ť Ŧ ŧ
Ũ ũ Ū ū Ŭ ŭ Ů ů Ű ű Ų ų Ŵ ŵ Ŷ ŷ Ÿ Ź ź Ż ż Ž ž ſ ƒ Ơ ơ Ư ư ǰ Ǻ ǻ Ǽ ǽ Ǿ ǿ Ș ș Ț ț ȷ ʼ ˆ ˇ ˉ ˘ ˙
˚ ˛ ˜ ˝ ˳ ̀ ́ ̃ ̉ ̏ ̣΄ ΅ Ά · Έ Ή Ί Ό Ύ Ώ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ
ή ί ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ϑ ϒ ϖ Ѐ Ё Ђ Ѓ Є Ѕ І Ї Ј Љ
Њ Ћ Ќ Ѝ Ў Џ А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б
в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я ѐ ё ђ ѓ є ѕ і ї ј љ њ ћ ќ ѝ ў џ Ѡ ѡ
Ѣ ѣ Ѥ ѥ Ѧ ѧ Ѩ ѩ Ѫ ѫ Ѭ ѭ Ѯ ѯ Ѱ ѱ Ѳ ѳ Ѵ ѵ Ѷ ѷ Ѹ ѹ Ѻ ѻ Ѽ ѽ Ѿ ѿ Ҁ ҁ ҂ ҃ ҄ ҅ ҆ ҈ ҉ Ҋ ҋ Ҍ ҍ
Ҏ ҏ Ґ ґ Ғ ғ Ҕ ҕ Җ җ Ҙ ҙ Қ қ Ҝ ҝ Ҟ ҟ Ҡ ҡ Ң ң Ҥ ҥ Ҧ ҧ Ҩ ҩ Ҫ ҫ Ҭ ҭ Ү ү Ұ ұ Ҳ ҳ Ҵ ҵ Ҷ ҷ Ҹ
ҹ Һ һ Ҽ ҽ Ҿ ҿ Ӏ Ӂ ӂ Ӄ ӄ Ӆ ӆ Ӈ ӈ Ӊ ӊ Ӌ ӌ Ӎ ӎ ӏ Ӑ ӑ Ӓ ӓ Ӕ ӕ Ӗ ӗ Ә ә Ӛ ӛ Ӝ ӝ Ӟ ӟ Ӡ ӡ Ӣ ӣ
Ӥ ӥ Ӧ ӧ Ө ө Ӫ ӫ Ӭ ӭ Ӯ ӯ Ӱ ӱ Ӳ ӳ Ӵ ӵ Ӷ ӷ Ӹ ӹ Ӻ ӻ Ӽ ӽ Ӿ ӿ Ԁ ԁ Ԃ ԃ Ԅ ԅ Ԇ ԇ Ԉ ԉ Ԋ ԋ Ԍ ԍ Ԏ
ԏ Ԑ ԑ Ԓ ԓ Ḁ ḁ Ḿ ḿ Ẁ ẁ Ẃ ẃ Ẅ ẅ Ạ ạ Ả ả Ấ ấ Ầ ầ Ẩ ẩ Ẫ ẫ Ậ ậ Ắ ắ Ằ ằ Ẳ ẳ Ẵ ẵ Ặ ặ Ẹ ẹ Ẻ ẻ
Ẽ ẽ Ế ế Ề ề Ể ể Ễ ễ Ệ ệ Ỉ ỉ Ị ị Ọ ọ Ỏ ỏ Ố ố Ồ ồ Ổ ổ Ỗ ỗ Ộ ộ Ớ ớ Ờ ờ Ở ở Ỡ ỡ Ợ ợ Ụ ụ Ủ ủ
Ứ ứ Ừ ừ Ử ử Ữ ữ Ự ự Ỳ ỳ Ỵ ỵ Ỷ ỷ Ỹ ỹ Ὅ – — ― ‗ ‘ ’ ‚ ‛ “ ” „ † ‡ • … ‰ ′ ″ ‹ › ‼ ⁄ ⁰ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁿ ₣
₤ ₧ ₫ € ℅ № ℠ ™ Ω ⅛ ⅜ ⅝ ⅞ ∂ ∆ ∏ ∑ − √ ∞ ∫ ≈ ≠ ≤ ≥ ◊ ff fi fl ffi ffl 
Just Latin glyphs… 14.9 kB — 33% saving
A proposal that may help…
font-display: auto | block | swap | fallback | optional;
https://tabatkins.github.io/specs/css-font-rendering/
Proposal to help control font blocking - CSS Font Rendering Controls
Another proposal that should help - link rel=“preload”…
https://w3c.github.io/preload/
<!-- preload a widget component -->
<link rel="preload" href="/components/widget.html" as="iframe">
!
<!-- preload an application script -->
<link rel="preload" href="/app/script.js" as="javascript">
!
<!-- preload a CSS stylesheet -->
<link rel="preload" href="/style/style.css" as="stylesheet">
!
<!-- preload a font -->
<link rel="preload" href="//example.com/font.woff2" as="font">
!
<!-- preload an image asset -->
<link rel="preload" href="//example.com/image.jpg" as="image" media="max-width: 640px">
Some other ways of hinting are already here
<link rel="dns-prefetch" href="other.hostname.com">
!
<link rel="subresource" href="/some_other_resource.js">
!
<link rel="prefetch" href="/some_other_resource.jpeg">
!
<link rel="prerender" href=“//domain.com/next_page.html”>
https://www.flickr.com/photos/christian_bachellier/582457911
And HTTP/2 server push is here now too
Be deliberate, design for performance
https://www.flickr.com/photos/9760699@N08/3748770917
Measure frequently - during build and in live
http://www.flickr.com/photos/chandramarsono/4324373384
Remember the constraints of our medium
https://www.flickr.com/photos/33649815@N03/3367739514
https://www.flickr.com/photos/basheertome/4762529213
http://www.flickr.com/photos/nzbuu/4093456029
ThankYou!
@andydavies
andy.davies@nccgroup.com
http://slideshare.net/andydavies
1 of 71

Recommended

Html5 bangla-e-book by
Html5  bangla-e-bookHtml5  bangla-e-book
Html5 bangla-e-bookSujit Halder
855 views139 slides
Programming Language (chapter 5 for class 11 and 12) by
Programming Language (chapter 5 for class 11 and 12)Programming Language (chapter 5 for class 11 and 12)
Programming Language (chapter 5 for class 11 and 12)Jessore University of Science & Technology, Jessore.
14.6K views34 slides
Number system and digital device (Chapter 3) by
Number system and digital device (Chapter 3)Number system and digital device (Chapter 3)
Number system and digital device (Chapter 3)Jessore University of Science & Technology, Jessore.
12.9K views20 slides
港應拓寬伊斯蘭金融領域_29.10.2014_ by
港應拓寬伊斯蘭金融領域_29.10.2014_港應拓寬伊斯蘭金融領域_29.10.2014_
港應拓寬伊斯蘭金融領域_29.10.2014_Eddy Koo
251 views4 slides
PHP超入門@LL温泉 by
PHP超入門@LL温泉PHP超入門@LL温泉
PHP超入門@LL温泉Sotaro Karasawa
27.9K views74 slides

More Related Content

What's hot

1430576703boroshirk c hooshirk by
1430576703boroshirk c hooshirk1430576703boroshirk c hooshirk
1430576703boroshirk c hooshirkrasikulindia
80 views280 slides
Bcs preliminary analysis 90 days study plan [www.onlinebcs.com] by
Bcs preliminary analysis 90 days study plan [www.onlinebcs.com]Bcs preliminary analysis 90 days study plan [www.onlinebcs.com]
Bcs preliminary analysis 90 days study plan [www.onlinebcs.com]Itmona
22.8K views16 slides
Quantum method [www.onlinebcs.com] by
Quantum method [www.onlinebcs.com]Quantum method [www.onlinebcs.com]
Quantum method [www.onlinebcs.com]Itmona
490 views260 slides
Seo bangla pdf [www.onlinebcs.com] by
Seo bangla pdf [www.onlinebcs.com]Seo bangla pdf [www.onlinebcs.com]
Seo bangla pdf [www.onlinebcs.com]Itmona
495 views141 slides
Bcs preliminary analysis study plan 150 days-1 [www.itmona.com] by
Bcs preliminary analysis study plan 150 days-1 [www.itmona.com]Bcs preliminary analysis study plan 150 days-1 [www.itmona.com]
Bcs preliminary analysis study plan 150 days-1 [www.itmona.com]Itmona
10.6K views37 slides

What's hot(20)

1430576703boroshirk c hooshirk by rasikulindia
1430576703boroshirk c hooshirk1430576703boroshirk c hooshirk
1430576703boroshirk c hooshirk
rasikulindia 80 views
Bcs preliminary analysis 90 days study plan [www.onlinebcs.com] by Itmona
Bcs preliminary analysis 90 days study plan [www.onlinebcs.com]Bcs preliminary analysis 90 days study plan [www.onlinebcs.com]
Bcs preliminary analysis 90 days study plan [www.onlinebcs.com]
Itmona22.8K views
Quantum method [www.onlinebcs.com] by Itmona
Quantum method [www.onlinebcs.com]Quantum method [www.onlinebcs.com]
Quantum method [www.onlinebcs.com]
Itmona490 views
Seo bangla pdf [www.onlinebcs.com] by Itmona
Seo bangla pdf [www.onlinebcs.com]Seo bangla pdf [www.onlinebcs.com]
Seo bangla pdf [www.onlinebcs.com]
Itmona495 views
Bcs preliminary analysis study plan 150 days-1 [www.itmona.com] by Itmona
Bcs preliminary analysis study plan 150 days-1 [www.itmona.com]Bcs preliminary analysis study plan 150 days-1 [www.itmona.com]
Bcs preliminary analysis study plan 150 days-1 [www.itmona.com]
Itmona10.6K views
20090529 Phpstudy by Yusuke Ando
20090529 Phpstudy20090529 Phpstudy
20090529 Phpstudy
Yusuke Ando1.3K views
20 th inmo_solu by askiitians
20 th inmo_solu20 th inmo_solu
20 th inmo_solu
askiitians305 views
Search Psychology by naoleiying
Search PsychologySearch Psychology
Search Psychology
naoleiying286 views
ধর্ম পালনে একজন মুসলমানের জন্য যা জানা অবশ্যই প্রয়োজনীয় – মোস্তাফিজুর রহমান ই... by rasikulindia
ধর্ম পালনে একজন মুসলমানের জন্য যা জানা অবশ্যই প্রয়োজনীয় – মোস্তাফিজুর রহমান ই...ধর্ম পালনে একজন মুসলমানের জন্য যা জানা অবশ্যই প্রয়োজনীয় – মোস্তাফিজুর রহমান ই...
ধর্ম পালনে একজন মুসলমানের জন্য যা জানা অবশ্যই প্রয়োজনীয় – মোস্তাফিজুর রহমান ই...
rasikulindia 120 views
policy-strategy_and_leadership_review by MUHAMMAD FERDAUS
 policy-strategy_and_leadership_review policy-strategy_and_leadership_review
policy-strategy_and_leadership_review
MUHAMMAD FERDAUS207 views
Bangladesh Narcotics Control Act 1990 (Bangla) by Probir Bidhan
Bangladesh Narcotics Control Act 1990 (Bangla)Bangladesh Narcotics Control Act 1990 (Bangla)
Bangladesh Narcotics Control Act 1990 (Bangla)
Probir Bidhan9.7K views

Similar to Speed matters, So why is your site so slow?

Making Mobile Sites Faster by
Making Mobile Sites FasterMaking Mobile Sites Faster
Making Mobile Sites FasterAndy Davies
23.3K views71 slides
ICT4KMT-20081225 by
ICT4KMT-20081225ICT4KMT-20081225
ICT4KMT-20081225Charles Chuang
303 views47 slides
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信 by
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信Yusuke Kawasaki
2.6K views38 slides
Ml A Lailatulqadr by
Ml A LailatulqadrMl A Lailatulqadr
Ml A LailatulqadrHaris Padinharethil
211 views9 slides
Ml A Lailatulqadr by
Ml A LailatulqadrMl A Lailatulqadr
Ml A LailatulqadrHaris Padinharethil
408 views9 slides
英語ブログのスヽメ - 1000スピーカープロジェクト#5 by
英語ブログのスヽメ - 1000スピーカープロジェクト#5英語ブログのスヽメ - 1000スピーカープロジェクト#5
英語ブログのスヽメ - 1000スピーカープロジェクト#5Yusuke Kawasaki
1.6K views35 slides

Similar to Speed matters, So why is your site so slow?(20)

Making Mobile Sites Faster by Andy Davies
Making Mobile Sites FasterMaking Mobile Sites Faster
Making Mobile Sites Faster
Andy Davies23.3K views
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信 by Yusuke Kawasaki
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Yusuke Kawasaki2.6K views
英語ブログのスヽメ - 1000スピーカープロジェクト#5 by Yusuke Kawasaki
英語ブログのスヽメ - 1000スピーカープロジェクト#5英語ブログのスヽメ - 1000スピーカープロジェクト#5
英語ブログのスヽメ - 1000スピーカープロジェクト#5
Yusuke Kawasaki1.6K views
095722121-期中報告-UGC by cherish0906
095722121-期中報告-UGC095722121-期中報告-UGC
095722121-期中報告-UGC
cherish0906493 views
Search Engines Chapter 1 Summary by sleepy_yoshi
Search Engines Chapter 1 SummarySearch Engines Chapter 1 Summary
Search Engines Chapter 1 Summary
sleepy_yoshi1.2K views
Fengshan Pri Presentation Slides Cl by tllmsg
Fengshan Pri Presentation Slides ClFengshan Pri Presentation Slides Cl
Fengshan Pri Presentation Slides Cl
tllmsg389 views
高中数学知识 by Xu jiakon
高中数学知识高中数学知识
高中数学知识
Xu jiakon480 views
القرءان الكريم برواية الدوري عن الكسائي من موقع الشبكة الإسلامية by سمير بسيوني
القرءان الكريم برواية الدوري عن الكسائي من موقع الشبكة الإسلاميةالقرءان الكريم برواية الدوري عن الكسائي من موقع الشبكة الإسلامية
القرءان الكريم برواية الدوري عن الكسائي من موقع الشبكة الإسلامية
Allari atta-01-03 by venkatesha9
Allari atta-01-03Allari atta-01-03
Allari atta-01-03
venkatesha95.7K views
Allari atta-01-03 by venkatesha9
Allari atta-01-03Allari atta-01-03
Allari atta-01-03
venkatesha98.8K views
023 teerina -tee ta by Hari99
023 teerina -tee ta023 teerina -tee ta
023 teerina -tee ta
Hari99 9.1K views
Anukoakun daa oka-raatri by venkatesha9
Anukoakun daa oka-raatriAnukoakun daa oka-raatri
Anukoakun daa oka-raatri
venkatesha912.5K views
20090522 Candycane by Yusuke Ando
20090522 Candycane20090522 Candycane
20090522 Candycane
Yusuke Ando1.6K views
秩序从哪里来? by guest8430ea2
秩序从哪里来?秩序从哪里来?
秩序从哪里来?
guest8430ea2485 views
Ammayi veta-01 by venkatesha9
Ammayi veta-01Ammayi veta-01
Ammayi veta-01
venkatesha910.1K views

More from Andy Davies

Fast Fashion… How Missguided revolutionised their approach to site performanc... by
Fast Fashion… How Missguided revolutionised their approach to site performanc...Fast Fashion… How Missguided revolutionised their approach to site performanc...
Fast Fashion… How Missguided revolutionised their approach to site performanc...Andy Davies
1K views67 slides
Fast Fashion… How Missguided revolutionised their approach to site performanc... by
Fast Fashion… How Missguided revolutionised their approach to site performanc...Fast Fashion… How Missguided revolutionised their approach to site performanc...
Fast Fashion… How Missguided revolutionised their approach to site performanc...Andy Davies
20.5K views78 slides
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018 by
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018Andy Davies
1K views73 slides
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018 by
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018Andy Davies
3.3K views76 slides
Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018 by
Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018
Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018Andy Davies
2.2K views32 slides
Selling Performance - Bristol WebPerf Meetup 2017-07-20 by
Selling Performance - Bristol WebPerf Meetup 2017-07-20Selling Performance - Bristol WebPerf Meetup 2017-07-20
Selling Performance - Bristol WebPerf Meetup 2017-07-20Andy Davies
1.6K views62 slides

More from Andy Davies(20)

Fast Fashion… How Missguided revolutionised their approach to site performanc... by Andy Davies
Fast Fashion… How Missguided revolutionised their approach to site performanc...Fast Fashion… How Missguided revolutionised their approach to site performanc...
Fast Fashion… How Missguided revolutionised their approach to site performanc...
Andy Davies1K views
Fast Fashion… How Missguided revolutionised their approach to site performanc... by Andy Davies
Fast Fashion… How Missguided revolutionised their approach to site performanc...Fast Fashion… How Missguided revolutionised their approach to site performanc...
Fast Fashion… How Missguided revolutionised their approach to site performanc...
Andy Davies20.5K views
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018 by Andy Davies
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018
Andy Davies1K views
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018 by Andy Davies
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018
Andy Davies3.3K views
Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018 by Andy Davies
Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018
Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018
Andy Davies2.2K views
Selling Performance - Bristol WebPerf Meetup 2017-07-20 by Andy Davies
Selling Performance - Bristol WebPerf Meetup 2017-07-20Selling Performance - Bristol WebPerf Meetup 2017-07-20
Selling Performance - Bristol WebPerf Meetup 2017-07-20
Andy Davies1.6K views
Speed: The 'Forgotten' Conversion Factor by Andy Davies
Speed: The 'Forgotten' Conversion FactorSpeed: The 'Forgotten' Conversion Factor
Speed: The 'Forgotten' Conversion Factor
Andy Davies859 views
Building an Appier Web - London Web Standards - Nov 2016 by Andy Davies
Building an Appier Web -  London Web Standards - Nov 2016Building an Appier Web -  London Web Standards - Nov 2016
Building an Appier Web - London Web Standards - Nov 2016
Andy Davies1.1K views
Building an Appier Web - Velocity Amsterdam 2016 by Andy Davies
Building an Appier Web - Velocity Amsterdam 2016Building an Appier Web - Velocity Amsterdam 2016
Building an Appier Web - Velocity Amsterdam 2016
Andy Davies985 views
The Case for HTTP/2 - GreeceJS - June 2016 by Andy Davies
The Case for HTTP/2 -  GreeceJS - June 2016The Case for HTTP/2 -  GreeceJS - June 2016
The Case for HTTP/2 - GreeceJS - June 2016
Andy Davies891 views
Building an Appier Web - May 2016 by Andy Davies
Building an Appier Web - May 2016Building an Appier Web - May 2016
Building an Appier Web - May 2016
Andy Davies980 views
The Fast, The Slow and The Unconverted - Emerce Conversion 2016 by Andy Davies
The Fast, The Slow and The Unconverted -  Emerce Conversion 2016The Fast, The Slow and The Unconverted -  Emerce Conversion 2016
The Fast, The Slow and The Unconverted - Emerce Conversion 2016
Andy Davies1.3K views
The Case for HTTP/2 - Internetdagarna 2015 - Stockholm by Andy Davies
The Case for HTTP/2  - Internetdagarna 2015 - StockholmThe Case for HTTP/2  - Internetdagarna 2015 - Stockholm
The Case for HTTP/2 - Internetdagarna 2015 - Stockholm
Andy Davies2.7K views
The Case for HTTP/2 - EpicFEL Sept 2015 by Andy Davies
The Case for HTTP/2 - EpicFEL Sept 2015The Case for HTTP/2 - EpicFEL Sept 2015
The Case for HTTP/2 - EpicFEL Sept 2015
Andy Davies2K views
The Case for HTTP/2 by Andy Davies
The Case for HTTP/2The Case for HTTP/2
The Case for HTTP/2
Andy Davies3K views
HTTP2 is Here! by Andy Davies
HTTP2 is Here!HTTP2 is Here!
HTTP2 is Here!
Andy Davies5.1K views
Speed Matters! by Andy Davies
Speed Matters!Speed Matters!
Speed Matters!
Andy Davies1.8K views
Speed is Essential for a Great Web Experience by Andy Davies
Speed is Essential for a Great Web ExperienceSpeed is Essential for a Great Web Experience
Speed is Essential for a Great Web Experience
Andy Davies21.1K views
The web is too slow by Andy Davies
The web is too slow The web is too slow
The web is too slow
Andy Davies15.2K views
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns? by Andy Davies
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?
Andy Davies2.3K views

Recently uploaded

information by
informationinformation
informationkhelgishekhar
10 views4 slides
IETF 118: Starlink Protocol Performance by
IETF 118: Starlink Protocol PerformanceIETF 118: Starlink Protocol Performance
IETF 118: Starlink Protocol PerformanceAPNIC
414 views22 slides
hamro digital logics.pptx by
hamro digital logics.pptxhamro digital logics.pptx
hamro digital logics.pptxtupeshghimire
10 views36 slides
The Dark Web : Hidden Services by
The Dark Web : Hidden ServicesThe Dark Web : Hidden Services
The Dark Web : Hidden ServicesAnshu Singh
14 views24 slides
How to think like a threat actor for Kubernetes.pptx by
How to think like a threat actor for Kubernetes.pptxHow to think like a threat actor for Kubernetes.pptx
How to think like a threat actor for Kubernetes.pptxLibbySchulze1
5 views33 slides
ATPMOUSE_융합2조.pptx by
ATPMOUSE_융합2조.pptxATPMOUSE_융합2조.pptx
ATPMOUSE_융합2조.pptxkts120898
35 views70 slides

Recently uploaded(9)

IETF 118: Starlink Protocol Performance by APNIC
IETF 118: Starlink Protocol PerformanceIETF 118: Starlink Protocol Performance
IETF 118: Starlink Protocol Performance
APNIC414 views
The Dark Web : Hidden Services by Anshu Singh
The Dark Web : Hidden ServicesThe Dark Web : Hidden Services
The Dark Web : Hidden Services
Anshu Singh14 views
How to think like a threat actor for Kubernetes.pptx by LibbySchulze1
How to think like a threat actor for Kubernetes.pptxHow to think like a threat actor for Kubernetes.pptx
How to think like a threat actor for Kubernetes.pptx
LibbySchulze15 views
ATPMOUSE_융합2조.pptx by kts120898
ATPMOUSE_융합2조.pptxATPMOUSE_융합2조.pptx
ATPMOUSE_융합2조.pptx
kts12089835 views
Marketing and Community Building in Web3 by Federico Ast
Marketing and Community Building in Web3Marketing and Community Building in Web3
Marketing and Community Building in Web3
Federico Ast14 views
Building trust in our information ecosystem: who do we trust in an emergency by Tina Purnat
Building trust in our information ecosystem: who do we trust in an emergencyBuilding trust in our information ecosystem: who do we trust in an emergency
Building trust in our information ecosystem: who do we trust in an emergency
Tina Purnat110 views

Speed matters, So why is your site so slow?

  • 1. https://www.flickr.com/photos/sharynmorrow/643126727 Speed Matters… So why is your site so slow? @AndyDavies ReDevelop 2015, August 2015
  • 4. The Web is Too Slow http://www.flickr.com/photos/the_justified_sinner/3507390621
  • 6. (it’s just) Too many sites are too slow http://www.flickr.com/photos/the_justified_sinner/3507390621
  • 7. and it’s getting worse! Only 12% of the top 100 (US) retail sites rendered feature content in less than 3 seconds. ! ! Year-on-year the median page has slowed down by 23% Tammy Everts - Radware State of the Union Fall 2014
  • 8. “We’re not being deliberate about performance”! Tim Kadlec https://www.flickr.com/photos/lukew/7382528728
  • 9. But only if we build it that way… http://3.bp.blogspot.com/-0RqujOyE1ro/Up9HF7bPxbI/AAAAAAAAAbM/Ijudm6uq-dg/s1600/This+is+for+Everyone.jpg
  • 10. Reader panel (3,000 people) rated speed (fast page load time) as their second most important driver! ! Speed had the highest percentage of people saying it was VERY important to them
  • 12. http://www.slideshare.net/cliffcrocker/velocity-ny-how-to-measure-revenue-in-milliseconds Increased conversions by 10%! ! Shaved 1 second off median home page time! 6 seconds of 98th percentile
  • 13. Improved load time from 1.2s to 0.5s! ! +28% page views / session! +21% time on site / visit! +20% conversion rate http://blog.quanta-computing.com/etam-earns-20-of-conversion-by-optimising-its-online-store/
  • 14. We’re more tolerant as we get further into purchase funnels Less Tolerant More Tolerant
  • 15. and sometimes we get suspicious if something’s too fast
  • 16. and sometimes we get suspicious if something’s too fast
  • 17. Design is all about finding solutions within constraints,! if there were no constraints, it’s not design — it’s art.! Matias Duarte “ ”
  • 19. Setting a budget An event that matters to the visitor! within a set time! under defined network conditions
  • 20. “Usable within 10 seconds on GPRS connection”! BBC News
  • 22. Could use page size or number of objects but…
  • 23. …how well would they work here?
  • 24. We know how to make fast sites, there are plenty of recipes out there
  • 25. How well do we understand our medium? https://www.flickr.com/photos/37873897@N06/6924775578
  • 26. Do we understand our fundamental building blocks? https://www.flickr.com/photos/ogimogi/2253657555
  • 27. Which will be faster? 10Mbps 1Mbps
  • 28. Which will be faster? 10Mbps 1Mbps
  • 29. Which will be faster? 10Mbps 1Mbps
  • 30. Which will be faster? 10Mbps 1Mbps
  • 31. Which will be faster? 10Mbps 1Mbps/ 280ms RTT / 28ms RTT
  • 32. We often think of the network as a pipe https://www.flickr.com/photos/63567936@N00/4181042889
  • 33. that’s sometimes really bad https://www.flickr.com/photos/chesh2000/4487000196
  • 34. but the reality is closer to http://1m0esx2939yhjwld8419obqhyb.wpengine.netdna-cdn.com/wp-content/uploads/2014/06/DSC_0492.jpg
  • 35. “More Bandwidth Doesn’t Matter (much)”! Mike Belshe PageLoadTime Bandwidth (Mbps) 1 2 3 4 5 6 7 8 9 10 1.36s1.37s1.38s1.39s1.41s1.44s1.50s 1.63s 1.95s 3.11s
  • 36. Latency = time between request and response Browser Server Request Response Time
  • 37. But latency has a linear impact PageLoadTime(s) 1 2 3 4 Round Trip Time (ms) 0 20 40 60 80 100 120 140 160 180 200 220 240
  • 38. http://www.vectortemplates.comBT Backbone roundtrip times from London: http://ippm.bt.net/hour/europe/lo.shtml Latency increases with distance
  • 39. http://www.vectortemplates.comBT Backbone roundtrip times from London: http://ippm.bt.net/hour/europe/lo.shtml Latency increases with distance 81ms 201ms 156ms 266ms 232ms 28ms
  • 40. http://www.vectortemplates.com CDN = content closer to visitor = less latency = faster
  • 41. There’s the last mile latency too (and routers, other networking kit, mobile latencies too) https://www.flickr.com/photos/kiwanja/3170292282
  • 42. TCP and the Lower Bound of Web Performance! John Rauser Will probably need more than one round trip 71kB 143kB 214kB 285kB 1 2 3 4 5 6 7 8 9 10 11 (TCP Segments) Round Trips Size
  • 43. We can cheat the latency penalty (sometimes) https://speakerdeck.com/mikeyk/secrets-to-lightning-fast-mobile-design
  • 47. ???
  • 48. Convert HTML … <html> <head> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <link href="styles.css" rel="stylesheet"> <script src="script.js"></script> <title>HTML Example</title> </head> <body> <h1>Title</h1> <p>Some introductory text and picture! <img src="image.jpg"/></p> </body> </html>
  • 49. … into Document Object Model (DOM) html head body meta link script title h1 p img
  • 50. Convert CSS … body { font-size: 16px } h1 { text-decoration: underline} p { font-weight: bold } p > span { color: #000 } img { border: 1px solid #ccc }
  • 51. … into CSS Object Model (CSSOM) body h1 p span font-size: 16px font-size: 16px text-decoration: underline font-size: 16px font-weight: bold font-size: 16px font-weight: bold color: #000 img font-size: 16px border: 1px solid #ccc
  • 52. Combine DOM and CSSOM to build Render Tree body h1 p img font-size: 16px text-decoration: underline font-size: 16px font-weight: bold border: 1px solid #ccc font-size: 16px font-weight: bold
  • 54. But what about JavaScript? HTML CSS DOM CSSOM Render! Tree Layout PaintJavaScript
  • 55. But what about JavaScript? HTML CSS DOM CSSOM Render! Tree Layout PaintJavaScript DOM CSSOM JavaScript JavaScript blocks DOM construction! CSSOM construction blocks JavaScript execution
  • 56. async attribute avoids JavaScript blocking DOM construction ! <script async src="myscript.js"></script> Widely supported - 89.59% (http://caniuse.com/script-async)! ! Doesn’t incur delays of using inline script to load other scripts e.g. Google Analytics snippet
  • 58. HTML CSS DOM CSSOM Render! Tree Layout PaintJavaScript Render! Tree Fonts and background images discovered when render tree builds
  • 59. And we all hate this… right?
  • 60. Use font foundries that prioritise your visitor’s experience http://www.flickr.com/photos/splorp/4951916342
  • 61. ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Ā ā Ă ă Ą ą Ć ć Ĉ ĉ Ċ ċ Č č Ď ď Đ đ Ē ē Ĕ ĕ Ė ė Ę ę Ě ě Ĝ ĝ Ğ ğ Ġ ġ Ģ ģ Ĥ ĥ Ħ ħ Ĩ ĩ Ī ī Ĭ ĭ Į į İ ı IJ ij Ĵ ĵ Ķ ķ ĸ Ĺ ĺ Ļ ļ Ľ ľ Ŀ ŀ Ł ł Ń ń Ņ ņ Ň ň ʼn Ŋ ŋ Ō ō Ŏ ŏ Ő ő Œ œ Ŕ ŕ Ŗ ŗ Ř ř Ś ś Ŝ ŝ Ş ş Š š Ţ ţ Ť ť Ŧ ŧ Ũ ũ Ū ū Ŭ ŭ Ů ů Ű ű Ų ų Ŵ ŵ Ŷ ŷ Ÿ Ź ź Ż ż Ž ž ſ ƒ Ơ ơ Ư ư ǰ Ǻ ǻ Ǽ ǽ Ǿ ǿ Ș ș Ț ț ȷ ʼ ˆ ˇ ˉ ˘ ˙ ˚ ˛ ˜ ˝ ˳ ̀ ́ ̃ ̉ ̏ ̣΄ ΅ Ά · Έ Ή Ί Ό Ύ Ώ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ϑ ϒ ϖ Ѐ Ё Ђ Ѓ Є Ѕ І Ї Ј Љ Њ Ћ Ќ Ѝ Ў Џ А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я ѐ ё ђ ѓ є ѕ і ї ј љ њ ћ ќ ѝ ў џ Ѡ ѡ Ѣ ѣ Ѥ ѥ Ѧ ѧ Ѩ ѩ Ѫ ѫ Ѭ ѭ Ѯ ѯ Ѱ ѱ Ѳ ѳ Ѵ ѵ Ѷ ѷ Ѹ ѹ Ѻ ѻ Ѽ ѽ Ѿ ѿ Ҁ ҁ ҂ ҃ ҄ ҅ ҆ ҈ ҉ Ҋ ҋ Ҍ ҍ Ҏ ҏ Ґ ґ Ғ ғ Ҕ ҕ Җ җ Ҙ ҙ Қ қ Ҝ ҝ Ҟ ҟ Ҡ ҡ Ң ң Ҥ ҥ Ҧ ҧ Ҩ ҩ Ҫ ҫ Ҭ ҭ Ү ү Ұ ұ Ҳ ҳ Ҵ ҵ Ҷ ҷ Ҹ ҹ Һ һ Ҽ ҽ Ҿ ҿ Ӏ Ӂ ӂ Ӄ ӄ Ӆ ӆ Ӈ ӈ Ӊ ӊ Ӌ ӌ Ӎ ӎ ӏ Ӑ ӑ Ӓ ӓ Ӕ ӕ Ӗ ӗ Ә ә Ӛ ӛ Ӝ ӝ Ӟ ӟ Ӡ ӡ Ӣ ӣ Ӥ ӥ Ӧ ӧ Ө ө Ӫ ӫ Ӭ ӭ Ӯ ӯ Ӱ ӱ Ӳ ӳ Ӵ ӵ Ӷ ӷ Ӹ ӹ Ӻ ӻ Ӽ ӽ Ӿ ӿ Ԁ ԁ Ԃ ԃ Ԅ ԅ Ԇ ԇ Ԉ ԉ Ԋ ԋ Ԍ ԍ Ԏ ԏ Ԑ ԑ Ԓ ԓ Ḁ ḁ Ḿ ḿ Ẁ ẁ Ẃ ẃ Ẅ ẅ Ạ ạ Ả ả Ấ ấ Ầ ầ Ẩ ẩ Ẫ ẫ Ậ ậ Ắ ắ Ằ ằ Ẳ ẳ Ẵ ẵ Ặ ặ Ẹ ẹ Ẻ ẻ Ẽ ẽ Ế ế Ề ề Ể ể Ễ ễ Ệ ệ Ỉ ỉ Ị ị Ọ ọ Ỏ ỏ Ố ố Ồ ồ Ổ ổ Ỗ ỗ Ộ ộ Ớ ớ Ờ ờ Ở ở Ỡ ỡ Ợ ợ Ụ ụ Ủ ủ Ứ ứ Ừ ừ Ử ử Ữ ữ Ự ự Ỳ ỳ Ỵ ỵ Ỷ ỷ Ỹ ỹ Ὅ – — ― ‗ ‘ ’ ‚ ‛ “ ” „ † ‡ • … ‰ ′ ″ ‹ › ‼ ⁄ ⁰ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁿ ₣ ₤ ₧ ₫ € ℅ № ℠ ™ Ω ⅛ ⅜ ⅝ ⅞ ∂ ∆ ∏ ∑ − √ ∞ ∫ ≈ ≠ ≤ ≥ ◊ ff fi fl ffi ffl  Do we need all those glyphs? Open Sans — 22.1 kB
  • 62. ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Ā ā Ă ă Ą ą Ć ć Ĉ ĉ Ċ ċ Č č Ď ď Đ đ Ē ē Ĕ ĕ Ė ė Ę ę Ě ě Ĝ ĝ Ğ ğ Ġ ġ Ģ ģ Ĥ ĥ Ħ ħ Ĩ ĩ Ī ī Ĭ ĭ Į į İ ı IJ ij Ĵ ĵ Ķ ķ ĸ Ĺ ĺ Ļ ļ Ľ ľ Ŀ ŀ Ł ł Ń ń Ņ ņ Ň ň ʼn Ŋ ŋ Ō ō Ŏ ŏ Ő ő Œ œ Ŕ ŕ Ŗ ŗ Ř ř Ś ś Ŝ ŝ Ş ş Š š Ţ ţ Ť ť Ŧ ŧ Ũ ũ Ū ū Ŭ ŭ Ů ů Ű ű Ų ų Ŵ ŵ Ŷ ŷ Ÿ Ź ź Ż ż Ž ž ſ ƒ Ơ ơ Ư ư ǰ Ǻ ǻ Ǽ ǽ Ǿ ǿ Ș ș Ț ț ȷ ʼ ˆ ˇ ˉ ˘ ˙ ˚ ˛ ˜ ˝ ˳ ̀ ́ ̃ ̉ ̏ ̣΄ ΅ Ά · Έ Ή Ί Ό Ύ Ώ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ϑ ϒ ϖ Ѐ Ё Ђ Ѓ Є Ѕ І Ї Ј Љ Њ Ћ Ќ Ѝ Ў Џ А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я ѐ ё ђ ѓ є ѕ і ї ј љ њ ћ ќ ѝ ў џ Ѡ ѡ Ѣ ѣ Ѥ ѥ Ѧ ѧ Ѩ ѩ Ѫ ѫ Ѭ ѭ Ѯ ѯ Ѱ ѱ Ѳ ѳ Ѵ ѵ Ѷ ѷ Ѹ ѹ Ѻ ѻ Ѽ ѽ Ѿ ѿ Ҁ ҁ ҂ ҃ ҄ ҅ ҆ ҈ ҉ Ҋ ҋ Ҍ ҍ Ҏ ҏ Ґ ґ Ғ ғ Ҕ ҕ Җ җ Ҙ ҙ Қ қ Ҝ ҝ Ҟ ҟ Ҡ ҡ Ң ң Ҥ ҥ Ҧ ҧ Ҩ ҩ Ҫ ҫ Ҭ ҭ Ү ү Ұ ұ Ҳ ҳ Ҵ ҵ Ҷ ҷ Ҹ ҹ Һ һ Ҽ ҽ Ҿ ҿ Ӏ Ӂ ӂ Ӄ ӄ Ӆ ӆ Ӈ ӈ Ӊ ӊ Ӌ ӌ Ӎ ӎ ӏ Ӑ ӑ Ӓ ӓ Ӕ ӕ Ӗ ӗ Ә ә Ӛ ӛ Ӝ ӝ Ӟ ӟ Ӡ ӡ Ӣ ӣ Ӥ ӥ Ӧ ӧ Ө ө Ӫ ӫ Ӭ ӭ Ӯ ӯ Ӱ ӱ Ӳ ӳ Ӵ ӵ Ӷ ӷ Ӹ ӹ Ӻ ӻ Ӽ ӽ Ӿ ӿ Ԁ ԁ Ԃ ԃ Ԅ ԅ Ԇ ԇ Ԉ ԉ Ԋ ԋ Ԍ ԍ Ԏ ԏ Ԑ ԑ Ԓ ԓ Ḁ ḁ Ḿ ḿ Ẁ ẁ Ẃ ẃ Ẅ ẅ Ạ ạ Ả ả Ấ ấ Ầ ầ Ẩ ẩ Ẫ ẫ Ậ ậ Ắ ắ Ằ ằ Ẳ ẳ Ẵ ẵ Ặ ặ Ẹ ẹ Ẻ ẻ Ẽ ẽ Ế ế Ề ề Ể ể Ễ ễ Ệ ệ Ỉ ỉ Ị ị Ọ ọ Ỏ ỏ Ố ố Ồ ồ Ổ ổ Ỗ ỗ Ộ ộ Ớ ớ Ờ ờ Ở ở Ỡ ỡ Ợ ợ Ụ ụ Ủ ủ Ứ ứ Ừ ừ Ử ử Ữ ữ Ự ự Ỳ ỳ Ỵ ỵ Ỷ ỷ Ỹ ỹ Ὅ – — ― ‗ ‘ ’ ‚ ‛ “ ” „ † ‡ • … ‰ ′ ″ ‹ › ‼ ⁄ ⁰ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁿ ₣ ₤ ₧ ₫ € ℅ № ℠ ™ Ω ⅛ ⅜ ⅝ ⅞ ∂ ∆ ∏ ∑ − √ ∞ ∫ ≈ ≠ ≤ ≥ ◊ ff fi fl ffi ffl  Just Latin glyphs… 14.9 kB — 33% saving
  • 63. A proposal that may help… font-display: auto | block | swap | fallback | optional; https://tabatkins.github.io/specs/css-font-rendering/ Proposal to help control font blocking - CSS Font Rendering Controls
  • 64. Another proposal that should help - link rel=“preload”… https://w3c.github.io/preload/ <!-- preload a widget component --> <link rel="preload" href="/components/widget.html" as="iframe"> ! <!-- preload an application script --> <link rel="preload" href="/app/script.js" as="javascript"> ! <!-- preload a CSS stylesheet --> <link rel="preload" href="/style/style.css" as="stylesheet"> ! <!-- preload a font --> <link rel="preload" href="//example.com/font.woff2" as="font"> ! <!-- preload an image asset --> <link rel="preload" href="//example.com/image.jpg" as="image" media="max-width: 640px">
  • 65. Some other ways of hinting are already here <link rel="dns-prefetch" href="other.hostname.com"> ! <link rel="subresource" href="/some_other_resource.js"> ! <link rel="prefetch" href="/some_other_resource.jpeg"> ! <link rel="prerender" href=“//domain.com/next_page.html”>
  • 67. Be deliberate, design for performance https://www.flickr.com/photos/9760699@N08/3748770917
  • 68. Measure frequently - during build and in live http://www.flickr.com/photos/chandramarsono/4324373384
  • 69. Remember the constraints of our medium https://www.flickr.com/photos/33649815@N03/3367739514