SlideShare a Scribd company logo
1 of 40
Download to read offline
„To my ne, to oni!“
Komponenty třetích
stran a rychlost webu
Martin Michálek
@machal
vrdl.cz/martin
Martin Michálek: Konzultant k rychlosti webu
Web
Analytika
Reklama
Cizí UI komponenty
Testování
Web
Analytika
Reklama
37 %
Simon Hearne a HTTP Archive
Počet requestů třetích
stran na mediánu webů:
Změřit
Vyřešit
Komunikovat
@machal
Jak na third parties?
Změřit
Vyřešit
Komunikovat
@machal
Jak na third parties?
Měříme třetí strany: Lighthouse
https://web.dev/measure/
Zajímavou analýzu komponent třetí strany nabízí už Lighthouse.
Měříme třetí strany: Lighthouse
Umí i podrobnější analýzu, například o čase, který potřebují jednotlivé JS. Aktuální
nevýhodou je kategorie „Other“, kam toho hodně mizí. Ale autoři to řeší.
Měříme třetí strany: WebpageTest
https://www.webpagetest.org/
badthirdparty.com zpomalimeweb.cz
rychlyweb.cz
WebpageTest toho nabízí hodně. Třeba srovnání testů. Udělejte jeden test
standardně a druhý pak s blokováním konkrétní třetí strany.
Měříme třetí strany: WebpageTest
https://www.webpagetest.org/
Do URL se na obrazovce časové osy dá přidat čárka. WebpageTest vám
pak vyrobí srovnávací test.
with 3P
without 3P
Měříme třetí strany: WebpageTest
https://www.webpagetest.org/
Taková data jsou skvělý podklad pro argumentaci směrem ke klientovi
nebo přímo vývojářům třetí strany.
Měříme třetí strany: Chrome DevTools
web.dev/identify-slow-third-party-javascript/
V Chrome DevTools si zapněte zobrazování „third party badges“. Identifi-
kujete tak snáze, které 3P patří requesty, jež vidíte v „Network“.
Měříme třetí strany: Chrome DevTools
web.dev/identify-slow-third-party-javascript/
Podobně jako v Lighthouse pak v záložce „Performance“ můžete získat
čísla o času, který v hlavním vlákně spotřebují jednotlivé JS.
Měříme třetí strany: SpeedCurve
speedcurve.com/blog/third-party-blame-game/
Pro mě osobně je ale nejcennější SpeedCurve. Zde například vidíme graf
celkové zátěže webu třetími stranami a její vývoj v čase.
Měříme třetí strany: SpeedCurve
speedcurve.com/blog/third-party-blame-game/
Na tomto grafu SpeedCurve ukazuje čas, který jednotliví dodavatelé 3P
ubírají prohlížeči v hlavním vlákně. Čím vyšší je červená část, tím hůř.
Změřit
Vyřešit
Komunikovat
@machal
Jak na third parties?
Případ první: Targito
Někdy je možné skripty a styly 3P komponenty odstranit. Ve spolupráci 

