Mod_Rewrite - usarlo o no?
La tecnica del mod_rewrite visto dal punto di vista dei motori
di ricerca
Molto spesso riceviamo domande sulle tecniche di reindirizzamento,
in particolare sull'implementazione del metodo mod_rewrite e l'uso
del file .htaccess in un sito basato su database. Istruzioni su
come usarlo potrete trovare in numerosi articoli dedicati alla programmazione
o nella nostra guida al redirect.
In questo articolo affronteremo invece il ruolo che il mod_rewrite
può avere nell'indicizzazione ed il posizionamento nei motori
di ricerca.
Il mod_rewrite è indubbiamente la modalità di reindirizzamento
"preferita" dai motori.
Ma con i cambiamenti della tecnologia, questa loro preferenza non
potrà trasformarsi in qualcosa percepito come un trucco che
nel futoro cercheranno di evitare o penalizzare? Si tratta di una
tecnica di cloaking o è una procedura che cosidereranno un'azione
genuina per fornire contenuti in un modo più usabile, tramite
indirizzi "belli" e comprensibili?
Ottima domanda.
La confusione intorno a questo argomento è causata dalla
continua evoluzione dei motori di ricerca. Il miglioramento delle
loro procedure di indicizzazione implicano anche la velocoe obsolecenza
delle tecniche di ottimizzazione adottate dai webmaster, pericò
strumenti che una volta erano indispensabili ora potrebbero essere
superflui.
Perché usarlo?
Prima di tutto guardiamo che cos'è il mod_rewrite dal punto
di vista di un motore di ricerca e perchè si dovrebbe usare.
I motori di ricerca inviano i loro spider in goro per la rete allo
scopo di portare nel proprio database un numero di indirizzi (URL)
più elevato possibile. Questi saltando da link a link raccogleranno
tutta l'informazione che riescono.
Questo modo di raccolta dei contenuti funzionava benissimo per
gli URL statici, che puntano a pagine che includono solitamente
tutta l'informazione nel loro contentuo. Il problema accade quando
i spider incontrano alcuni indirizzi generati dinamicamente. La
maggior parte di queste pagine non ha un vero contenuto finchè
qualcuno non clicca sullo specifico link che poi esegue alcune operazioni
che lo mettono insieme su richiesta, di solito ricavando le informazioni
da un database.
All'occhio del visitatore umano la pagina creata dinamicamente
non presenta molta differenza rispetto ad una identica scritta in
modo statico. Ma la natura dinamica di queste pagine può
creare problemi ai motori di ricerca.
Immaginiamo un sito che vende abbigliamento e, invece di fornire
un indirizzo statico del tipo http://www.azienda.it/maglietta-blu.html,
presenta degli indirizzi del tipo:
http://www.azienda.it/pagina?prodotto=1&tipo=maglietta&colore=blu
Questo tipo di indirizzo consente alla stessa pagina di visualizzare
più prodotti, a seconda dei parametri scelti dal visitatore
del sito. Non soltanto per la grande varietà delle combinazioni,
ma anche per non rischiare di entrare in loop su questi indirizzi,
i spider evitavano di indicizzare i siti dinamici, ignorando le
pagine che contenevano più query string. (Ciascun segno interogativo
nell'indirizzo è una query string).
L'idea dietro il mod_rewrite era quella di cambiare l'aspetto
dinamico di un URL in un aspetto statico. Dal momento che il segno
interrogativo e quello uguale erano evitati dagli spider, alcuni
programmatori hanno iniziato a sostituire questi segni con altri
caratteri, tra cui lo slash ( / ), rescrivendo indirizzo come prodotto?ID=210
con prodotto/id/210,
che per lo spider poteva sembrare una sotto directory.
Perché evitarlo?
Ma le cose cambiano. Oggi le pagine dinamiche sono una soluzione
standard adottata da milioni di siti. I programmatori dei motori
di ricerca sanno bene questo, quindi, hanno trovato nuove modalità
per leggere ed indicizzare queste pagine.
Se guardiamo i risultati di ricerche in Google o in Yahoo! troviamo
tantissimi URL dinamici. Questi possono essere indirizzi di cataloghi,
articoli di forum o altri documenti generati on the fly.
Prima che i motori siano in grado (e siano disponibili) ad incicizzare
pagine con query string era fondamentale convertire i link in un
formato statico. Ma oggi questa tecnica non sembra più necessaria.
Basta guardare i risultati delle ricerche, e troveremo tantissime
pagine dinamiche indicizzate con successo.
Inoltre, il mod_rewrite richiede anche più risorse di sistema,
probabilmente più spazio disco e più banda e traffico
a disposizione. E poi a volte i motori indicizzeranno sia il contenuto
dinamico sia quello statico, il che vale a contenuto dupplicato,
il grande "no" dei motori di ricerca.
Applicazione del mod rewrite nel SEO
Ma anche se per l'indicizzazione non serve più mascherare
gli indirizzi dinamici, il mod_rewrite, se ottimizzato adeguatamente,
potrà portare i suoi benefici nel posizionamento. Ecco come:
Se la pagina www.azienda.it/prodotto.php?id=1000
è riscritta con un risultato del tipo:
www.azienda.it/prodotto.php/id/1000
abbiamo eliminato le query string, ma sostanzialmente non abbiamo
portato nessun beneficio al miglioramento della nostra presenza
nei motori. Se invece durante la re-scrittura dell'indirizzo usiamo
nel nome del file generato non soltatno lo slash ma anche valori
presenti nel titolo o nome del prodotto, il nostro URL avrà
una rilevanza sicuramente superiore se ha questa forma:
www.azienda.it/maglietta_rossa/taglio_large
Spesso i siti web sono pre-impostati a lato server per far sì
che la stessa pagina sia raggiungibile con e senza www:
http://www.dominio.it/pagina.htm
http://dominio.it/pagina.htm.
E' una soluzione positiva in quanto se il visitatore della pagina
web si dimentica di inserire nell'url la stringa "www"
giungerebbe ad una pagina di errore 404 (pagina non trovata).
I motori di ricerca indicizzano sia le URL prive di www che sia
quelli lo contengono. Questo può trasformare il beneficio
di sopra in un effetto malefico, in quando darà il risultato
di contenuto dupplicato, facendo scattando i filtri
antiduplicazione, che anche se non eliminano la pagina
dall'indice del motore di ricerca possono influire negativamente
sul ranking complessivo del sito.
Per evitare che i motori di ricerca indicizzino entrambe le versioni
del sito, sia con e sia senza www, si può inserire il seguente
codice nel file .htaccess nella root principale del sito:
Per indicizzare solo la versione con www:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.dominio\.it [NC]
RewriteRule ^(.*)$ http://www.dominio.it/$1 [L,R=301]
</IfModule>
Per indicizzare solo la versione senza www:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^dominio\.it [NC]
RewriteRule ^(.*)$ http://dominio.it/$1 [L,R=301]
</IfModule>
Articoli correlati:
Ottimizzazione
dei siti dinamici
Documentazione
mod_rewrite di Apache 
|