Mixed Content (mieszana zawartość/ treści mieszane) występuje, gdy strona internetowa
wczytywana przez bezpieczny protokół HTTPS zawiera zasoby (np. obrazy, skrypty, style
CSS, pliki wideo) ładowane przez niezabezpieczony protokół HTTP. Może to prowadzić do problemów z bezpieczeństwem i funkcjonalnością strony.
1. Jak wykryć Mixed Content?
Pierwszym z objawów wystąpienia treści mieszanej może być komunikat w pasku
przeglądarki o niezabezpieczonej lub częściowo zabezpieczonej witrynie. Nowoczesne
przeglądarki blokują Mixed Content co w efekcie powoduje:
- ostrzeżenia w przeglądarkach – strony z mieszaną treścią mogą wyświetlać ostrzeżenia o
niebezpieczeństwie lub działać niepoprawnie co może odstraszyć odwiedzających Twoją
stronę. Nowoczesne przeglądarki blokują Mixed Content co w efekcie na stronie powoduje: - brak wyświetlania obrazów (HTTP jest blokowane),
- niedziałające style CSS (zaburzony układ strony),
- niedziałające funkcjonalności (zablokowane skrypty JavaScript).
Aby sprawdzić, czy Twoja strona ma problem z Mixed Content, możesz użyć narzędzi deweloperskich w przeglądarce. Ścieżki do niepoprawnie przekierowanych elementów można szybko wychwycić z poziomu przeglądarki. Otwórz konsolę przeglądarki (np. w Chrome: F12 → Console), szukaj komunikatów ostrzegających o Mixed Content. Komunikat o błędzie będzie wskazywał na ścieżkę do zasobu, który nie został poprawnie przekierowany.
W przypadku Google Chrome wygląda to następująco:

2. Jak naprawić Mixed Content?
Jednym z najpopularniejszych i najwygodniejszych sposobów jest zastosowanie odpowiednich wtyczek. Najczęściej wybierane to Better Search Replace i Really Simple SSL.
Jeśli witryna z występującym mixed content została zbudowana w oparciu o WordPress, to
najprostszą metodą jest zainstalowanie wtyczki, która w danej chwili będzie podmieniała
wszystkie odwołania zaczynające się od przedrostka http:// na właściwy https:// Wtyczka ta
nosi nazwę Really Simple SSL. Dodatkowo wymusza przekierowanie z http na https dodając.
wpis rewrite do .htaccess.
Zalecaną metodą jest użycie wtyczki Better Search Replace, która pozwala zamienić
frazy w bazie danych, w tym poprawić adresy URL we wszystkich tabelach. Zalecane jest
również wcześniejsze wykonanie kopii zapasowej bazy danych zgodnie z poradnikiem:
https://cyberfolks.pl/pomoc/kopia-zapasowa-bazy-danych-mysql/
Poniżej znajdziesz instrukcję krok po krok jak poprawnie aktywować wtyczkę Better Search Replace:
1. Zainstaluj i aktywuj wtyczkę Better Search Replace.
2. W kokpicie WordPress przejdź do Narzędzia → Better Search
Replace.

3. W polu Szukaj wpisz: http://przykladowanazwadomeny.pl, natomiast w polu Zamień na wpisz: https://przykladowanazwadomeny.pl – frazę przykladowanazwadomeny.pl zastąp nazwą swojej domeny.

4. Zaznacz wszystkie tabele WordPressa (szczególnie wp_posts, wp_postmeta)
przeciągając kursorem w „Wybierz tabele”, zaznacz opcję Replace GUIDs/ Zastąp
identyfikatory GUID, odznacz „Run as dry run”/ „Uruchomić na sucho?” i kliknij „Run
Search/Replace” / „Uruchom Wyszkiwanie/ Zamianę”.

To wszystko!
Wtyczka sama podmieni wszystkie adresy z HTTP na HTTPS. Po tych działaniach możesz
wyłączyć i usunąć wtyczkę. Jej działanie było jednorazowe i nie ma potrzeby, aby była cały
czas włączona.
Problem z mieszaną zawartością może dotyczyć także motywu lub innych wtyczek. Należy to jednak do rzadkości. Jeśli wtyczka lub motyw były tworzone zgodnie z właściwymi
praktykami, nie powinno być żadnych problemów. Gdy coś takiego się wydarzy, skontaktuj
się z twórcą wtyczki/motywu. Jeśli nie masz takiej możliwości, warto zastanowić się nad
poszukaniem lepszej alternatywy.
3. Ręczna poprawa adresów URL z poziomu WordPress jest możliwa na kilka sposobów:
- Adresy w edytorach stron/ motywów: Przechodzimy do zakładki Kokpit/ Wygląd/ Motywy/ Dostosuj przy wybranym motywie.
Następnie wybieramy daną grafikę:

i klikamy w „Zastąp”, ikoną ołówka możemy wyedytować adres URL pliku,

- Adresy w pluginach: Na przykładzie Elementora → Przechodzimy do zakładki Kokpit/Elementor/ Narzędzia/ Zastąp adres URL,

- Adresy w CSS i JS: Przechodzimy do zakładki Wygląd → Edycja Motywu i odnajdujemy adres
URL w konkretnym pliku szablonu. Zazwyczaj jednak pomaga instalacja wtyczki Really Simple SSL i wymuszenie przekierowania. Użycie wtyczek Really Simple SSL i Better Search Replace opisujemy w punkcie 2.1.
4. Przekierowanie HTTP na HTTPS
Niekiedy konieczne będzie użycie odpowiednich reguł w pliku .htaccess lub konfiguracji
serwera co opisaliśmy w poradniku: https://cyberfolks.pl/pomoc/przekierowanie-z-http-na-https/
Możliwe, że Twoja strona wymaga konkretnych operacji po stronie zaplecza, aby wymusić
jej funkcjonowanie w wersji zabezpieczonej https. Takie szczególne wymagania ma np.
Prestashop czy Joomla. Poniżej znajduje się lista instrukcji, które mogą pomóc z
wdrożeniem https dla konkretnych typów stron:
- PrestaShop: https://cyberfolks.pl/pomoc/jak-wlaczyc-https-w-prestashop/
- Joomla: https://cyberfolks.pl/pomoc/jak-wlaczyc-https-w-joomla/
5. Dlaczego Mixed Content jest problemem?
Mixed Content to sytuacja, w której strona ładowana przez bezpieczny protokół HTTPS korzysta z zasobów (np. obrazów, skryptów, stylów) pobieranych przez niezabezpieczony HTTP. To poważne zagrożenie, ponieważ dane nie są szyfrowane, co umożliwia ataki typu „man-in-the-middle”, np. podmianę skryptów na złośliwe lub fałszowanie treści. Dodatkowo mixed content obniża poziom bezpieczeństwa całej strony – przeglądarki oznaczają ją jako „niezabezpieczoną”, mogą blokować ładowanie niektórych elementów, a Google może zaniżyć jej pozycję w wynikach wyszukiwania. Po wdrożeniu HTTPS warto też zgłosić nową wersję strony w Google Search Console, aby przyspieszyć jej ponowną indeksację.
Dobra praktyka na koniec:
Niezależnie od wybranej metody, dobrą praktyką w przypadku uruchomienia certyfikatu
SSL na stronie WordPress jest poinformowanie Google o zmianach poprzez dodanie nowej
wersji strony do Google Search Console. Dlaczego nowej? Z technicznego punktu widzenia
strona w wersji HTTPS jest jej oddzielną wersją.