s Targito zde klient dokázal odstranit 3P CSS a JS. Targito ale stále používá.
Případ druhý: FreshChat
smarty.cz
S chatovacími widgety to bývá složité. Hned po nasazení FreshChat
na e-shopu Smarty vylétla čísla nahoru.
Případ druhý: FreshChat
smarty.cz
Případ druhý: FreshChat
První odpověď podpory:
„…looks like the widget loads fine. I do not see
any slowness in the page or the chat widget
loading.“
smarty.cz
U mě je to
rychlý, ty
nulo!
Případ druhý: FreshChat
smarty.cz
Vývojář Adam Košťálek to ovšem vyřešil elegantně. Namísto widgetu je zde obrázek.
Widget se načte, až po kliknutí, když jej uživatel potřebuje.
Případ druhý: FreshChat
smarty.cz
Případ druhý: FreshChat
debugbear.com/blog/chat-widget-site-performance
Případ třetí: Smartsupp
debugbear.com/blog/chat-widget-site-performance
Případ třetí: Smartsupp
autodoplnky-obchod.cz
Na Smartsupp se technika zástupného obrázku (placeholderu) použít nedá.
Aktivně totiž komunikuje se zákazníkem.
Případ třetí: Smartsupp
Případ třetí: Smartsupp
autodoplnky-obchod.cz
V e-mailové komunikaci ovšem autoři píší, že si jsou problému vědomi a že jej
aktuálně intenzivně řeší. Nová verze widgetu je už v přípravě. Těšíme se!
Případ čtvrtý: Disqus
Disqus je komentářová služba. S weby se rozhodně nepáře, dokáže na pozadí
stáhnout klidně kolem 2,5 MB.
Případ čtvrtý: Disqus
Případ čtvrtý: Disqus
Řešení? Líné načtení (lazy loading) až po rozkliknutí komentářové sekce.
V tomto případě by to mohlo ušetřit slušný objem dat.
Případ čtvrtý: Disqus
Speciální případ
Většina vývojářů GTM nemá v oblibě a viní jej z negativních dopadů na rychlost webu.
Není to ale prostě jen výborný nástroj, který se občas používá špatně?
Speciální případ: GTM
Speciální případ: GTM
Speciální případ: GTM
• GTM je obvykle úplně v pohodě
• Problém jsou až komponenty do něj vkládané
• Sleduj dobu provádění skriptu a timeline
• Sleduj události (gtm.js, gtm.dom, gtm.load)
• GTM/GA debug Chrome extension
• Ukaž čísla a komunikuj
Shrnutí řešení
• Třeba to tam nemusí být…?
• async/defer
• Placeholder
• Odložené načtení (klik, scroll, šablona, zařízení…)
• Preconnect (<link href="…" rel="preconnect">)
• Selfhosting (viz ušetření 1,7s na Optimizely)
• Komunikace
Změřit
Vyřešit
Komunikovat
@machal
Jak na third parties?
Komunikace
• Osvěta, než je pozdě (klient, marketéři…)
• Problém? Hlaš to klientovi (on platí)
• Autoři third-party (čísla, dokumentace, pomoc s řešením)
• Pomoz ostatním vývojářům (publikuj, přidej do 3PW)
Martin Michálek
@machal
Děkuji!
→ vzhurudolu.cz/kurzy/rychlost-nacitani

More Related Content

Similar to „To my ne, to oni!“ – komponenty třetích stran a rychlost webu

Hobby Developer 3.0: Tipy a triky pro web
Hobby Developer 3.0: Tipy a triky pro webHobby Developer 3.0: Tipy a triky pro web
Hobby Developer 3.0: Tipy a triky pro webTomáš Muchka
 
Blbosti kolem webové rychlosti
Blbosti kolem webové rychlostiBlbosti kolem webové rychlosti
Blbosti kolem webové rychlostiMartin Michálek
 
Data Date #2: Radek Kupr - Jak zjistit skutečný propad dat po nasazení cookie...
Data Date #2: Radek Kupr - Jak zjistit skutečný propad dat po nasazení cookie...Data Date #2: Radek Kupr - Jak zjistit skutečný propad dat po nasazení cookie...
Data Date #2: Radek Kupr - Jak zjistit skutečný propad dat po nasazení cookie...Taste
 
Soumrak session based analytiky
Soumrak session based analytikySoumrak session based analytiky
Soumrak session based analytikyTaste Medio
 
Říjnový SEOloger 2019 - Screaming Frog a crawlování webů
Říjnový SEOloger 2019 - Screaming Frog a crawlování webůŘíjnový SEOloger 2019 - Screaming Frog a crawlování webů
Říjnový SEOloger 2019 - Screaming Frog a crawlování webůMartin Žatkovič
 
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)Jakub Kulhan
 
Testujem.cz - uživatelské testování stránek
Testujem.cz - uživatelské testování stránekTestujem.cz - uživatelské testování stránek
Testujem.cz - uživatelské testování stránekMarek Gach
 
