robots.txt para WordPress

En innumerables ocasiones he leído en foros consultas, dudas y problemas relacionados al robots.txt, también un par de veces me han preguntado y la respuesta es la misma que suelo dar la mayoría de las veces que me preguntan algo sobre un sitio: DEPENDE.

Para entender que robots.txt es el que más se ajusta a nuestras necesidades, primero hay que entender en que consiste, una breve explicación:

El protocolo de robots.txt es un método para evitar que ciertos bots que analizan los sitios Web agreguen información innecesaria a los resultados de búsqueda.(Wikipedia)

Básicamente un robots.txt consiste en indicar el robot y lo que queremos que haga, el robot se indica como “User-agent: nombre del bot” y las órdenes “Allow :”, “Disallow :”

Por ejemplo si queremos que ningún robot pueda acceder al directorio “privado” vamos a poner lo siguiente:

User-agent: *
Disallow : /privado/

El caracter “*” es usado como comodín para indicar todos los robots, por ejemplo si quisiéramos que solo el robot de Yahoo no ingrese a la carpeta “privado” vamos a poner lo siguiente:

User-agent: Slurp
Disallow : /privado/

Hace bastante tiempo, WordPress (o sus desarrolladores) eran medios torpe y no incluían las meta tags noindex y nofollow en el área de administración y había que decirle al bot que no indexe el login por ejemplo, hoy ya eso no es un problema.

Como dije al principio, el robots.txt depende de que necesitemos y de las preferencias nuestras, por ejemplo a mi no me gusta que se indexe el archivo (2009/03), ni tampoco lo de autor (/author/*), ni las páginas (/page/*).

En el robots.txt también podemos incluir la dirección de nuestro sitemap del modo “Sitemap: http://dominio.com/sitemap.xml”

La orden “Allow” no suele ser muy utilizada, en mi caso la uso si creo algún directorio y quiero que google lo indexe más rápido, o para las categorías, tags e imagenes, aunque a veces no es necesario.

Muchos siguen teniendo en cuenta robots.txt de hace 3 años llenos de código innecesario, mi recomendación es que hagan un robot que sea lo más corto posible, como por ejemplo:

User-agent: *
Disallow:
Sitemap: http://dominio.com/sitemap.xml

Tengan en cuenta que los bots son case sensitive, esto quiere decir que no es lo mismo decirles que un directorio se llama “Privado” o “privado”.

Pueden encontrar información más detallada sobre los robots.txt en la web de los robots.

NoFollow, NoIndex, NoArchive y mas desde el Header

Muchos de ustedes conoceran las instrucciones para que los motores de busqueda Google no indexe, ni archive, y no siga los enlaces; Nofollow, Noindex y Noarchive.

meta tags

El atributo Nofollow es el que va cuando no queremos darle importancia a un enlace, ejemplo es de los feeds <a rel="nofollow" href="http://wordpress-hacks.com/feed">Feed con NoFollow</a>.

Mientras que el Noindex es un meta tag, que dice que no se indexe la pagina en cuestion, un ejemplo, son las paginas de contacto, o sitemaps, etc.

Ejemplo:  Politicas de Privacidad

<meta name="robots" content="noindex" />
[/php]
El Meta tag Noarchive, dice a google que no queremos que se guarde una copia de la pagina en la cache del buscador.
Se usa, al igual que como se usa el Noindex;

<meta name="robots" content="noarchive" />
[/php]

Los que usamos WordPress, para no andar agregando los meta tags a las paginas y/o articulos que desarrollamos, podemos configurar desde el header para que no se indexe lo que no queremos.

Por ejemplo, si no queremos que se indexen las busquedas, podemos poner:

PHP:
  1. <?php if(is_search()) { ?>
  2.   <meta name="robots" content="noindex,noarchive,nofollow" />
  3. <?php } ?>

O los errores 404, el archivo de autor, los meses, o mas.
Algunos ejemplos adicionales:

Error 404:

PHP:
  1. <?php if(is_404()) { ?>
  2.   <meta name="robots" content="noindex,noarchive,nofollow" />
  3. <?php } ?>

Archivo de autor:

PHP:
  1. <?php if(is_author()) { ?>
  2.   <meta name="robots" content="noindex,noarchive,nofollow" />
  3. <?php } ?>

Fechas:

PHP:
  1. <?php if(is_month()) { ?>
  2.   <meta name="robots" content="noindex,noarchive,nofollow" />
  3. <?php } ?>

Tags:

PHP:
  1. <?php if(is_tag()) { ?>
  2.   <meta name="robots" content="noindex,noarchive,nofollow" />
  3. <?php } ?>

Todos Juntos:

PHP:
  1. <?php if(is_search() || is_404() || is_tag() || is_month() || is_author()) { ?>
  2.   <meta name="robots" content="noindex,noarchive,nofollow" />
  3. <?php } ?>

No lo he visto en ningun lado este tip, lo encontre un dia modificando un theme ;)