Seguici su Telegram, ne vale la pena ❤️ ➡ @trovalost
Vai al contenuto

Configurazione del dominio: come evitare duplicati e versioni alternative

Quando il dominio o HTTPS non sono configurati a dovere, può succedere qualcosa di molto fastidioso: Google ad esempio potrebbe vedere www.sito.it come qualcosa di diverso da sito.it, creando duplicati e tanta confusione agli utenti. Nel caso di redirect errati, si cerca quindi di far risolvere il dominio ad una versione standard, con codice server 200 OK, che possa eliminare qualsiasi ambiguità  mediante una catena di redirect (tipicamente 301, validi per utenti e motore di ricerca). Ma come realizzare questo requisito?

Il tutto deriva da una serie di check da fare in gruppo, il che significa verificare che tutte le possibili versioni del sito facciano redirect in modo corretto – diversamente, Google potrebbe vedere ad es. la versione con HTTP o con www. davanti come un sito diverso, provocando dispersione di traffico e anomalie di vario genere. Molti più siti di quanti pensiamo soffrono di questo problema di fondo, ed è opportuno che i rispettivi webmaster li risolvano quanto prima.

Dispersione di traffico dovuto a versioni di dominio diverse tra loro

Nel caso specifico (un sito di news) mi sono accorto del problema da SEOzoom, andando a visionare lo stato del traffico si è visto come lo stesso fosse distribuito su due sottodomini diversi, uno con HTTP e l’altro con HTTPS.

Schermata 2019 04 08 alle 08.11.53

I due grafici sovrapposti facevano riferimento a due domini diversi, o meglio allo stesso dominio che dal punto di vista del traffico non erano unificati. Pur non trattandosi di mixed content, di fatto, era un problema da risolvere con urgenza.

Check delle versioni del dominio con HTTPStatus.io

Volete verificare che ogni versione alternativa del vostro sito punti in modo corretto ad una versione standard del dominio? Come prima cosa bisogna stabilire quale sia la versione del dominio standard, cioè quella che fa funzionare il sito normalmente: per verificarlo, accedete allo stesso e fate caso a come mostra il nome del dominio il vostro browser. Nel sito che state leggendo ad esempio, la versione standard è https://trovalost.it, che sarà  quella che risolve con codice 200 e sarà  quella finale, unica, a cui tutte le versioni alternative del dominio dovranno puntare. Potrei scrivere infatti www.trovalost.it sul mio browser ed essere rimandato in automatico a https://trovalost.it, idem per www.trovalost.it che andrà  sempre a finire su https://trovalost.it come è corretto che sia. àˆ anche importante, in questo, che non ci siano più di due o tre redirect di mezzo, altrimenti i tempi di risposta del server si allungheranno eccessivamente.

Come fare a realizzare la verifica che tutte le combinazioni di URL del dominio siano valide?

Per farlo, ho utilizzato il tool gratuito HTTPStatus.io, che permette di verificare che tutti gli URL alternativi del sito puntino nel modo corretto; per essere OK, è necessario che ogni versione vada in redirect sulla versione standard dell’URL e restituisca un codice 200 OK lato HTTP.

Il tool funziona cosà¬: inserite le versioni di URL del sito da checkare, e verificate che restituiscano un codice 200 finale, tutte. Se qualcuna genera una catena di redirect 301 che non si risolve, ad esempio, vi verrà  segnalato, cosଠcome se dovessero generare errori di altro genere come il 500, il 404 e via dicendo. Ovviamente il tool è solo di verifica, dovrete essere voi ad agire sul vostro sito per risolvere il problema – e questo lo farete ad esempio editando il file .htaccess o agendo su un record CNAME oppure, ancora, andando a debuggare il codice del vostro CMS, a seconda dei casi.

Standardizzare le versioni del dominio

L’utente del nostro sito non è in genere a conoscenza della sua versione standard: non possiamo pretendere che ricordi a memoria, ad esempio, se in un sito ci vado meno il www. davanti, se il sito abbia HTTPS oppure se sia necessario aggiungere uno slash finale (/). Tutte queste cose che deve fare il server in automatico, e questo non soltanto per piaggeria nei confronti del lettore del sito: anche Google bada molto a questa cosa, e se non gli fornito una versione standard del vostro sito potreste avere vari tipi di problemi. Su tutti, la dispersione del vostro traffico ed un sostanziale calo di posizionamento delle vostre pagine. Bisogna infatti considerare un altro aspetto fondamentale: chi ci linka generalmente tende a farlo in modo differente, mediante versioni alternative dello stesso URL. Quindi è importante che ci sia uniformità  di trattamento e che tutte le versioni intermedie vadano a puntare ad un unico URL finale del dominio.

