Blog
PLEN

Cookie consent i RODO dla małych firm w 2026 — co musisz mieć żeby nie dostać kary

Cookiebot kosztuje 99 EUR/mc, Iubenda 27 EUR. Dla agroturystyki, salonu i jednoosobowej firmy to absurd. Pokazuję darmowe / własne setupy które przechodzą audyt UODO.

·6 min read
Cookie consent i RODO dla małych firm w 2026 — co musisz mieć żeby nie dostać kary

Co drugi klient pyta mnie o to samo: „czy ja muszę mieć ten banner z cookies?". Odpowiedź jest nudna i krótka, tak, jeśli wstawiasz cokolwiek poza twoimi własnymi cookies sesyjnymi. A jeśli masz Google Analytics, Plausible, Meta Pixel, mapy Google albo wbudowane filmy z YouTube, masz „cokolwiek poza".

Druga rzecz, którą słyszę: „ale Cookiebot chce 99 EUR miesięcznie, a Iubenda 27, ja prowadzę agroturystykę z dwoma pokojami, to absurd". Zgadzam się. Pokazuję więc trzy ścieżki, darmową, własnoręczną i SaaS, i mówię która kiedy ma sens.

Co właściwie wymaga prawo (PL + UE, stan 2026)

UODO i EROD twardo trzymają linię od 2024:

  • Cookies funkcjonalne / ściśle niezbędne (sesja, koszyk, login), bez zgody, info w polityce wystarczy.
  • Cookies analityczne, wymagają zgody. Tak, nawet Plausible/Matomo "privacy-first" technicznie wymagają zgody, jeśli setują cookie albo robią fingerprinting. Większość tych „cookieless" dziś faktycznie nie używa cookies, i wtedy zgody nie wymagają (ale spr. konkretną wersję).
  • Cookies marketingowe (Meta Pixel, Google Ads, retargeting), twarda zgoda.
  • Embedded content z social (YouTube, Vimeo, Instagram, mapy Google), wymaga zgody, bo te platformy setują własne cookies.

Kara: do 4% globalnego obrotu. Realnie dla małej firmy w PL UODO daje 5-50 tys. zł, ale wystarczy jedna skarga zazdrosnego konkurenta żeby się zaczęło postępowanie.

Wariant 1 — "minimum viable" za 0 zł

Jeśli twoja strona ma:

  • Tylko Plausible bez cookies (np. self-hosted)
  • Bez Meta Pixel, Google Ads, retargetingu
  • Bez embed YouTube/mapy

To nie potrzebujesz banner consent. Wystarczy polityka prywatności w stopce z infem o tym że używasz Plausible, że nie zbierasz IP, koniec.

Ja mam to na kilku demo-stronach. Plausible self-hosted (nie SaaS Cloud, bo cloud używa Cloudflare WAF który może loggować IP), zero embed, zero pixel. Jeden link do /polityka-prywatnosci w stopce, gotowe.

Jak masz Google Analytics, Meta Pixel albo embed YouTube, potrzebujesz banner. Najprostszy setup:

// components/CookieConsent.tsx
"use client";
import { useEffect, useState } from "react";
 
const STORAGE_KEY = "cookie-consent-v1";
 
export default function CookieConsent() {
  const [show, setShow] = useState(false);
 
  useEffect(() => {
    if (!localStorage.getItem(STORAGE_KEY)) setShow(true);
  }, []);
 
  const accept = (level: "essential" | "all") => {
    localStorage.setItem(STORAGE_KEY, level);
    setShow(false);
    if (level === "all") {
      // załaduj GA / Pixel dynamicznie
      window.dispatchEvent(new Event("consent-granted"));
    }
  };
 
  if (!show) return null;
  return (
    <div className="fixed bottom-4 left-4 right-4 md:max-w-md p-4 rounded-xl bg-background border border-border z-50">
      <p className="text-sm">
        Używamy cookies do analityki. <a href="/polityka-prywatnosci">Więcej</a>
      </p>
      <div className="flex gap-2 mt-3">
        <button onClick={() => accept("essential")} className="px-3 py-1.5 border border-border rounded text-sm">
          Tylko niezbędne
        </button>
        <button onClick={() => accept("all")} className="px-3 py-1.5 bg-accent text-background rounded text-sm">
          Akceptuj wszystkie
        </button>
      </div>
    </div>
  );
}

Trzy zasady które MUSI spełniać:

  1. Równe przyciski. „Akceptuj" i „Odrzuć" muszą wyglądać tak samo. Nie wolno robić „Akceptuj" wielkim zielonym, a „Odrzuć" maleńkim szarym linkiem. UODO już ścigało za to firmy.
  2. Domyślnie wszystko OFF. Banner pokazuje się przed załadowaniem GA/Pixel, nie po. To znaczy <Script src="ga..." /> ładujesz dopiero po accept("all").
  3. Łatwe wycofanie zgody. Link „Zarządzaj cookies" w stopce, który pokazuje banner ponownie i pozwala zmienić wybór.

