jueves, 5 de mayo de 2011

¿De verdad sabes hacer que una página no aparezca en Google?

[... usando el protocolo de exclusión de robots]

En el breve espacio de unos días me he visto envuelto en varias conversaciones sobre cómo hacer que una página publicada en internet no aparezca en el buscador de Google y he podido comprobar que existe bastante confusión sobre cómo se usa el protocolo de exclusión de robots.

A la pregunta ¿Tu cómo haces para que una página publicada en internet no aparezca en Google? me han contestado unas veces: "Pones un disallow para esa url en el fichero robots.txt" y otras: "Pones un disallow para esa url en el fichero robots.txt y añades una meta etiqueta NOINDEX en el html de la página". Bien, pues las dos respuestas son incorrectas.

¿Por qué un disallow de una página en el fichero robots.txt no es suficiente para evitar que aparezca en los resultados de Google?
El disallow le indica al robot de Google que no debe descargarse una página. Pero eso no significa que Google no pueda inferir que el contenido de esa página, sea el que sea, es relevante para una búsqueda determinada y por tanto ofrecer la url como uno de los resultados de búsqueda.

Intento ilustrarlo con un ejemplo. Imaginemos que tengo una página en la que desvelo el secreto de la eterna juventud. Como a mucha gente le interesa el tema resulta que un millón de páginas deciden enlazar a mi página con el texto "el secreto de la eterna juventud".

En este escenario decido que no quiero que nadie pueda encontrar el secreto de la eterna juventud buscando en Google y para ello añado una línea disallow en el robots.txt de mi portal.

El disallow impide que el robot de Google visite mi página y por tanto impide que Google conozca que en ella se desvela el secreto de la eterna juventud. Pero el robot de Google también visita el millón de páginas que tienen un link a mi página y en los índices de Google queda registrado que en un millón de páginas cuando se refieren al secreto de la eterna juventud ofrecen a sus usuarios el visitar mi página.

En esta situación ¿qué resultados ofrecerá el buscador de Google a un usuario que busque "el secreto de la eterna juventud"?. Pues muy probablemente uno de los resultados será mi página. Google no conoce el contenido de mi página, pero ha llegado a la conclusión de que mi página es un resultado relevante para esa búsqueda y se lo ofrece al usuario. Eso si, como no conoce el contenido de la página el resultado no tendrá snippet.

Este es sólo un ejemplo de cómo una página que no ha sido visitada por el robot de Google puede aparecer en los resultados de una búsqueda. Una explicación más detallada y con más ejemplos puedes encontrarla en este video (en inglés): Uncrawled URLs in search results

¿Por qué un disallow de una página en el fichero robots.txt más añadir una metatag NOINDEX no es suficiente para evitar que aparezca en los resultados de Google?
En este caso la respuesta es muy sencilla. Si tengo un disallow estoy impidiendo que el robot de Google vea el contenido de la página por lo que no podrá ver la meta NOINDEX y por tanto estaremos en la situación anterior. Google no conocerá el contenido de la página pero todavía es posible que la muestre como resultado en algunas búsquedas.

Entonces, ¿Cómo haces para que una página publicada en internet no aparezca en los resultados de Google?
Pues la respuesta también es muy sencilla. Asegúrate de que tu fichero robots.txt permite al robot de Google acceder a la página e incluye el meta NOINDEX en ella.

Si, ya se que es contra-intuitivo, pero es la forma correcta de hacerlo. Lo que pasará es que el robot de Google descargará la página, verá que en su cabecera figura un NOINDEX y entonces tomará nota de que esa página no debe indexarse y por tanto no aparecerá en los resultados de búsqueda.

Todo esto está explicado en castellano esta página de ayuda: Bloquear o eliminar páginas mediante un archivo robots.txt

