Skip to main content
Torna al blog

Guida SEO Passo 7: Sicurezza — La Base che Google Si Aspetta nel 2026

·13 min di lettura·di LANGR SEO

Guida SEO Passo 7: Sicurezza

Questo è il Passo 7 della Guida SEO in 13 Passi. La sicurezza non riguarda solo la protezione degli utenti, ma influisce direttamente sul tuo posizionamento nei motori di ricerca. Google utilizza HTTPS come segnale di posizionamento dal 2014 e le aspettative sono aumentate.


La maggior parte dei proprietari di siti pensa alla sicurezza come a un binario: "Abbiamo SSL, quindi siamo sicuri." In realtà, Google valuta dozzine di segnali di sicurezza. I siti con intestazioni di sicurezza adeguate, certificati validi e senza contenuti misti superano in classifica i siti con solo un certificato SSL di base, a parità di condizioni.

La buona notizia: la maggior parte delle correzioni di sicurezza sono configurazioni una tantum. Impostale una volta e proteggeranno permanentemente il tuo posizionamento.

Configurazione SSL

SSL (tecnicamente TLS) cripta la connessione tra il tuo server e i visitatori. Dal 2014, Google ha confermato esplicitamente HTTPS come segnale di posizionamento. Nel 2026, non avere HTTPS non è solo un problema di posizionamento: Chrome contrassegna i siti HTTP come "Non Sicuri" nella barra degli indirizzi, distruggendo la fiducia degli utenti.

Requisiti per un buon SSL:

| Requisito | Perché | Come Controllare | |-----------|--------|------------------| | Certificato valido | Scaduto = avviso del browser = utenti che abbandonano | Controlla la data di scadenza | | Catena completa | Catene incomplete possono non funzionare su alcuni dispositivi | Test di SSL Labs | | TLS 1.2+ | Le versioni più vecchie hanno vulnerabilità note | Test di SSL Labs | | No SHA-1 | Obsoleto, i browser lo rifiutano | Dettagli del certificato | | Copertura SAN | www e non-www devono essere entrambi coperti | Dettagli del certificato | | Auto-rinnovo | Previene disastri da scadenza | Configurazione di Let's Encrypt / fornitore |

Punteggio SSL:

100% = Certificato valido + Catena completa + TLS 1.3 + Cifratura forte + Auto-rinnovo
  0% = Certificato scaduto o mancante

Errori comuni con SSL:

  1. Il certificato scade senza preavviso — Imposta il monitoraggio (Passo 6) almeno 30 giorni prima della scadenza
  2. Catena di certificato incompleta — Il server deve inviare i certificati intermedi, non solo quello finale
  3. Contenuti misti — Pagina HTTPS che carica risorse HTTP (immagini, script, fogli di stile)
  4. Cicli di reindirizzamento — Cicli HTTP → HTTPS → HTTP causati da CDN/proxy mal configurati
  5. Mismatch tra non-www e www — Il certificato copre uno ma non l'altro

Vittoria rapida: Esegui il tuo dominio tramite SSL Labs (ssllabs.com/ssltest). Qualsiasi punteggio inferiore a "A" ha problemi risolvibili. La maggior parte dei fornitori di hosting risolve questi problemi con un clic.

Intestazioni di Sicurezza

Le intestazioni di sicurezza sono intestazioni di risposta HTTP che istruiscono i browser su come comportarsi durante il caricamento del tuo sito. Prevengono intere categorie di attacchi — e i crawler di Google le controllano.

Le intestazioni di sicurezza essenziali:

Content-Security-Policy (CSP)

CSP è l'intestazione di sicurezza più potente. Indica ai browser esattamente quali risorse (script, stili, immagini, caratteri) possono essere caricate sulle tue pagine.

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

Cosa previene CSP:

  • Attacchi di scripting tra siti (XSS)
  • Attacchi di iniezione di dati
  • Clickjacking (tramite frame-ancestors)
  • Esecuzione non autorizzata di script (minatori di criptovalute, iniettori di pubblicità)

Strategia di distribuzione CSP:

  1. Inizia con Content-Security-Policy-Report-Only (registra le violazioni senza bloccare)
  2. Monitora i report per 1-2 settimane
  3. Aggiungi alla lista le fonti legittime
  4. Passa alla modalità di enforcement
  5. Aggiungi report-uri o report-to per il monitoraggio delle violazioni

