Buongiorno a tutti,
scrivo questo articolo per cercare di spiegare in modo semplice, pratico e diretto come sviluppare siti web dinamici ottimizzati per i motori di ricerca, Google su tutti.
Nello specifico mi avvarrà dell’utilizzo del comodissimo mod_rewrite di apache, l’intero articolo è incentrato particolarmente su di esso.

L’articolo sarà  diviso in 2/3 parti:

  • Sviluppo siti internet “monolingua” con mod_rewrite di apache
  • Sviluppo siti internet “multilingua” + approfondimenti sistemistici
  • Eventuale terzo articolo con approfondimenti dettati da vostre richieste e suggerimenti

PREMESSA (REGOLE PER UNA VALIDA INDICIZZAZIONE NEI MOTORI DI RICERCA)

  1. Evitare la porcata di mettere parole chiave nascoste (non mi riferisco al solito meta tag) a raffica all’interno delle pagine del sito, se i motori se ne accorgono sono dolori… anzi, cazzi…
  2. Utilizzare per le pagine titoli che siano brevi e rappresentanti il reale contenuto della pagina web
  3. Utilizzare nomi di pagine che non siano: pagina1-int.php o cose simili, se sto realizzando una pagina che visualizza notebook la chiamerà notebook.php o simili
  4. Inserire sempre in tutte le pagine keywords e description, anche se contano sempre meno male non fanno. Se possibile personalizzarle per pagina
  5. Scegliere un nome di dominio possibilmente coerente con il tipo di attività  o prodotto da promuovere
  6. Scrivere codice compatibile con gli standard dettati dal W3C (quelli che tanto per intenderci alla Microsoft non sanno cosa sono…), personalmente consiglio XHTML 1.0 transitional che non stressa più di tanto ed è efficace (sono benvenuti suggetimenti differenti)
  7. Evitare sgami strani del tipo, quando passa Google gli faccio vedere qualcosa d’altro, se si accorgono che cià che il motore indicizza non è lo stesso di quello che visualizzerebbe un utente normale si incazzano e fanno bene
  8. Utilizzare tag come h1, h2 facilita il bot nel comprendere che quel testo è un titolo o un sottotitolo, per il corpo utilizzare ad esempio il tag html p

UTILIZZO DI MOD_REWRITE PER OTTENERE URL “PIACEVOLI” PER I MOTORI DI RICERCA

Veniamo ora al reale motivo per cui scrivo questo articolo.
Realizzare un sito dinamico è indubbiamente una cosa eccezionale per un cliente e per chi lo realizza, poter utilizzare un’unica pagina product.php?id=x è molto meglio di avere 800.000 pagine per ogni maledetto prodotto, idem per le news etc…
Purtroppo perà questi URL cosiddetti dinamici sono poco graditi ai motori di ricerca, Google su tutti, sia perchè la pagina esprime solo il concetto che tratta un prodotto, sia perchè proprio questo ?id=x non è amato da Google. Non parliamo poi di cose come ?id?x&a=2&b=y …

A salvarci da questo annoso problema viene incontro mod_rewrite di apache.
In pratica è possibile far puntare le nostre pagine a qualcosa di questo tipo: http://www.miosito.com/product/albero_motore_nave-10.html

Chiaramente questa risorsa non esiste sul nostro web server indiano preferito ma dovremo fare in modo che quando il browser dell’utente punta all’indirizzo sopra citato la pagina chiamata internamente da apache sia qualcosa tipo: product.php?id=x (il tutto trasparentemente per Google e per l’utente).

Per fare cià usiamo mod_rewrite e le direttive da lui fornite. Vediamo un esempio di direttiva che soddisfi il nostro caso:

RewriteEngine On
RewriteRule ^product/([^/]+).html product.php?id=$1 [L]

In sostanza con RewriteEngine On si dice al motore di avviarsi, con la seconda direttiva si comunica ad apache che per la risorsa /product deve prendere come variabile tutto cià che precede .html e utilizzarla come variabile $1 che poi verrà  comodamente passata in GET alla pagina php.

Chiaramente nello script dovremo parsare $_GET['id'] e “prelevare” il valore reale che ci interessa di quanto in input, ovvero 10.
E’ assolutamente possibile far fare questo parsing già  ad apache ma siccome non mi ricordo a memoria come si fa e sono le 3 di notte mi scuso e se lo scoprite segnalatemelo… :-D

E’ probabile che in realtà  il prodotto sia memorizzato nel DB con il nome di “Albero motore nave”, ovviamente prima di passarlo in GET è il caso di ripulirlo dei caratteri non prettamente alfanumerici e renderlo strtolower.

E’ assolutamente essenziale anche che tutto quanto presente e referenziato in product.php abbia come riferimento o il path assoluto alla risorsa o alla root del sito.

A seguire tra qualche giorno le restanti parti dell’articolo.

Tanti saluti e buon rewrite a tutti.
Max – info [AT] massimo-caselli [DOT] com