IIS e gli URL case sensitive che creano contenuto duplicato

Giorgio Borelli

Chi sviluppa web con tecnologie di casa Microsoft, come ASP.NET, conosce sicuramente il Web Server IIS (Internet Information Server), allo stesso tempo è noto ai SEO il problema dei contenuti duplicati. Cosa centrano questi due aspetti, apparentemente così diversi, vi chiederete voi?

IIS ed i contenuti duplicati hanno un problema che li accomuna, quello delle URL case sensitive, indirizzi web che fanno distinzione tra lettere maiuscole (upper) e minuscole (lower). Per chi mastica web sa già bene di cosa sto parlando, ma facciamo un passo indietro e vediamo di spiegare le cose per bene e soprattutto di come risolvere il problema dei contenuti duplicati delle URL case sensitive.

In informatica esistono linguaggi di programmazione case sensitive e case insensitive, i primi fanno distinsione tra lettere maiuscole e minuscole i secondi no, quindi una variabile dichiarata come myvar è diversa da MyVar nel primo caso e non nel secondo.

Questo aspetto del case sensitive, non resta confinato al solo codice sorgente, ma si espande anche ad altri concetti come l'e-mail i file e le cartelle (file system) ed ahimè! anche agli URL degli indirizzi web.

Come funzionano i web server e gli url?

IIS il Web Server di Casa Microsoft è per sua natura case insensitive, quindi per lui un indirizzo del tipo http://www.informaticando.net/My-fantastic-Post è identico a http://www.informaticando.net/my-fantastic-post, lui risponde alla richiesta di risorsa (l'url) da parte del client (un browser) alla stessa maniera, fornendo sempre la stessa pagina, ovvero non fà distinsione tra le maiuscole e le minuscole presente nell'url. Lo stesso non vale invece per il Web Server Apache, a differenza di IIS quest'ultimo è case sensitive, ovvero i due indirizzi precedenti per Apache sono due risorse differenti e conseguentemente due indirizzi e due pagine diverse.

Cosa accade allora? Dove nasce il problema del contenuto duplicato?

Purtroppo per IIS anche i Motori di Ricerca ed in particolare Google sono case sensitive, ovvero vedono due indirizzi differenti, così accade che mentre IIS risponde con la stessa pagina, Google ne vede e ne indicizza due, non appena si accorge che il contenuto è identico (è la stessa pagina), lo etichetta come contenuto duplicato, penalizzando sulle SERP (Search Engine Result Page) dapprima la pagina incriminata e a lungo andare anche l'intero sito (soprattutto se le pagine duplicate sono parecchie).

Come risolvere gli URL case sensitive in IIS?

Le soluzioni per rendere IIS diciamo case sensitive, ossia mostrare una sola URL (preferibilmente in minuscolo) per lo stesso indirizzo in maiuscolo o minuscolo, sono diverse e più o meno complesse:

  • agire sulla configurazione di IIS per impostare gli URL sempre in minuscolo tramite un redirect
  • impostare un redirect 301 via codice ad url sempre in minuscolo
  • usare isapi_rewrite per la gestione delle url in minuscoloo

Tutte soluzioni un pò fariginose per chi mastica poco di programmazione e settaggi avanzati, per non parlare poi che molti siti ospitati in sharing su Server Windows, all'utente non viene fornito l'accesso ad IIS.

Come fare allora per risolvere il problema delle URL e del contenuto duplicato in IIS? Fermo restando che una soluzione via codice che riscriva le url sempre in minuscolo è quanto meno auspicabile, (questo comunque non risolverebbe il problema, poichè potrebbero linkare la nostra pagina da un sito esterno con un URL maiuscolo). La soluzione consiste non nell'agire su IIS, ma nel dire a Google qual'è la Pagina Canonica di quell'url.

Cos'è e come si indica una Pagina Canonica?

Una pagina canonica è la paginda di default o preferita tra una o più pagine con contenuti molto simili o come nel nostro caso con contenuto duplicato a causa delle URL case sensitive. Come si fà a dire a Google allora tra i diversi URL maiuscoli e minuscoli della nostra medesima pagina qual'è l'URL canonico, quello di riferimento per intenderci. Semplice con il link rel="canonical".

Il link canonical và aggiunto tra i metadati della nostra pagina, quindi all'interno della sezione head, avendo l'accortezza di specificare nell'attributo href qual'è l'URL canonico (preferibilmente tutto in minuscolo) che Google deve prendere in considerazione come definitivo, il link dovrebbe avere questo formato:

<link rel="canonical" href="http://www.informaticando.net/my-fantastic-post" /> 

Automatizzare una soluzione del genere in ASP.NET è davvero molto semplice, se può tornarvi utile provate a dare un'occhiata a questo articolo: Come accedere via codice all'Head di una pagina in ASP.NET.

Gli URL canonici risolvo il problema dei contenuti duplicati in IIS?

Si, non appena implementata la soluzione dell'introduzione del rel="canonical" nel link dell'head delle pagine web che girano sotto IIS, Google si accorgerà della modifica nel giro di poco tempo, riconoscendo così qual'è la versione canonica della vostra pagina, ne rimuoverà la penalizzazione di "contenuto duplicato" sulla pagina interessata. Probabilmente non vi posizionerete subito nelle SERP per dove eravate precedentemente alla penalizzazione, ma state certi che comincerete in fretta la risalita sulle SERP.

 

Se qualcuno desidera aggiungere qualcosa o porre ulteriori domande su IIS e le URL case sensitive con contenuti duplicati, lo spazio dei commenti è a vostra disposizione.

Categorie: Motori di ricerca | Seo | Web

Tags:

Aggiungi Commento

biuquote
  • Commento
  • Anteprima
Loading