Come ottimizzare OsCommerce

Come ottimizzare OsCommerce

Sfruttare quel che osC già offre
Modificare il tag title
Evitare le duplicazioni di pagine
I meta tag
Il file robots.txt
F.A.Q. e sitemap
Consigli finali generali

Sfruttare quel che OsCommerce già offre

OsCommerce è liberamente modificabile, e questo ci permette ovviamente un’ampio raggio d’azione. L’unico limite potrebbe essere nelle nostre capacità di programmare in php, ma io sono il primo a non saper programmare 😉

OsCommerce già contiene alcune feature che possono aiutare il nostro lavoro di ottimizzazione, e sono a disposizione sul pannello di amministrazione. Mi riferirò ad un pannello in lingua italiana, ma sarà comunque semplicissimo capire a quali voci mi riferisco.

Andando in “Configurazione”, ci ritroviamo direttamente sulla schermata “My store” (capito perchè è semplice ritrovarsi su una versione inglese? Non tutto è necessariamente tradotto…). Qui vediamo la voce “Use Search-Engine Safe URLs (still in development)”: settiamone il valore a “true”. In questo modo OsCommerce eliminerà dagli URL i caratteri “?”, “&” e “=”, che non sono particolarmente ben visti dai motori di ricerca in quanto indicano che la pagina è soggetta a diverse variabili, rendendo quindi più complicato “inquadrarla”.

Sempre sotto “Configurazione”, troviamo sul menù laterale il link a “Sessions”. Qui è necessario settare su “true” la voce “Prevent Spider Sessions”. In questo modo, OsCommerce non aggiungerà il SID, impedendo quindi che gli spider vedano l’url della pagina con questa variabile appesa (il che farebbe vedere allo spider la stessa pagina con un numero infinito di URL differenti).

Modificare il tag title