Data Restart 2022: Radek Kupr - Consent Rate aneb jak jsme vyřešili propad dat
Data Restart 2022: Radek Kupr - Consent Rate aneb jak jsme vyřešili propad datData Restart 2022: Radek Kupr - Consent Rate aneb jak jsme vyřešili propad dat
Data Restart 2022: Radek Kupr - Consent Rate aneb jak jsme vyřešili propad datTaste
 
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordPress šablony a  rychlost načítání (WordCamp Praha 2017)WordPress šablony a  rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)Martin Michálek
 
Analytika ve světě startupu (Petr Bureš)
Analytika ve světě startupu (Petr Bureš)Analytika ve světě startupu (Petr Bureš)
Analytika ve světě startupu (Petr Bureš)Taste Medio
 
WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3Vladimír Smitka
 
Algoritmy a sociální sítě - stručný úvod
Algoritmy a sociální sítě - stručný úvodAlgoritmy a sociální sítě - stručný úvod
Algoritmy a sociální sítě - stručný úvodJosef Šlerka
 
Data Date #2: Jakub Novotný - Jak pracují s cookies v Seznam.cz
Data Date #2: Jakub Novotný - Jak pracují s cookies v Seznam.czData Date #2: Jakub Novotný - Jak pracují s cookies v Seznam.cz
Data Date #2: Jakub Novotný - Jak pracují s cookies v Seznam.czTaste
 
5 tragických pochybeni v Cyber bezpečnosti
5 tragických pochybeni v Cyber bezpečnosti5 tragických pochybeni v Cyber bezpečnosti
5 tragických pochybeni v Cyber bezpečnostiJiří Napravnik
 
JavaScript v GTM - Measure Camp Brno 2017
JavaScript v GTM - Measure Camp Brno 2017JavaScript v GTM - Measure Camp Brno 2017
JavaScript v GTM - Measure Camp Brno 2017Michal Blažek
 
PPC Restart 2021: Ladislav Vitouš - Zánik cookies a FLoC – co to znamená a na...
PPC Restart 2021: Ladislav Vitouš - Zánik cookies a FLoC – co to znamená a na...PPC Restart 2021: Ladislav Vitouš - Zánik cookies a FLoC – co to znamená a na...
PPC Restart 2021: Ladislav Vitouš - Zánik cookies a FLoC – co to znamená a na...Taste
 
Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)
Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)
Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)Jakub Fiala
 

Similar to „To my ne, to oni!“ – komponenty třetích stran a rychlost webu (20)

Hobby Developer 3.0: Tipy a triky pro web
Hobby Developer 3.0: Tipy a triky pro webHobby Developer 3.0: Tipy a triky pro web
Hobby Developer 3.0: Tipy a triky pro web
 
Blbosti kolem webové rychlosti
Blbosti kolem webové rychlostiBlbosti kolem webové rychlosti
Blbosti kolem webové rychlosti
 
Data Date #2: Radek Kupr - Jak zjistit skutečný propad dat po nasazení cookie...
Data Date #2: Radek Kupr - Jak zjistit skutečný propad dat po nasazení cookie...Data Date #2: Radek Kupr - Jak zjistit skutečný propad dat po nasazení cookie...
Data Date #2: Radek Kupr - Jak zjistit skutečný propad dat po nasazení cookie...
 
Soumrak session based analytiky
Soumrak session based analytikySoumrak session based analytiky
Soumrak session based analytiky
 
Říjnový SEOloger 2019 - Screaming Frog a crawlování webů
Říjnový SEOloger 2019 - Screaming Frog a crawlování webůŘíjnový SEOloger 2019 - Screaming Frog a crawlování webů
Říjnový SEOloger 2019 - Screaming Frog a crawlování webů
 
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
 
Testujem.cz - uživatelské testování stránek
Testujem.cz - uživatelské testování stránekTestujem.cz - uživatelské testování stránek
Testujem.cz - uživatelské testování stránek
 
Data Restart 2022: Radek Kupr - Consent Rate aneb jak jsme vyřešili propad dat
Data Restart 2022: Radek Kupr - Consent Rate aneb jak jsme vyřešili propad datData Restart 2022: Radek Kupr - Consent Rate aneb jak jsme vyřešili propad dat
Data Restart 2022: Radek Kupr - Consent Rate aneb jak jsme vyřešili propad dat
 
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordPress šablony a  rychlost načítání (WordCamp Praha 2017)WordPress šablony a  rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
 
