lamapixel
0%
E-commerce · 6 min čtení

Audit aplikací: co vám aplikace berou i po odinstalování

Odinstalovaná aplikace zůstává v tématu: 6,9 MB obrázků, mrtvé snippety a cizí skripty bez defer. Jak si audit aplikací uděláte sami, s příkazy.

Audit aplikací: co vám aplikace berou i po odinstalování

Tlačítko „Odinstalovat“ v administraci Shopify zruší předplatné a odpojí aplikaci od obchodu. Nesmaže to, co aplikace nahrála do vašeho tématu. Obrázky, snippety, úpravy layoutu a odkazy na cizí servery tam zůstávají, dokud je někdo ručně nenajde.

V jednom obchodě, který dlouhodobě spravujeme, jsme takhle našli 6,9 MB z 8,8 MB složky assets/ - obrázky věrnostní aplikace, která byla odinstalovaná už dřív. Odkazovaly na ně tři snippety a ani jeden se nevykresloval (vlastní rozbor lokální kopie tématu, 27. 8. 2026).

Aplikace platíte měsíčně, ale účet má tři části

První část je předplatné a tu vidíte na výpisu. Druhá a třetí se neúčtují v korunách, ale platí se stejně.

Část účtu Kde se projeví Kdy končí
Předplatné výpis z účtu odinstalováním
Zpomalení stránky LCP, počet požadavků až úklidem tématu
Čas vývojáře každá další úprava až úklidem tématu

Náklady na předplatná rozebíráme v článku o měsíčních nákladech e-shopu. Tenhle text je o zbylých dvou.

Aplikace nesahá jen na svoje soubory

Aby aplikace fungovala ve výpisu produktů nebo v košíku, musí se dostat do tématu. Dělá to šesti způsoby a každý z nich přežije odinstalování jinak dlouho:

  • Soubory ve složce assets/ - obrázky, skripty, styly.
  • Snippety, které vkládá do sekcí nebo do layoutu.
  • Úpravy layout/theme.liquid - inicializace, měřicí kódy.
  • Script tags vkládané platformou mimo téma.
  • App proxy - vlastní adresy pod doménou vašeho obchodu.
  • Vlastní layout, typicky u editorů stránek.

Platforma při odinstalování spolehlivě uklidí jen script tags a app blocks. Zbytek je váš soubor ve vašem tématu a nikdo cizí ho mazat nebude.

Mrtvé obrázky nezpomalují stránku, ale zdražují každou práci s tématem

Těch 6,9 MB obrázků z úvodu se nenačítá, protože se snippety, které je volají, nikde nevykreslují. Návštěvník je nikdy nestáhne a v měření rychlosti je nenajdete.

Zdražují ale všechno ostatní: stažení tématu, jeho duplikaci, nasazení přes theme push, porovnání dvou obchodů. Tedy přesně ty operace, které vývojář dělá u každé objednávky. Měřte složku assets/ dřív, než začnete řešit velikost tématu - jinak optimalizujete kód, jehož podíl je menší než podíl mrtvých obrázků.

Ve stejném tématu k tomu bylo 31 nepoužívaných snippetů ze 102, 34 nepoužívaných sekcí ze 149 a 15 mrtvých souborů v assets/ o velikosti 312 kB.

Vlastní kód tématu měl 635 kB, na živé stránce byly tři megabajty

Tohle je nejjasnější číslo celého rozboru. Vlastních skriptů mělo téma 32 souborů o celkové velikosti 635 kB a všechny byly připojené s atributem defer. Na živé stránce přitom měřicí nástroj napočítal řádově 3 MB JavaScriptu ve 236 souborech (WebPageTest, mobilní profil, studená cache, 24. 6. 2026).

Rozdíl přinesly aplikace a služby třetích stran. Kdo v takové situaci zaplatí za refaktoring tématu a inventuru aplikací neudělá, kupuje si zhruba pětinu problému. Jak se rychlost dělí mezi platformu a stránku, rozebíráme v článku o tom, proč je rychlý Shopify pomalý.

Dvanáct cizích skriptů bez defer je dvanáct cizích výpadků

Ve stejném tématu jsme napočítali 12 externích skriptů bez atributu defer nebo async ze sedmi cizích hostitelů. Dva z nich byly synchronní přímo v <head>, tedy na místě, kde prohlížeč zastaví zpracování dokumentu, dokud se soubor nestáhne z cizího serveru.

Když ten server neodpoví, nevykreslí se nic. Není to teoretická obava: jeden z hostitelů v tom tématu, polyfill.io, vracel při naší kontrole 27. 8. 2026 chybu HTTP 520.

polyfill.io není pomalý, je to cizí kód s cizím majitelem

U téhle položky nejde o rychlost. Doména polyfill.io v roce 2024 změnila vlastníka a začala z části návštěv rozesílat škodlivá přesměrování; dnes je mrtvá. Do tématu se dostala ve snippetu jedné aplikace, jako záloha pro staré prohlížeče.

