5. CertiFUNcation Day 2017 June 9th 2017
A 1 S E C O N D D E L AY I N PA G E L O A D T I M E
7% loss in conversions
11% fewer page views
16% decrease in customer satisfaction
6. S P E E D M AT T E R S
If an e-commerce site
is making 100.000 a day
they could lose 2.5 million
a year in sales
11. CertiFUNcation Day 2017 June 9th 2017
B A C K E N D
AV O I D _ I N T
# Setting "felogin" plugin TypoScript
plugin.tx_felogin_pi1 = USER_INT
plugin.tx_felogin_pi1 {
userFunc = TYPO3CMSFeloginControllerFrontendLoginController->main
storagePid = {$styles.content.loginform.pid}
recursive =
templateFile = {$styles.content.loginform.templateFile}
feloginBaseURL =
…
13. B A C K E N D
Deactivate
extensions not in use
14. CertiFUNcation Day 2017 June 9th 2017
• More PHP processing
• Use wisely
• HMENU’s are processor hungry
• Delete unused TypoScript
T Y P O S C R I P T
B A C K E N D
15. CertiFUNcation Day 2017 June 9th 2017
B A C K E N D
U S E W I S E LY
page = PAGE
page {
10 = FLUIDTEMPLATE
10 {
variables {
colPos1 = CONTENT
colPos1 {
table = tt_content
select {
orderBy = sorting
where = colPos=1
}
}
…
<f:cObject typoscriptObjectPath=“lib.column.1" />
17. CertiFUNcation Day 2017 June 9th 2017
B A C K E N D
C A C H E TA G S
elements.headerBar = COA
elements.headerBar {
10 = TEXT
10 {
cache {
key = headerBarLogo_{TSFE:sys_language_uid}
key {
insertData = 1
}
lifetime = default
}
…
18. CertiFUNcation Day 2017 June 9th 2017
B A C K E N D
D ATA P R O C E S S I N G
tt_content.batman_content_element = FLUIDTEMPLATE
tt_content.batman_content_element {
file = Batman.html
file.wrap = EXT:batman/Resources/Private/Templates/|
dataProcessing {
10 = DCBatmanDataProcessingDarkKnightProcessor
}
}
…
19. Logged in frontend users
TypoScript conditions
C A C H E F L O O D I N G
B A C K E N D
20. CertiFUNcation Day 2017 June 9th 2017
• Remove metadata
• Remove color profile
O P T I M I Z E I M / G M
B A C K E N D
21. CertiFUNcation Day 2017 June 9th 2017
• nc_staticfilecache
• Caching mechanisms (Redis, Varnish, Reverse Proxy)
S O M E M O R E
B A C K E N D
23. CertiFUNcation Day 2017 June 9th 2017
• HTTP request
• Process request (See the left side again ;-)
• HTTP response
T T F B
F R O N T E N D
24. CertiFUNcation Day 2017 June 9th 2017
C O N C U R R E N T H T T P R E Q U E S T S
F R O N T E N D
6 - 8( H T T P / 1 . 1 )
25. CertiFUNcation Day 2017 June 9th 2017
F R O N T E N D
C O N C AT E N AT E
config {
concatenateJs = 1
removeDefaultJS = 1
concatenateCss = 1
…
26. CertiFUNcation Day 2017 June 9th 2017
• Sprites (images / SVG)
• Embedded images (data:image/png;base64)
• Embedded SVG
• Cookieless domain (Reduce traffic) or CDN (better)
M O R E T O C O N S I D E R
F R O N T E N D
27. CertiFUNcation Day 2017 June 9th 2017
M O R E T O C O N S I D E R
F R O N T E N D
<link rel="dns-prefetch" href="//example.com">
<link rel="preconnect" href="http://example.com">
34. CertiFUNcation Day 2017 June 9th 2017
• Executed immediately (blocks parsing)
• Executed while parsing (async, only external)
• Executed after parsing (defer, only external)
J AVA S C R I P T
F R O N T E N D
35. CertiFUNcation Day 2017 June 9th 2017
M O R E T O C O N S I D E R
F R O N T E N D
<img src="small.jpg" srcset="medium.jpg 1000w, large.jpg 2000w" alt="yah">
36. CertiFUNcation Day 2017 June 9th 2017
• mod_expires for static assets
• Serve with timestamp ?1234567890
B R O W S E R C A C H I N G
F R O N T E N D
37. CertiFUNcation Day 2017 June 9th 2017
M O R E T O C O N S I D E R
F R O N T E N D
<link rel="preload" href="https://example.com/fonts/font.woff" as="font" crossorigin>
38. T RY B O T H A N D P I C K A S I D E
W E B S I T E P E R F O R M A N C E