Jeżeli na stronie wyświetlają się dwa banery cookies, działają najprawdopodobniej dwa CMP albo ten sam kod został dodany w dwóch miejscach. Najpierw ustal źródło każdego banera, następnie wybierz jeden system odpowiedzialny za zgody i usuń wszystkie punkty instalacji drugiego. Nie wystarczy ukryć starego okna przez CSS. W tle mogą nadal działać jego reguły blokowania, zapis preferencji i polecenia Consent Mode.
Na WordPressie najczęstsza kombinacja to nowa wtyczka CMP oraz stary skrypt pozostawiony w Google Tag Managerze, motywie, Elementorze albo dodatku do nagłówka. Konflikt może też powstać, gdy wtyczka analityczna uruchamia własny moduł zgody obok głównego CMP.
Dlaczego dwa banery cookies są problemem?
Dwa okna przeszkadzają użytkownikowi, ale ważniejsze są skutki niewidoczne na ekranie. Każdy mechanizm może niezależnie:
- zapisywać własną decyzję w cookie lub local storage;
- blokować i odblokowywać skrypty;
- ustawiać kategorie według innego podziału;
- wysyłać własny stan domyślny Consent Mode;
- aktualizować zgodę po kliknięciu;
- sterować GTM, GA4, Google Ads lub osadzonymi treściami;
- udostępniać osobny panel wycofania zgody;
- prowadzić oddzielny rejestr decyzji.
Może więc dojść do sytuacji, w której użytkownik odrzuci marketing w pierwszym banerze, a drugi mechanizm chwilę później nada sygnał granted. Możliwy jest też odwrotny problem: jeden CMP zwolni skrypt po akceptacji, ale drugi nadal będzie go blokował.
| Widoczny objaw | Możliwy problem techniczny |
|---|---|
| dwa różne banery jednocześnie | dwa niezależne CMP |
| dwa identyczne banery | ten sam skrypt dodany dwukrotnie |
| drugi baner pojawia się po zamknięciu pierwszego | różna kolejność inicjalizacji lub dwa zapisane stany |
| inny baner na części podstron | drugi szablon, subdomena, osobna instalacja albo cache |
| akceptacja jednego nie zamyka drugiego | niezależne cookies i zdarzenia |
| baner znika, ale tagi zachowują się losowo | konkurujące blokowanie lub polecenia Consent Mode |
| dwa przyciski ustawień w stopce | pozostały dwa mechanizmy ponownego otwierania preferencji |
Czy to dwa CMP, czy jeden baner dodany dwa razy?
To pierwsze rozróżnienie decyduje o dalszej naprawie.
Dwa różne CMP
Zwykle mają inny wygląd, treść, nazwy kategorii i zapisują inne cookies. W kodzie oraz Network zobaczysz zasoby z dwóch domen dostawców. Przykładem może być nowa wtyczka CookieStart działająca obok starego kodu CookieYes, Cookiebot, Complianz lub innego rozwiązania.
Jeden CMP zainstalowany dwukrotnie
Oba banery mogą wyglądać identycznie. Ten sam skrypt został na przykład dodany przez wtyczkę i GTM albo przez wtyczkę oraz kod w header.php. W źródle mogą występować dwa odwołania do tego samego SDK, identyfikatora domeny lub klucza.
Jeden baner, który pojawia się ponownie
To nie zawsze oznacza dwa CMP. Jeżeli komunikat wraca po przejściu na inną podstronę, przyczyną może być cache, niewłaściwa domena lub ścieżka cookie, subdomena, osobna instalacja WordPressa albo niezapisanie decyzji. Taki przypadek diagnozuje się inaczej niż dwa okna widoczne w tej samej sesji.
Jak znaleźć źródło obu banerów?
Zacznij od udokumentowania stanu. W nowym oknie incognito wykonaj zrzut obu banerów i zapisz:
- tekst nagłówka i przycisków;
- nazwy kategorii;
- kolejność pojawienia się;
- adres podstrony;
- datę i godzinę;
- urządzenie, przeglądarkę i region testu.
Nie klikaj jeszcze przycisków. Otwórz DevTools, aby sprawdzić stronę przed zapisaniem decyzji.
Sprawdź elementy w DOM
W zakładce Elements wybierz każdy baner i zanotuj:
- identyfikator oraz klasy głównego kontenera;
- nazwę skryptu albo atrybuty
data-*; - element nadrzędny;
- linki do polityki i logo dostawcy;
- nazwy zdarzeń przypisanych do przycisków, jeśli są widoczne.
Charakterystyczna nazwa klasy często wskazuje produkt. Nie usuwaj jednak elementu ręcznie w DevTools jako rozwiązania. Zmiana działa tylko w bieżącej karcie i nie wyłącza logiki CMP.
Sprawdź Source i Network
Otwórz źródło strony i wyszukaj słowa cookie, consent, cmp, banner oraz nazwy rozpoznanych dostawców. W Network przeładuj stronę z włączonym zachowaniem logu i sprawdź:
- domeny pobierające skrypty CMP;
- nazwę pliku inicjalizacyjnego;
- parametr lub identyfikator witryny;
- kolumnę Initiator pokazującą, co uruchomiło żądanie;
- dwa odwołania do tego samego zasobu;
- kolejność względem GTM i tagów pomiarowych.
Dla CookieStart frontendowe SDK jest dostarczane z cdn.cookiestart.pl. Aktualna karta CookieStart w WordPress.org opisuje także status integracji, lokalny podgląd wykrytych skryptów, cache konfiguracji, tryb debugowania oraz logi.
Sprawdź wszystkie miejsca instalacji w WordPressie
Nie ograniczaj kontroli do ekranu Wtyczki. Baner może być dodawany przez:
- aktywną wtyczkę CMP;
- wtyczkę analityczną z własnym modułem zgody;
- wtyczkę do wstawiania kodu w nagłówku lub stopce;
- Google Site Kit albo inną integrację tagów;
- ustawienia motywu i motywu potomnego;
- pliki
header.php,footer.phplubfunctions.php; - Elementor Custom Code albo szablon popupu;
- blok HTML w edytorze lub globalnym szablonie;
- Must-Use Plugins w
wp-content/mu-plugins; - osobną instalację WordPressa w katalogu lub subdomenie;
- cache statyczny utworzony przed usunięciem starego kodu.
Sprawdź również wtyczki nieaktywne tylko wtedy, gdy pozostawiły ustawienia w motywie, plikach lub GTM. Sama nieaktywna wtyczka WordPressa nie wykonuje standardowo kodu frontendu, ale ręcznie wklejony wcześniej skrypt może nadal działać.
Sprawdź Google Tag Manager
W GTM wyszukaj:
- nazwę obecnego i poprzedniego CMP;
- tagi z szablonu Community Template Gallery;
- tagi Custom HTML zawierające skrypt banera;
- wyzwalacze Consent Initialization;
- ręczny kod
gtag('consent', 'default', ...); - zmienne i zdarzenia związane ze starymi kategoriami;
- reguły blokujące lub uruchamiające GA4, Ads i inne piksele.
Użyj Preview, aby zobaczyć, które tagi rzeczywiście uruchamiają się na stronie. Sam fakt, że tag znajduje się w kontenerze, nie oznacza jeszcze, że działa w opublikowanej wersji. Sprawdź numer aktualnej wersji kontenera.
Który baner cookies zachować?
Nie wybieraj wyłącznie na podstawie wyglądu. Docelowy CMP powinien być jednym właścicielem procesu zgód i obejmować wymagane funkcje konkretnej witryny.
Porównaj:
| Obszar | Co sprawdzić przed decyzją |
|---|---|
| instalacja | które źródło jest udokumentowane i utrzymywane |
| kategorie | czy odpowiadają rzeczywistym technologiom i treści banera |
| blokowanie | które skrypty kontroluje CMP i w jaki sposób |
| Consent Mode | kto ustawia default i wysyła update |
| GTM | które tagi, zdarzenia i zmienne zależą od danego systemu |
| wycofanie zgody | czy panel preferencji działa na każdej podstronie |
| rejestr zgód | jakie dane trzeba zachować przed usunięciem starego konta |
| regiony i języki | które warianty są potrzebne witrynie |
| integracje | formularze, sklep, filmy, mapy, analityka i reklamy |
| utrzymanie | aktualizacje, dokumentacja i odpowiedzialna osoba |
Jeśli drugi baner pojawił się przypadkowo po instalacji dodatku analitycznego, zwykle należy wyłączyć jego własny tryb banera i pozostawić główne CMP. Jeśli trwa świadoma migracja, wybór powinien wynikać z wcześniej przygotowanego planu przełączenia.
Nie usuwaj starego konta ani rejestrów przed sprawdzeniem, co należy zachować. Zakres archiwizacji i podstawy prawne trzeba ustalić dla konkretnej organizacji.
Jak usunąć konflikt dwóch banerów krok po kroku?
Krok 1. Zrób kopię i zapisz stan wyjściowy
Przed zmianą:
- wykonaj backup;
- zapisz wersję kontenera GTM;
- wyeksportuj dostępne ustawienia i potrzebne rejestry starego CMP;
- zrób zrzuty treści, kategorii i wyglądu obu banerów;
- zapisz aktualne zachowanie GA4, reklam i kluczowych konwersji;
- zanotuj wszystkie znalezione punkty instalacji.
Najlepiej przygotować zmianę na stagingu. Pamiętaj jednak, że produkcja może używać innej domeny, cache, CDN, kontenera GTM i reguł regionalnych, dlatego po przełączeniu potrzebny jest drugi test na żywo.
Krok 2. Wyznacz jeden system odpowiedzialny za zgody
Zapisz wprost:
- który CMP ma wyświetlać baner;
- który system zapisuje decyzję;
- kto blokuje skrypty spoza Google;
- kto ustawia Consent Mode;
- czy tagi Google kontroluje CMP, GTM czy ich udokumentowana integracja;
- gdzie użytkownik może później zmienić decyzję.
Nie pozostawiaj dwóch niezależnych warstw blokujących ten sam skrypt. Jeżeli tag czeka na zgodę w GTM, a jednocześnie jego kod jest przekształcany przez drugi CMP, wynik może zależeć od przypadkowej kolejności.
Krok 3. Wyłącz stary baner w źródle
Wyłącz mechanizm tam, skąd rzeczywiście pochodzi:
- zdezaktywuj stary moduł banera we wtyczce;
- usuń niepotrzebny tag CMP z GTM i opublikuj kontrolowaną wersję;
- usuń stary skrypt z ustawień motywu lub wtyczki nagłówka;
- wyłącz popup cookies w builderze;
- usuń nieaktualny kod z motywu potomnego;
- wyłącz własny tryb zgodności w dodatku analitycznym, jeśli główny CMP ma nim zarządzać;
- usuń stare funkcje ponownego otwierania preferencji.
Nie zaczynaj od usunięcia całej wtyczki, jeśli nie wiesz, czy przechowuje potrzebne ustawienia lub rekordy. Najpierw zatrzymaj frontendowy mechanizm i zweryfikuj wynik.
Krok 4. Usuń stare reguły GTM i Consent Mode
Po wyłączeniu starego interfejsu sprawdź, czy w GTM lub kodzie nie zostały:
- drugi stan domyślny;
- stare zdarzenia akceptacji i odmowy;
- zmienne odczytujące cookie poprzedniego CMP;
- wyzwalacze zależne od dawnych nazw kategorii;
- Custom HTML aktualizujący zgodę;
- blokady albo wyjątki utworzone dla starego systemu.
Usuwaj wyłącznie elementy powiązane ze starym CMP. Nie kasuj przypadkowo tagów GA4, Google Ads, e-commerce lub innych integracji, które nadal są potrzebne.
Krok 5. Wyczyść wszystkie warstwy cache
Po zmianie wyczyść:
- cache strony w WordPressie;
- object cache;
- cache serwera lub hostingu;
- cache CDN;
- zoptymalizowane i połączone pliki JavaScript;
- cache przeglądarki albo rozpocznij nową sesję incognito.
Jeżeli stary baner nadal się pojawia, sprawdź odpowiedź HTML z pominięciem cache. Kod może być dostarczany przez CDN, service worker albo statyczną kopię strony, mimo że usunięto go już z panelu WordPressa.
Krok 6. Sprawdź stronę produkcyjną natychmiast po zmianie
Potwierdź, że:
- wyświetla się dokładnie jeden baner;
- działa jeden panel preferencji;
- nie ma żądań do SDK starego CMP;
- w źródle nie występuje stary identyfikator ani skrypt;
- stary tag CMP nie uruchamia się w GTM Preview;
- pozostały tylko zamierzone reguły blokowania;
- formularze, sklep, logowanie i osadzone treści działają.
Jak sprawdzić Consent Mode po usunięciu drugiego CMP?
Dwa CMP mogą wysyłać sprzeczne stany zgody. Po usunięciu jednego mechanizmu uruchom Google Tag Assistant i wykonaj nowy test od czystej sesji.
Sprawdź cztery sygnały:
ad_storage;analytics_storage;ad_user_data;ad_personalization.
W najwcześniejszym zdarzeniu Consent potwierdź zamierzony stan domyślny. Po kliknięciu banera sprawdź najnowsze zdarzenie i kolumnę On-page Update. Google zaleca ustawienie wartości domyślnych przed kodem, który ich używa, oraz aktualizację niezwłocznie po zapisaniu wyboru. Dokumentacja konfiguracji Consent Mode opisuje kolejność i zmianę stanów, a instrukcja Tag Assistant pokazuje kontrolę czterech parametrów.
Szukaj zwłaszcza:
- dwóch zdarzeń
defaultz różnymi wartościami; - aktualizacji pochodzącej ze starego CMP;
- zmiany na
granted, mimo że użytkownik odrzucił kategorię; - braku aktualizacji po kliknięciu;
- spóźnionego stanu domyślnego;
- starych zmiennych i zdarzeń w
dataLayer; - tagów zablokowanych przez pozostałą drugą warstwę.
Consent Mode dotyczy obsługiwanych usług Google. Usunięcie jego duplikatu nie konfiguruje automatycznie Meta Pixel, Microsoft Clarity, TikTok Pixel, czatu, map ani filmów. Te technologie trzeba sprawdzić według reguł docelowego CMP.
Jak potwierdzić, że stary CMP został całkowicie usunięty?
| Miejsce kontroli | Oczekiwany wynik |
|---|---|
| źródło HTML | brak skryptu, identyfikatora i kodu starego CMP |
| Network | brak żądań do starego SDK, API i CDN |
| Application | brak nowo tworzonych cookies i wpisów storage starego systemu |
| Elements | jeden kontener banera i jeden panel preferencji |
| Console | brak wywołań oraz błędów związanych ze starym CMP |
| GTM Preview | brak uruchomionych tagów i zdarzeń starego systemu |
| Tag Assistant | jeden spójny ciąg stanów Consent |
| WordPress | jeden aktywny mechanizm banera |
| kolejna podstrona | decyzja jest zachowana bez pojawienia się drugiego okna |
| ponowna wizyta | docelowy CMP odtwarza właściwy wybór |
Nie traktuj samego braku drugiego okna jako dowodu. Stary skrypt może działać bez interfejsu i nadal modyfikować zgodę albo blokować tagi.
Macierz testów po usunięciu konfliktu
Każdy główny scenariusz rozpocznij w osobnej czystej sesji.
| Scenariusz | Co sprawdzić | Wynik pozytywny |
|---|---|---|
| pierwsza wizyta | liczba banerów, cookies, storage, Network i stan domyślny | jeden baner i jeden zamierzony mechanizm zgód |
| brak interakcji | zachowanie tagów przed wyborem | zgodne z przyjętym trybem i konfiguracją |
| odrzucenie | cztery sygnały Google i technologie opcjonalne | odmowa nie jest nadpisana przez stary kod |
| tylko analityka | mapowanie kategorii | analityka i marketing reagują niezależnie |
| akceptacja wszystkiego | aktualizacja i uruchomienie dozwolonych skryptów | brak podwójnych tagów oraz zdarzeń |
| wycofanie | panel ustawień i nowe wartości | decyzja zmienia się z granted na denied |
| kolejna podstrona | utrzymanie preferencji | drugi baner nie wraca |
| ponowna wizyta | odtworzenie decyzji | docelowy CMP nie zmienia zapisanego wyboru |
| urządzenie mobilne | układ, przewijanie i zamykanie | jeden dostępny interfejs bez nakładania elementów |
| formularz lub sklep | funkcje zależne od JavaScriptu | usunięcie starego CMP nie blokuje procesu |
| GTM i analityka | liczba page_view, konwersji i zakupów |
zdarzenia nie są dublowane |
| różne regiony | reguły geolokalizacji | tylko właściwy wariant jednego CMP |
Najczęstsze błędy podczas usuwania drugiego banera
Ukrycie banera przez CSS
Reguła display: none usuwa okno z ekranu, ale może pozostawić zapis zgód, blokowanie i polecenia Consent Mode. Usuń źródło mechanizmu, nie tylko jego wygląd.
Dezaktywacja wtyczki bez sprawdzenia GTM
Stary CMP może być zainstalowany niezależnie w GTM. Po wyłączeniu wtyczki nadal będzie się ładował z kontenera.
Usunięcie tagu GTM bez kontroli motywu
Starsza wersja skryptu może znajdować się w header.php, ustawieniach motywu albo dodatku do nagłówka. Sprawdź źródło strony i kolumnę Initiator w Network.
Pozostawienie dwóch stanów Consent Mode
Jeden system może ustawiać denied, a drugi chwilę później granted. Wynik zależy wtedy od kolejności. Odbiór wykonaj w Tag Assistant, nie tylko w panelu CMP.
Usunięcie starego konta przed eksportem
Najpierw ustal, które ustawienia i rejestry trzeba zachować. Nowy CMP nie zastępuje automatycznie historycznych danych poprzedniego systemu.
Założenie, że zapis zgody zostanie przeniesiony
Różne CMP mogą używać innych nazw cookies, formatów, kategorii i identyfikatorów. Nie zakładaj automatycznej zgodności. Sprawdź pierwszą i ponowną wizytę po przełączeniu.
Test tylko przycisku „Akceptuj wszystko”
Konflikty najłatwiej wykryć po odmowie, zgodzie częściowej i wycofaniu. To wtedy widać, czy stary mechanizm nadal zmienia stan albo blokuje skrypt.
Najczęstsze pytania
Czy dwa banery cookies mogą działać równocześnie?
Technicznie mogą się załadować, ale nie powinny niezależnie zarządzać tą samą warstwą zgód na stronie produkcyjnej. Mogą zapisywać sprzeczne decyzje, podwójnie blokować skrypty i wysyłać konkurujące sygnały. Docelowo jeden system powinien mieć jasno określoną odpowiedzialność.
Czy wystarczy usunąć jedną wtyczkę cookies?
Nie zawsze. Drugi kod może pochodzić z GTM, motywu, buildera, dodatku analitycznego albo cache. Po zmianie sprawdź Source, Network, Application i GTM Preview.
Dlaczego drugi baner nadal widać po dezaktywacji wtyczki?
Najczęstsze przyczyny to cache strony lub CDN, osobna instalacja przez GTM, ręczny kod w motywie albo drugi moduł zgodności. Sprawdź domenę skryptu i kolumnę Initiator w Network.
Czy można pozostawić stary CMP tylko do blokowania skryptów?
Tylko jeśli architektura została świadomie zaprojektowana, udokumentowana i przetestowana. Dwie niezależne warstwy blokujące te same zasoby utrudniają diagnostykę. W typowym wdrożeniu prostsze jest przypisanie odpowiedzialności jednemu CMP i usunięcie zbędnych reguł.
Czy użytkownicy muszą ponownie wyrazić zgodę po zmianie CMP?
Nie zakładaj ani automatycznego przeniesienia, ani uniwersalnego obowiązku ponownego pytania wyłącznie z powodu zmiany dostawcy. Sprawdź możliwości techniczne obu systemów, zakres wcześniejszej zgody i wymagania konkretnej organizacji. Kwestia może wymagać moderacji prawnej.
Dlaczego widzę baner ponownie tylko w sklepie lub katalogu /shop?
Może działać tam osobna instalacja WordPressa, inna ścieżka cookie, oddzielny cache lub dodatkowy szablon. Najpierw sprawdź, czy oba komunikaty mają to samo źródło. Powracający jeden baner nie jest tym samym problemem co dwa niezależne CMP.
Czy usunięcie drugiego banera wystarczy do naprawy danych GA4?
Nie. Trzeba jeszcze sprawdzić duplikaty Google taga, zdarzenia, kolejność Consent Mode i opublikowaną wersję GTM. Sama zmiana wyglądu nie gwarantuje poprawnego pomiaru ani odzyskania brakujących danych.
Po usunięciu konfliktu wykonaj nową inwentaryzację technologii i porównaj ją z konfiguracją pozostawionego CMP – zeskanuj stronę z CookieStart.