Skip to main content
Takaisin blogiin

SEO-opas Vaihe 7: Turvallisuus — Perustaso, jota Google odottaa vuonna 2026

·10 min lukuaika·kirjoittanut LANGR SEO

SEO-opas Vaihe 7: Turvallisuus

  • Tämä on vaihe 7 13-vaiheisessa SEO-oppaassa. Turvallisuus ei ole vain käyttäjien suojaamista — sillä on suora vaikutus hakutuloksiisi. Google on käyttänyt HTTPS:ää ranking-signaalina vuodesta 2014, ja odotukset ovat vain kasvaneet. *

Useimmat sivuston omistajat ajattelevat turvallisuutta binäärisesti: "Meillä on SSL, joten olemme turvallisia." Todellisuudessa Google arvioi kymmeniä turvallisuussignaaleja. Sivustot, joilla on asianmukaiset turvallisuusotsikot, voimassa olevat sertifikaatit ja ei sekoitettua sisältöä, ylittävät sivustot, joilla on vain perus SSL-sertifikaatti — kaikki muu ollessa tasapuolista.

Hyviä uutisia: suurin osa turvallisuuskorjauksista on kertaluonteisia määrityksiä. Aseta ne kerran, ja ne suojaavat sijoituksiasi pysyvästi.

SSL-määritys

SSL (teknisesti TLS) salaa yhteyden palvelimesi ja kävijöiden välillä. Vuodesta 2014 lähtien Google on nimenomaisesti vahvistanut HTTPS:n ranking-signaalina. Vuonna 2026 ilman HTTPS:ää ei ole vain sijoitusongelma — Chrome merkitsee HTTP-sivustot "Ei turvalliseksi" osoiterivillä, tuhoamalla käyttäjien luottamuksen.

Odotukset asianmukaiselle SSL:lle:

| Vaatimus | Miksi | Kuinka tarkistaa | |----------|-------|------------------| | Voimassa oleva sertifikaatti | Vanhentunut = selainvaroitus = käyttäjät poistuvat | Tarkista voimassaoloaika | | Täydellinen ketju | Epätäydelliset ketjut epäonnistuvat joillakin laitteilla | SSL Labs -testi | | TLS 1.2+ | Vanhemmissa versioissa on tunnettuja haavoittuvuuksia | SSL Labs -testi | | Ei SHA-1 | Poistettu käytöstä, selaimet hylkäävät sen | Sertifikaatin tiedot | | SAN-kattavuus | www- ja ei-www-alustat on molemmat katettava | Sertifikaatin tiedot | | Automaattinen uusiminen | Estää vanhenemiseen liittyvät katastrofit | Let's Encrypt / palveluntarjoajan asetukset |

SSL-pisteytys:

100% = Voimassa oleva sertifikaatti + Täydellinen ketju + TLS 1.3 + Vahva salaus + Automaattinen uusiminen
  0% = Vanhenneet tai puuttuvat sertifikaatit

Yleiset SSL-virheet:

  1. Sertifikaatti vanhenee ilman ilmoitusta — Aseta seuranta (vaihe 6) vähintään 30 päivää ennen vanhenemista
  2. Epätäydellinen sertifikaattiketju — Palvelimen on lähetettävä välikomponenttisertifikaatit, ei vain lehtisertejä
  3. Sekoitettu sisältö — HTTPS-sivu lataa HTTP-resursseja (kuvia, skriptejä, tyylitiedostoja)
  4. Uudelleenohjauslenkit — HTTP → HTTPS → HTTP -syklikot, jotka johtuvat väärin konfiguroidusta CDN:stä/proxysta
  5. Non-www vs www -epäyhtenäisyys — Sertifikaatti kattaa toisen mutta ei toista

Nopea voitto: Suorita domainisi SSL Labsin läpi (ssllabs.com/ssltest). Kaikki, mikä on alle "A" -arvosanan, sisältää toiminnallisia ongelmia. Useimmat hosting-palveluntarjoajat korjaavat nämä yhdellä napsautuksella.

