Spis treści
- Jak tagi marketingowe wpływają na Core Web Vitals
- GTM a szybkość strony: czy sam kontener spowalnia witrynę
- Jak zmierzyć wpływ tagów na szybkość strony
- Co zmienić w kontenerze, żeby przyspieszyć stronę
- Testy A/B, czaty i nagrywanie sesji: najwięksi winowajcy
- Czy server-side tagging i Google Tag Gateway przyspieszają stronę
- Najczęściej zadawane pytania
GTM a szybkość strony to temat, w którym oba popularne przekonania są nietrafione: sam Google Tag Manager rzadko jest problemem, ale tagi, które w nim umieszczasz, bywają nim często. Kontener ładuje się asynchronicznie, jednak każdy uruchomiony w nim skrypt – piksel reklamowy, czat, narzędzie do nagrywania sesji – korzysta z tego samego głównego wątku przeglądarki co Twoja strona. W efekcie pogarszają się wskaźniki Core Web Vitals: LCP, INP i CLS. Pokazujemy, jak zmierzyć koszt poszczególnych tagów i jak go ograniczyć, nie tracąc danych potrzebnych kampaniom.
Najważniejsze w skrócie
- Core Web Vitals to trzy wskaźniki: LCP (dobry do 2,5 s), INP (dobry do 200 ms) i CLS (dobry do 0,1), oceniane na 75. percentylu wizyt.
- Tagi marketingowe najczęściej pogarszają INP, bo długie zadania JavaScriptu blokują reakcję strony na kliknięcia.
- Skrypty ukrywające stronę do czasu załadowania wariantu testu A/B mogą bezpośrednio opóźnić LCP.
- Niekrytyczne tagi, np. czaty i nagrywanie sesji, przenieś na regułę „Okno wczytane” albo uruchamiaj je dopiero po interakcji użytkownika.
- Część pikseli możesz przenieść do kontenera serwerowego, co zmniejsza ilość JavaScriptu wykonywanego w przeglądarce.
Jak tagi marketingowe wpływają na Core Web Vitals
Tagi wpływają na wszystkie trzy wskaźniki, ale każdy w inny sposób. Najsilniej odczuwa je INP, bo skrypty marketingowe reagują na te same kliknięcia, które mierzy ten wskaźnik.
| Wskaźnik | Co mierzy | Dobry / słaby | Jak szkodzą tagi | Typowa naprawa |
|---|---|---|---|---|
| LCP | Czas wyświetlenia największego elementu | do 2,5 s / powyżej 4 s | Skrypty synchroniczne w head, ukrywanie strony przez narzędzia testów, rywalizacja o łącze | Ładowanie asynchroniczne, krótszy limit ukrycia, usunięcie zbędnych skryptów |
| INP | Opóźnienie reakcji na interakcje | do 200 ms / powyżej 500 ms | Długie zadania przy kliknięciach, ciężkie skrypty działające w tle | Późniejsze uruchamianie, odchudzenie, oddanie wątku przed pomiarem |
| CLS | Stabilność układu | do 0,1 / powyżej 0,25 | Banery, czaty, okna promocyjne wstawiane bez zarezerwowanego miejsca | Rezerwacja miejsca, wyświetlanie jako nakładka |
INP zastąpił wskaźnik FID w marcu 2024 roku i jest znacznie bardziej wymagający: mierzy nie tylko pierwsze kliknięcie, ale reakcję na interakcje podczas całej wizyty. Przeglądarka wykonuje JavaScript w jednym głównym wątku. Jeśli w chwili kliknięcia „Dodaj do koszyka” trwa długie zadanie – a za długie uznaje się zadania powyżej 50 ms – strona reaguje z opóźnieniem. Tagi uruchamiane właśnie na kliknięcie dokładają swoją pracę w najgorszym możliwym momencie.
GTM a szybkość strony: czy sam kontener spowalnia witrynę
Sam kontener zwykle ma niewielki wpływ, bo ładuje się asynchronicznie i nie blokuje wyświetlania treści. Problem rośnie razem z liczbą i ciężarem tagów, które w nim uruchamiasz.
Każdy tag, reguła i zmienna zwiększa rozmiar pliku kontenera. GTM ma limit rozmiaru i ostrzega w interfejsie, gdy się do niego zbliżasz, ale znacznie wcześniej niż limit odczujesz koszt wykonywania tagów. Do tego dochodzą skrypty, które tagi same pobierają: biblioteki pikseli, widżety czatu, narzędzia do map ciepła. W przypadku tagów Google każda usługa ładowała dotąd dodatkowo skrypt gtag.js. Od 12 października 2026 roku możesz opcjonalnie przełączyć kontener na wysyłanie danych do Google bez tego skryptu – opisujemy to w omówieniu zmian w GTM w 2026 roku.
Osobną kategorią jest platforma zarządzania zgodami. Jej skrypt musi załadować się wcześnie, a baner wyświetlany bez zarezerwowanego miejsca bywa źródłem przesunięć układu. Jak przygotować baner zgodny z przepisami i wygodny dla użytkownika, wyjaśniamy w przewodniku po banerze cookies zgodnym z TCF 2.3.
Jak zmierzyć wpływ tagów na szybkość strony
Pomiar zaczynasz od danych z prawdziwych wizyt, a dopiero potem szukasz winnych w narzędziach laboratoryjnych. Poniższa procedura pozwala przypisać problem konkretnym skryptom.
- Sprawdź dane terenowe. W PageSpeed Insights zobacz wyniki z prawdziwych wizyt dla strony głównej, karty produktu i koszyka, osobno dla urządzeń mobilnych i komputerów. W Search Console raport podstawowych wskaźników internetowych pokaże grupy adresów z problemami.
- Przejrzyj diagnostykę kodu zewnętrznego. W raporcie laboratoryjnym PageSpeed Insights znajdziesz listę skryptów firm zewnętrznych z czasem blokowania głównego wątku. To pierwsza lista podejrzanych.
- Nagraj sesję w DevTools. W panelu Performance nagraj ładowanie strony i kilka kliknięć. Zwróć uwagę na długie zadania i na to, z jakich domen pochodzą skrypty, które je wywołują.
- Zablokuj podejrzaną domenę. W zakładce Network użyj blokowania żądań dla domeny wybranego dostawcy i powtórz nagranie. Różnica pokaże realny koszt tego skryptu.
- Przetestuj w obszarze roboczym. Wstrzymaj podejrzany tag w osobnym obszarze roboczym i sprawdź stronę w trybie podglądu, zanim cokolwiek opublikujesz.
- Zbieraj wskaźniki z prawdziwych wizyt. Wyślij LCP, INP i CLS do GA4 jako zdarzenia, żeby widzieć wpływ każdej publikacji kontenera.
Ostatni krok wymaga biblioteki web-vitals, którą programista dodaje do kodu strony. Poniższy fragment przekazuje wskaźniki do warstwy danych, skąd tag GA4 wyśle je jako zdarzenie.
import { onLCP, onINP, onCLS } from 'web-vitals';
function sendToDataLayer(metric) {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'web_vitals',
metric_name: metric.name,
metric_value: metric.value,
metric_rating: metric.rating,
metric_id: metric.id
});
}
onLCP(sendToDataLayer);
onINP(sendToDataLayer);
onCLS(sendToDataLayer);
Dane najwygodniej analizować w eksporcie do BigQuery, gdzie policzysz 75. percentyl dla typów stron i urządzeń – przykłady takich zapytań znajdziesz w zestawie zapytań do danych GA4 w BigQuery. Wynik możesz potem pokazać obok sprzedaży na dashboardzie e-commerce w Looker Studio.
Co zmienić w kontenerze, żeby przyspieszyć stronę
Największe zyski dają zwykle trzy działania: usunięcie martwych tagów, przesunięcie niekrytycznych skryptów na później i ograniczenie pracy wykonywanej przy kliknięciach.
Usuń tagi, których nikt nie używa
W kontenerach prowadzonych przez kilka lat regularnie zostają piksele po zakończonych współpracach, stare narzędzia do testów i zduplikowane tagi analityczne. Każdy taki skrypt kosztuje czas głównego wątku i nic nie daje. Listę kontrolną przeglądu kontenera zawiera audyt tagów przed Black Friday.
Uruchamiaj tagi we właściwym momencie
Na najwcześniejszym etapie, w regule „Inicjowanie zgody” i „Inicjowanie”, powinny działać tylko platforma zgód i tag Google. Tagi analityczne i reklamowe wystarczą na etapie wyświetlenia strony. Czat, mapy ciepła i nagrywanie sesji przenieś na regułę „Okno wczytane” albo uruchamiaj po pierwszej interakcji lub po kilku sekundach od wczytania. Uważaj też na opcję oczekiwania na tagi w regułach kliknięcia w link: wstrzymuje ona przejście na kolejną stronę, domyślnie nawet na 2 sekundy, co użytkownik odczuwa jako zawieszenie.
Zastąp niestandardowy HTML szablonami
Niestandardowe tagi HTML mogą robić wszystko, łącznie z synchronicznym wstawianiem skryptów i manipulowaniem stroną. Szablony niestandardowe działają w ograniczonym środowisku i ładują skrypty asynchronicznie, co ułatwia kontrolę wydajności. Jak je pisać i kiedy warto, opisujemy w artykule o szablonach niestandardowych w GTM.
Oddaj wątek przed pomiarem kliknięcia
Jeśli programista wysyła zdarzenie do warstwy danych w procedurze obsługi kliknięcia, niech najpierw zaktualizuje interfejs, a pomiar przesunie o jedną klatkę. Użytkownik od razu widzi efekt, a tagi wykonują się chwilę później.
button.addEventListener('click', function () {
updateCartUI(); // najpierw reakcja widoczna dla użytkownika
setTimeout(function () {
window.dataLayer.push({ event: 'add_to_cart', ecommerce: getCartPayload() });
}, 0);
});
Testy A/B, czaty i nagrywanie sesji: najwięksi winowajcy
Narzędzia, które zmieniają wygląd strony albo nasłuchują każdego ruchu użytkownika, obciążają ją bardziej niż zwykłe piksele. Warto przyjrzeć się im w pierwszej kolejności.
Narzędzia do testów A/B działające po stronie przeglądarki często stosują fragment ukrywający stronę do czasu załadowania wariantu, żeby użytkownik nie zobaczył mignięcia oryginału. Dopóki strona jest ukryta, największy element nie może się wyświetlić, więc LCP rośnie o czas ukrycia. Ustaw możliwie krótki limit, ukrywaj tylko testowany fragment zamiast całej strony albo rozważ testy po stronie serwera. Przegląd rozwiązań i ich wpływu na wydajność znajdziesz w zestawieniu narzędzi do testów A/B.
Nagrywanie sesji i mapy ciepła rejestrują ruchy myszy, przewijanie i kliknięcia, co oznacza stałą pracę w tle. Jeśli potrzebujesz ich tylko do konkretnego projektu, uruchamiaj je na wybranych podstronach lub dla części ruchu, a po zakończeniu analizy wyłącz. Czaty z kolei ładują rozbudowane widżety – przycisk możesz pokazywać od razu, a pełny skrypt pobierać dopiero po kliknięciu.
Czy server-side tagging i Google Tag Gateway przyspieszają stronę
Server-side tagging może zmniejszyć ilość kodu w przeglądarce, ale tylko wtedy, gdy faktycznie zastąpisz nim piksele działające po stronie klienta. Google Tag Gateway zmienia przede wszystkim domenę, z której ładują się tagi Google, a nie ich wagę.
W modelu serwerowym przeglądarka wysyła jeden strumień danych do Twojego serwera tagowania, a stamtąd informacje trafiają do kolejnych narzędzi. Jeśli dzięki temu usuniesz ze strony kilka bibliotek pikseli, główny wątek ma mniej pracy. W praktyce część dostawców nadal wymaga skryptu w przeglądarce, np. do ustawiania własnych ciasteczek, dlatego korzyść zależy od konkretnego zestawu tagów. Jak przeprowadzić taką migrację, pokazujemy w poradniku o przenoszeniu GTM na własny serwer.
Każda zmiana w kontenerze, która ma przyspieszyć stronę, niesie ryzyko utraty danych: tag przeniesiony na późniejszy etap może nie zdążyć się uruchomić przed opuszczeniem strony. Po publikacji obserwuj liczbę zdarzeń przez kilka dni – automatyczne powiadomienia o spadkach opisujemy w tekście o monitoringu tagów na produkcji. Pozostałe poradniki o pracy z kontenerem zebraliśmy w podtemacie Google Tag Manager.
Najczęściej zadawane pytania
Czy Google Tag Manager obniża wynik w PageSpeed Insights?
Sam kontener ma zwykle niewielki wpływ, bo ładuje się asynchronicznie. Wynik obniżają przede wszystkim tagi uruchamiane w kontenerze: biblioteki pikseli, czaty, narzędzia do testów i nagrywania sesji. W raporcie PageSpeed Insights sprawdź listę skryptów firm zewnętrznych – pokaże, które z nich najdłużej blokują główny wątek przeglądarki.
Który wskaźnik Core Web Vitals najbardziej cierpi przez tagi?
Najczęściej INP, czyli opóźnienie reakcji na interakcje. Tagi marketingowe wykonują JavaScript w głównym wątku, często dokładnie w chwili kliknięcia, które mierzy ten wskaźnik. LCP cierpi głównie przez skrypty ukrywające stronę w testach A/B, a CLS przez banery i widżety wstawiane bez zarezerwowanego miejsca.
Czy przeniesienie tagów na regułę „Okno wczytane” grozi utratą danych?
Może, jeśli użytkownik opuści stronę, zanim wczyta się ona w całości. Dlatego na późniejszy etap przenoś tagi niekrytyczne, takie jak czat czy mapy ciepła, a tagi analityczne i konwersji zostaw przy wyświetleniu strony lub konkretnych zdarzeniach. Po każdej zmianie porównaj liczbę zdarzeń z okresem sprzed publikacji.
Czy biblioteki takie jak Partytown pomogą z tagami z GTM?
Biblioteki przenoszące skrypty zewnętrzne do osobnego wątku, takie jak Partytown, mogą odciążyć główny wątek przeglądarki. Wiele tagów marketingowych potrzebuje jednak bezpośredniego dostępu do strony i ciasteczek, więc nie każdy zadziała w takim środowisku. Traktuj to jako rozwiązanie do przetestowania na wybranych skryptach, a nie domyślną konfigurację kontenera.
Jak często sprawdzać wpływ tagów na szybkość strony?
Najlepiej po każdej publikacji kontenera, która dodaje nowe skrypty, oraz raz na kwartał w ramach przeglądu tagów. Jeśli wysyłasz wskaźniki Core Web Vitals do GA4, możesz zestawiać je z datami publikacji wersji. Dane terenowe w Search Console aktualizują się z opóźnieniem, bo bazują na okresie 28 dni.