Migrazione ad https senza perdere il posizionamento Google

Perché migrare ad HTTPS

Nell’agosto 2014 Google ha dichiarato l’utilizzo del protocollo HTTPS influisce, seppur di poco, sull’indice di posizionamento di Google; vedere a questo proposito l’articolo “HTTPS as a ranking signal” o il filmato della conferenza annuale di Google del 2014 “Google I/O 2014 – HTTPS Everywhere” (entrambi in lingua inglese).

Inoltre, nel dicembre 2015 Google ha dichiarato che indicizzerà per prime  le pagine HTTPS di un sito (rispetto alle pagine HTTP); vedere il post “Indexing HTTPS pages by default” (in lingua inglese).

Ai fini di un miglior posizionamento sul motore di ricerca Google, è quindi opportuno migrare ad HTTPS il proprio sito.

Oltre a ciò, se il sito prevede il login per accedere a pagine riservate, e non è attivo il protocollo HTTPS, le credenziali utilizzate per l’accesso potrebbero essere intercettate in modo fraudolento (vedere ad esempio l’attacco Man in the Middle).

Infine, da gennaio 2017 Google Chrome segnala come “non sicuri” tutti i siti che non utilizzano il protocollo HTTPS e questa informazione può rendere diffidenti gli utenti del sito e di conseguenza indurli ad allontanarsi.

Come migrare ad HTTPS

Attivare il supporto HTTPS sul server di sviluppo

Se si utilizza un ambiente di sviluppo (es. XAMPP), attivare il supporto HTTPS in sviluppo. A questo proposito vedere il post “Come configurare il protocollo SSL su server Ubuntu con XAMPP“, presente su questo sito. Come regola generale, ogni modificare al sito di produzione dovrebbe essere prima sempre testato in ambiente di sviluppo.

Verificare che l’hosting fornisca il supporto HTTPS

Per poter migrare ad HTTPS è necessario innanzitutto verificare che l’hosting fornisca il supporto. La verifica ed eventuale attivazione può essere generalmente effettuata dal pannello di controllo del servizio di hosting.

Verificare eventuali costi aggiuntivi richiesti dal provider. Numerosi provider forniscono un supporto SSL gratuito, grazie a Let’s Encrypt.

Dopo aver attivato il protcollo HTTPS può essere utile valutarne la qualità, ad esempio tramite il servizio di test online fornito da SSL Labs.

Modificare i link presenti nelle pagine del sito

Si devono quindi modificare tutti i link assoluti presenti nelle pagine del sito, quali:

  • link a script,  fonts, fogli di stile e web services (es. API Google) esterni, tipicamente forniti da reti CDN (tutte queste risorse devono essere richiamate tramite protocollo HTTPS);
  • link a elementi multimediali esterni, quali immagini o video, inseriti (embedded) nelle pagine del sito;
  • link assoluti a risorse interne (es. tag <link rel=”canonical”…>). Per i link interni è sempre preferibile utilizzare link relativi (che omettono il protocollo e nome del dominio e iniziano tipicamente con “/”).

Se il sito web utilizza pagine dinamiche generate da un linguaggio di scripting lato server (es. PHP), il protocollo da utilizzare nei link presenti nella pagina può essere determinato in modo dinamico, desumendolo dall’URL della pagina stessa, come nel seguente esempio PHP:

<?php
  $protocol = filter_input(INPUT_SERVER, "REQUEST_SCHEME", FILTER_SANITIZE_URL);
?>
  <link rel="canonical" href="<?= $protocol ?>://nome-dominio/nome-pagina">

Reindirizzare le pagine

Questa attività permette di preservare il valore (ranking) delle pagine HTTP, trasferendolo alle pagine HTTPS.

Google considera separatamente le pagine HTTPS di un sito rispetto alle corrispondenti pagine HTTP (in effetti, la pagina potrebbe fornire contenuti diversi in base al protocollo). Per questo motivo, il passaggio da HTTP a HTTPS dev’esser gestito al pari di un cambio di dominio, ovvero tramite reindirizzamento 301 delle pagine HTTP alle pagine HTTPS.

Se si utilizza un hosting Linux con server Apache, questa operazione può essere fatta tramite l’inserimento di alcune semplici istruzioni nel file .htaccess presente nella root del sito:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteCond %{HTTP:X-Forwarded-Proto} !https
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301]
</IfModule>

In questo modo, il valore (ranking) della pagina originale (HTTP) sarà trasferito alla nuova pagina (HTTPS).

Oltre a ciò, è necessario censire il sito HTTPS come diversa entità su Google Search Console ed inviare a Google una sitemap contenente gli indirizzi HTTPS. Il sito con le pagine HTTP deve essere mantenuto su Google Search Console.

Impostare WordPress per l’HTTPS

Se il sito utilizza il CMS WordPress, si deve intervenire sulle impostazioni generali. Sulla dashboard di amministrazione selezionare:
Impostazioni > Generali, quindi inserire il prefisso https:// nei parametri:

  • Indirizzo WordPress (URL)
  • Indirizzo sito (URL)

Confermare cliccando il bottone “Salva le modifiche”.

Questa operazione divrebbe essere sufficiente, ma se ci si accorge che nel sito sono ancora presenti dei link che utilizzano HTTP, può essere utile installare un plugin che si occupi del reindirizzamento. Il post Spostare WordPress da HTTP a HTTPS e aggiungere un redirect suggerisce di utilizzare il plugin “Really Simple SSL“.

Il centro di assistenza di Register.it nel post “Come impostare un redirect da http a https per il proprio sito in WordPress” suggerisce invece il plugin “WP force ssl”.
In alternativa, se si ha esperienza di mySql, si può (dopo aver fatto un backup dei dati) ricercare e correggere i link HTTP presenti nel database mySQL di WordPress.

Ulteriori risorse

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.