Skip to main content
Back to blog

SEO Vodnik Korak 7: Varnost — Osnovna raven, ki jo Google pričakuje leta 2026

·12 min read·by LANGR SEO

SEO Vodnik Korak 7: Varnost

To je Korak 7 iz 13-korakovega SEO Vodnika. Varnost ni le zaščita uporabnikov — neposredno vpliva na vaše iskalne uvrstitve. Google uporablja HTTPS kot signal za uvrstitev od leta 2014 in pričakovanja so le še povečana.


Večina lastnikov spletnih strani varnost dojema kot binarno: "Imamo SSL, torej smo varni." V resnici Google ocenjuje ducate varnostnih signalov. Spletne strani s pravilnimi varnostnimi glavami, veljavnimi certifikati in brez mešane vsebine presegajo spletne strani s preprosto osnovno SSL certifikacijo — ob vseh drugih dejavnikih enakih.

Dobra novica: večina popravkov varnosti je enkratna konfiguracija. Nastavite jih enkrat in zaščitite svoje uvrstitve trajno.

Konfiguracija SSL

SSL (tehnično TLS) šifrira povezavo med vašim strežnikom in obiskovalci. Od leta 2014 je Google izrecno potrdil HTTPS kot signal za uvrstitev. Leta 2026 ne imeti HTTPS ni samo vprašanje uvrstitve — Chrome označuje HTTP spletne strani kot "Niso varne" v naslovni vrstici, kar uničuje zaupanje uporabnikov.

Zahteve za pravilno SSL:

| Zahteva | Zakaj | Kako preveriti | |---------|-------|----------------| | Veljaven certifikat | Potekel = opozorilo brskalnika = odhod uporabnikov | Preverite datum poteka | | Popolna veriga | Nepopolne verige odpovejo na nekaterih napravah | Testiranje SSL Labs | | TLS 1.2+ | Starejše različice imajo znane ranljivosti | Testiranje SSL Labs | | Brez SHA-1 | Preklican, brskalniki ga zavrnejo | Podrobnosti certifikata | | SAN pokritost | www in ne-www morata biti pokrita | Podrobnosti certifikata | | Avtomatsko obnavljanje | Preprečuje katastrofe ob preteku | Let's Encrypt / konfiguracija ponudnika |

Ocena SSL:

100% = Veljavna certifikacija + Popolna veriga + TLS 1.3 + Močan cifer + Avtomatsko obnavljanje
  0% = Potekel ali manjkajoč certifikat

Pogoste napake pri SSL:

  1. Certifikat poteka brez opozorila — Nastavite nadzor (Korak 6) vsaj 30 dni pred potekom
  2. Nepopolna veriga certifikatov — Strežnik mora poslati vmesne certifikate, ne le zadnjega
  3. Mešana vsebina — HTTPS stran nalaga HTTP vire (slike, skripte, sloge)
  4. Krožne preusmeritve — HTTP → HTTPS → HTTP cikli, ki jih povzročajo napačno konfigurirani CDN/proxy
  5. Neenakost www in non-www — Certifikat pokriva enega, ne pa drugega

Hiter uspeh: Preverite svojo domeno preko SSL Labs (ssllabs.com/ssltest). Vse, kar je pod oceno "A", ima vprašljive težave. Večina ponudnikov gostovanja to odpravi s svojim klikom.

Varnostne glave

Varnostne glave so HTTP odzivne glave, ki usmerjajo brskalnike, kako naj se obnašajo pri nalaganju vaše strani. Preprečujejo celotne kategorije napadov — in Googleovi pajki jih preverjajo.

Osnovne varnostne glave:

Politika varnosti vsebine (CSP)

CSP je najmočnejša varnostna glava. Brskalnikom pove natanko, kateri viri (skripti, slogi, slike, pisave) so dovoljeni za nalaganje na vaših straneh.

Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://api.example.com; frame-ancestors 'none';

Kaj CSP preprečuje:

  • Napadi med spletnimi stranmi (XSS)
  • Napadi injiciranja podatkov
  • Clickjacking (prek frame-ancestors)
  • Neavtorizirano izvajanje skript (kriptominarji, injektorji oglasov)

Strategija dokončne uvedbe CSP:

  1. Začnite z Content-Security-Policy-Report-Only (dnevnik kršitev brez blokiranja)
  2. Spremljajte poročila 1-2 tedna
  3. Dovolite legitimne vire
  4. Preklopite v način uveljavitve
  5. Dodajte report-uri ali report-to za nadaljnje beleženje kršitev

X-Frame-Options

Preprečuje, da bi bila vaša stran vstavljena v iframe na drugih domenah (zaščita pred clickjackingom).

X-Frame-Options: DENY

Ali, če potrebujete dovoliti ohranjanje iste izvorne domene:

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options

Preprečuje brskalnikom, da bi prepoznali MIME-tip (interpretacija datotek kot druge vrste kot je navedeno).