Pregunta de bonus points. ¿Cómo haces para que un fichero pdf (una página flash, un vídeo o un fichero de audio) publicado en internet no aparezca en los resultados de Google?
La respuesta es también sencilla. Añade la directiva X-Robots-Tag en las cabeceras http usadas para servir el fichero. Esta directiva soporta todas las etiquetas META por lo que la directiva quedaria X-Robots-Tag: noindex

Más información en el artículo (en inglés): Robots Exclusion Protocol: now with even more flexibility

¿Es esto así para todos los buscadores?
No para todos. Es importante recordar que el protocolo de exclusión de robots es de adopción voluntaria por los buscadores y existen muchos robots que no lo respetan. Incluso, entre los que lo respetan existen distintos criterios sobre cómo debe comportarse un robot/buscador frente a una etiqueta.

Bing, el buscador de Microsoft, soporta todas las etiquetas mencionadas en este artículo y su comportamiento es idéntico al que he explicado, incluida la directiva X-Robots-Tag. De hecho, en la página Prevent a bot from getting “lost in space” (SEM 101) se puede encontrar el siguiente texto (las negritas son mías):

"Search engines read the robots.txt file repeatedly to learn about the latest disallow rules. For URLs disallowed in robots.txt, search engines do not attempt to download them. Without the ability to fetch URLs and their content associated, no content is captured and no links are followed. However, search engines are still aware of the links and they may display link-only information with search results caption text generated from anchor text or ODP information. 
However, web pages not blocked by robots.txt but blocked instead by REP directives in tags or by the HTTP Header X-Robots-Tag is fetched so that the bot can see the blocking REP directive, at which point nothing is indexed and no links are followed."

El caso de Yahoo! sin embargo es ligeramente diferente. Yahoo! soporta todas las etiquetas y directivas que se mencionan en este artículo, incluida la directiva X-Robots-Tag; pero en su página How to Prevent Search Engines from Indexing Specific Pages nos encontramos el siguiente texto:
"Although the document content is not indexed, the URL might remain in the search engine database as a reference link from other public web pages."
Artículos relacionados donde conseguir información adicional:

Update 8/Sept/2011



A cuidarse
Javier Arias González