Il tag <title><title> è molto importante ai fini del posizionamento perchè è considerato (non a torto!) la presentazione della pagina (ed è, infatti, l’elemento più visibile di un risultato sui motori di ricerca). In OsCommerce, il title viene definito dalla variabile “TITLE” nei file di lingua (includes/languages/*.php). Questo non è, però, quel di cui abbiamo bisogno. Dobbiamo infatti personalizzare il title in modo che ogni pagina abbia il suo.

Dobbiamo quindi intervenire su tutti i file php sulla root della nostra installazione. Cerchiamo quindi la riga contenente il tag <title> e modifichiamolo secondo le nostre esigenze. Consiglio di inserire pochi termini nel <title><title> (diciamo non più di tre), e fare in modo che siano chiaramente indicativi del contenuto della relativa pagina.

C’è però una pagina che cambia contenuto al variare delle variabili passate all’URL: product_info.php. Questa pagina è fondamentale, poichè è dove vengono trovati tutti i prodotti che abbiamo in catalogo. Ottimizzare questa pagina, quindi, può aiutarci molto nel posizionare sui motori di ricerca i singoli prodotti in vendita. Dobbiamo quindi fare in modo che il title visualizzi il nome del prodotto in maniera dinamica. Suggerisco questa modifica:

<?php
$product_info_query = tep_db_query(“select pd.products_name, p.products_model from ” . TABLE_PRODUCTS . ” p, ” . TABLE_PRODUCTS_DESCRIPTION . ” pd where p.products_status = ‘1’ and p.products_id = ‘” . (int)$HTTP_GET_VARS[‘products_id’] . “‘ and pd.products_id = p.products_id and pd.language_id = ‘” . (int)$languages_id . “‘”);
$product_info = tep_db_fetch_array($product_info_query);
$products_name = $product_info[‘products_name’];
?>
<!doctype html public “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=<?php echo CHARSET; ?>”>
<title><?php echo TITLE . ” – ” . $products_name; ?></title>

In questo modo, il <title><title> visualizzerà il nome dell’e-commerce e il nome del prodotto così “STORE – Prodotto”. Ovviamente questa è solo una proposta, e si può optare per altre scelte, ma questa ha il vantaggio di avere pochi termini nel title, ‘sì da non diluire il valore di ciascun termine, mantenendo visibile il proprio brand (visualizzando appunto “STORE”) e allo stesso tempo spingendo il nome del prodotto.

Evitare le duplicazioni di pagine

La pagina product_info.php è, di default, raggiungibile tramite tre differenti URL. A seconda della provenienza, infatti, dell’utente, questo potrà infatti vedere lo stesso prodotto (in questo esempio identificato dall’id 1, come anche la categoria e il produttore) agli URL product_info.php/products_id/1, product_info.php/cPath/1/products_id/1 e product_info/manufacturers_id/1/products_id/1.

Questo comporta che i motori di ricerca vedranno tre pagine uguali, e ad un certo punto decideranno di considerarne soltanto una, a loro discrezione. Di conseguenza, la spinta di alcuni link interni di OsCommerce si disperderà su più pagine invano. Conviene quindi apportare una piccola modifica al codice di OsCommerce al fine di rendere raggiungibili i vari prodotti sempre e soltanto con un URL univoco.

Nel file includes/functions/html_output.php, cerchiamo la riga contenente

if ( (SEARCH_ENGINE_FRIENDLY_URLS == ‘true’) && ($search_engine_safe == true) ) {

e modifichiamo quel blocco di codice come segue:

if ( (SEARCH_ENGINE_FRIENDLY_URLS == ‘true’) && ($search_engine_safe == true) ) {
while (strstr($link, ‘&&’)) $link = str_replace(‘&&’, ‘&’, $link);
// rimuove le pagine duplicate
$link = ereg_replace(‘cPath=[0-9]+&products_id’,’products_id’,$link);
$link = ereg_replace(‘manufacturers_id=[0-9]+&products_id’,’products_id’,$link);
// fine filtro antiduplicazione 😉
$link = str_replace(‘?’, ‘/’, $link);
$link = str_replace(‘&’, ‘/’, $link);
$link = str_replace(‘=’, ‘/’, $link);
$separator = ‘?’;
}
if (isset($_sid)) {
$link .= $separator . $_sid;
}
return $link;
}

Con questa modifica, i link ai prodotti avranno sempre lo stesso URL di destinazione, product_info.php/products_id/1.

Questa modifica puè essere fatta senza problemi su un OsCommerce in produzione, poichè le pagine già indicizzate dai motori di ricerca con l’URL più lungo (con cPath o con manufacturers_id) saranno comunque raggiungibili e visibili. Solo che non essendo più linkate verranno sostituite velocemente dalla pagina che invece riceve i link.

Un altro file che necessità lo stesso tipo di modifica è la homepage, il file index.php. Una veloce soluzione per personalizzare il <title> nel file index.php è il seguente:

<?php
// hack per il title
if (isset($cPath_array)) {
for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) {
$title_categories_query = tep_db_query(“select categories_name from ” . TABLE_CATEGORIES_DESCRIPTION . ” where categories_id = ‘” . (int)$cPath_array[$i] . “‘ and language_id = ‘” . (int)$languages_id . “‘”);
if (tep_db_num_rows($title_categories_query) > 0) {
$title_categories = tep_db_fetch_array($title_categories_query);
$title_category = $title_categories[‘categories_name’];
$final_title = ” – keyword – ” . $title_category;
}
}
}
elseif (isset($HTTP_GET_VARS[‘manufacturers_id’])) {
$title_manufacturers_query = tep_db_query(“select manufacturers_name from ” . TABLE_MANUFACTURERS . ” where manufacturers_id = ‘” . (int)$HTTP_GET_VARS[‘manufacturers_id’] . “‘”);
if (tep_db_num_rows($title_manufacturers_query) > 0) {
$title_manufacturers = tep_db_fetch_array($title_manufacturers_query);
$title_manufacturer = $title_manufacturers[‘manufacturers_name’];
$final_title = ” – keyword – ” . $title_manufacturer;
}
}
else {
$final_title = ” – keyword”;
} ?>

Ovviamente questo è uno spunto, e non il codice perfetto. Adattatelo secondo i vostri desideri.

I meta tag

Non considero particolarmente importanti i meta tag “keywords” e “description” ai fini del posizionamento. Ritengo però che il meta “description” possa essere usato in maniera saggia, generando quindi una frase ad effetto che spinga l’utente a cliccare sul nostro risultato nella pagina dei risultati dei motori di ricerca (quando, beninteso, questi decidono di visualizzare il contenuto nello snippet sulla pagina dei risultati di ricerca). Allo stesso modo visto con il tag <title>, dovremo modificare tutte le pagine php presenti sulla root del nostro e-commerce. In ogni pagina dovremo visualizzare un messaggio relativo al contenuto della pagina stessa.

Suggerisco, quindi, una semplice e banale modifica da apportare al file product_info.php.

<meta name=”description” content=”<?php echo ‘Acquista in totale sicurezza i nostri prodotti. Aggiungi al carrello: ‘ . $products_name; ?>”>

Con questa semplice riga di codice, il meta description di ogni scheda prodotto sarà nella forma “Acquista in totale sicurezza i prodotti di STORE. Aggiungi al carrello: prodotto”.

Modificate questa riga come più ritenete opportuno. Una accortezza, però: fate in modo che il contenuto del meta description sia più lunga di 50 caratteri e che non superi i 100/120 caratteri. In questo modo, aumentate le possibilità che i motori di ricerca visualizzino quel che vorrete voi.

Considerate, ad ogni modo, che esistono diverse contributions messe a disposizione dalla comunità sul sito ufficiale di OsCommerce che permettono di personalizzare i meta tag (in alcuni casi, il contenuto dei due meta tag keywords e description vengono salvati su database, semplificando quindi la loro gestione). Potete cercare queste contribution a questo indirizzo.

Il file robots.txt

Il file robots.txt serve a indicare agli spider quali percorsi del nostro sito non devono visitare. Il file robots.txt, che va messo nella document root del nostro sito web, potrebbe contenere quanto segue:

User-agent: *
Disallow: /account.php
Disallow: /checkout_shipping.php
Disallow: /create_account.php
Disallow: /login.php
Disallow: /password_forgotten.php
Disallow: /popup_image.php
Disallow: /shopping_cart.php
Disallow: /cookie_usage.php
Disallow: /shopping_cart.php

In questo modo, diciamo a tutti gli spider di non visitare le pagine elencate.

Potete trovare maggiori informazioni sul robots.txt qui (in lingua inglese).

F.A.Q. e sitemap

F.A.Q. e mappa del sito possono essere due strumenti molto utili per i visitatori di un sito web, e anche i motori di ricerca li apprezzano molto. Anche in questo caso possiamo trovare contributions già pronte. Mi limito però a dare un paio di consigli riguardanti la mappa del sito.

Il primo consiglio è di non linkare tutte le pagine del proprio shop, ma solo quelle più importanti. In particolare, non credo valga la pena linkare ogni singolo prodotto, ma basta linkare le varie categorie.

Il secondo consiglio riguarda la tematizzazione dei vari link presenti sulla sitemap. Con questa frase intendo dire che, accanto al link, che deve avere un’anchor significativo ma in tema (ad esempio, la pagina con l’informativa sulla privacy potrebbe essere linkata con anchor “privacy”), è opportuno mettere una piccola descrizione, che spieghi meglio il contenuto della pagina di destinazione (restando all’esempio della privacy, il testo accanto al link potrebbe essere “Informazioni sulla tutela della privacy”). I motori, infatti, danno, non c’è dubbio, molta importanza all’anchor dei link, ma risulta molto importante anche il testo che sta attorno ai link. Questo permette quindi di dare utili informazioni al motore di ricerca (oltre che, ovviamente, all’utente!).

Consigli finali generali

In questa guida abbiamo messo in evidenza alcune utili modifiche che possiamo apportare ad OsCommerce. Non abbiamo parlato di altri fattori molto importanti ai fini del posizionamento, in primis la link popularity. Rimandiamo alle guide sul posizionamento nei motori di ricerca precedentemente segnalate per informazioni generali.

OsCommerce è software open source, che possiamo quindi modificare a nostro piacimento. Più impariamo a modificare OsCommerce secondo le nostre esigenze e più impariamo le varie tecniche SEO (acronimo per Search Engine Optimization), più risultati saremo in grado di ottenere. Ma ci teniamo a sottolineare che non esistono formule magiche per posizionarsi sui motori di ricerca. Serve molto studio, molta pazienza, e soprattutto contenuti originali e interessanti.

Leave a Reply

Your email address will not be published. Required fields are marked *