Turvallisuusotsikot

Turvallisuusotsikot ovat HTTP-vastausotsikoita, jotka ohjeistavat selaimia, miten toimia ladataessa sivustoasi. Ne estävät kokonaisia hyökkäysluokkia — ja Googlen indeksoijat tarkistavat niitä.

Keskeiset turvallisuusotsikot:

Content-Security-Policy (CSP)

CSP on tehokkain turvallisuusotsikko. Se kertoo selaimille tarkalleen, mitkä resurssit (skriptit, tyylit, kuvat, fontit) saavat ladata sivuillesi.

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';

Mitä CSP estää:

  • Cross-site-skripting (XSS) -hyökkäykset
  • Tietojen injektointihyökkäykset
  • Clickjacking (kautta frame-ancestors)
  • Luvattoman skriptin suorittaminen (kryptovaluuttojen louhintavelhot, mainosinjektorit)

CSP:n käyttöönotto strategia:

  1. Aloita Content-Security-Policy-Report-Only -tilassa (kirjaa rikkomukset ilman estämistä)
  2. Seuraa raportteja 1-2 viikon ajan
  3. Lisää hyväksytyt lähteet
  4. Siirry pakottavaan tilaan
  5. Lisää report-uri tai report-to jatkuvaa rikkomusraportointia varten

X-Frame-Options

Estää sivustosi upottamisen iframeihin muilla domaineilla (clickjacking-suojaus).

X-Frame-Options: DENY

Tai jos sinun on sallittava samaan alkuperään perustuva upottaminen:

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options

Estää selaimia MIME-tyyppisen tunnistamisen (tiedostojen tulkitsemisen eri tyypeiksi kuin ilmoitettu).

X-Content-Type-Options: nosniff

Tämä yksi rivi estää hyökkäykset, joissa .jpg-tiedostossa on piilotettua JavaScriptiä, jota selain voi suorittaa.

Referrer-Policy

Säätelee, kuinka paljon referrer-tietoa lähetetään, kun käyttäjät napsauttavat linkkejä sivustoltasi.

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

Tämä lähettää koko URL-osoitteen samaan alkuperään kohdistuvissa pyyntöissä, mutta vain alkuperän (domainin) ristiin kohdistuvissa pyyntöissä. Tasapainottaa analytiikan tarpeita yksityisyyden kanssa.

Permissions-Policy

Säätelee, mitkä selainominaisuudet (kamera, mikrofoni, sijainnin määritys jne.) voivat olla käytössä sivustollasi.

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

Poistamalla käytöstä ominaisuuksia, joita et käytä, estetään kolmannen osapuolen skriptejä käytöstä.

Otsikoiden toteutus-esimerkki (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' },
      ]
    }]
  }
}