7 comentarios:

  1. Hola Javier, me ha parecido muy interesante lo que comentas, pero tengo una duda. Verás, yo he comprado un dominio que al parecer tuvo otro propietario anterior y al darle de alta en las Google Webmasters tools me aparecen un montón de errores 404, páginas que evidentemente no existen pero que siguen enlazadas desde otras webs y el bot de Google detecta dichos enlaces y al acceder a mi sitio salta el error 404 porque no las encuentra. Creo que dicha situación me está perjudicando y lo que estoy tratando es de hacer desaparecer esos errores 404, pero no se muy bien como.

    Lo que he hecho es crear un robots.txt y colocar un disallow a cada una de esas páginas que me aparecen en GWT y ahora estoy borrandolas una a una con la herramienta de eliminacion de URL de Google Webmasters Tools. Se que con eso le estoy diciendo a Google que no indexe esas páginas y que las borre de su indice, pero mi duda es la siguiente: Dentro de un tiempo encontrará de nuevo los enlaces desde otros sitios a esas páginas inexistentes.. volverán a aparecer esos errores 404? Y si es así que debería hacer para librarme definitivamente de ellos? Tengo que crear páginas ficticias con el mismo nombre de las que dan error y colocarlas un NOINDEX?

    Te agradecería enormemente una respuesta. Gracias de antemano.

    ResponderEliminar
  2. Hola Iván,

    Eliminar las páginas con las GWT es una opción.

    Otra opción sería no dar un error 404 para esas páginas y en vez de ello hacer un redirect 301 a una página que este activa. De esta manera mostraremos al usuario una página un contenido.

    Una tercera vía sería crear estas páginas para que existan en realidad y aprovechar de esa manera el tráfico que te está llegando; esto puede ser interesante especialmente si el tráfico que recibes en esas páginas es alto y/o de calidad.

    A cuidarse
    Javier Arias González

    ResponderEliminar
  3. Muchas gracias Javier, voy a poner en práctica lo que propones y a ver si con los días se va arreglando la cosa. Un saludo y de nuevo gracias por tu pronta respuesta.

    ResponderEliminar
  4. Buenas tardes. Se publicó una resolución administrativa en un Boletín Oficial. Tras conseguir la nulidad de la misma, ejercité el derecho de oposición y se me concedió, dándose la orden al Boletín para que implementase las medidas necesarias para que los buscadores no difundirán la información.

    El Boletín Oficial introdujo las etiquetas NOFOLLOW y NOINDEX en la página del boletín del día en concreto. El problema es que la página que sale en google con mis datos personales es un archivo de PDF y yo creo que es una URL distinta. El boletín oficial me dice que no puede hacer otra cosa. Intentó actualizar el caché de google de las páginas y se me deniega.

    Si es tan amable, quisiera saber qué tengo que hacer para conseguirlo.

    Muchas gracias, Hector.

    ResponderEliminar
  5. Hola Hector,

    Lo primero a verificar es si la URL que está apareciendo en los buscadores es exactamente la URL a la que el BOE ha puesto la etiqueta NOINDEX. Otra cosa que puedes comprobar es si la URL (en realidad las URLs porque una única resolución tiene varias URLs dentro del BOE) está incluida en el fichero robots.txt (http://www.boe.es/robots.txt). También, al tratarse de un fichero pdf, habría que asegurarse de que la etiqueta NOINDEX se ha incluido en las cabeceras http de la página.

    Por último asegúrate de que las páginas que están apareciendo son efectivamente las del BOE y no de una de esas páginas webs que se dedican a replicar el contenido del BOE, en caso de que se tratase de una de estas tendrías que ejercer tu derecho de oposición frente a ellas.

    Espero haber sido de ayuda
    Javier Arias González

    ResponderEliminar
  6. Buenas noches.

    Muchas gracias por la respuesta. En realidad es una página de un Boletín Oficial de una Comunidad. Las etiquetas NOFOLLOW y NOINDEX las han puesto en la página del día de la publicación y luego en la página que se corresponde a la categoría donde está insertado el anuncio. Este se abre a con un enlace a un documento PDF. En sí, las etiquetas las han puesto en las otras páginas, que son las que se remiten a la URL que aparece en google y algún otro buscador. Me comentan que es el procedimiento correcto. No sé.
    En las páginas que han puesto las etiquetas, se puede abrir el código fuente y ver que están los términos NOFOLLOW y NOINDEX, pero en la URL que sale en internet, al ser un documento PDF, no se puede abrir el código fuente.
    Como verá estoy completamente perdido.
    ¿Es correcto lo que han hecho? y si no, ¿Qué etiqueta habría que poner en la URL que sale en google?. ¿Hay un protocolo de exclusión espefífico para estos casos?
    Por otro lado, le comento, que no me dejan eliminar contenido a través del Webmaster de Google por ser un documento PDF.

    Muchas gracias

    Hector

    ResponderEliminar
  7. Me dicen que la etiqueta NOINDEX no se pueden incluir en las cabeceras http de la página, si se trata de un documento PDF.
    La verdad no sé que hacer. Por cierto, ya no se usa el fichero robots. txt. No sé por qué.¿Hay otro sistema?

    Muchas gracias

    Hector

    ResponderEliminar

Los comentarios son bienvenidos en mis blogs. Se agradece y valora la participación y el intercambio de opiniones.

Sin embargo, no voy (no puedo) a contestar a todos los comentarios de mis blogs. Muchas veces no veo como añadir valor con una contestación por mi parte, en otras pesa más mi intención de no repetirme o monopolizar la conversación.

Por favor, si esperas o deseas que conteste a uno de tus comentarios hazlo explícito con un "¿tu que opinas Javier?" o similar.

El blog admite comentarios anónimos y sin moderación, pero borraré lo antes posible todo aquel comentario que no este en la línea del estilo de mis blogs.