Kako da na svom WordPress sajtu rešite mixed content grešku

Mixed content je greška koja se relativno često dešava u WordPress-u. Ona se javlja kada vaš web sajt koristi bezbednu HTTPS konekciju, ali istovremeno učitava i neke elemente (kao što su slike, stilovi, skripte) putem nebezbednog HTTP protokola.
Iako mixed content greška ne mora odmah da utiče na izgled sajta, ona može da naruši poverenje korisnika u vaš web sajt, loše utiče na SEO, pa čak i da otvori vrata potencijalnim bezbednosnim napadima, kao što su presretanje saobraćaja (man-in-the-middle napadi).
Zato je važno da je što pre je uklonite ovaj problem, ako se pojavi na vašem web sajtu.
U ovom tekstu objasnićemo zašto se javlja mixed content greška, kako da je prepoznate i što je najvažnije, kako da je rešite.
Šta je mixed content greška u WordPress-u?
Mixed content greška znači da na jednoj stranici/web sajtu imate kombinaciju bezbednog (HTTPS) i nebezbednog (HTTP) sadržaja. To se najčešće dešava ako je vaš sajt ispravno učitan preko HTTPS protokola, ali se neka slika, video, stil (CSS) fajl ili JavaScript skripta poziva i dalje preko starog HTTP linka.
Kada se to desi, browser korisnika više ne smatra stranicu potpuno bezbednom i prikazuje upozorenje mixed content.
Uobičajen primer problematičnog linka izgleda ovako:
http://nekidomen.rs/baner.jpg
Ovo se najčešće dešava kada su WordPress teme ili plugini hard-kodovani da koriste HTTP, ili kada se slike ručno unesu u sadržaj bez menjanja protokola iz HTTP u HTTPS.
Kako da prepoznate mixed content grešku?
Prvi znak da na vašem web sajtu postoji mixed content greška je da će se u address bar-u browsera pojaviti obaveštenje “Nije bezbedno”, i videćete ikonicu polomljenog katanca pored URL-a.
Ako želite da vidite sve detalje koje browser može da vam prikaže:
- Otvorite svoj sajt u Google Chrome
- Pritisnite Ctrl+Shift+I (ili Cmd+Option+I na Mac-u)
- Kliknite na Console tab
- Sada će vam u konzoli browsera biti prikazani svi HTTP resursi koji uzrokuju mixed content grešku.

Ovde ćete tačno videti koji fajl pravi problem, njegov URL, i sa koje lokacije na stranici se on poziva.
Otkrivanje mixed content greške pomoću Google PageSpeed Insights alata
Grešku mixed content možete otkriti i pomoću Google-ovog PageSpeed Insights alata.
Ovaj alat je prvenstveno poznat po tome što meri performanse i optimizaciju sajta, ali takođe prikazuje i potencijalne bezbednosne probleme. Kada analizirate svoj sajt na PageSpeed Insights-u, obratite pažnju na deo „Diagnostics“ i „Passed audits“. Ako postoji mixed content to će biti ispisano na ovom mestu.
Ako postoji mixed content, često ćete videti poruku tipa: “Resources are served over HTTP on an HTTPS page. Ensure all requests are loaded securely.”
To su jasni pokazatelji da se neki sadržaj učitava putem HTTP umesto preko HTTPS..
Da biste detektovali mixed content putem Google PageSpeed Insights alata:
- Idite na PageSpeed Insights
- Unesite URL stranice koju želite da testirate
- Kliknite na Analyze
- Pregledajte sekcije „Opportunities“, „Diagnostics“ i „Passed audits“
- Ako na vašem web sajtu postoji mixed content, biće jasno obeležen na nekoj od ovih lokacija
Ovo je korisno i ukoliko vaš web sajt ima više podstranica. Možete proveriti svaku od njih posebno i proveriti da li se problem ponovo pojavljuje nakon ažuriranja, dodavanja novih sadržaja ili plugina.
Ukoliko želite da saznate više o Google PageSpeed Insights alatu, predlažemo da pročitate naš tekst Google PageSpeed Insights.
Kako rešiti mixed content grešku u WordPress-u?
Da biste rešili mixed content grešku, predlažemo da prvo krenete od najjednostavnijeg rešenja, pa tek ako ono ne pomogne onda probajte da pređete na malo naprednija rešenja.
1. Korišćenje plugina za automatsku popravku
Ako imate pristup svom WordPress admin dashboard-u, možete brzo da rešite većinu problema pomoću SSL Insecure Content Fixer plugina.