X-Frame-Options

Impedisce al tuo sito di essere incorporato in iframe su altri domini (protezione dal clickjacking).

X-Frame-Options: DENY

Oppure se hai bisogno di consentire il framing nello stesso dominio:

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options

Impedisce ai browser di sniffare il MIME-type (interpretare i file come tipi diversi da quelli dichiarati).

X-Content-Type-Options: nosniff

Questa riga impedisce attacchi in cui un file .jpg contiene JavaScript nascosto che il browser potrebbe eseguire.

Referrer-Policy

Controlla quanta informazione sul referrer viene inviata quando gli utenti cliccano sui link dal tuo sito.

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

Questo invia l'URL completo per le richieste dello stesso origin ma solo l'origine (dominio) per richieste cross-origin. Bilancia le esigenze analitiche con la privacy.

Permissions-Policy

Controlla quali funzionalità del browser (camera, microfono, geolocalizzazione, ecc.) possono essere utilizzate sul tuo sito.

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

Disabilitare funzionalità che non usi evita che gli script di terze parti le abusino.

Esempio di implementazione intestazione (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' },
      ]
    }]
  }
}

Implementazione intestazione (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"

Implementazione intestazione (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;

Vittoria rapida: Aggiungi tutte e 5 le intestazioni sopra alla configurazione del tuo server. Questo richiede 5 minuti e migliora immediatamente la tua postura di sicurezza in qualsiasi strumento di scansione.

HSTS Preload

HTTP Strict Transport Security (HSTS) dice ai browser di utilizzare sempre HTTPS per il tuo dominio — anche prima della prima richiesta. Senza HSTS, la prima visita al tuo sito potrebbe comunque utilizzare HTTP (vulnerabile all'intercettazione) prima che avvenga il reindirizzamento a HTTPS.

Intestazione HSTS:

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

Le tre direttive:

| Direttiva | Significato | |-----------|-------------| | max-age=31536000 | Ricorda questo per 1 anno (in secondi) | | includeSubDomains | Applica a tutti i sottodomini | | preload | Richiedi inclusione nelle liste di preload dei browser |

Lista di caricamento HSTS:

La protezione HSTS definitiva. I browser vengono forniti con un elenco incorporato di domini che devono sempre utilizzare HTTPS. Inviare il tuo dominio a hstspreload.org significa:

  • I visitatori per la prima volta ottengono immediatamente HTTPS (senza reindirizzamento HTTP → HTTPS)
  • Impossibile per gli attaccanti degradare le connessioni
  • Permanente (difficile da rimuovere una volta inviato)

Requisiti per HSTS preload:

  1. Certificato HTTPS valido
  2. Reindirizza tutto l'HTTP a HTTPS (compresi i sottodomini)
  3. Intestazione HSTS con max-age >= 31536000
  4. Intestazione HSTS include includeSubDomains
  5. Intestazione HSTS include preload
  6. Tutti i sottodomini devono supportare HTTPS

Avvertenza: Invia solo per il preload se TUTTI i tuoi sottodomini supportano HTTPS. La direttiva includeSubDomains significa che qualsiasi sottodominio solo HTTP diventerà inaccessibile.

Vittoria rapida: Se hai già HTTPS su tutti i sottodomini, aggiungi l'intestazione HSTS completa e invia a hstspreload.org. L'elaborazione richiede alcune settimane ma la protezione è permanente.

Scansione delle Vulnerabilità

La scansione automatizzata delle vulnerabilità identifica problemi di sicurezza noti nella tua stack prima che gli attaccanti possano sfruttarli.

Cosa controlla la scansione delle vulnerabilità:

  • Software obsoleto: WordPress, plugin, librerie JavaScript con CVE noti
  • File esposti: .env, .git, wp-config.php, dump del database
  • Perdita di informazioni: Intestazioni di versione del server, modalità di debug, stack traces
  • Credenziali predefinite: Pagine admin senza autenticazione, password predefinite
  • Porte/servizi aperti: Servizi non necessari esposti a Internet
  • Punti di iniezione: Form senza protezione CSRF, input non validati

Vulnerabilità comuni per piattaforma:

| Piattaforma | Vulnerabilità principale | Correzione | |-------------|-------------------------|------------| | WordPress | Plugin obsoleti | Aggiornamento automatico + WAF | | Shopify | Permessi delle app di terzi | Audit della lista delle app trimestrale | | Next.js | Rotte API esposte | Middleware di autenticazione + limitazione della frequenza | | Siti statici| Misconfigurazione CDN | Rivedi le regole di cache | | Personalizzati | Iniezione SQL | Query parametrizzate |

Frequenza di scansione:

  • Giornaliera: Scansione superficiale automatizzata (SSL, intestazioni, file esposti)
  • Settimanale: Controllo delle vulnerabilità delle dipendenze (npm audit, scanner plugin di WordPress)
  • Mensile: Scansione approfondita con test autenticati
  • Dopo ogni distribuzione: Controllo delle regressioni

Vittoria rapida: Esegui npm audit (Node.js) o controlla la lista dei plugin del tuo CMS per componenti obsoleti. Risolvi immediatamente problemi di gravità critica/alta.

Contenuti Misti

I contenuti misti si verificano quando una pagina HTTPS carica risorse (immagini, script, fogli di stile, iframe) tramite HTTP. Questo rompe parzialmente la crittografia e attiva avvisi dei browser.

Tipi di contenuti misti:

| Tipo | Gravità | Esempio | Comportamento del Browser | |---------|---------|-----------------------|---------------------------| | Attivo | Alto | Script HTTP, iframe, CSS | Bloccato per impostazione predefinita | | Passivo | Medio | Immagine HTTP, video, audio | Caricato con avviso |

I contenuti misti attivi vengono bloccati dai browser moderni, il che significa che i tuoi script e stili non verranno semplicemente caricati. I contenuti misti passivi vengono caricati ma mostrano avvisi di sicurezza.

Come trovare contenuti misti:

  1. Apri Chrome DevTools → Console
  2. Cerca avvisi di "Contenuti Misti"
  3. In alternativa, scansiona con un crawler (Screaming Frog, LANGR)

Fonti comuni di contenuti misti:

  • URL hardcoded http:// nel contenuto (post del blog, descrizioni dei prodotti)
  • Widget di terze parti che caricano risorse HTTP
  • Contenuti incorporati (embed di YouTube obsoleti, widget dei social media)
  • CSS background-image con URL HTTP
  • Caratteri caricati tramite HTTP

Correzione dei contenuti misti:

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

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

<!-- Migliore (relativo al protocollo, si adatta al protocollo della pagina) -->
<img src="//example.com/image.jpg" />

Correzione del database (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');

Vittoria rapida: Apri la tua homepage in Chrome, premi F12 e controlla la scheda Console per avvisi di contenuti misti. Correggi qualsiasi avviso — questi sono direttamente visibili a Google.

Rischi degli Script di Terze Parti

Ogni script esterno che carichi è una potenziale responsabilità in termine di sicurezza (e performance). Gli script di terze parti possono:

  • Essere compromessi (attacchi alla catena di forniture)
  • Monitorare i tuoi utenti senza consenso (violazione del GDPR)
  • Rallentare il tuo sito (blocco di rendering, latenza di rete)
  • Rompere la funzionalità (aggiornamenti di versione, interruzioni)
  • Iniettare contenuti indesiderati (script pubblicitari andati male)

Audita i tuoi script di terze parti:

| Script | Necessario? | Livello di Rischio | Alternativa | |-------------------|-------------|--------------------|---------------------------------| | Google Analytics | Spesso sì | Basso | Monitoraggio lato server | | Widget di chat | Forse | Medio | Soluzioni auto-ospitate | | Pulsanti di condivisione sui social | Raramente | Medio | Link di condivisione statici | | Test A/B | A volte | Alto | Test lato server | | Pixel di retargeting | Decisione aziendale | Alto | Dati di prima parte | | CDN di font | Comodo | Basso | Font auto-ospitati |

Mitigazione del rischio per script di terze parti essenziali:

  1. Integrità delle risorse (SRI): La verifica dell'hash impedisce il caricamento di script manomessi
<script src="https://cdn.example.com/lib.js"
        integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxAE+sO0..."
        crossorigin="anonymous"></script>
  1. Restrizioni CSP: Consenti solo script da domini noti
  2. Iframe sandbox: Isola i widget di terze parti
  3. Audits regolari: Rivedi trimestralmente tutte le risorse esterne
  4. Monitoraggio: Allerta su nuovi domini esterni che appaiono nelle tue pagine

Vittoria rapida: Elenca ogni tag