Lezione 6 – Contenuti duplicati e robots.txt

Posted on marzo 8, 2008
Filed Under Appunti di Php | 3 Comments

I redirect sono fondamentali per far capire al motore cosa e’ avvenuto e cosa deve leggere per evitare contenuti duplicati cosa che i motori di ricerca, come gli umani, odiano. Leggere sempre il solito testo annoia tutti ed i motori di ricerca non differiscono da tutti noi in questo comportamento. Per fare un esempio: supponiamo che il Web sia composto da due sole pagine Web ed un unico motore di ricerca; se le pagine Web contengono al loro interno la stessa scritta “Buongiorno Mondo” e’ inutile per un umano leggerle entrambe quindi e’ inutile che il motore le mostri entrambe nelle ricerche che verranno fatte cosa ben diversa se la prima pagina mostri la scritta “Buongiorno Mondo” e l’altra pagina mostri “Buonasera umano”.
Nel corso di questa lezione cercheremo di capire gli effetti negativi del contenuto duplicato, esamineremo i vari tipi di contenuto duplicato, capiremo come usare il file robots.txt per escludere il contenuto duplicato ed useremo il codice PHP per implementare adeguatamente i programmi di affiliazione.<br />
Alcune pagine con contenuto identico possono essere raggiunte da url differenti oppure alcune pagine di un catalogo possono avere simili descrizioni. Alcune pagine potrebbero avere meta tags duplicati o utilizzare la sessione per identificare la pagina. Tutte queste situazioni vanno assolutamente evitate e/o gestite in maniera appropriata.
Solitamente Google propone questi risultati come risultati supplementari di una ricerca. Il furto di contenuto e’ uno dei problemi che affligge il Web: e’ troppo facile copiare il contenuto ma capire quale e’ la fonte autoritativa, se non citata, e’ sempre piu’ difficile anche per i motori di ricerca. Uno dei servizi per verificare cio’ e’ offerto da:
http://www.copyscape.com

Per far “capire” ai motori che il contenuto delle nostre pagine e’ autoritativo esistono varie pagine apposite:
Google: http://www.google.com/dmca.html
Yahoo!: http://docs.yahoo.com/info/copyright/copyright.html
MSN: http://search.msn.com/docs/siteowner.aspx?t=SEARCH_WEBMASTER_CONC_AboutDMCA.htm

Per escludere il contenuto duplicato delle pagine incrimniate esistono due alternative:
1. meta tag robots
2. robots.txt

Nel primo caso occorre editare il codice HTML della pagina ed inserire all’interno del tag <head></head>  la seguente dicitura:
<meta name=”robots” content=”noindex, nofollow” />

Cio’ significa che il motore di ricerca non deve indicizzare la pagina e non deve seguire i link presenti in essa.
Nel caso in cui volessimo escludere particolari motori (ad es. Google ed MSN) potremo usare:
<meta name=”googlebot” content=”noindex, nofollow” />
<meta name=”msnbot” content=”noindex, nofollow” />

Cio’ e’ applicabile solo alle pagine HTML e non ai CSS o alle immagini. Questo limite puo’ essere superato utilizzando il file robots.txt che e’ un file che va posizionato nella root directory del sito. Per aggiori informazioni visitare: http://www.robotstxt.org/

Il file robots.txt non impedisce l’accesso ai file ma impedisce soltanto ai motori di indicizzare i contenuti indicati. il file robots.txt puo’ essere letto con ogni browser dall’indirizzo:

http://www.<DOMINIO>/robots.txt dove <DOMINIO> e’ il nome del nostro dominio (Es.: example.com). Per proteggere il contenuto delle pagine occorre impostare un livello di autenticazione agli utenti. Per impedire agli spider di indicizzare il proprio sito basta inserire all’interno del file robots.txt le seguenti righe:
# Impedisce l’indicizzazione ai motori di ricerca
User-agent: *
Disallow: /

Per impedire a Google di indicizzare il contenuto all’interno di /directory occorre inserire:
# Google non indicizza il contenuto a partire da /directory
User-agent: googlebot
Disallow: /directory

E’ possibile anche inibire l’accesso ad un file specifico indicando ad esempio:
Disallow: /file.html

E’ possibile creare il file robots.txt in maniera dinamica inserendo nel file .htaccess:
RewriteEngine On
RewriteRule ^robots.txt$ /robots.php

Il file robots.php sara’ cosi’  fatto:
<?php
header(‘Content-type: text/plain’);

?>
# Parte statica del file robots.txt

Il limite di grandezza per il file robots.txt e’ di 5000 caratteri. In tal modo e’ possibile escludere

contenuti in maniera dinamica.
Le pagine tipicamente duplicate sono:
– pagine di stampa
– pagine di affiliazione
– pagine con contenuto duplicato
– pagine con metatag e title duplicati
– pagine con id di sessione nell’url
– pagine con stesso contenuto ma url differente

