Sitemaps & Robots


El uso de los archivos sitemap.xml y robots.txt como herramientas SEO para posicionar tu sitio web en buscadores tienen una alta importancia para indicar cuales páginas rastrear e indexar y cuales bloquear o excluir respectivamente. A continuación se da una explicación detallada de como implementar cada uno de ellos.

Sitemaps.xml

El uso de sitemaps es una de las mejores prácticas que podemos implementar al desarrollar un sitio web y es la manera en que podemos indicarle a los buscadores cuales páginas deben rastrear e indexar.  El simple uso de un sitemap no garantiza que nuestro sitio será incluido en los índices de los motores de búsqueda, pero de esta manera proveemos información que ayuda a los spiders a rastrear nuestro sitio de manera más especifica e inteligente.

Un sitemap es un archivo en formato XML codificado en UTF-8.

El siguiente ejemplo muestra un archivo sitemap en su forma más simple, incluyendo todos los parámetros opcionales.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>http://www.midominio.com/</loc>
    <lastmod>2005-01-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>

Del ejemplo anterior:

  • urlset – Encapsula todo el archivo, así como la definición de protocolos estándar.
  • url – Encapsula cada url que vamos a indicar en el sitemap, incluyendo sus parámetros.
  • loc – Indica la url a ingresar. (Es obligatorio indicar cada URL de manera completa incluyendo http)
  • lastmod (opcional) – Fecha de última modificación del archivo en formato YYYY-MM-DD.
  • changefreq (opcional) – Indica con qué frecuencia es susceptible de cambios la página que estamos indicando (always, hourly, daily, weekly, monthly, yearly, never).
  • priority (opcional) – Indica la prioridad de esta página relativa a las otras páginas de mi sitio (0.0 – 1.0). El valor por default es 0.5. Cabe mencionar que el valor que indiquemos no afectara la manera en la que los buscadores rastreen e indexen el sitio.

Google ha anunciado publicamente que para la mayoría de los sitios ya no toma en cuenta la “Prioridad” y “Frecuencia” por lo que al ser opcionales en el estandar comodamente podemos omitirlos. Sin embargo, se recomienda seguir usando la “fecha de última modificación”.

En el siguiente ejemplo se muestra un sitemap con múltiples URL’s, además de incluir los protocolos estándar para validación.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
  <loc>http://www.midominio.com/</loc>
  <lastmod>2012-09-13</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.9</priority>
</url>
<url>
  <loc>http://www.midominio.com/pagina2</loc>
  <lastmod>2012-09-13</lastmod>
  <changefreq>monthly</changefreq>
  <priority>0.5</priority>
</url>
</urlset>

Consideraciones

  • Normalmente se nombra al archivo sitemap.xml aunque no es obligatorio, así se recomienda.
  • Es muy recomendable que ubiquemos el archivo sitemap.xml en la raíz del servidor. Ejemplo: http://www.midominio.com/sitemap.xml
  • Una vez creado el sitemap y subido al servidor es recomendable notificar a los motores de búsqueda, ya sea a través de la herramienta para webmasters de cada buscador, haciendo ping al buscador o a través del archivo robots.txt.

Existen herramientas online que nos ayudan a generan de manera automática este tipo de archivos.

TIP

Puedes hacer una búsqueda especial en Google para saber cuáles páginas han sido ya indexadas utilizando el operador “site” en el campo de búsqueda de la siguiente manera:

Google site index site:domain.com

Información adicional

Un solo archivo sitemap no debe contener más de 50,000 url’s y no debe ser mayor a 50MB (sin compresíon). Si tus requerimientos son mayores puedes utilizar compresión gzip sitemap.xml.gz y utilizar índices  para agrupar varios sitemaps.

Ejemplo de un índice de sitemaps.

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
<sitemap>
  <loc>http://www.midominio.com/sitemap1.xml.gz</loc>
  <lastmod>2012-09-21T18:23:17+00:00</lastmod>
</sitemap>
<sitemap>
  <loc>http://www.midominio.com/sitemap2.xml.gz</loc>
  <lastmod>2012-09-21</lastmod>
</sitemap>
</sitemapindex>

Para más información: https://www.sitemaps.org

¿Cómo añadir URL’s móviles a un sitemap?

Los sitemaps móviles utilizan el protocolo de sitemaps con una etiqueta específica y un requisito adicional de espacio de nombre. Esto solo es necesario cuando tenemos una versión “mobile” de nuestro sitio, actualmente la recomendación es el diseño responsive en el cual el mismo sitio se adapta de manera automatica para visualizacion en diferentes tamaños de pantalla incluyendo mobiles.

Ejemplo de sitemap mobile.

<?xml version="1.0" encoding="UTF-8" ?>
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0">
  <url>
    <loc>http://m.dominio.com/ejemplo.html</loc>
    <mobile:mobile/>
  </url>
</urlset>

Consideraciones

  • El sitemap mobile debe ser exclusivo y solo puede contener URL´s con contenido para móviles, es decir, debe estar en un archivo separado.
  • Si falta la etiqueta <mobile:mobile/>, las URL de moviles no se rastrearan correctamente.

Robots.txt

El uso más común de este archivo es para excluir contenido que no queremos sea rastreado por los buscadores. El nombre debe ser obligatoriamente robots.txt, no debiera ser mayor a 500kB y de igual manera debe estar en la raíz del servidor.

No confundir con la etiqueta META Robots, esta indica que la página no debiera ser indexada (no index), mientras que la instrucción disallow del archivo robots.txt, indica que la página no debe ser rastreada (no crawl). Por lo tanto, una URL bloqueada por robots.txt aun puede ser indexada y aparecer en Google o cualquier otro buscador.

Ejemplo.

User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Sitemap: http://www.midominio.com/sitemap.xml