X-Content-Type-Options: nosniff

Ta enojni ukaz preprečuje napade, kjer datoteka .jpg vsebuje skriti JavaScript, ki ga brskalnik morda izvede.

Referrer-Policy

Ureja, koliko informacij o referentih se pošlje, ko uporabniki kliknejo povezave iz vaše strani.

Referrer-Policy: strict-origin-when-cross-origin

To pošlje celotno URL za zahtevke istega izvora, vendar samo izvor (domeno) za zahtevke med različnimi viri. Uravnava analitične potrebe s zasebnostjo.

Permissions-Policy

Ureja, katere funkcije brskalnika (kamera, mikrofon, geolokacija itd.) se lahko uporabljajo na vaši spletni strani.

Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()

Onemogočanje funkcij, ki jih ne uporabljate, preprečuje zlorabe s strani skript drugih podjetij.

Primer uvedbe glav (Next.js):

// next.config.js
module.exports = {
  async headers() {
    return [{
      source: '/(.*)',
      headers: [
        { key: 'X-Content-Type-Options', value: 'nosniff' },
        { key: 'X-Frame-Options', value: 'SAMEORIGIN' },
        { key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' },
        { key: 'Permissions-Policy', value: 'camera=(), microphone=(), geolocation=()' },
        { key: 'Strict-Transport-Security', value: 'max-age=31536000; includeSubDomains; preload' },
      ]
    }]
  }
}

Uvedba glav (Apache .htaccess):

Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Uvedba glav (Nginx):

add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Hiter uspeh: Dodajte vseh 5 zgoraj omenjenih glav v konfiguracijo svojega strežnika. To traja 5 minut in takoj izboljša vašo varnostno stanje v kateremkoli orodju za skeniranje.

HSTS Predpomnjenje

HTTP Strict Transport Security (HSTS) pove brskalnikom, da vedno uporabljajo HTTPS za vašo domeno — celo pred prvo zahtevo. Brez HSTS lahko prva obisk vaše strani še vedno uporablja HTTP (ranljivo na prestrezanje), preden se zgodi preusmeritev na HTTPS.

HSTS glava:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Tri direktive:

| Direktiva | Pomen | |-----------|-------| | max-age=31536000 | Zapomni si to za 1 leto (v sekundah) | | includeSubDomains | Uporabi tudi za vse poddomene | | preload | Zahteva vključitev v predpomnilniške sezname brskalnikov |

Seznam HSTS predpomnjenja:

Najboljša zaščita HSTS. Brskalniki vključujejo vgrajen seznam domen, ki morajo vedno uporabljati HTTPS. Oddaja vaše domene na hstspreload.org pomeni:

  • Obiskovalci prvič dobijo HTTPS takoj (brez HTTP → HTTPS preusmeritve)
  • Napadalcem je nemogoče znižati povezave
  • Trajno (težko se je odstraniti, ko je enkrat oddano)

Zahteve za HSTS predpomnjenje:

  1. Veljaven HTTPS certifikat
  2. Preusmerite vse HTTP na HTTPS (vključno s poddomenami)
  3. HSTS glava z max-age >= 31536000
  4. HSTS glava vključuje includeSubDomains
  5. HSTS glava vključuje preload
  6. Vse poddomene morajo podpirati HTTPS

Opozorilo: Oddajte na predpomnjenje le, če vse vaše poddomene podpirajo HTTPS. Direktiva includeSubDomains pomeni, da bo katera koli poddomena, ki podpira samo HTTP, postala nedostopna.

Hiter uspeh: Če že imate HTTPS na vseh poddomenah, dodajte celotno HSTS glavo in oddajte na hstspreload.org. Obdelava traja nekaj tednov, toda zaščita je trajna.

Skeniranje Ranljivosti

Avtomatizirano skeniranje ranljivosti identificira znane varnostne težave v vaši tehnologiji, preden jih napadalci izkoristijo.

Kaj skeniranje ranljivosti preverja:

  • Zastarela programska oprema: WordPress, dodatki, JavaScript knjižnice z znanimi CVE-ji
  • Izpostavljene datoteke: .env, .git, wp-config.php, izpisi podatkovnih baz
  • Opuščanje informacij: Glave različice strežnika, način za odpravljanje napak, sledi namestitve
  • Privzete poverilnice: Administratorske strani brez avtentikacije, privzeta gesla
  • Odprte porte/storitve: Nepotrebne storitve, izpostavljene internetu
  • Mesta za injiciranje: Obrazci brez zaščite CSRF, nepreverjeni vnosi

Pogoste ranljivosti po platformah:

| Platforma | Najboljša ranljivost | Popravek | |-----------|----------------------|----------| | WordPress | Zastareli dodatki | Samoobnovitev + WAF | | Shopify | Dovoljenja aplikacij tretjih strank | Revizija seznama aplikacij četrtletno | | Next.js | Izpostavljene API poti | Avtentikacijska srednja programska oprema + omejevanje hitrosti | | Statične strani | Napačna konfiguracija CDN | Pregled pravil predpomnjenja | | Po meri | SQL injekcija | Parametrizirana poizvedba |

Pogostost skeniranja:

  • Dnevno: Avtomatizirano površinsko skeniranje (SSL, glave, izpostavljene datoteke)
  • Tedensko: Preverjanje ranljivosti odvisnosti (npm audit, skener dodatkov WordPress)
  • Mesečno: Globinsko skeniranje z avtentikacijo
  • Po vsaki namestitvi: Preverjanje regresije

Hiter uspeh: Zaženite npm audit (Node.js) ali preverite seznam dodatkov vašega CMS za zastarele komponente. Takoj odpravite kritične/visoke nevarnosti.

Mešana vsebina

Mešana vsebina se pojavi, ko HTTPS stran nalaga vire (slike, skripte, sloge, iframes) preko HTTP. To delno prekine šifriranje in sproži opozorila brskalnika.

Vrste mešane vsebine:

| Tip | Resnost | Primer | Obnašanje brskalnika | |----------|---------|--------|-----------------------| | Aktivna | Visoka | HTTP skript, iframe, CSS | Privzeto blokirano | | Pasivna | Srednja | HTTP slika, video, avdio | Naloži z opozorilom |

Aktivna mešana vsebina je blokirana z modernimi brskalniki — kar pomeni, da vaši skripti in slogi preprosto ne bodo naloženi. Pasivna mešana vsebina se naloži, vendar prikazuje varnostna opozorila.

Iskanje mešane vsebine:

  1. Odprite Chrome DevTools → Konzola
  2. Poiščite opozorila "Mešana vsebina"
  3. Alternativno, skenirajte s pajkom (Screaming Frog, LANGR)

Pogosti viri mešane vsebine:

  • Hardkodirani http:// URL-ji v vsebinah (objave na blogu, opisi izdelkov)
  • Vtičniki tretjih strank, ki nalagajo HTTP vire
  • Vdelana vsebina (stari YouTube embed, vtičniki socialnih omrežij)
  • CSS background-image z HTTP URL-ji
  • Pisave, naložene preko HTTP

Odpravljanje mešane vsebine:

<!-- Slabo -->
<img src="http://example.com/image.jpg" />

<!-- Dobro -->
<img src="https://example.com/image.jpg" />

<!-- Najbolje (protokol-relativen, prilagaja se protokolu strani) -->
<img src="//example.com/image.jpg" />

Popravek baze podatkov (WordPress):

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://yourdomain.com', 'https://yourdomain.com');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://yourdomain.com', 'https://yourdomain.com');

Hiter uspeh: Odprite svojo domačo stran v Chromu, pritisnite F12, preverite zavihek Konzola za opozorila o mešani vsebini. Odpravite vse, kar se prikaže — te napake so neposredno vidne Googlu.

Tveganja tretjih oseb v skriptih

Vsak zunanji skript, ki ga naložite, predstavlja potencialno varnostno (in zmogljivostno) tveganje. Skripti tretjih oseb lahko:

  • Bodo ogroženi (napadi dobavne verige)
  • Sledijo vašim uporabnikom brez soglasja (kršitev GDPR)
  • Upčasnijo vašo stran (blokira renderiranje, zakasnitev omrežja)
  • Zlomijo funkcionalnost (posodobitve različic, izpadi)
  • Vbrizgajo nezaželeno vsebino (skripti oglasov so se pokvarili)

Revizija vaših skript tretjih oseb:

| Skript | Potreben? | Tveganje | Alternativa | |--------|-----------|----------|-------------| | Google Analytics | Pogosto ja | Nizko | Sledenje na strežniški strani | | Vtičniki za klepet | Morda | Srednje | Rešitve, ki jih gostite sami | | Gumbi za deljenje po socialnih omrežjih | Redko | Srednje | Statistične povezave za deljenje | | A/B testiranje | Včasih | Visoko | Testiranje na strežniški strani | | Pikseli za ponovno ciljanje | Poslovna odločitev | Visoko | Podatki prve stranke | | CDN-ji za pisave | Prihodnji | Nizko | Samo-gostilne pisave |

Zmanjšavanje tveganja za ključne skripte tretjih oseb:

  1. Celovitost podreja (SRI): Preverjanje hasha preprečuje nalaganje spremenjenih skript
<script src="https://cdn.example.com/lib.js"
        integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxAE+sO0..."
        crossorigin="anonymous"></script>
  1. Omejitve CSP: Dovolite samo skripte iz znanih domen
  2. Izolirane iframe: Izolacija vtičnikov tretjih strank
  3. Redne revizije: Četrtletni pregled vseh zunanjih virov
  4. Nadzor: Opozorilo o novih zunanjih domenah, ki se pojavijo na vaših straneh

Hiter uspeh: Naštejte vsak