L’id di sessione e’ molto usato nei siti di e-commerce perche’ una piccola parte di utenti disabilita i

cookie nel proprio browser Web. E’ possibile disattivare l’id di sessione nell’url aggiungendo nel file

.htaccess le seguenti righe:
php_value session.use_only_cookies 1
php_value session.use_trans_sid 0

La stessa cosa puo’ essere ottenuta tramite codice PHP in questo modo:
<?php
// Memorizza l’ID di  sessione usando i cookie
@ini_set (‘session.use_only_cookies’, 1);
// Disabilito il trans_sid
@ini_set (‘session.use_trans_sid’, 0);
?>

Nelle pagine di affiliazione e’ possibile aggiungere il seguente metatag:
<meta name=”robots” content=”noindex, nofollow”>

Oppure si puo’ inserire lo script di affiliazione in una directory ed escluderla a livello di robots.txt:
User-agent: *
Disallow: /affiliati/

Nel seguito un esempio di redirect con id di affiliazione:
1. All’interno del .htaccess inserire:
# Rewrite keyword-rich URLs
RewriteRule ^prodotti/.*-C([0-9]+)/.*-P([0-9]+)\.html$ i
/product.php?category_id=$1&product_id=$2&%{QUERY_STRING} [L]

2. All’interno di product.php avro’:
<?php
// Avvia la sessione…
session_start();
// Salve l’id affiliato
if (isset($_REQUEST[‘affId’]))
{
$_SESSION[‘affId’] = $_REQUEST[‘affId’];
}
// Redirect 301 verso l’url senza parametri

?>

In tal caso la pagina:
prodotti/studi-seo-C6/drink-birra-P3.html?affId=8

mostrera’ lo stesso contenuto di:
prodotti/studi-seo-C6/drink-birra-P3.html

{QUERY_STRING} rappresenta la query string presente nell’url utilizzato. Sara’ cura del programmatore,

dopo aver memorizzato la variabile di sessione, mostrare l’url senza i parametri con un redirect 301 del

tipo:
// 301 redirect to the new URL
header(‘HTTP/1.1 301 Moved Permanently’);
header(‘Location: ‘ . $urlPulito);

$urlPulito sara’ l’url statico ripulito dall’id affiliato.

Tag:, ,

Others Script adv

3 Responses to “Lezione 6 – Contenuti duplicati e robots.txt”

  1. Michela on luglio 10th, 2008 21:06

    Ciao
    ho un problema di cui non trovo soluzione..
    i motori di ricerca indicizzano tutto compreso i titoli che per la lingua italiana spesso ci si ritrovano gli apici singoli o doppi..
    questo diventa un problema che non riesco a risolvere.. in quanto chi clicca sul link presente nei motori si trascina talvolta alcuni caratteri che mettono il sito in condizione di errore..
    la pagina si vede ma sempre accompagnata da un errore..

    esempio link

    http://www.nome.it/articolo/10001/europa
    http://www.nome.it/articolo/10001/europa%5C
    e altri casi analoghi

    mentre il link esatto dovrebbe essere

    http://www.nome.it/articolo/10001/europa
    oppure
    http://www.nome.it/articolo/10001/europa/

    come fare per eliminare i caratteri di troppo o sostituirli con altri caratteri tipo (-) oppure (_)

    grazie anticipato
    User it M*

    l’errore restituito e:
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/nome/cartella/notizia on line 128

    Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /var/www/nome/cartella/notizia:128) in /var/www/nome/lib/header.inc.php on line 100
    Errore di sintassi nella query SQL vicino a ‘nome.it’, ‘ppp-123-19.12-101.libero.it’)’ linea 1

    tolto il carattere di troppo tutto funge..
    premetto che il carattere non è nel link.. ma i motori in qualche modo se lo portano nell’indicizzazione, probabilmente lo associano al contenuto.. della pagina

    .. nomi e percorsi di fantasia

  2. Leonardo on luglio 30th, 2008 12:14

    Ciao Michela,

    occorre capire come generi il link e togliere con uno str_replace i caratteri errati come apice, lettere accentate etc.

    Se riesci a chiarirmi come viene creato il link riusciamo tranquillamente a risolvere.
    Have fun…

  3. paik on marzo 2nd, 2009 16:09

    ciao, vorrei farti una domanda, utilizzo wordpress per il mio blog. Utilizzando un plugin per la traduzone ho notato che in “Analisi dupliceti” di google sono stati generati la bellezza di 56 pagine duplicate a causa del traduttore. Ho disinstallato il traduttore ma vorrei poter eliminare i contenuti duplicati. Potresti aiuarmi? Ti ringrazio

Leave a Reply