Quindi, ad esempio:

sito.it –301–>https://sito.it–301–>https://www.sito.it –301–> https://www.sito.it (200, chiamata risolta)

Ogni sito per qualsiasi combinazione di alias (www, https scritto esplicitamente o meno, ecc.) può funzionare sulla base di uno schema di dominio che può essere differente, e che in genere deve corrispondere a tre requisiti di base:

  1. Il primo è importante perchà© l’utente non ricorda sempre di scrivere HTTP:// prima del nome del sito, quindi dovremo metterlo noi;
  2. Il secondo è fondamentale perchà© non è detto che inserisca almeno lo Slash finale;
  3. Il terzo è anch’esso importante perchà© non è detto che l’utente scrivo www. o meno, potrebbe facilmente dimenticarsi di farlo.

Possono valere anche altre considerazioni, ma in genere le regole da seguire scrupolosamente sono queste tre. Il senso di tutto questo discorso è uniformare le versioni del dominio, in modo da non creare confusione o ambiguità  in merito.

Quindi, ad esempio, dovremmo fare in modo (elenco le regole in modo discorsivo per maggiore chiarezza) che:

  1. sito.it ammettiamo sia la versione standard del dominio, per cui dovrà  restituire un codice 200;
  2. www.sito.it possiamo assumere che debba andare in 301 permanente sulla versione 1;
  3. http://sito.it è ok, ma deve redirezionare sulla versione HTTPS;
  4. http://www.sito.it abbiamo già  la regola 2, ma è necessario aggiungere HTTPS se manca, anche qui;
  5. se un utente scrive ad esempio sito.it/, deve essere la stessa cosa che dire sito.it (senza slash).

Redirect da HTTP a HTTPS, sempre

Il sito funziona in HTTPS con Let’s Encrypt, per cui è corretto aggiungere la regola di HTTPS obbligatorio a scanso di equivoci. Nel caso specifico avevo creato anche un record CNAME nel pannello del dominio che fosse in grado di redirezionare il traffico da www.leultime.info a leultime.info, cosa che qui non tratto ma che andava realizzata fin dall’inizio, e vale anche nel vostro caso. Aggiungendo la regola nel file .htaccess, in questo caso, che andava a redirezionare tutto il traffico HTTP in HTTPS, ho risolto il problema:

[…]
RewriteEngine On
RewriteBase /

#redirect HTTPS obbligatorio
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

[…]

Cosa che poi ho verificato con il tool in questione, andando a verificare tutte le possibili versioni alternative del sito, quindi le seguenti:

http://leultime.info

http://www.leultime.info

https://leultime.info

https://www.leultime.info

http://leultime.info/

http://www.leultime.info/

https://leultime.info/

https://www.leultime.info/

ovvero tutte le combinazioni possibili, con e senza HTTPS, con e senza WWW. prefisso, con e senza slash finale. Nel caso in questione il tool mostra che le cose hanno funzionato nel modo giusto, con massimo 2 redirect che puntavano ad un codice 200, che risolve la chiamata con successo,

Schermata 2019 04 08 alle 08.10.20

A questo punto saremo sicuri che tutte le versioni del sito vadano a puntare correttamente sulla versione standardizzata del dominio, che sarà  http://leultime.info. La versione con o senza slash finale della home page, nel caso in questione, viene pero’ ancora segnalata come due URL distinti, visto che ci sono due codici 200 distinti tra loro. Per aggiungere lo slash finale basta andare sul file htaccess ancora una volta ed aggiungere la regola:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R] # <- for test, for prod use [L,R=301]

per togliere sempre lo slash alla fine, oppure:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R] # <- for test, for prod use [L,R=301]

per aggiungerlo. In questo modo avremo uniformato il nostro URL senza ambiguità , con un grosso vantaggio in termini di traffico e di backlink che potrebbero arrivare al nostro sito.

Photo by Vek Labs on Unsplash

👇 Da non perdere 👇



Questo sito esiste da 4462 giorni (12 anni), e contiene ad oggi 6629 articoli (circa 5.303.200 parole in tutto) e 13 servizi online gratuiti. – Leggi un altro articolo a caso
Non ha ancora votato nessuno.

Ti sembra utile o interessante? Vota e fammelo sapere.

Questo sito contribuisce alla audience di sè stesso.
Il nostro network informativo: Lipercubo.it - Pagare.online - Trovalost.it.