Skip to main content
Tilbake til bloggen

SEO Guide Step 7: Sikkerhet — Grunnlaget Google Forventer i 2026

·11 min lesetid·av LANGR SEO

SEO Guide Step 7: Sikkerhet

Dette er Trinn 7 av 13-trinns SEO-guiden. Sikkerhet handler ikke bare om å beskytte brukere — det påvirker direkte søkemotorrangeringen din. Google har brukt HTTPS som et rangeringssignal siden 2014, og forventningene har bare økt.


De fleste nettstedseiere tenker på sikkerhet som et binært spørsmål: "Vi har SSL, så vi er sikre." I virkeligheten vurderer Google dusinvis av sikkerhetssignaler. Nettsteder med riktige sikkerhetsoverskrifter, gyldige sertifikater og uten blandet innhold rangerer høyere enn nettsteder med bare et grunnleggende SSL-sertifikat — alt annet likt.

Den gode nyheten: de fleste sikkerhetsfiksene er engangskonfigurasjoner. Sett dem opp én gang, og de beskytter rangeringen din permanent.

SSL-konfigurasjon

SSL (teknisk TLS) krypterer forbindelsen mellom serveren din og besøkende. Siden 2014 har Google eksplisitt bekreftet HTTPS som et rangeringssignal. I 2026 er det ikke bare et rangeringsproblem å ikke ha HTTPS — Chrome merker HTTP-nettsteder som "Ikke sikker" i adressefeltet, noe som ødelegger brukerens tillit.

Krav for riktig SSL:

| Krav | Hvorfor | Hvordan sjekke | |----------------|----------------------------------------------------------|------------------------------| | Gyldig sertifikat | Utløpt = nettleservarsel = bortkastede brukere | Sjekk utløpsdato | | Full kjede | Ufullstendige kjeder feiler på enkelte enheter | SSL Labs-test | | TLS 1.2+ | Eldre versjoner har kjente sårbarheter | SSL Labs-test | | Ingen SHA-1 | Utgått, nettlesere avviser det | Sertifikatdetaljer | | SAN-dekning | www og non-www må begge være dekket | Sertifikatdetaljer | | Auto-fornyelse | Forhindrer utløpskatastrofer | Let's Encrypt / leverandørkonfigurasjon |

SSL-poengsum:

100% = Gyldig sertifikat + Full kjede + TLS 1.3 + Sterk kryptering + Auto-fornyelse
  0% = Utløpt eller manglende sertifikat

Vanlige SSL-feil:

  1. Sertifikat utløper uten varsel — Sett opp overvåkning (Trinn 6) minimum 30 dager før utløp
  2. Ufullstendig sertifikatkjede — Serveren må sende mellomliggende sertifikater, ikke bare bladet
  3. Blandet innhold — HTTPS-side laster HTTP-ressurser (bilder, skript, stilark)
  4. Omadresseringssløyfer — HTTP → HTTPS → HTTP-sykluser forårsaket av feilkonfigurert CDN/proxy
  5. Ikke-www vs www-mismatch — Sertifikatet dekker den ene men ikke den andre

Rask gevinst: Kjør domenet ditt gjennom SSL Labs (ssllabs.com/ssltest). Alt under en "A"- vurdering har handlingsbare problemer. De fleste leverandører retter opp dette med ett klikk.

Sikkerhetsoverskrifter

Sikkerhetsoverskrifter er HTTP-responsoverskrifter som instruerer nettlesere om hvordan de skal oppføre seg når de laster nettstedet ditt. De forhindrer hele kategorier av angrep — og Googles indekseringsroboter sjekker etter dem.

De essensielle sikkerhetsoverskriftene:

Innholdssikkerhetspolicy (CSP)

CSP er den mest kraftfulle sikkerhetsoverskriften. Den forteller nettlesere nøyaktig hvilke ressurser (skript, stiler, bilder, fonter) som får lov til å lastes på sidene dine.

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

Hva CSP forhindrer:

  • Cross-site scripting (XSS) angrep
  • Data injeksjonsangrep
  • Clickjacking (via frame-ancestors)
  • Uautorisert skripteksekvering (kryptovaluta-minere, annonseinnsprøytere)

CSP distribusjonsstrategi:

  1. Start med Content-Security-Policy-Report-Only (logger brudd uten å blokkere)
  2. Overvåk rapporter i 1-2 uker
  3. Hvitliste legitime kilder
  4. Bytt til påbudsmodus
  5. Legg til report-uri eller report-to for kontinuerlig loggføring av brudd