Ovaj plugin automatski identifikuje i zamenjuje HTTP linkove sa HTTPS verzijama, bez potrebe da ručno prolazite kroz svaki deo sajta.
Instalirajte i aktivirajte plugin, a zatim idite na Settings → SSL Insecure Content

U sekciji Fix insecure content, počnite sa opcijom Simple (ona pokriva skripte, stilove i slike, što je najčešći izvor problema)
Ako i dalje dobijate upozorenja, probajte sledeće nivoe: Content, Widgets, Capture, pa na kraju Capture All (poslednji se koristi samo ako ništa drugo ne pomaže, jer može da uspori sajt)
U sekciji HTTPS detection, ostavite podrazumevanu vrednost, osim ako koristite CDN kao što je Cloudflare, a nakon toga izaberite odgovarajuću opciju

Kliknite na Save Changes i ponovo učitajte svoj sajt.
U većini slučajeva, ovo je dovoljno da rešite mixed content grešku.
2. Ručna zamena HTTP linkova sa HTTPS
Ako plugin ne rešava sve greške, moguće je da su linkovi ugrađeni direktno u bazu podataka vašeg web sajta (npr. uneti kroz neki page builder, editor teme ili plugin koji koristi hard-kodovane URL-ove).
Ako imate samo nekoliko takvih slučajeva, možete ih zameniti ručno. Međutim, ako ih ima mnogo, najefikasniji pristup je da koristite plugin za pretragu i zamenu.
Za ovu namenu se odlično pokazao plugin pod nazivom Better Search Replace. Da biste rešili mixed content grešku pomoću ovog plugina pratite sledeće korake.
Instalirajte i aktivirajte plugin, a zatim idite na Tools → Better Search Replace

U polje Search for unesite svoj HTTP URL (npr. http://nekidomen.rs), a u polje Replace with unesite HTTPS verziju (https://nekidomen.rs). Označite sve tabele baze (držeći Ctrl ili Cmd)
Odčekirajte opciju „Run as dry run“ da bi se promene zaista primenile.
Na kraju kliknite na dugme Run Search/Replace.
Napomena: Pre ove operacije OBAVEZNO napravite backup baze sajta, jer su promene nepovratne. Ako niste sigurni kako to da uradite, predlažemo da obavezno pre bilo kakve akcije pročitate naš tekst Kako da uradite backup kopiju svog web sajta u cPanel nalogu.
3. Forsiranje HTTPS konekcije putem .htaccess fajla
Ako želite da da svi zahtevi ka sajtu automatski idu kroz HTTPS, bez obzira kako su linkovani, potrebno je da dodate redirekciju u .htaccess fajl svog web sajta.
Ovo je najsigurniji način da u potpunosti predupredite mixed content upozorenja u budućnosti.
Da biste to uradili pratite sledeće korake:
Ulogujte se svoj cPanel nalog i u pronađite aplikaciju pod nazivom File Manager.

Otvorite folder public_html.

Pronađite .htaccess fajl. Napomena: .imajte u vidu da htaccess po defaultu nije vidljiv, pa da biste mogli da ga vidite, kliknite na Settings u gornjem desnom uglu prozora. Otvoriće vam se prozor Preferences. Samo čekirajte opciju Show hidden files i kliknite na Ok. Sada će .htaccess fajl postati vidljiv na lokaciji public_html.

Desni klik → „Edit“.

Sada na kraj fajla nalepite sledeći kod:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Header always set Content-Security-Policy "upgrade-insecure-requests;"
Sačuvajte ovaj fajl i testirajte da li sajt sada koristi HTTPS na svim URL-ovima.
Ovaj korak se koristi kao preventiva. To znači da čak i ako se u budućnosti potkrade neki HTTP link, on će biti automatski preusmeren na HTTPS verziju.
Zaključak
Mixed content greška može na prvi pogleda da izgleda kao sitnica, ali njen uticaj na SEO, bezbednost i reputaciju sajta može da bude ozbiljan. Srećom, imate tri pouzdana načina da je rešite:
- Automatski, pomoću plugina poput SSL Insecure Content Fixer
- Ručno, pomoću plugina Better Search Replace ili direktnim izmenama
- Strukturno, pomoću preusmeravanja kroz .htaccess fajl
Dodatno, preporučujemo da povremeno proveravate svoj web sajt pomoću PageSpeed Insights alata, ne samo zbog performansi, već i da biste na vreme otkrili ostale potencijalne probleme ako se pojave nakon kasnijih izmena.
Primenite ove korake, testirajte svoj web sajt u više browsera i ne zaboravite da očistite keš kako biste videli izmenu u realnom vremenu.
Nenad Mihajlović