Skip to content

Una cosa che ho notato lavorando nel web è che un sacco (ma proprio un sacco) di webmaster ignorano totalmente l’esistenza ed il comportamento di Google quando sviluppano un nuovo sito internet. In particolare mi riferisco all’errore di lasciare i siti in sviluppo aperti ai bot dei motori di ricerca.

Lasciare che un motore di ricerca scansioni e indicizzi le pagine di un sito web in sviluppo può creare non pochi problemi:

  • i motori di ricerca mappano URL che potrebbero essere temporanei e questo genera in futuro errori 404
  • i motori di ricerca indicizzano pagine work-in-progress, che potrebbero essere incomplete, non tradotte o addirittura vuote
  • i motori di ricerca non gradiscono indicizzare contenuti duplicati o di bassa qualità

Quando il sito andrà live ci saranno già contenuti duplicati in Google presi dal sito in sviluppo, ci saranno diversi errori 404 e la qualità percepita del sito web a livello SEO tenderà al ribasso.

Per questi motivi consiglio sempre ai webmaster di chiudere il sito in sviluppo ai bot dei motori di ricerca. Vediamo alcuni metodi, ordinati per efficacia, per impedire scansione e indicizzazione delle pagine in sviluppo.

Impostare la password di accesso via file di configurazione Virtual Host Apache

Il metodo più efficiente per proteggere una directory in un web server Apache è attraverso il file di configurazione del Virtual Host.

Apri il tuo file di configurazione ed inserisci all’interno del blocco VirtualHost il blocco directory, con tutto il suo contenuto come da esempio da riga 7 a 12:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory "/var/www/html">
        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
    </Directory>
</VirtualHost>
  • Sostituisci Directory "/var/www/html" con la directory che vuoi bloccare nel tuo web server Apache
  • Sostituisci /etc/apache2/.htpasswd con il percorso completo per il tuo file .htpasswd

Impostare la password di accesso via .htaccess

Con il file .htaccess è molto facile proteggere l’accesso ad una cartella con una password. L’unico aspetto negativo di questo metodo è che il web server rilegge il file .htaccess ad ogni accesso alla sua directory, in siti internet molto affollati questo sistema potrebbe impattare sulle prestazioni.

Assicurati che il tuo web server sia abilitato ad eseguire le istruzioni contenute nel file .htaccess. Nel caso non il metodo funzionasse verifica che, all’interno del file /etc/apache2/apache2.conf sia presente il comando AllowOverride All.

Il metodo è denominato htaccess password protection oppure htaccess authentication e funziona caricando due file denominati .htaccess e .htpasswd nella directory che si desidera proteggere con password. Il file .htaccess dovrebbe contenere quanto segue:

AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /path/to/.htpasswd
Require valid-user
  • Sostituisci /path/to/.htpasswd con il percorso completo per il tuo file .htpasswd.

Impostare la password di accesso via server block Nginx

Anche Nginx permette di proteggere specifiche directory con password. Per abilitare questa funziona è necessaio aprire e modificare il file di configurazione dell’istanza del sito (Server Block).

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.html index.htm;

    server_name localhost;

    location / {
        try_files $uri $uri/ =404;
        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}
  • Aggiungi le ultime due righe auth_basic dentro il blocco location
  • Sostituisci /etc/nginx/.htpasswd con il percorso del tuo file .htpasswd

Il file .htpasswd

A questo punto, sia che tu abbia scelto di modificare il file di configurazione del Virtual Host oppure il file .htaccess, è necessario creare e caricare il file .htpasswd.

Il file .htpasswd deve contenere il nome utente e la password, un esempio è il seguente:

test:$apr1$S8/.n6G5$r/3c81y3wR84GZ5EHDdKt1

Il codice mostrato consente all’utente “test” di accedere all’area protetta con la password “cicciopasticcio123”. Il testo “$apr1$S8/.n6G5$r/3c81y3wR84GZ5EHDdKt1” è la versione crittografata della password “cicciopasticcio123”.

Dovrai usare un generatore htpasswd per creare un’altra password crittografata. Ogni riga del file .htpasswd può contenere una combinazione di nome utente e password, quindi non esitare a aggiungere più combinazioni.

Carica via FTP il file .htpasswd nella directory che hai indicato nel file di configurazione o nel file -.htaccess.

Ora che hai terminato il processo prova ad accedere alla cartella protetta, dovresti ricevere un popup come il seguente.
Directory Protection Password Prompt

Noindex in intestazione HTTP

Tramite HTTP header possono essere passate diverse informazioni ai motori di ricerca, ad esempio con meta robots noindex.

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
(…)
X-Robots-Tag: googlebot: nofollow
X-Robots-Tag: otherbot: noindex, nofollow
(…)

Nell’intestazione HTTP è possibile impostare diverse direttive x-Robots che riassumo a seguire.
Direttiva, Significato

  • all – non ci sono restrizioni per l’indicizzazione o la pubblicazione. Nota: questa direttiva è il valore predefinito e non ha alcun effetto se è elencato esplicitamente
  • noindex – non mostrare questa pagina nei risultati di ricerca e non mostrare un collegamento “memorizzato nella cache” nei risultati di ricerca
  • nofollow – non seguire i link in questa pagina
  • none – equivalente a noindex, nofollow
  • noarchive – non mostrare il link alla versione di cache della pagina nei risultati di ricerca
  • nosnippet – non visualizzare uno snippet nei risultati della ricerca per questa pagina
  • noodp – non utilizzare metadati dal progetto Open Directory per titoli o frammenti mostrati per questa pagina
  • notranslate – non offrire la traduzione di questa pagina nei risultati di ricerca
  • noimageindex – non indicizzare le immagini in questa pagina
  • unavailable_after – [RFC-850 date/time] non mostrare questa pagina nei risultati di ricerca dopo la data/ora specificata. La data/ora deve essere specificata nel formato RFC 850