Otsikoiden toteutus (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"

Otsikoiden toteutus (Nginx):

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

Nopea voitto: Lisää kaikki 5 yllä olevista otsikosta palvelimen määrityksiisi. Tämä vie 5 minuuttia ja parantaa välittömästi turvallisuusasentoasi missä tahansa skannausvälineessä.

HSTS Preload

HTTP Strict Transport Security (HSTS) kertoo selaimille, että heidän on aina käytettävä HTTPS:ää domainillesi — jopa ensimmäisen pyynnön aikana. Ilman HSTS:ää ensimmäinen käynti sivustollasi voi silti käyttää HTTP:tä (haavoittuva väliintulolle) ennen kuin uudelleenohjaus HTTPS:ään tapahtuu.

HSTS-otsikko:

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

Kolme ohjetta:

| Ohje | Merkitys | |------|----------| | max-age=31536000 | Muista tämä 1 vuodeksi (sekunteina) | | includeSubDomains | Soveltuu myös kaikkiin alidomaineihin | | preload | Pyydä sisällyttämistä selainten preload-luetteloihin |

HSTS-preload-luettelo:

Äärimmäinen HSTS-suojaus. Selainohjelmat toimitetaan sisäänrakennetun luettelon kanssa domaineista, jotka on aina käytettävä HTTPS:ää. Domainisi lähettäminen hstspreload.org-sivustolle tarkoittaa:

  • Ensikertaiset vierailijat saavat HTTPS:n heti (ei HTTP → HTTPS -uudelleenohjausta)
  • Hyökkääjien on mahdotonta heikentää yhteyksiä
  • Pysyvä (vaikea poistaa lähettämisen jälkeen)

HSTS-preloadin vaatimukset:

  1. Voimassa oleva HTTPS-sertifikaatti
  2. Uudelleenohjaa kaikki HTTP HTTPS:ään (mukaan lukien alidomains)
  3. HSTS-otsikko max-age >= 31536000
  4. HSTS-otsikko sisältää includeSubDomains
  5. HSTS-otsikko sisältää preload
  6. Kaikkien alidomainien on tuettava HTTPS:ää

Varoitus: Lähetä preload vain, jos KAIKKI alidomainisi tukevat HTTPS:ää. includeSubDomains -ohje tarkoittaa, että mikä tahansa vain HTTP:llä toimiva alidomain tulee käyttökelvottomaksi.

Nopea voitto: Jos sinulla on jo HTTPS kaikilla alidomaineilla, lisää koko HSTS-otsikko ja lähetä hstspreload.org-sivustolle. Käsittely kestää muutaman viikon, mutta suojaus on pysyvä.

Haavoittuvuusskannaus

Automaattinen haavoittuvuusskannaus tunnistaa tunnettuja turvallisuusongelmia pinostasi ennen kuin hyökkääjät hyväksikäyttävät niitä.

Mitä haavoittuvuusskannaus tarkistaa:

  • Päätön ohjelmisto: WordPress, liitännäiset, JavaScript-kirjastot, joissa on tunnettuja CVEitä
  • Altistuneet tiedostot: .env, .git, wp-config.php, tietokannan varmuuskopiot
  • Tietojen vuotaminen: Palvelimen version otsikot, virheenkorjaustila, pinojen jäljet
  • Oletustunnistetiedot: Hallintasivut ilman todennusta, oletussalasanat
  • Avoimet portit/palvelut: Tarpeettomat palvelut, jotka ovat altistuneita internetissä
  • Injektio-pisteet: Lomakkeet ilman CSRF-suojaa, validoimattomat syötteet

Yleiset haavoittuvuudet alustoittain:

| Alusta | Suurin haavoittuvuus | Korjaus | |--------|----------------------|---------| | WordPress | Vanhenneet liitännäiset | Automaattinen päivitys + WAF | | Shopify | Kolmannen osapuolen sovellusten oikeudet | Toon sovellusten lista neljännesvuosittain | | Next.js | Altistuneet API-reitit | Todennus middleware + nopeusrajoitus | | Staattiset sivustot | CDN:n väärinkonfigurointi | Tarkista välimuistinsäännöt | | Räätälöity | SQL-injektio | Parametrisoidut kyselyt |

Skannaustiheys:

  • Päivittäin: Automaattinen pinnan skannaus (SSL, otsikot, altistuneet tiedostot)
  • Viikoittain: Riippuvuus-haavoittuvuuden tarkistus (npm audit, WordPress-liitännäisten skannaus)
  • Kuukausittain: Syvä skannaus todennettuina testeinä
  • Jokaisen julkaisemisen jälkeen: Regressiotarkistus

Nopea voitto: Suorita npm audit (Node.js) tai tarkista CMS:si liitännäisten lista vanhentuneista komponenteista. Korjaa kriittiset/korkean vakavuuden ongelmat välittömästi.

Sekoitettu sisältö

Sekoitettu sisältö tapahtuu, kun HTTPS-sivu lataa resursseja (kuvia, skriptejä, tyylitiedostoja, iframes) HTTP:n kautta. Tämä rikkoo osittain salauksen ja laukaisee selaimen varoitukset.

Sekoitettu sisältö tyypit:

| Tyyppi | Vakavuus | Esimerkki | Selaimen käyttäytyminen | |--------|----------|-----------|-------------------------| | Aktiivinen | Korkea | HTTP-skripti, iframe, CSS | Estetään oletusarvoisesti | | Passiivinen | Keskiverto | HTTP-kuva, video, ääni | Ladataan varoituksella |

Aktiivinen sekoitettu sisältö estetään nykyaikaisissa selaimissa — mikä tarkoittaa, että skriptisi ja tyylit eivät vain lataa. Passiivinen sekoitettu sisältö ladataan, mutta näyttää turvallisuusvaroituksia.

Sekoitetun sisällön löytämisessä:

  1. Avaa Chrome DevTools → Konsoli
  2. Etsi "Sekoitettu sisältö" -varoituksia
  3. Vaihtoehtoisesti voit skannata kävijäohjelmalla (Screaming Frog, LANGR)

Yleiset sekoitetun sisällön lähteet:

  • Koodattu http:// URL-osoitteet sisällössä (blogikirjoitukset, tuotekuvaukset)
  • Kolmannen osapuolen widgetit, jotka lataavat HTTP-resursseja
  • Upotettu sisältö (YouTuben vanhat upotukset, sosiaalisen median widgetit)
  • CSS background-image HTTP-URL-osoitteilla
  • Fontit ladataan HTTP:n kautta

Sekoitettu sisällön korjaaminen:

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

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

<!-- Paras (protokollariippumaton, sopeutuu sivun protokollaan) -->
<img src="//example.com/image.jpg" />

Tietokannan korjaus (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');

Nopea voitto: Avaa etusivusi Chromessa, paina F12, tarkista Konsoli-välilehti sekoitetun sisällön varoituksille. Korjaa kaikki, jotka ilmestyvät — nämä ovat suoraan näkyvissä Googlelle.

Kolmannen osapuolen skriptivaarat

Jokainen ulkoinen skripti, jonka lataat, on potentiaalinen turvallisuus- (ja suorituskyvyn) riski. Kolmansien osapuolten skriptit voivat:

  • Olla vaarantuneita (toimitusketjun hyökkäykset)
  • Seurata käyttäjiäsi ilman suostumusta (GDPR-rikkomus)
  • Hidastaa sivustoa (renderöinti-estot, verkkoviive)
  • Rikkoa toiminnallisuutta (version päivitykset, katkoksena)
  • Syöttää ei-toivottua sisältöä (mainosskriptit menivät pieleen)

Tarkista kolmannet osapuolen skriptisi:

| Skripti | Tarpeellinen? | Riskitaso | Vaihtoehto | |---------|---------------|-----------|------------| | Google Analytics | Usein kyllä | Matala | Server-puolen seuranta | | Keskusteluwidgetit | Ehkä | Keskiverto | Itse isännöidyt ratkaisut | | Sosiaaliset jakopainikkeet | Harvoin | Keskiverto | Staattiset jakolinkit | | A/B-testaus | Joskus | Korkea | Server-puolen testaaminen | | Uudelleen kohdistus pikselit | Liiketoimintapäätös | Korkea | Ensimmäisen osapuolen tiedot | | Fonttien CDN:t | Kätevät | Matala | Itse isännöidyt fontit |

Riskien vähentäminen olennaisille kolmannen osapuolen skripteille:

  1. Aliresurssien eheys (SRI): Hash-tarkistus estää muokattujen skriptien lataamisen
<script src="https://cdn.example.com/lib.js"
        integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxAE+sO0..."
        crossorigin="anonymous"></script>
  1. CSP-rajoitukset: Salli vain skriptit tunnetuilta domaineilta
  2. Sankaroitut iframet: Eristä kolmansien osapuolten widgetit
  3. Säännölliset tarkastukset: Neljännesvuosittainen tarkistus kaikista ulkoisista resursseista
  4. Seuranta: Hälytys uusista ulkoisista domaineista, jotka näkyvät sivuillasi

Nopea voitto: Listaa jokainen