Podstatné je, jak se to opravuje. Ten snippet je vendorský a nese poznámku „neupravovat ručně“ - jakákoli oprava zmizí při první aktualizaci aplikace. Dotaz proto míří na vývojáře aplikace, ne na vašeho programátora. Pokud aplikace už není nainstalovaná, snippet se maže celý.

Prakticky to znamená jedno: každé téma, které přebíráte po někom jiném, se prohledá na cizí domény ve <script src> dřív, než se pustí do produkce.

Aplikace tisknou e-mail zákazníka do HTML a nahrávače relací ho sbírají

Typický inicializační snippet věrnostní nebo referenční aplikace vypíše do stránky customer.email, first_name, last_name, orders_count a total_spent. Část aplikací e-mail navíc duplikuje do data-atributů.

Samostatně je každý z těch kroků legální. Problém vzniká průnikem: na téže stránce běžel nahrávač uživatelských relací. Osobní údaje vytištěné do HTML se tím dostávají do záznamu relace u třetí strany, a to už je předání, které musí být podložené.

Tohle není nález pro vývojáře, ale pro toho, kdo u vás odpovídá za zpracování osobních údajů. Naše role končí u věty „takhle to na stránce vypadá a tyhle tři služby to vidí“.

Po editorech stránek zůstává druhý layout, o kterém nikdo neví

Editory stránek typu GemPages, PageFly nebo Shogun si přidávají vlastní layout/theme.<název>.liquid. Po odinstalování soubor zůstane a obsahuje kopii hlavičky se všemi tehdejšími úpravami.

V rozebíraném tématu měl 583 řádků a nevolal ho žádný {% layout %}. Od živého layoutu se lišil ve 165 řádcích - a obsahoval jediné volání snippetu s hreflang v celém tématu.

Než takový soubor smažete, porovnejte ho s živým. Rozdíly ukazují, které úpravy hlavičky se za ta léta dělaly naslepo a co se při nich ztratilo.

Audit aplikací si uděláte sami za odpoledne

Stáhněte si téma přes Shopify CLI a pusťte na složku pět kontrol. Ani jedna nepotřebuje přístup do administrace.

du -sh assets/                                   # kolik váží statické soubory
rg -o 'src="https?://[^/"]+' --no-filename | sort -u   # cizí domény ve skriptech
rg -l 'polyfill\.io|cdn\.jsdelivr|unpkg\.com'    # známé cizí CDN
ls layout/                                       # čekáme jeden theme.liquid
rg -c 'customer\.email|customer\.total_spent'    # osobní údaje v HTML

Ke každému nálezu pak patří jedna otázka: volá tenhle soubor ještě někdo? Jméno snippetu se hledá v render a include, jméno assetu v celém tématu. Když se nenajde nikde, je to kandidát na smazání - ne smazání samotné, protože rozhodnutí patří tomu, kdo ví, co daná funkce vydělávala.

Co za úklid zaplatíte

Řekněme to narovinu, protože nabídky na zrychlení tuhle větu obvykle vynechávají. Odinstalováním aplikace přijdete o funkci, za kterou jste platili - o věrnostní program, o hodnocení produktů, o upsell v košíku.

Rozhodnutí proto nepatří vývojáři, ale tomu, kdo zná tržby té funkce. My dodáváme druhou půlku rovnice: kolik ta aplikace stojí v megabajtech, v sekundách, v riziku výpadku a v čase vývojáře.

Druhá věc, kterou je fér říct: úklid tématu není vidět. Nepřidá funkci ani neposune design. Zaplatí se až při další úpravě, která se udělá za polovinu času, protože je jasné, co je živé.

Pošlete nám seznam aplikací a adresu obchodu

Vrátíme vám, které z nich reálně běží, co po odinstalovaných zbylo v tématu a které cizí skripty se načítají na každé stránce. U každé položky bude uvedené, co se stane po odstranění.

Rozsah auditu a zrychlení webu najdete na stránce služby; když řešíte celé téma, a ne jen aplikace, podívejte se, jak se šablony vymknou. E-shopy na Shopify také stavíme - včetně převzetí obchodu po jiném dodavateli.

Napište na info@lamapixel.com nebo volejte +420 775 599 009.

Potřebujete pomoct?

Napište nám a společně najdeme řešení.

Domluvit konzultaci →
Unikátní šance

Ještě váháte?

Napište nám - konzultace a kalkulace jsou zcela zdarma a k ničemu vás nezavazují.

A když se ozvete teď, přibalíme bonus až 10 000 Kč na rozjezd vašeho projektu.
Nabídka vyprší za:
10:00
Nezapomeňte uvést kód:
LAMA10
Asistentka
Zeptat se na cokoliv →
Odpovídáme do 24 hodin. Bez spamu, bez otravných callů.