Per verificare l’intestazione HTTP puoi usare questo strumento online.

Meta robots noindex

Per impedire ai motori di ricerca di indicizzare e mostrare la pagina nei risultati puoi usare la meta robot noindex.

<meta name="robots" content="noindex">
<meta name="googlebot" content="noindex">

Disallow nel Robots.txt

L’ultimo metodo vede l’utilizzo del file robots.txt. Ricordati che il robots.txt non impedisce l’indicizzazione di una pagina o una cartella, ma impedisce soltanto la scansione da parte dei bot definiti.

#tutto aperto:
User-agent: *
Disallow:

#tutto chiuso:
User-agent: *
Disallow: /

#esempio
User-agent: *
Disallow: /photos
Allow: /photos/mycar.jpg

Una pagina bloccata dal robots.txt può comunque apparire nei risultati di ricerca, tuttavia se non hai modo di implementare i metodi precedenti non ti resta che usare questo ultimo metodo.

Google mostra pagine bloccate con Robots.txt
Google mostra pagine bloccate con Robots.txt

Come vedi, anche una pagina di Google che è in Disallow nel robots.txt, viene comunque mostrata in SERP. Guarda bene il tag meta description del risultato:

A description for this result is not available because of this site’s robots.txt

Una descrizione per questo risultato non è disponibile a causa del file robots.txt di questo sito

Articoli correlati

Autore

Commenti |6

Lascia un commento Lascia un commento
  1. Fausto Giungato SEO 9 commenti

    Ciao, ottimo post.
    Ho però provato bloccare l’accesso ad una sottocartella del mio sito web tramite .htaccess:

    AuthType Basic
    AuthName “Password Protected Area”
    AuthUserFile /public_html/george/.htpasswd
    Require valid-user

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /george/
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /george/index.php [L]

    # END WordPress

    Il risultato è che viene fuori la maschera che mi chiede user e password, li inserisco, ma una volta entrato nella cartella mi dà errore 500.
    Se tolgo quella direttiva dall’.htaccess, il WordPress viene perfettamente caricato.

    1. Giovanni Sacheli 756 risposte

      Ciao Fausto, il file .htaccess agisce a livello di cartella, quello in root è per il primo livello, mentre tu poi puoi definire regole per cartelle specifiche, con .htaccess dedicati e inseriti in quelle medesime cartelle. In pratica il file agisce come se fosse un file di configurazione a livello di cartella.
      Fammi sapere, ciao!

  2. massimo 1 commento

    ciao articolo interessante … una domanda .. magari mi puoi illuminare … io il sito l’ho installato in una directory /wp/ ho bloccato la ricerca di google … in questo modo il mio socio poteva vedere l’avanzamento dei lavori senza problemi di accessi vari … infatti io gli davo url del sito più il /wp/ finale.

    ora dopo circa 5-6 mesi nella search console di google ho trovato degli errori su alcune pagine che riportano davanti il /wp/nomepagina ….. ???? stranissimo da cosa puoi dipendere?

    1. Giovanni Sacheli 756 risposte

      Ciao Massimo, scusa ma Akismet aveva taggato il tuo commento come spam e non era stato pubblicato. Non mi è ben chiara la tua domanda, da quello che ho capito hai installato WordPress in una sotto-cartella /wp/ nella root del webserver. Quindi è normale che Google indicizzi le pagine dentro la cartella /wp/ se non hai implementato regole di URL rewrite. Che tipo di errore ti segnala GSC?

  3. Igor 1 commento

    Buonasera Giovanni sono Igor, grazie del tuo articolo. Ho seguito la procedura con file .htaccess e .htpassw. Quando entro nella sottocartella (“test”) e quando entro, dopo aver inserito username e password, riscontro una pagina con errore 500. E’ corretto che sia così? Oppure dovrei sistemare? Ps ho cambiato i permessi dei due file a 755 invece che 644. E’ corretto o riporto a 644? Grazie!

    1. Giovanni Sacheli 756 risposte

      Ciao Igor, una volta fatto login lo status code deve essere 200. Che web server hai? Hai riavviato il server dopo le modifiche?

Lascia un commento

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

Ultimi articoli aggiornati

Richiedi un preventivo SEO e Google Ads

Porta il tuo sito web al livello successivo con l’expertise di EVE Milano. La nostra agenzia di Search Marketing ha ricevuto oltre 1128 richieste di preventivo, un segnale chiaro della fiducia che imprenditori e manager, come te, ripongono nella nostra specializzazione tecnica e verticale nella SEO e PPC. Se la tua organizzazione cerca competenze specifiche per emergere nei risultati di Google, noi siamo pronti a fornire quel valore aggiunto. Affidati alla nostra esperienza per fare la differenza.
Richiedi un preventivo

Non perderti altre guide, iscriviti per ricevere un avviso mensile con gli aggiornamenti del blog!

Iscriviti alla newsletter!

Informativa sui cookies

Noi e terze parti selezionate utilizziamo cookie o tecnologie simili per finalità tecniche e, con il tuo consenso, anche per le finalità di esperienza e misurazione come specificato nella cookie policy. Puoi liberamente prestare, rifiutare o revocare il tuo consenso, in qualsiasi momento, accedendo al pannello delle preferenze. Il rifiuto del consenso può rendere non disponibili le relative funzioni. Usa il pulsante “Accetta” per acconsentire. Usa il pulsante “Rifiuta” per continuare senza accettare.