Analytika ve světě startupu (Petr Bureš)
Analytika ve světě startupu (Petr Bureš)Analytika ve světě startupu (Petr Bureš)
Analytika ve světě startupu (Petr Bureš)
 
Tag management
Tag managementTag management
Tag management
 
WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3
 
Algoritmy a sociální sítě - stručný úvod
Algoritmy a sociální sítě - stručný úvodAlgoritmy a sociální sítě - stručný úvod
Algoritmy a sociální sítě - stručný úvod
 
Data Date #2: Jakub Novotný - Jak pracují s cookies v Seznam.cz
Data Date #2: Jakub Novotný - Jak pracují s cookies v Seznam.czData Date #2: Jakub Novotný - Jak pracují s cookies v Seznam.cz
Data Date #2: Jakub Novotný - Jak pracují s cookies v Seznam.cz
 
Total Cost of Pwnership
Total Cost of PwnershipTotal Cost of Pwnership
Total Cost of Pwnership
 
5 tragických pochybeni v Cyber bezpečnosti
5 tragických pochybeni v Cyber bezpečnosti5 tragických pochybeni v Cyber bezpečnosti
5 tragických pochybeni v Cyber bezpečnosti
 
JavaScript v GTM - Measure Camp Brno 2017
JavaScript v GTM - Measure Camp Brno 2017JavaScript v GTM - Measure Camp Brno 2017
JavaScript v GTM - Measure Camp Brno 2017
 
PPC Restart 2021: Ladislav Vitouš - Zánik cookies a FLoC – co to znamená a na...
PPC Restart 2021: Ladislav Vitouš - Zánik cookies a FLoC – co to znamená a na...PPC Restart 2021: Ladislav Vitouš - Zánik cookies a FLoC – co to znamená a na...
PPC Restart 2021: Ladislav Vitouš - Zánik cookies a FLoC – co to znamená a na...
 
Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)
Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)
Knihovny 2020: Praktické využití principů sémantického webu (projekt Dáme práci)
 
Webmeetup #3
Webmeetup #3Webmeetup #3
Webmeetup #3
 

More from Martin Michálek

Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojářeRychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojářeMartin Michálek
 
CSS a sazba knih: jak jsme daleko?
CSS a sazba knih: jak jsme daleko?CSS a sazba knih: jak jsme daleko?
CSS a sazba knih: jak jsme daleko?Martin Michálek
 
Browsers: from competition to collaboration
Browsers: from competition to collaborationBrowsers: from competition to collaboration
Browsers: from competition to collaborationMartin Michálek
 
CSS proměnné (Custom Properties)
CSS proměnné (Custom Properties)CSS proměnné (Custom Properties)
CSS proměnné (Custom Properties)Martin Michálek
 
AMP: Co řeší a co nového nabízí
AMP: Co řeší a co nového nabízíAMP: Co řeší a co nového nabízí
AMP: Co řeší a co nového nabízíMartin Michálek
 
Metriky rychlosti načítání
Metriky rychlosti načítáníMetriky rychlosti načítání
Metriky rychlosti načítáníMartin Michálek
 
WebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzory
WebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzoryWebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzory
WebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzoryMartin Michálek
 
Je CSS vážně tak podivné?
Je CSS vážně  tak podivné?Je CSS vážně  tak podivné?
Je CSS vážně tak podivné?Martin Michálek
 
Slasti a pasti prototypování v HTML
Slasti a pasti  prototypování v HTMLSlasti a pasti  prototypování v HTML
Slasti a pasti prototypování v HTMLMartin Michálek
 
10 praktických CSS3 a SVG řešení
10 praktických  CSS3 a SVG řešení10 praktických  CSS3 a SVG řešení
10 praktických CSS3 a SVG řešeníMartin Michálek
 
