SlideShare a Scribd company logo
1 of 61
Download to read offline
20 Tips
for tweaking your website’s performance
Slides: https://nven.tv/web-perf-pdf
22
inventive.io
@InventiveGroup
facebook.com/InventiveGroup
Andrew Siemer
Founder & CEO
(866) 500-2706
hello@inventive.io
@asiemer
http://www.linkedin.com/in/AndrewSiemer
Extreme Example
Performance should be in mind from the start!
(866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization
Slides: https://nven.tv/web-perf-pdf
IMPROVING LIVES WITH TECHNOLOGY
Aggie Muster - From Concept to Production in 3 weeks
4
(1) Concept
(2) Wireframe
(3) Prototype
Delivered (4)
IMPROVING LIVES WITH TECHNOLOGY
Aggie Muster - Site for live streaming and real-time communication
5
● 200,000 users could log on - targeted 400k users
● Prototyped, built, load tested, & deployed in 3 weeks
● Load tested 50,000 concurrent write operations
○ During 4 hour test
○ Processed 4 million messages
○ 2,500 requests per second
○ 100 servers TESTED BEYOND REQUIREMENTS
● During Muster we saw 50,000 unique visitors
○ 14,000 registrations
○ 15,000 HERE messages
○ 1000 reflections
○ At peak around 7pm: 27,516 active users
■ 800 requests per second across
35 servers
○ Average request duration for reads <10ms
● Hosting costs
○ Day of event: $565
○ Outside of the event: $60-$80/month
What is Performance?
Now let's understand the problem
(866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization
Slides: https://nven.tv/web-perf-pdf
What is Performance?
● Page load speed
39% leave sites that render slowly
● Time to first render
74% leave if the site doesn’t load on the phone in 5 seconds
● Time to interactive (useable)
52% cite that quick page load is important to site loyalty
● Perceived performance
16% satisfaction decrease for 1 second page speed delay
Without performance
● Not an enjoyable experience
A 0.4 second lag time results in decrease of 0.44% traffic
● Users won’t stick around
A 1 second delay in page load time means 11% decline in page views
● Google will demote you
0.5 second in each search page generation causes traffic to drop by 20%
● Now indexes your mobile site
experience by default
● Should provide a 100% identical
experience as desktop
● Render speed of mobile should
be blazing fast and lightweight
● Accessibility friendly
https://search.google.com/test/mobile-friendly
https://nven.tv/web-perf-google-mobile-first
Test with your users in mind
Look at your Google analytics to understand who your users are
- 53% of mobile site visits are abandoned if pages take longer than 3 seconds to load
Device performance varies
Sometimes significantly!
- 75% of users won’t return to a webpage if it takes more than 4 seconds to load
http://buildingadevicelab.com/
Device Considerations
● Processor speed
● Memory available
● Wifi vs cellular connectivity
● Signal strength
Did you know?
Not all bytes are equal!
100kb of JS “weighs” more than 100kb of image.
Performance Issues
What to look for...
(866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization
Slides: https://nven.tv/web-perf-pdf
Highlights
Quick Fixes
1. HTTP Requests
○ Reduce DNS lookups
○ Minimize redirects
○ Remove query strings from static
resources
○ Avoid bad requests
2. Specify a character set
3. Fonts
○ System Font Stack
○ Font subsetting
4. CSS at the top, JS at the bottom
5. Images
○ Optimize Images
○ Specify image dimensions
○ Image sprites
○ Lazy load below the fold
Other Fixes
1. Hosting
○ HTTP/2
2. Expires header
3. GZIP compression
4. Use a CDN
5. Cached 302 redirects
6. Tree shaking / UnCSS
7. Code splitting
8. Minify your code
Quick Fixes
Easy fixes that are directly under
your control
Quick Fixes
● HTTP Requests
● Character sets
● Fonts
● External resources
● Images
HTTP Requests
● Reduce DNS lookups
● Minimize redirects
● Remove query strings from
static resources
● Avoid bad requests
HTTP Requests
● Reduce DNS lookups
● Minimize redirects
● Remove query strings from
static resources
● Avoid bad requests
How a 301 redirect works
HTTP Requests
● Reduce DNS lookups
● Minimize redirects
● Remove query strings from
static resources
● Avoid bad requests
HTTP Requests
● Reduce DNS lookups
● Minimize redirects
● Remove query strings from
static resources
● Avoid bad requests
http://deadlinkchecker.com
Character Sets
● Specify the character set to
make the browser’s job easier!
● Must be in the first 1024 bytes
of the document!
<html …>
<head …>
<meta charset="utf-8">
https://nven.tv/web-perf-character-set
Fonts & Flash of unstyled content
● Consider not loading a font! Or
use “System Font Stack”
● Use CDN for font hosting
● Use WOFF2 format
● Us subset fonts including only needed characters
https://everythingfonts.com/subsetter
External Resources
● Images covered below
● CSS at the top
● JS at the bottom
● Inline critical CSS for above the
fold content
● Asynchronously load
non-critical CSS
○ Prohibits progressive
rendering of critical styles
○ Avoid redraws
○ Improves web standard
compliance according to
W3
Images
● Optimize Images
● Specify image dimensions
● Image sprites
● Lazy load below the fold
https://css-tricks.com/essential-image-optimization/
Images
● Optimize Images
● Specify image dimensions
● Image sprites
● Lazy load below the fold
Images
● Optimize Images
● Specify image dimensions
● Image sprites
● Lazy load below the fold
● HTTP/1.1 likes one request due
to queuing limitation
● HTTP/2 likes little requests due
to multiplexing
● A sprite with many images in
one file may compress better
that individual images
● If all images in a sprite are used
on one page, that may be a
better option
https://css-tricks.com/css-sprites/
Images
● Optimize Images
● Specify image dimensions
● Image sprites
● Lazy load below the fold
https://css-tricks.com/the-complete-guide-to-lazy-loading-images/
Other Fixes
These fixes may require a team
effort
Other Fixes
● Hosting
● Expires header
● GZIP compression
● Use a CDN
● Cached 302 redirects
● Tree shaking & UnCSS
● Code splitting
● Minify your code
Hosting
● HTTP2
● Servers near consumers
● Globally available - short hops
● Heavily cached static content
● Scalable infrastructure for
dynamic content
● If monolithic server, be sure
they are performant
● Limit noisy neighbors on shared
hosting
Hosting
● HTTP/2
○ Faster
○ Stream of binary
frames
○ More Secure
- Requires server configuration
https://nven.tv/web-perf-http2
Expires Header
● Allows you to leverage browser
caching
● Instructs browser to use local
copy of an already downloaded
file
● Reduces number of HTTP
requests to load page
- Requires server configuration
GZIP Compression
● Compresses the content on the
server
● Less for the browser to
download
● Browser then decompresses
the content for display
- Requires server configuration
CDN for Static Assets
● Get website assets as close to
your user as possible
● Offloads web traffic from your
host
● Caching on a highly performant
edge network
● Provides a form of redundancy
● Helps with scale
Cached 302 Redirects
● Redirects add latency to a
request
● Redirects delay page load time
● Remove redirects if possible
● Cache them if you can’t remove
them
Tree Shaking & UnCSS
● Remove dead code paths
○ From Javascript
○ From CSS
- Best when part of continuous integration
Code Splitting
● Send small specific bundles of code
● Minimizes the size of a request
● Utilize dynamic importing
Minify Your Code
● Removes whitespace
● Shortens variable names
● Shortens function names
Monitoring
Performance must be monitored over time
(866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization
Slides: https://nven.tv/web-perf-pdf
One-time Audit
Isn’t good enough!
Monitoring Tools
● SpeedCurve
● Request Map Generator
● Size Limit
● Google Lighthouse
https://speedcurve.com
Monitoring Tools
● SpeedCurve
● Request Map Generator
● Size Limit
● Google Lighthouse
https://speedcurve.com
Monitoring Tools
● SpeedCurve
● Request Map Generator
● Size Limit
● Google Lighthouse
https://nven.tv/web-perf-tamu-rm
Monitoring Tools
● SpeedCurve
● Request Map Generator
● Size Limit
● Google Lighthouse
https://github.com/ai/size-limit
Monitoring Tools
● SpeedCurve
● Request Map Generator
● Size Limit
● Google Lighthouse
Perceived Performance
Sometimes you can pretend to be performant!
(866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization
Slides: https://nven.tv/web-perf-pdf
Optimistic UI
Animations
Load and calculate in the
background while showing an
animation
Extras
Some additional considerations
(866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization
Slides: https://nven.tv/web-perf-pdf
Extras
1. Performance Budget
○ Be 20% faster than your main competitor
2. Performance = Ethics & Accessibility
3. Follow the specialists
○ Performance is an industry
○ Changes over time
Resources Used
● https://nven.tv/web-perf-moz-15
● https://nven.tv/web-perf-35-tips
● https://nven.tv/web-perf-22-tips
● https://nven.tv/web-perf-20-tips
● https://nven.tv/web-perf-18-tips
● https://nven.tv/web-perf-improve-conversion
● https://nven.tv/web-perf-google-mobile-first
An inventive company
solving big problems
with proven solutions
MORE THAN DIGITAL TRANSFORMATION
IMPROVING LIVES WITH TECHNOLOGY60
(866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization
QUESTIONS?
An inventive company
solving big problems
with proven solutions
MORE THAN DIGITAL TRANSFORMATION
IMPROVING LIVES WITH TECHNOLOGY61
(866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization
QUESTIONS?

More Related Content

What's hot

Understanding Page Load / Ziling Zhao (Google)
Understanding Page Load / Ziling Zhao (Google)Understanding Page Load / Ziling Zhao (Google)
Understanding Page Load / Ziling Zhao (Google)Ontico
 
Using Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the WebUsing Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the Webphilogb
 
From nothing to a video under 2 seconds / Mikhail Sychev (YouTube)
From nothing to a video under 2 seconds / Mikhail Sychev  (YouTube)From nothing to a video under 2 seconds / Mikhail Sychev  (YouTube)
From nothing to a video under 2 seconds / Mikhail Sychev (YouTube)Ontico
 
Drupal, Android and iPhone
Drupal, Android and iPhoneDrupal, Android and iPhone
Drupal, Android and iPhoneAlexandru Badiu
 
Web Performance: 3 Stages to Success
Web Performance: 3 Stages to SuccessWeb Performance: 3 Stages to Success
Web Performance: 3 Stages to SuccessAustin Gil
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuningJohn McCaffrey
 
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
 
How We Build NG-MY Websites: Performance, SEO, CI, CD
How We Build NG-MY Websites: Performance, SEO, CI, CDHow We Build NG-MY Websites: Performance, SEO, CI, CD
How We Build NG-MY Websites: Performance, SEO, CI, CDSeven Peaks Speaks
 
Its timetostopstalling androidcork
Its timetostopstalling androidcorkIts timetostopstalling androidcork
Its timetostopstalling androidcorkDoug Sillars
 
Web Performance - Learnings from Velocity Conference
Web Performance - Learnings from Velocity ConferenceWeb Performance - Learnings from Velocity Conference
Web Performance - Learnings from Velocity ConferenceHardik Shah
 
improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web ApplicationsJohn McCaffrey
 
Performance Test Analysis- Hotels
Performance Test Analysis- HotelsPerformance Test Analysis- Hotels
Performance Test Analysis- Hotelsyassine Alozade
 
NextJS, A JavaScript Framework for building next generation SPA
NextJS, A JavaScript Framework for building next generation SPA  NextJS, A JavaScript Framework for building next generation SPA
NextJS, A JavaScript Framework for building next generation SPA Pramendra Gupta
 
"Turbo boost your website" aka BigPipe at Webinale 2014 in Berlin
"Turbo boost your website" aka BigPipe at Webinale 2014 in Berlin"Turbo boost your website" aka BigPipe at Webinale 2014 in Berlin
"Turbo boost your website" aka BigPipe at Webinale 2014 in BerlinTobias Zander
 
Bringing the JAMstack to the Enterprise
Bringing the JAMstack to the EnterpriseBringing the JAMstack to the Enterprise
Bringing the JAMstack to the EnterpriseJamund Ferguson
 
Service workers your applications never felt so good
Service workers   your applications never felt so goodService workers   your applications never felt so good
Service workers your applications never felt so goodChris Love
 
Automated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriverAutomated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriverseleniumconf
 
Browser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom MenaceBrowser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom MenaceNicholas Zakas
 

What's hot (20)

Understanding Page Load / Ziling Zhao (Google)
Understanding Page Load / Ziling Zhao (Google)Understanding Page Load / Ziling Zhao (Google)
Understanding Page Load / Ziling Zhao (Google)
 
Using Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the WebUsing Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the Web
 
From nothing to a video under 2 seconds / Mikhail Sychev (YouTube)
From nothing to a video under 2 seconds / Mikhail Sychev  (YouTube)From nothing to a video under 2 seconds / Mikhail Sychev  (YouTube)
From nothing to a video under 2 seconds / Mikhail Sychev (YouTube)
 
Drupal, Android and iPhone
Drupal, Android and iPhoneDrupal, Android and iPhone
Drupal, Android and iPhone
 
Web Performance: 3 Stages to Success
Web Performance: 3 Stages to SuccessWeb Performance: 3 Stages to Success
Web Performance: 3 Stages to Success
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuning
 
Mobile web performance dwx13
Mobile web performance dwx13Mobile web performance dwx13
Mobile web performance dwx13
 
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
 
How We Build NG-MY Websites: Performance, SEO, CI, CD
How We Build NG-MY Websites: Performance, SEO, CI, CDHow We Build NG-MY Websites: Performance, SEO, CI, CD
How We Build NG-MY Websites: Performance, SEO, CI, CD
 
Its timetostopstalling androidcork
Its timetostopstalling androidcorkIts timetostopstalling androidcork
Its timetostopstalling androidcork
 
Cloud tools
Cloud toolsCloud tools
Cloud tools
 
Web Performance - Learnings from Velocity Conference
Web Performance - Learnings from Velocity ConferenceWeb Performance - Learnings from Velocity Conference
Web Performance - Learnings from Velocity Conference
 
improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web Applications
 
Performance Test Analysis- Hotels
Performance Test Analysis- HotelsPerformance Test Analysis- Hotels
Performance Test Analysis- Hotels
 
NextJS, A JavaScript Framework for building next generation SPA
NextJS, A JavaScript Framework for building next generation SPA  NextJS, A JavaScript Framework for building next generation SPA
NextJS, A JavaScript Framework for building next generation SPA
 
"Turbo boost your website" aka BigPipe at Webinale 2014 in Berlin
"Turbo boost your website" aka BigPipe at Webinale 2014 in Berlin"Turbo boost your website" aka BigPipe at Webinale 2014 in Berlin
"Turbo boost your website" aka BigPipe at Webinale 2014 in Berlin
 
Bringing the JAMstack to the Enterprise
Bringing the JAMstack to the EnterpriseBringing the JAMstack to the Enterprise
Bringing the JAMstack to the Enterprise
 
Service workers your applications never felt so good
Service workers   your applications never felt so goodService workers   your applications never felt so good
Service workers your applications never felt so good
 
Automated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriverAutomated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriver
 
Browser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom MenaceBrowser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom Menace
 

Similar to 20 tips for website performance

Improving frontend performance
Improving frontend performanceImproving frontend performance
Improving frontend performanceSagar Desarda
 
5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season
5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season
5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday SeasonG3 Communications
 
Web performance mercadolibre - ECI 2013
Web performance   mercadolibre - ECI 2013Web performance   mercadolibre - ECI 2013
Web performance mercadolibre - ECI 2013Santiago Aimetta
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuningJohn McCaffrey
 
Website Performance
Website PerformanceWebsite Performance
Website PerformanceHugo Fonseca
 
Need For Speed: How to Deliver Faster, Safer Websites
Need For Speed: How to Deliver Faster, Safer WebsitesNeed For Speed: How to Deliver Faster, Safer Websites
Need For Speed: How to Deliver Faster, Safer WebsitesRachel Wandishin
 
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...Otto Kekäläinen
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonNeotys
 
Need for Speed: Website Edition – Website Optimization Tools and Techniques P...
Need for Speed: Website Edition – Website Optimization Tools and Techniques P...Need for Speed: Website Edition – Website Optimization Tools and Techniques P...
Need for Speed: Website Edition – Website Optimization Tools and Techniques P...Devin Walker
 
Improving Web Siste Performance Using Edge Services in Fog Computing Architec...
Improving Web Siste Performance Using Edge Services in Fog Computing Architec...Improving Web Siste Performance Using Edge Services in Fog Computing Architec...
Improving Web Siste Performance Using Edge Services in Fog Computing Architec...Jiang Zhu
 
Life in the Fast Lane: Speed, Usability & Search Engine Optimization
Life in the Fast Lane: Speed, Usability & Search Engine OptimizationLife in the Fast Lane: Speed, Usability & Search Engine Optimization
Life in the Fast Lane: Speed, Usability & Search Engine OptimizationDana DiTomaso
 
What is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress HostingWhat is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress HostingWPSFO Meetup Group
 
PrairieDevCon 2014 - Web Doesn't Mean Slow
PrairieDevCon 2014 -  Web Doesn't Mean SlowPrairieDevCon 2014 -  Web Doesn't Mean Slow
PrairieDevCon 2014 - Web Doesn't Mean Slowdmethvin
 
Drupal 7 performance and optimization
Drupal 7 performance and optimizationDrupal 7 performance and optimization
Drupal 7 performance and optimizationShafqat Hussain
 
5 things you didn't know nginx could do
5 things you didn't know nginx could do5 things you didn't know nginx could do
5 things you didn't know nginx could dosarahnovotny
 
Web performance optimization - MercadoLibre
Web performance optimization - MercadoLibreWeb performance optimization - MercadoLibre
Web performance optimization - MercadoLibrePablo Moretti
 
Extreme Web Performance for Mobile Devices
Extreme Web Performance for Mobile DevicesExtreme Web Performance for Mobile Devices
Extreme Web Performance for Mobile DevicesMaximiliano Firtman
 

Similar to 20 tips for website performance (20)

Web Performance Optimization
Web Performance OptimizationWeb Performance Optimization
Web Performance Optimization
 
Web Performance Optimization (WPO)
Web Performance Optimization (WPO)Web Performance Optimization (WPO)
Web Performance Optimization (WPO)
 
Improving frontend performance
Improving frontend performanceImproving frontend performance
Improving frontend performance
 
5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season
5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season
5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season
 
Web performance mercadolibre - ECI 2013
Web performance   mercadolibre - ECI 2013Web performance   mercadolibre - ECI 2013
Web performance mercadolibre - ECI 2013
 
performance.ppt
performance.pptperformance.ppt
performance.ppt
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
Website Performance
Website PerformanceWebsite Performance
Website Performance
 
Need For Speed: How to Deliver Faster, Safer Websites
Need For Speed: How to Deliver Faster, Safer WebsitesNeed For Speed: How to Deliver Faster, Safer Websites
Need For Speed: How to Deliver Faster, Safer Websites
 
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark Tomlinson
 
Need for Speed: Website Edition – Website Optimization Tools and Techniques P...
Need for Speed: Website Edition – Website Optimization Tools and Techniques P...Need for Speed: Website Edition – Website Optimization Tools and Techniques P...
Need for Speed: Website Edition – Website Optimization Tools and Techniques P...
 
Improving Web Siste Performance Using Edge Services in Fog Computing Architec...
Improving Web Siste Performance Using Edge Services in Fog Computing Architec...Improving Web Siste Performance Using Edge Services in Fog Computing Architec...
Improving Web Siste Performance Using Edge Services in Fog Computing Architec...
 
Life in the Fast Lane: Speed, Usability & Search Engine Optimization
Life in the Fast Lane: Speed, Usability & Search Engine OptimizationLife in the Fast Lane: Speed, Usability & Search Engine Optimization
Life in the Fast Lane: Speed, Usability & Search Engine Optimization
 
What is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress HostingWhat is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress Hosting
 
PrairieDevCon 2014 - Web Doesn't Mean Slow
PrairieDevCon 2014 -  Web Doesn't Mean SlowPrairieDevCon 2014 -  Web Doesn't Mean Slow
PrairieDevCon 2014 - Web Doesn't Mean Slow
 
Drupal 7 performance and optimization
Drupal 7 performance and optimizationDrupal 7 performance and optimization
Drupal 7 performance and optimization
 
5 things you didn't know nginx could do
5 things you didn't know nginx could do5 things you didn't know nginx could do
5 things you didn't know nginx could do
 
Web performance optimization - MercadoLibre
Web performance optimization - MercadoLibreWeb performance optimization - MercadoLibre
Web performance optimization - MercadoLibre
 
Extreme Web Performance for Mobile Devices
Extreme Web Performance for Mobile DevicesExtreme Web Performance for Mobile Devices
Extreme Web Performance for Mobile Devices
 

More from Andrew Siemer

Microservices pros and cons - houston tech fest
Microservices pros and cons - houston tech festMicroservices pros and cons - houston tech fest
Microservices pros and cons - houston tech festAndrew Siemer
 
Microservices pros and cons dark
Microservices pros and cons darkMicroservices pros and cons dark
Microservices pros and cons darkAndrew Siemer
 
Microservices pros and cons
Microservices pros and consMicroservices pros and cons
Microservices pros and consAndrew Siemer
 
Reigniting the Volusion platform
Reigniting the Volusion platformReigniting the Volusion platform
Reigniting the Volusion platformAndrew Siemer
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutesAndrew Siemer
 
Making your API behave like a big boy
Making your API behave like a big boyMaking your API behave like a big boy
Making your API behave like a big boyAndrew Siemer
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerAndrew Siemer
 
Test driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBTest driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBAndrew Siemer
 
A tale of two clouds
A tale of two cloudsA tale of two clouds
A tale of two cloudsAndrew Siemer
 
Introduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregationIntroduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregationAndrew Siemer
 

More from Andrew Siemer (10)

Microservices pros and cons - houston tech fest
Microservices pros and cons - houston tech festMicroservices pros and cons - houston tech fest
Microservices pros and cons - houston tech fest
 
Microservices pros and cons dark
Microservices pros and cons darkMicroservices pros and cons dark
Microservices pros and cons dark
 
Microservices pros and cons
Microservices pros and consMicroservices pros and cons
Microservices pros and cons
 
Reigniting the Volusion platform
Reigniting the Volusion platformReigniting the Volusion platform
Reigniting the Volusion platform
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutes
 
Making your API behave like a big boy
Making your API behave like a big boyMaking your API behave like a big boy
Making your API behave like a big boy
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew Siemer
 
Test driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBTest driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDB
 
A tale of two clouds
A tale of two cloudsA tale of two clouds
A tale of two clouds
 
Introduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregationIntroduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregation
 

Recently uploaded

Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform EngineeringMarcus Vechiato
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessUXDXConf
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...ScyllaDB
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPTiSEO AI
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideStefan Dietze
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...marcuskenyatta275
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxFIDO Alliance
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGDSC PJATK
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...FIDO Alliance
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Hiroshi SHIBATA
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!Memoori
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxFIDO Alliance
 

Recently uploaded (20)

Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 

20 tips for website performance

  • 1. 20 Tips for tweaking your website’s performance Slides: https://nven.tv/web-perf-pdf
  • 2. 22 inventive.io @InventiveGroup facebook.com/InventiveGroup Andrew Siemer Founder & CEO (866) 500-2706 hello@inventive.io @asiemer http://www.linkedin.com/in/AndrewSiemer
  • 3. Extreme Example Performance should be in mind from the start! (866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization Slides: https://nven.tv/web-perf-pdf
  • 4. IMPROVING LIVES WITH TECHNOLOGY Aggie Muster - From Concept to Production in 3 weeks 4 (1) Concept (2) Wireframe (3) Prototype Delivered (4)
  • 5. IMPROVING LIVES WITH TECHNOLOGY Aggie Muster - Site for live streaming and real-time communication 5 ● 200,000 users could log on - targeted 400k users ● Prototyped, built, load tested, & deployed in 3 weeks ● Load tested 50,000 concurrent write operations ○ During 4 hour test ○ Processed 4 million messages ○ 2,500 requests per second ○ 100 servers TESTED BEYOND REQUIREMENTS ● During Muster we saw 50,000 unique visitors ○ 14,000 registrations ○ 15,000 HERE messages ○ 1000 reflections ○ At peak around 7pm: 27,516 active users ■ 800 requests per second across 35 servers ○ Average request duration for reads <10ms ● Hosting costs ○ Day of event: $565 ○ Outside of the event: $60-$80/month
  • 6. What is Performance? Now let's understand the problem (866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization Slides: https://nven.tv/web-perf-pdf
  • 7. What is Performance? ● Page load speed 39% leave sites that render slowly ● Time to first render 74% leave if the site doesn’t load on the phone in 5 seconds ● Time to interactive (useable) 52% cite that quick page load is important to site loyalty ● Perceived performance 16% satisfaction decrease for 1 second page speed delay
  • 8.
  • 9. Without performance ● Not an enjoyable experience A 0.4 second lag time results in decrease of 0.44% traffic ● Users won’t stick around A 1 second delay in page load time means 11% decline in page views ● Google will demote you 0.5 second in each search page generation causes traffic to drop by 20%
  • 10. ● Now indexes your mobile site experience by default ● Should provide a 100% identical experience as desktop ● Render speed of mobile should be blazing fast and lightweight ● Accessibility friendly https://search.google.com/test/mobile-friendly https://nven.tv/web-perf-google-mobile-first
  • 11. Test with your users in mind Look at your Google analytics to understand who your users are - 53% of mobile site visits are abandoned if pages take longer than 3 seconds to load
  • 12.
  • 13. Device performance varies Sometimes significantly! - 75% of users won’t return to a webpage if it takes more than 4 seconds to load
  • 15. Device Considerations ● Processor speed ● Memory available ● Wifi vs cellular connectivity ● Signal strength
  • 16.
  • 18. Not all bytes are equal! 100kb of JS “weighs” more than 100kb of image.
  • 19.
  • 20. Performance Issues What to look for... (866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization Slides: https://nven.tv/web-perf-pdf
  • 21. Highlights Quick Fixes 1. HTTP Requests ○ Reduce DNS lookups ○ Minimize redirects ○ Remove query strings from static resources ○ Avoid bad requests 2. Specify a character set 3. Fonts ○ System Font Stack ○ Font subsetting 4. CSS at the top, JS at the bottom 5. Images ○ Optimize Images ○ Specify image dimensions ○ Image sprites ○ Lazy load below the fold Other Fixes 1. Hosting ○ HTTP/2 2. Expires header 3. GZIP compression 4. Use a CDN 5. Cached 302 redirects 6. Tree shaking / UnCSS 7. Code splitting 8. Minify your code
  • 22. Quick Fixes Easy fixes that are directly under your control
  • 23. Quick Fixes ● HTTP Requests ● Character sets ● Fonts ● External resources ● Images
  • 24. HTTP Requests ● Reduce DNS lookups ● Minimize redirects ● Remove query strings from static resources ● Avoid bad requests
  • 25. HTTP Requests ● Reduce DNS lookups ● Minimize redirects ● Remove query strings from static resources ● Avoid bad requests How a 301 redirect works
  • 26. HTTP Requests ● Reduce DNS lookups ● Minimize redirects ● Remove query strings from static resources ● Avoid bad requests
  • 27. HTTP Requests ● Reduce DNS lookups ● Minimize redirects ● Remove query strings from static resources ● Avoid bad requests http://deadlinkchecker.com
  • 28. Character Sets ● Specify the character set to make the browser’s job easier! ● Must be in the first 1024 bytes of the document! <html …> <head …> <meta charset="utf-8"> https://nven.tv/web-perf-character-set
  • 29. Fonts & Flash of unstyled content ● Consider not loading a font! Or use “System Font Stack” ● Use CDN for font hosting ● Use WOFF2 format ● Us subset fonts including only needed characters https://everythingfonts.com/subsetter
  • 30. External Resources ● Images covered below ● CSS at the top ● JS at the bottom ● Inline critical CSS for above the fold content ● Asynchronously load non-critical CSS ○ Prohibits progressive rendering of critical styles ○ Avoid redraws ○ Improves web standard compliance according to W3
  • 31. Images ● Optimize Images ● Specify image dimensions ● Image sprites ● Lazy load below the fold https://css-tricks.com/essential-image-optimization/
  • 32. Images ● Optimize Images ● Specify image dimensions ● Image sprites ● Lazy load below the fold
  • 33. Images ● Optimize Images ● Specify image dimensions ● Image sprites ● Lazy load below the fold ● HTTP/1.1 likes one request due to queuing limitation ● HTTP/2 likes little requests due to multiplexing ● A sprite with many images in one file may compress better that individual images ● If all images in a sprite are used on one page, that may be a better option https://css-tricks.com/css-sprites/
  • 34. Images ● Optimize Images ● Specify image dimensions ● Image sprites ● Lazy load below the fold https://css-tricks.com/the-complete-guide-to-lazy-loading-images/
  • 35. Other Fixes These fixes may require a team effort
  • 36. Other Fixes ● Hosting ● Expires header ● GZIP compression ● Use a CDN ● Cached 302 redirects ● Tree shaking & UnCSS ● Code splitting ● Minify your code
  • 37. Hosting ● HTTP2 ● Servers near consumers ● Globally available - short hops ● Heavily cached static content ● Scalable infrastructure for dynamic content ● If monolithic server, be sure they are performant ● Limit noisy neighbors on shared hosting
  • 38. Hosting ● HTTP/2 ○ Faster ○ Stream of binary frames ○ More Secure - Requires server configuration https://nven.tv/web-perf-http2
  • 39. Expires Header ● Allows you to leverage browser caching ● Instructs browser to use local copy of an already downloaded file ● Reduces number of HTTP requests to load page - Requires server configuration
  • 40. GZIP Compression ● Compresses the content on the server ● Less for the browser to download ● Browser then decompresses the content for display - Requires server configuration
  • 41. CDN for Static Assets ● Get website assets as close to your user as possible ● Offloads web traffic from your host ● Caching on a highly performant edge network ● Provides a form of redundancy ● Helps with scale
  • 42. Cached 302 Redirects ● Redirects add latency to a request ● Redirects delay page load time ● Remove redirects if possible ● Cache them if you can’t remove them
  • 43. Tree Shaking & UnCSS ● Remove dead code paths ○ From Javascript ○ From CSS - Best when part of continuous integration
  • 44. Code Splitting ● Send small specific bundles of code ● Minimizes the size of a request ● Utilize dynamic importing
  • 45. Minify Your Code ● Removes whitespace ● Shortens variable names ● Shortens function names
  • 46. Monitoring Performance must be monitored over time (866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization Slides: https://nven.tv/web-perf-pdf
  • 48. Monitoring Tools ● SpeedCurve ● Request Map Generator ● Size Limit ● Google Lighthouse https://speedcurve.com
  • 49. Monitoring Tools ● SpeedCurve ● Request Map Generator ● Size Limit ● Google Lighthouse https://speedcurve.com
  • 50.
  • 51. Monitoring Tools ● SpeedCurve ● Request Map Generator ● Size Limit ● Google Lighthouse https://nven.tv/web-perf-tamu-rm
  • 52. Monitoring Tools ● SpeedCurve ● Request Map Generator ● Size Limit ● Google Lighthouse https://github.com/ai/size-limit
  • 53. Monitoring Tools ● SpeedCurve ● Request Map Generator ● Size Limit ● Google Lighthouse
  • 54. Perceived Performance Sometimes you can pretend to be performant! (866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization Slides: https://nven.tv/web-perf-pdf
  • 56. Animations Load and calculate in the background while showing an animation
  • 57. Extras Some additional considerations (866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization Slides: https://nven.tv/web-perf-pdf
  • 58. Extras 1. Performance Budget ○ Be 20% faster than your main competitor 2. Performance = Ethics & Accessibility 3. Follow the specialists ○ Performance is an industry ○ Changes over time
  • 59. Resources Used ● https://nven.tv/web-perf-moz-15 ● https://nven.tv/web-perf-35-tips ● https://nven.tv/web-perf-22-tips ● https://nven.tv/web-perf-20-tips ● https://nven.tv/web-perf-18-tips ● https://nven.tv/web-perf-improve-conversion ● https://nven.tv/web-perf-google-mobile-first
  • 60. An inventive company solving big problems with proven solutions MORE THAN DIGITAL TRANSFORMATION IMPROVING LIVES WITH TECHNOLOGY60 (866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization QUESTIONS?
  • 61. An inventive company solving big problems with proven solutions MORE THAN DIGITAL TRANSFORMATION IMPROVING LIVES WITH TECHNOLOGY61 (866) 500-2706 - inventive.io - hello@inventive.io | Web Applications & Sites, Mobile Apps, Modernization QUESTIONS?