Jak działa ta kontrola
Scanaris odczytuje HTML Twojej strony serwowanej przez HTTPS i szuka odwołań do zasobów zaczynających się od http://: skryptów, arkuszy stylów, ramek iframe, obrazów, wideo, audio i fontów. Dzieli je na dwie grupy. Aktywna mieszana treść (skrypty, style, iframe) otwiera ustalenie o średniej wadze, bo te zasoby mogą wykonać kod lub zmodyfikować stronę. Pasywna mieszana treść (obrazy, wideo, audio) otwiera ustalenie o niskiej wadze: nic nie wykonuje, ale podróżuje jawnym tekstem i psuje kłódkę. Badane są tylko odwołania obecne w początkowym HTML; zasoby dodane później przez JavaScript nie są tą drogą widoczne.
Dlaczego to ważne
Skrypt ładowany przez HTTP na stronie HTTPS to najgorszy przypadek: ten, kto kontroluje sieć, może go podmienić na inny i wykonać na Twojej stronie, co chce, z sesją użytkownika. Dlatego nowoczesne przeglądarki po prostu go blokują, a Twoja strona psuje się po cichu w tym miejscu. Obrazy przeglądarka ładuje, ale zabiera kłódkę albo pokazuje ostrzeżenie „niezabezpieczona", które użytkownik widzi. W obu przypadkach przekaz jest ten sam: strona twierdzi, że jest bezpieczna, a nie do końca jest.
Skąd to się bierze
Prawie zawsze ze starego kodu: adresy skopiowane z tutoriala lub szablonu sprzed lat, biblioteka podlinkowana z CDN, który wtedy nie miał HTTPS, obrazy z migrowanego bloga albo pole w bazie z pełnym adresem obrazu wgranego, gdy strona działała jeszcze na HTTP. W WordPressie to typowe po przejściu z HTTP na HTTPS bez aktualizacji zapisanych adresów.
Jak to naprawić
- Zmień odwołania na https:// albo na ścieżki względne (
/images/zdjecie.jpg), które dziedziczą protokół strony. To poprawne i ostateczne rozwiązanie. - Jeśli zewnętrzny zasób nie ma HTTPS, pobierz go i serwuj z własnej domeny albo znajdź inne źródło. W 2026 roku prawie nic legalnego nie działa już wyłącznie na HTTP.
- W WordPressie zaktualizuj adresy zapisane w bazie narzędziem znajdź-i-zamień, które respektuje serializację, i sprawdź adresy strony w ustawieniach ogólnych.
- Jako siatka bezpieczeństwa dyrektywa CSP
upgrade-insecure-requestskaże przeglądarce automatycznie zamieniać żądaniahttp://z Twojej strony nahttps://. Pomaga, gdy porządkujesz kod, ale nie zastępuje porządkowania: zasób musi istnieć pod HTTPS, żeby to zadziałało.
Content-Security-Policy: upgrade-insecure-requests
Sprawdź, czy naprawione
curl -s https://twojadomena.pl | grep -oE '(src|href)="http://[^"]+"' | sort -u
Nic nie może się pojawić. Potem otwórz stronę z konsolą przeglądarki: każdy mieszany zasób ładowany przez JavaScript pojawi się tam jako ostrzeżenie lub blokada.
Często zadawane pytania
Moja strona ładuje się dobrze i ma kłódkę. Dlaczego to jest zgłaszane?
Bo przeglądarka być może blokuje zasób po cichu albo sama podnosi go do HTTPS. Odwołanie w Twoim HTML pozostaje na http://, a inne klienty (boty, stare przeglądarki, e-maile) nie robią tej korekty.
Czy adresy zaczynające się od // to mieszana treść?
Nie. Adresy względne względem protokołu dziedziczą protokół strony i na HTTPS ładują się przez HTTPS. Mimo to dziś zaleca się pisać bezpośrednio https://.
Czy link <a href="http://…"> się liczy?
Nie. Link niczego nie ładuje na Twojej stronie; tylko przenosi użytkownika gdzie indziej. Mieszana treść to to, co strona osadza.