Po wdrożeniu certyfikatu SSL i przejściu na HTTPS wielu właścicieli stron zakłada, że ich witryna jest już w pełni bezpieczna. W praktyce często okazuje się, że przeglądarka nadal wyświetla ostrzeżenia o niebezpiecznej zawartości. Najczęściej przyczyną jest właśnie Mixed Content.
Jeżeli zastanawiasz się, czym jest mixed content, dlaczego szkodzi SEO i jak skutecznie go usunąć, ten poradnik przeprowadzi Cię przez cały proces krok po kroku.
Co to jest Mixed Content?
Mixed Content, czyli zawartość mieszana, występuje wtedy, gdy strona ładuje się przez bezpieczny protokół HTTPS. Część jej zasobów jest jednak pobierana nadal przez niezabezpieczony protokół HTTP. Mogą to być obrazy, arkusze CSS, pliki JavaScript, czcionki czy elementy osadzone z innych serwisów.
Najprościej można to porównać do nowoczesnego budynku wyposażonego w zaawansowany system alarmowy, w którym ktoś pozostawił otwarte okno. Większość zabezpieczeń działa poprawnie, jednak jeden słaby punkt może narazić całość na zagrożenie.
Dlaczego Mixed Content jest problemem?
Gdy przeglądarka nawiązuje połączenie HTTPS, oczekuje, że wszystkie zasoby witryny będą przesyłane szyfrowanym kanałem. Jeśli w kodzie strony znajdują się odwołania rozpoczynające się od „http://”, przeglądarka wysyła dodatkowe, niezabezpieczone żądania.
Może to prowadzić do poważnych zagrożeń:
- przechwycenia transmisji danych przez osoby trzecie,
- modyfikacji przesyłanych plików,
- wstrzyknięcia złośliwego kodu JavaScript,
- przejęcia plików cookie i danych sesyjnych,
- kradzieży loginów oraz haseł użytkowników.
Z punktu widzenia bezpieczeństwa mixed content niweluje część korzyści wynikających z wdrożenia certyfikatu SSL.
Rodzaje Mixed Content
Nie każda zawartość mieszana stwarza takie samo ryzyko. Wyróżniamy dwa podstawowe rodzaje.
Pasywny Mixed Content
Pasywna zawartość mieszana dotyczy elementów wyświetlanych użytkownikowi, które nie ingerują bezpośrednio w działanie strony. Najczęściej są to:
- obrazy,
- pliki audio,
- pliki wideo.
Ryzyko jest stosunkowo niewielkie, ponieważ atakujący może głównie podmienić wyświetlane treści lub grafiki. Wiele przeglądarek nadal pozwala na ich wyświetlenie, jednocześnie informując o potencjalnym zagrożeniu.
Aktywny Mixed Content
Znacznie bardziej niebezpieczny jest aktywny mixed content, obejmujący:
- skrypty JavaScript,
- arkusze stylów CSS,
- ramki iframe,
- żądania AJAX,
- czcionki internetowe.
Takie zasoby mogą wpływać na działanie witryny, wykonywać kod oraz uzyskiwać dostęp do danych użytkowników. Z tego względu współczesne przeglądarki zazwyczaj blokują ich ładowanie automatycznie.
Co najczęściej powoduje błędy Mixed Content?
W praktyce problem zwykle dotyczy kilku popularnych elementów:
- grafik osadzonych w treści strony,
- skryptów JavaScript,
- plików CSS,
- czcionek pobieranych z zewnętrznych źródeł,
- narzędzi analitycznych,
- widgetów i chatów online,
- osadzonych ramek iframe,
- multimediów audio i video.
Wystarczy jeden niepoprawny adres HTTP, aby przeglądarka uznała stronę za częściowo niezabezpieczoną.
Dlaczego problem pojawia się po instalacji SSL?
To jedno z najczęściej zadawanych pytań.
Sam certyfikat SSL nie zmienia automatycznie wszystkich adresów zapisanych wcześniej w bazie danych czy plikach strony. Po migracji na HTTPS stare odwołania mogą nadal wskazywać adresy rozpoczynające się od „http://”.
Najczęstsze przyczyny to:
- stare adresy zapisane w bazie danych WordPressa,
- ustawienia page builderów (Elementor czy Divi),
- sztywno wpisane linki w kodzie motywu,
- zewnętrzne skrypty korzystające z HTTP.
Jak sprawdzić, czy strona ma Mixed Content?
Pierwszym sygnałem jest brak charakterystycznej kłódki przy adresie strony. Przeglądarka może również wyświetlać komunikaty informujące, że połączenie nie jest w pełni bezpieczne.
Aby dokładnie znaleźć problem:
- Otwórz stronę w przeglądarce.
- Uruchom narzędzia deweloperskie klawiszem F12.
- Przejdź do zakładki „Console”.
- Odśwież stronę.
- Znajdź komunikaty oznaczone jako „Mixed Content”.
W komunikacie zobaczysz dokładny adres pliku powodującego problem.
Sprawdź także: Ile kosztuje utrzymanie strony internetowej w 2026 roku?
Jak naprawić Mixed Content? Metody dla WordPressa i stron własnych
Usuwanie błędów Mixed Content powinno polegać na trwałym wyeliminowaniu odwołań HTTP. Samo maskowanie problemu za pomocą wtyczek nie jest rozwiązaniem, ponieważ błędne adresy nadal pozostają w bazie danych lub kodzie źródłowym.
Krok 1. Zidentyfikuj problematyczne zasoby
Najpierw należy znaleźć konkretny plik powodujący błąd. W przeglądarce Google Chrome lub Microsoft Edge:
- Otwórz stronę.
- Naciśnij F12.
- Przejdź do zakładki Console.
- Odśwież stronę.
- Odszukaj komunikat rozpoczynający się od „Mixed Content”.
Przykładowy komunikat może wyglądać następująco:
Mixed Content: The page at
'https://twojadomena.pl'
was loaded over HTTPS, but requested an insecure image
'http://twojadomena.pl/logo.png'
Dzięki temu od razu wiadomo, który zasób wymaga poprawy.
Krok 2. Sprawdź ustawienia adresów URL
W WordPressie przejdź do:
Ustawienia → Ogólne
Oba pola powinny zawierać adres HTTPS:
Adres WordPressa (URL):
Adres witryny (URL):
Pozostawienie adresów HTTP jest jedną z najczęstszych przyczyn występowania Mixed Content po migracji na SSL.
Krok 3. Wykonaj zamianę adresów w bazie danych
Po wdrożeniu SSL wiele starych odnośników nadal znajduje się w bazie danych.
Przykład:
<img src="http://twojadomena.pl">
należy zamienić na:
<img src="https://twojadomena.pl">
W przypadku WordPressa najbezpieczniej użyć:
- Better Search Replace
- WP-CLI Search Replace
- Interconnect Search Replace DB
Wtyczki te obsługują dane serializowane, których nie powinno się modyfikować zwykłymi zapytaniami SQL.
Krok 4. Sprawdź Elementor, Divi i inne page buildery
To bardzo częsty przypadek.
Nawet po poprawnej zamianie adresów w bazie danych, Elementor może nadal generować stare odwołania HTTP. W Elementorze wykonaj:
Elementor → Narzędzia → Zastąp URL
Następnie:
Elementor → Narzędzia → Regeneruj pliki CSS
Dopiero wtedy wszystkie pliki stylów zostaną wygenerowane ponownie z adresami HTTPS.
Krok 5. Sprawdź pliki motywu i kod źródłowy
Niektóre motywy zawierają tzw. hardkodowane odwołania.
Przykład błędnego kodu:
.hero-banner {
background-image: url('http://twojadomena.pl/images/banner.jpg');
}
Po poprawce:
.hero-banner {
background-image: url('/images/banner.jpg');
}
lub:
.hero-banner {
background-image: url('https://twojadomena.pl/images/banner.jpg');
}
W praktyce ścieżki względne są najbezpieczniejszym rozwiązaniem, ponieważ automatycznie dostosowują się do protokołu strony.
Krok 6. Zweryfikuj zewnętrzne skrypty i fonty
Wiele błędów pochodzi z usług zewnętrznych:
- starych liczników odwiedzin,
- widgetów czatu,
- systemów reklamowych,
- bibliotek JavaScript,
- osadzonych filmów,
- niestandardowych fontów.
Przykład niepoprawnego kodu:
<script src="http://,"/script>
Poprawna wersja:
<script src="https://example.com/script.js"></script>
Jeżeli dostawca nie obsługuje HTTPS, warto rozważyć zmianę usługi lub hostowanie zasobu lokalnie.
Krok 7. Wymuś HTTPS na poziomie serwera
Na serwerach Apache można zastosować przekierowanie 301 w pliku .htaccess:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Natomiast w Nginx:
server {
listen 80;
server_name twojadomena.pl;
return 301 https://$host$request_uri;
}
Dzięki temu każdy użytkownik trafiający na wersję HTTP zostanie automatycznie przekierowany do HTTPS.
Krok 8. Dodaj nagłówek Content Security Policy
W bardziej zaawansowanych wdrożeniach warto zastosować politykę CSP:
Content-Security-Policy: upgrade-insecure-requests;
Dyrektywa ta informuje przeglądarkę, że wszystkie zasoby HTTP powinny zostać automatycznie pobrane przez HTTPS. Nie zastępuje to właściwej naprawy błędów, ale stanowi dodatkową warstwę zabezpieczeń.
Krok 9. Wyczyść cache i sprawdź efekty
Po zakończeniu prac należy:
- wyczyścić cache WordPressa,
- wyczyścić cache serwera (LiteSpeed, Varnish, Redis),
- odświeżyć CDN (Cloudflare),
- usunąć pamięć podręczną przeglądarki.
Dopiero po tych działaniach warto ponownie zweryfikować stronę w konsoli przeglądarki.
Sprawdź także: Jak zabezpieczyć stronę na WordPressie przed atakami
Najczęstsze błędy podczas naprawy Mixed Content
Wiele poradników proponuje szybkie rozwiązania, które w rzeczywistości tylko maskują problem.
Do najczęściej popełnianych błędów należą:
- korzystanie wyłącznie z wtyczek wymuszających HTTPS,
- wykonywanie prostych zamian SQL w bazie danych,
- brak czyszczenia pamięci cache,
- pomijanie ustawień Elementora i innych builderów,
- sprawdzanie wyłącznie strony głównej.
Szczególnie ryzykowne jest stosowanie zwykłych poleceń SQL, ponieważ może prowadzić do uszkodzenia danych serializowanych w WordPressie.
Wpływ Mixed Content na SEO
Błąd mixed content wpływa nie tylko na bezpieczeństwo, ale również na widoczność strony w wyszukiwarkach. Google od lat traktuje HTTPS jako czynnik rankingowy. Jeżeli część zasobów nadal jest pobierana przez HTTP, korzyści wynikające z wdrożenia SSL zostają ograniczone.
Dodatkowo mogą wystąpić:
- spadki pozycji w Google,
- wzrost współczynnika odrzuceń,
- problemy z formularzami,
- mniejsza liczba konwersji,
- utrata zaufania użytkowników.
Z punktu widzenia SEO i GEO usunięcie mixed content jest więc jednym z podstawowych elementów optymalizacji technicznej strony.
Jak zapobiegać błędom Mixed Content?
Najlepszym rozwiązaniem jest wdrożenie dobrych praktyk już na etapie tworzenia strony.
Warto korzystać ze ścieżek względnych, używać wyłącznie zasobów HTTPS, skonfigurować przekierowania 301 z HTTP na HTTPS, regularnie wykonywać audyty techniczne i monitorować stronę po każdej aktualizacji lub instalacji nowej wtyczki.
Podsumowanie
Mixed Content to jeden z najczęstszych problemów występujących po wdrożeniu certyfikatu SSL. Choć na pierwszy rzut oka może wydawać się błahostką, w rzeczywistości wpływa na bezpieczeństwo użytkowników, prawidłowe działanie strony oraz jej widoczność w Google.
Dlatego warto regularnie kontrolować witrynę, szybko usuwać odwołania do HTTP i dbać o pełną zgodność wszystkich zasobów z protokołem HTTPS. Dzięki temu strona będzie bezpieczniejsza, bardziej wiarygodna i lepiej przygotowana do osiągania wysokich pozycji w wynikach wyszukiwania.