X-Frame-Options

Forhindrer at nettstedet ditt blir innebygd i rammer på andre domener (beskyttelse mot clickjacking).

X-Frame-Options: DENY

Eller hvis du må tillate samme opprinnelse rammer:

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options

Forhindrer nettlesere fra MIME-type sniffing (tolker filer som forskjellige typer enn erklært).

X-Content-Type-Options: nosniff

Denne enkeltlinjen forhindrer angrep hvor en .jpg-fil inneholder skjult JavaScript som nettleseren kan kjøre.

Referrer-Policy

Kontrollerer hvor mye henvisningsinformasjon som sendes når brukere klikker på lenker fra nettstedet ditt.

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

Dette sender full URL for forespørselen med samme opprinnelse, men bare opprinnelsen (domenet) for tverroppdragsforespørselen. Balanserer analysebehov med personvern.

Permissions-Policy

Kontrollerer hvilke nettleserfunksjoner (kamera, mikrofon, geolokasjon, osv.) som kan brukes på nettstedet ditt.

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

Å deaktivere funksjoner du ikke bruker forhindrer tredjeparts skript fra å misbruke dem.

Eksempel på implementering av overskrifter (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' },
      ]
    }]
  }
}

Implementering av overskrifter (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=(), mikrofon=(), geolocation=()"
Header alltid sett Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Implementering av overskrifter (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;

Rask gevinst: Legg til alle 5 overskriftene ovenfor til serverkonfigurasjonen din. Dette tar 5 minutter og forbedrer umiddelbart sikkerhetsnivået ditt i ethvert skanneverktøy.

HSTS Preload

HTTP Strict Transport Security (HSTS) forteller nettlesere å alltid bruke HTTPS for domene ditt — selv før det første anropet. Uten HSTS kan det første besøket til nettstedet ditt fortsatt bruke HTTP (utsatt for avlytting) før omdirigeringen til HTTPS skjer.

HSTS-overskrift:

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

De tre direktivene:

| Direktiv | Betydning | |-------------------|---------------------------------------| | max-age=31536000 | Husk dette i 1 år (i sekunder) | | includeSubDomains | Brukes også på alle underdomener | | preload | Be om inkludering i nettleserens preload-lister |

HSTS preload-liste:

Den ultimate HSTS-beskyttelsen. Nettlesere leveres med en innebygd liste over domener som alltid må bruke HTTPS. Å sende inn domenet ditt til hstspreload.org betyr:

  • Første gangs besøkende får HTTPS umiddelbart (ingen HTTP → HTTPS-omdirigering)
  • Umulig for angrepere å nedgradere forbindelser
  • Permanent (vanskelig å fjerne etter innsendelse)

Krav for HSTS preload:

  1. Gyldig HTTPS-sertifikat
  2. Omdiriger alt HTTP til HTTPS (inkludert underdomener)
  3. HSTS-overskrift med max-age >= 31536000
  4. HSTS-overskrift inkluderer includeSubDomains
  5. HSTS-overskrift inkluderer preload
  6. Alle underdomener må støtte HTTPS

Advarsel: Send kun inn til preload hvis ALLE underdomenene dine støtter HTTPS. includeSubDomains-direktivet tarko det betyr at enhver HTTP- kun underdomene vil bli utilgjengelig.

Rask gevinst: Hvis du allerede har HTTPS på alle underdomener, legg til den fullstendige HSTS-overskriften og send inn til hstspreload.org. Behandling tar noen uker, men beskyttelsen er permanent.

Sårbarhetsskanning

Automatisk sårbarhetsskanning identifiserer kjente sikkerhetsproblemer i stakken din før angripere utnytter dem.

Hva sårbarhetsskanning sjekker:

  • Utdaterte programmer: WordPress, plugins, JavaScript-biblioteker med kjente CVE-er
  • Eksponerte filer: .env, .git, wp-config.php, database dumps
  • Informasjonslekkasje: Serverversjonsoverskrifter, feilsøkingsmodus, stakkspor
  • Standardlegitimasjon: Admin-sider uten auth, standardpassord
  • Åpne porter/tjenester: Unødvendige tjenester eksponert mot internett
  • Injeksjonspunkter: Skjema uten CSRF-beskyttelse, ikke validerte innganger

Vanlige sårbarheter etter plattform:

| Plattform | Topp sårbarhet | Fiks | |-----------|-------------------|---------------------| | WordPress | Utdaterte plugins | Auto-oppdatering + WAF | | Shopify | Tillatelser for tredjepartsapper | Gjennomgå applisten kvartalsvis | | Next.js | Eksponerte API-ruter | Auth middleware + hastighetsbegrensning | | Statisk | CDN-feilkonfigurasjon | Gjennomgå cache-regler | | Egendefinert | SQL-injeksjon | Parametriserte spørringer |

Skanningsfrekvens:

  • Daglig: Automatisk overflateskanning (SSL, overskrifter, eksponerte filer)
  • Ukentlig: Sjekk av sårbarhet i avhengigheter (npm audit, WordPress-plugin-skaner)
  • Månedlig: Dyp skanning med autentisert testing
  • Etter hver distribusjon: Regresjonstest

Rask gevinst: Kjør npm audit (Node.js) eller sjekk pluginlisten i CMS-et ditt for utdaterte komponenter. Fiks kritiske/høy alvorlighetsgrad umiddelbart.

Blandet innhold

Blandet innhold skjer når en HTTPS-side laster ressurser (bilder, skript, stilark, rammer) over HTTP. Dette bryter delvis kryptering og utløser varsler i nettleseren.

Typer av blandet innhold:

| Type | Alvorlighetsgrad | Eksempel | Nettleseratferd | |---------|------------------|---------------------------|-----------------------| | Aktiv | Høy | HTTP-skript, ramme, CSS | Blokkeres som standard | | Passiv | Medium | HTTP-bilde, video, lyd | Lastes med advarsel |

Aktivt blandet innhold blokkeres av moderne nettlesere — noe som betyr at skriptene og stilene dine ganske enkelt ikke vil laste. Passivt blandet innhold lastes, men viser sikkerhetsvarsler.

Finn blandet innhold:

  1. Åpne Chrome DevTools → Konsoll
  2. Se etter "Blandet innhold" varsler
  3. Alternativt, skann med en crawler (Screaming Frog, LANGR)

Vanlige kilder til blandet innhold:

  • Hardkodede http://-URL-er i innhold (blogginnlegg, produktbeskrivelser)
  • Tredjepartswidgets som laster HTTP-ressurser
  • Innebygd innhold (gamle YouTube-innstikk, sosiale medier-widgets)
  • CSS background-image med HTTP-URL-er
  • Fonters lastet over HTTP

Fikse blandet innhold:

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

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

<!-- Best (protokollrelativ, tilpasser seg sideprotokoll) -->
<img src="//example.com/image.jpg" />

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

Rask gevinst: Åpne hjemmesiden din i Chrome, trykk F12, sjekk Konsoll-fanen for varsler om blandet innhold. Fiks eventuelle som dukker opp — disse er direkte synlige for Google.

Risiko med tredjeparts skript

Hvert eksternt skript du laster er en potensiell sikkerhets- (og ytelses) forpliktelse. Tredjeparts skript kan:

  • Være kompromittert (angrep i forsyningskjeden)
  • Spore brukerne dine uten samtykke (GDPR-brudd)
  • Bli tregere nettstedet ditt (render-blokkerende, nettverkslatens)
  • Bryte funksjonalitet (versjonsoppdateringer, nedetid)
  • Injisere uønsket innhold (annonse-skript som går galt)

Revisjon av tredjeparts skript:

| Skript | Nødvendig? | Risikonivå | Alternativ | |----------------------------|-----------|---------------|-------------------------| | Google Analytics | Ofte ja | Lav | Server-side sporing | | Chat-widgets | Kanskje | Medium | Egenhostede løsninger | | Sosiale delingsknapper | Sjeldent | Medium | Statiske delingslenker | | A/B-testing | Noen ganger| Høy | Server-side testing | | Retargeting-piksler | Forretningsbeslutning | Høy | Førstepartsdata | | Font-CDN-er | Praktisk | Lav | Egenhostede fonter |

Risikoreduserende tiltak for nødvendige tredjeparts skript:

  1. Subresource Integrity (SRI): Hash-verifisering forhindrer at manipulerte skript lastes
<script src="https://cdn.example.com/lib.js"
        integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxAE+sO0..."
        crossorigin="anonymous"></script>
  1. CSP-restriksjoner: Tillat kun skript fra kjente domener
  2. Sandkassede rammer: Isoler tredjepartswidgets
  3. Regelmessige revisjoner: Kvartalsvis gjennomgang av alle eksterne ressurser
  4. Overvåkning: Varsle om nye eksterne domener som vises på sidene dine

Rask gevinst: Lag en liste over hver