Wariant 3 — kiedy SaaS ma sens

Bierz Cookiebot/Iubenda gdy:

  • Masz e-commerce z 5+ marketing pixels (Meta, Google, TikTok, LinkedIn, Klaviyo)
  • Robisz biznes na rynki UE (DE, FR, gdzie kary są realne i częste)
  • Nie masz developera w zespole i nie chcesz utrzymywać własnego kodu

Dla agroturystyki w Mszanie, salonu fryzjerskiego, jednoosobowej firmy IT, overkill. Wariant 2 wystarczy.

Polityka prywatności — co MUSI tam być

Najczęściej pomijane sekcje:

  • Administrator danych, pełne dane firmy (nazwa, NIP, adres, kontakt do IODO jeśli jest)
  • Cele przetwarzania, co i po co (konto, newsletter, analityka, marketing)
  • Podstawa prawna, art. 6 ust. 1 lit. a/b/c/f RODO dla każdego celu osobno
  • Odbiorcy danych, Hetzner, Cloudflare, Resend, Stripe... wymień każdego procesora
  • Czas przechowywania, np. „dane konta, do usunięcia konta + 1 rok"
  • Prawa użytkownika, dostęp, sprostowanie, usunięcie, sprzeciw, przenoszenie
  • Transfer poza EOG, gdy korzystasz z US-based services (Google, Meta), trzeba wskazać podstawę (Standard Contractual Clauses zwykle)

Mam template polityki w markdownie którego używam dla klientów. Jeśli prowadzisz coś podobnego do agroturystyki / salonu / praktyki, większość punktów jest powtarzalna, copy-paste z dostosowaniem nazw.

Najczęstsze pomyłki, które widzę u klientów

  1. Banner ładuje GA przed zgodą. GA strzela do GTM przed kliknięciem „Akceptuj". UODO to widzi w network tabie w 30 sekund.
  2. „Continue without consenting" guzik schowany za małym X. TJUE w 2024 jasno: to nielegalne. Musi być widoczny przycisk „Odrzuć".
  3. Polityka prywatności od poprzedniego dewelopera, niedopasowana. Wymienia narzędzia których nie używasz, brakuje tych których używasz. Jak ktoś sprawdzi, masz problem.
  4. „Embed YouTube nofollow nie potrzebuje zgody", nieprawda. YouTube setuje cookies przy załadowaniu iframe. Albo youtube-nocookie.com, albo zgoda.
  5. Zapomnienie o newsletter double opt-in, wpisanie maila + checkbox to za mało, musi być potwierdzenie linkiem.

Co robię u siebie

Konkretnie na kamilkaletka.dev:

  • Plausible Cloud (oficjalny, nie self-hosted), Plausible deklaruje brak cookies i brak fingerprintingu. Banner z tego powodu nie jest wymagany. Mam osobną notkę w polityce.
  • Brak Google Analytics, Meta Pixel, nie potrzebuję, Plausible wystarcza.
  • Brak embed YouTube/Vimeo, wszystkie filmy hostuję na Cloudflare Stream, nie ładuje cookies third-party.
  • Polityka prywatności w /polityka-prywatnosci (PL) i /privacy (EN), pełna lista procesorów (Cloudflare, Plausible, Resend, Vercel itp.).

To setup który spełnia RODO bez bannera. Ale to wymaga świadomych wyborów narzędziowych, nie każdy klient chce je akceptować (Plausible jest słabszy od GA dla detal-marketingu).

Czek-lista przed wdrożeniem strony

Krótka lista do każdego nowego deploya:

  • Polityka prywatności linkowana w stopce (PL + EN jeśli dwujęzyczna)
  • Lista procesorów aktualna (audyt każdy nowy SaaS który integrujesz)
  • Banner consent (jeśli masz cokolwiek poza ściśle niezbędnymi)
  • Banner równe guziki, domyślnie wszystko OFF
  • Link „Zarządzaj cookies" w stopce
  • Newsletter z double opt-in jeśli zbierasz maile
  • Formularz kontaktowy z checkboxem zgody na przetwarzanie
  • DPO/IODO w polityce jeśli zatrudniasz (większość małych firm nie musi)

Większość moich klientów przechodzi to w 30 minut na call. Polityka prywatności to template, banner to 50 linijek React, zgody w formularzach to checkbox.


Jeśli stoisz przed audytem albo chcesz upewnić się że twoja strona jest OK, napisz. Robię szybki audyt cookies + polityki w godzinę, dostajesz konkretne fix-listy z numerkami artykułów.