Debugování responzivních webů
Debugování responzivních webůDebugování responzivních webů
Debugování responzivních webůMartin Michálek
 
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webů
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webůVše co potřebuje markeťák vědět o rychlostní optimalizaci webů
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webůMartin Michálek
 
Design webů v prohlížeči
Design webů v prohlížečiDesign webů v prohlížeči
Design webů v prohlížečiMartin Michálek
 
Responzivní obrázky v praxi
Responzivní obrázky v praxiResponzivní obrázky v praxi
Responzivní obrázky v praxiMartin Michálek
 
Co by měl UXák vědět o responzivním webdesignu?
Co by měl UXák vědět o responzivním webdesignu?Co by měl UXák vědět o responzivním webdesignu?
Co by měl UXák vědět o responzivním webdesignu?Martin Michálek
 
Ach, ty mobilní prohlížeče
Ach, ty mobilní prohlížečeAch, ty mobilní prohlížeče
Ach, ty mobilní prohlížečeMartin Michálek
 

More from Martin Michálek (20)

Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojářeRychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
Rychlejší web snadno a rychle: Nové technologie a nástroje pro vývojáře
 
CSS a sazba knih: jak jsme daleko?
CSS a sazba knih: jak jsme daleko?CSS a sazba knih: jak jsme daleko?
CSS a sazba knih: jak jsme daleko?
 
Browsers: from competition to collaboration
Browsers: from competition to collaborationBrowsers: from competition to collaboration
Browsers: from competition to collaboration
 
CSS proměnné (Custom Properties)
CSS proměnné (Custom Properties)CSS proměnné (Custom Properties)
CSS proměnné (Custom Properties)
 
Devel.cz: Bootstrap 4
Devel.cz: Bootstrap 4Devel.cz: Bootstrap 4
Devel.cz: Bootstrap 4
 
AMP: Co řeší a co nového nabízí
AMP: Co řeší a co nového nabízíAMP: Co řeší a co nového nabízí
AMP: Co řeší a co nového nabízí
 
Metriky rychlosti načítání
Metriky rychlosti načítáníMetriky rychlosti načítání
Metriky rychlosti načítání
 
WebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzory
WebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzoryWebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzory
WebExpo 2017 - Přístupnost v kódu: ukázky a návrhové vzory
 
Je CSS vážně tak podivné?
Je CSS vážně  tak podivné?Je CSS vážně  tak podivné?
Je CSS vážně tak podivné?
 
Slasti a pasti prototypování v HTML
Slasti a pasti  prototypování v HTMLSlasti a pasti  prototypování v HTML
Slasti a pasti prototypování v HTML
 
10 praktických CSS3 a SVG řešení
10 praktických  CSS3 a SVG řešení10 praktických  CSS3 a SVG řešení
10 praktických CSS3 a SVG řešení
 
Debugování responzivních webů
Debugování responzivních webůDebugování responzivních webů
Debugování responzivních webů
 
Mobile First v praxi
Mobile First v praxiMobile First v praxi
Mobile First v praxi
 
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webů
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webůVše co potřebuje markeťák vědět o rychlostní optimalizaci webů
Vše co potřebuje markeťák vědět o rychlostní optimalizaci webů
 
Design webů v prohlížeči
Design webů v prohlížečiDesign webů v prohlížeči
Design webů v prohlížeči
 
Responzivní obrázky v praxi
Responzivní obrázky v praxiResponzivní obrázky v praxi
Responzivní obrázky v praxi
 
Co by měl UXák vědět o responzivním webdesignu?
Co by měl UXák vědět o responzivním webdesignu?Co by měl UXák vědět o responzivním webdesignu?
Co by měl UXák vědět o responzivním webdesignu?
 
Ach, ty mobilní prohlížeče
Ach, ty mobilní prohlížečeAch, ty mobilní prohlížeče
Ach, ty mobilní prohlížeče
 
Proč LESS?
Proč LESS?Proč LESS?
Proč LESS?
 
CSS preprocesory
CSS preprocesoryCSS preprocesory
CSS preprocesory
 

„To my ne, to oni!“ – komponenty třetích stran a rychlost webu