Google Sitemaps è un servizio offerto dal famoso motore di ricerca ai propri utenti, rivolto in particolare a quanti gestiscono o sviluppano siti web.
Attraverso un unico pannello di controllo è possibile monitorare informazioni legate ad un sito e segnalare a Google una sitemap, ovvero una mappa del sito che agevoli l'indicizzazione agli spider del motore di ricerca. All'argomento è stato dedicato un recnte articolo su HTML.it: Una mappa per Google.
Più volte ho letto di utenti alle prese con la famosissima funzione di verifica delle sitemap di Google.
Credo di non esagerare se affermo che almeno 1 utente su 5, in media, ha riscontrato problemi con il sistema di verifica di un sito. Perché?
Prima di rispondere a questa domanda, premesso che non lavoro per Google, ricapitoliamo un secondo a cosa serve la verifica e come funziona.
Aggiunta di un sito/sitemap
Una volta creata una sitemap, o più semplicemente, aggiunto un nuovo sito alla lista di quelli monitorati dall'account di Google Sitemaps, è possibile verificare il sito.
Questa procedura ha lo scopo di garantire a Google che, in un qualche modo, io utente ho accesso a questo sito e sono quindi o il proprietario o un gestore.
Si presuppone infatti che chiunque abbia l'accesso al server di un sito abbia controllo su di esso.
Verifica di un sito
Perché verificare un sito? Semplice, una volta garantito a Google che io ho diritto di accesso, Google comincerà a fornirmi una serie di succulenti dati su come lo spider, Googlebot, analizza il mio sito e su come gli utenti lo individuano nelle ricerche.
La procedura per la verifica è semplice.
Google mi fornisce un nome di un file ed una posizione specifica nel sito dove io dovrò creare questo file. Non importa il contenuto, l'importante è il nome.
Creo il file, lo nomino come vuole Google e lancio la verifica dal mio pannello di Google Sitemaps. Google provvederà a cercare il file e, in caso affermativo, autenticherà l'account.
Problemi?
Spesso sento di utenti che, sebbene abbiano seguito alla lettera la procedura, lamentano malfunzionamenti al sistema... come mai?
La risposta è, per il 90% dei casi, riassumibile in: errore nella configurazione del server.
Il server dovrebbe essere predisposto per fornire alcuni specifici status HTTP in risposta ai client a seconda di particolari condizioni. Ad esempio: se un file esiste in genere si restituisce 200 o 304 se il documento non è variato dall'ultima richiesta. Se un file non esiste si restituisce 404, se un errore di elaborazione blocca la pagina allora 500.
Il sistema di verifica di Google, log alla mano, procede in questo modo.
Lancia due precise richieste in immediata successione: la prima verifica la presenza del file richiesto e la seconda la non presenza di un file composto semplicemente antecedendo un prefisso al nome di quello precedente.
Ma per quale motivo Google si comporta in questo modo?
Il motivo? Nel primo caso Google vuole verificare che l'utente abbia messo quel file come richiesto e dove richiesto.
Nel secondo caso Google vuole invece accertarsi che, nel caso si richiami una pagina inesistente, il server restituisca correttamente uno status 404. Questo per evitare che si possa con qualche inganno tracciare le statistiche di altri siti.
Confesso che non avevo pensato a questo problema fino a che non ho letto i log del server per analizzare il comportamento di una verifica di sitemap.
Pensate ad un sito che gestisce gli errori 404 e se un file non esiste restituisce sempre e comunque uno status differente, ad esempio 200, indirizzando il client ad una pagina comune.
Nel caso Google provi a richiamare l'ipotetica pagina GOOGLE123456.html il server restituirà 200 ed io sarei automaticamente autenticato a vedere il traffico di quel sito senza aver necessità di inserire alcun file di verifica… ho fregato Google!
Tornando a noi, perché la nostra verifica è fallita? Beh, nel 90% dei casi semplicemente perché il mio server ha restituito a Google lo uno status che lui non si aspettava.
Case history
Vi racconto una case history personale. Diversi mesi fa stavo tentando di verificare una sitemap per il sottodominio di un sito. Per il sito principale tutto aveva funzionato alla grande, per il sottodominio non c'era verso di completare la procedura. Il sottodominio puntava virtualmente ad una sottocartella della root nello stesso server.
Cosa era successo? Avevo implementato un sistema di gestione dell'errore 404 via configurazione di Apache che, in caso di errore, mostrava la pagina index.php con particolari comandi aggiuntivi, compreso un sistema che mi avvertisse dell'errore ed uno che forniva all'utente alcuni comandi addizionali per rendere l'errore di File Not Found meno freddo. Peccato che avevo configurato il server senza considerare che il sottodominio ereditava le stesse proprietà .htaccess della root pur vedendo eseguito da un altro indirizzo.
Non vi sto ad annoiare nello specifico, taglio corto segnalando che, in poche parole, la pagina di errore veniva richiamata erroneamente anche dai sottodomini ma, non essendo progettata per funzionare su di loro, in caso di errore 404 il server restituiva un errore 500 della pagina di errore che a sua volta non veniva correttamente caricata.
Risultato? Google si aspettava di trovare un 404 nel caso di File Not Found ed io gli restituivo un 500.
Conclusioni
In conclusione, se siete alle prese con la verifica di una sitemap abbiate cura di controllare che il vostro server sia configurato correttamente.
In alternativa, valutate l'idea di verificare il sito attraverso la nuova funzionalità basata su meta tag.