User-agent: bingbot
Disallow: /not-for-bing/

En el ejemplo anterior:

  • En User-agent indicamos el buscador al que afectará la regla, al poner asterisco indicamos que afectará a todos, de igual manera podemos incluir uno en especifico (“Googlebot” es el user-agent de Google y “bingbot” el de Bing).
  • Con la directiva “Disallow” negamos el acceso a todo el contenido de los directorios mencionados.
  • Se indica de manera opcional la ubicación del sitemap para complementar la información de rutas que deseamos sean rastreadas.
  • Finalmente un bloque especifico para Bing para bloquear cierto contenido de manera particular.

Usando:

Disallow: /

se niega el acceso a todo el sitio.

Cuidado con el uso de las barras, ya que de manera accidental podemos bloquear información.

Cabe mencionar que algunos buscadores admiten parámetros más específicos, por ejemplo para indicar concordancias de patrones en las directivas, pero no es soportado por todos.

¡Importante! El uso de este protocolo es meramente consultivo, es decir, confía en la cooperación de los rastreadores, pero de igual manera cualquier spider con otras intenciones (malware) puede ignorarlo. Además de que el contenido en el servidor de cualquier manera sigue siendo abierto al público y en algunos casos los rastros del archivo robots pueden indicarle al hacker donde está alojada la información que deseamos “proteger” por lo que se sugiere siempre adoptar otros mecanismos más seguros para ocultar documentos e información que no queremos sean accesibles para el público.

Puedes usar el archivo robots.txt para indicarle a los buscadores a que lugares o secciones de nuestro sitio no debieran ingresar, pero es importante saber que esto no previene que dicha URL sea mostrada en los resultados de las busquedas, simplemente el spider no ingresará a rastrear o leer el contenido de dicha página. Si hay suficientes enlaces apuntando a esta URL el buscador seguro la indexará e incluirá en sus resultados, simplemente no sabrá el contenido que hay en ella.

robots.txt blocked url directory

Si lo que deseas es que una URL no sea mostrada en los resultados de las busquedas necesitas usar la etiqueta noindex en el metatag robots. Consulta nuestro artículo sobre etiquetas META para más información.

Para más información: http://www.robotstxt.org

Googlebot: Definición ampliada del protocolo robots.txt estándar.

Ejemplo de uso de directivas y parámetros ampliados definidos por Google:

User-agent: Googlebot
Disallow: /privado*/
Disallow: /*.xls$
Disallow: /*?
Allow: /*?$

/privado*/ – Para bloquear acceso a todos los subdirectorios que empiecen por “privado”.
/*.xls$ – Para bloquear todas las URL con extensión XLS.
/*? – Para bloquear el acceso a todas las URL que contengan un signo de interrogación.

En la última línea la directiva “Allow” que es soportada por Googlebot, al estar precedida por una directiva Disallow con parámetros que bloquean el acceso a URL’s que contienen en cualquiera de sus partes un signo de interrogación, la directiva Allow en este caso permitirá el acceso solo a las URL que finalicen con un signo de interrogación.

Por ejemplo, si el signo ? indica el ID de una sesión, puedes excluir todas las URL que lo contengan para asegurarte de que Googlebot no rastree páginas duplicadas. Sin embargo, las URL que finalizan con dicho símbolo podrían ser la versión de la página que quieres incluir.

Los parámetros anteriores solo son soportados por Google y es posible que sean interpretados de distintas maneras por otros robots.

Un ejemplo práctico de lo anterior es bloquear todas las URL con “query strings”, disallow /*?*, digamos que tenemos 10 parámetros con diferentes valores y que pueden estar en cualquier combinación, tendríamos cientos o miles de posibles direcciones. Sabemos que cada sitio cuenta con una cuota de rastreo asignada por el buscador, por lo que es importante hacer un uso eficiente de los recursos.

Lista de robots de Google (User-agent o crawlers)

  • Googlebot
  • Googlebot-News
  • Googlebot-Image
  • Googlebot-Video
  • Googlebot-Mobile
  • Mediapartners-Google
  • AdsBot-Google

TIP

Para eliminar una imagen de Google Imágenes.

User-agent: Googlebot-Image
Disallow: /imagenes/gato.jpg

De igual manera podemos utilizar todos los parámetros antes mencionados, para eliminar un cierto tipo de imágenes o todas las imágenes.

¿Cómo probar un archivo robots.txt?

Google también cuenta con una herramienta de prueba para robots.txt, en las herramientas para webmasters de Google en la opción de URL bloqueadas. Si no conoces o no has usado esta herramienta te recomiendo ampliamente te animes a explorar todas sus posibilidades ya que puede ser de gran ayuda para detectar y corregir detalles de gran impacto para el posicionamiento de tu sitio.

De igual manera en esta misma Consola de Google deberás ingresar la ubicación de tu Sitemap y de esta manera no será necesario indicarlo en tu archivo robots.txt.

Optimización para buscadores

Hoy en día Google y otros buscadores hacen un renderizado completo de tu página para comprender de mejor manera su estructura y contenido, incluyendo las hojas de estilo CSS, JavaScript JS, e incluso AJAX. Ningúno de estos contenidos o directorios debe ser bloqueado.

Particularmente en WordPress, no bloqueamos ningún directorio, es decir y contrario a la creencia popular, no debemos bloquear /wp-includes/, ni /wp-content/plugins/, ya que la mayoría de los CSS y JS residen en esas ubicaciones. Tampoco bloqueamos /wp-admin/ ya que como explicamos anteriormente, no evita que sea indexado y es fácil de encontrar, además WordPress de manera automática envía el Header HTTP x-robots-tag para evitar que sea indexado.


Una respuesta a “Sitemaps & Robots”

Responder a Rufino Lopez Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *