Solicitudes GET y POST y cómo mostrar de forma segura más información de la Web

miércoles, 16 de noviembre de 2011

A medida que evoluciona la Web, las capacidades de rastreo e indexación de Google también deben progresar. Hemos mejorado la indexación de Flash , hemos creado una infraestructura más sólida denominada Caffeine e, incluso, hemos empezado a rastrear formularios cuando lo consideramos oportuno. Ahora, especialmente con el aumento de la popularidad de JavaScript y, con él, AJAX, estamos encontrando cada vez más páginas web que requieren solicitudes POST, bien para todo el contenido de la página, bien porque a las páginas les falta información o porque parecen completamente dañadas sin los recursos que se obtienen a través de POST. Para la Búsqueda de Google esto no es lo ideal, debido a que si no descubrimos e indexamos contenido de forma adecuada, los usuarios no pueden acceder al conjunto de resultados más completo y relevante.

Normalmente, recomendamos utilizar GET para recuperar recursos necesarios para una página y este es, con diferencia, nuestro método de rastreo preferido. Hemos iniciado experimentos para reescribir las solicitudes POST como GET y, aunque este sistema es válido en algunos casos, frecuentemente el contenido que devuelve un servidor web para GET y para POST es completamente diferente. Además, existen razones de peso para utilizar POST (por ejemplo, a las solicitudes POST se les puede adjuntar una mayor cantidad de datos que a las solicitudes GET). Por ello, aunque las solicitudes GET siguen siendo mucho más habituales, para mostrar más contenido en la Web, es posible que ahora Googlebot ejecute solicitudes POST cuando lo consideremos seguro y apropiado.

Tomamos las precauciones necesarias para evitar que se lleven a cabo cualquier tipo de tarea en un sitio que pueda dar lugar a una acción no intencionada por parte del usuario. Nuestras solicitudes POST se utilizan fundamentalmente para rastrear recursos que las páginas solicitan de forma automática, imitando lo que visualizaría un usuario normal cuando abre una URL en su navegador. Esto evolucionará con el tiempo a medida que descubramos heurísticas más adecuadas, pero por el momento este es el sistema que estamos utilizando.

Analicemos algunas situaciones relacionadas con las solicitudes POST que demuestran de qué forma estamos mejorando nuestros procesos de rastreo e indexación para evolucionar con la Web.

Ejemplos de solicitudes POST de Googlebot
  • Cómo rastrear una página a través de un redireccionamiento POST
<html>
<body onload="document.foo.submit();">
<form name="foo" action="request.php" method= "post" >
<input type="hidden" name="bar" value="234"/>
</form>
</body>
</html>
  • Cómo rastrear un recurso a través de la solicitud XMLHttpRequest de POST
En este ejemplo con instrucciones "paso a paso", mejoramos tanto la indexación de una página como la Vista previa instantánea de esta siguiendo la solicitud XMLHttpRequest automática generada a medida que se muestra la página.
1. Google rastrea la URL, yummy-sundae.html.
2. Google comienza a indexar yummy-sundae.html y, como parte de este proceso, decide intentar mostrar la página para entender mejor su contenido o generar la Vista previa instantánea.
3. Durante la representación, yummy-sundae.html envía automáticamente una solicitud XMLHttpRequest de un recurso, hot-fudge-info.html, utilizando el método POST.
<html>
<head>
<title>Yummy Sundae</title>
<script src="jquery.js"></script>
</head>
<body>
This page is about a yummy sundae.
<div id="content"></div>
<script type="text/javascript">
$(document).ready(function() {
$. post ('hot-fudge-info.html', function(data)
{$('#content').html(data);});
});
</script>
</body>
</html>
4. La URL solicitada a través de POST, hot-fudge-info.html, se añade  junto con su carga útil de datos, a la cola de rastreo de Googlebot.
5. Googlebot ejecuta una solicitud POST para rastrear hot-fudge-info.html.
6. Ahora, Google tiene una representación exacta de yummy-sundae.html para la Vista previa instantánea. En algunos casos, también podemos incorporar el contenido de hot-fudge-info.html a yummy-sundae.html.
7. Google completa la indexación de yummy-sundae.html.
8. El usuario busca [hot fudge sundae].
9. Ahora, los algoritmos de Google pueden determinar de forma más adecuada la relevancia de yummy-sundae.html para esta consulta y pueden mostrar correctamente una captura de pantalla de la página para la Vista previa instantánea.
Cómo mejorar la capacidad de rastreo e indexación de tu sitio
En nuestro Centro de asistencia podrás encontrar consejos generales para crear sitios que se puedan rastrear. Para los webmasters que quieran ayudar a Google a rastrear e indexar su contenido o a generar la Vista previa instantánea, a continuación proporcionamos algunas indicaciones sencillas que se deben recordar:
  • Utiliza GET para recuperar recursos a menos que tengas un motivo concreto para utilizar POST.
  • Asegúrate de que Google pueda rastrear los recursos necesarios para la presentación de tu página. En el ejemplo anterior, si robots.txt no permite acceder a hot-fudge-info.html, Googlebot no podrá recuperar la página. De forma más específica, si el código de JavaScript que inicia la solicitud XMLHttpRequest se encuentra en un archivo .js externo al que robots.txt no permite el acceso, no podremos encontrar la relación entre yummy-sundae.html y hot-fudge-info.html; por tanto, aunque se pueda acceder a esta última URL, esto tampoco nos sirve de mucha ayuda. Hemos visto cadenas de dependencias aún más complicadas en la Web. Para ayudar a Google a entender mejor tu sitio, casi siempre es mejor permitir que Googlebot rastree todos los recursos.
Puedes probar si los recursos están bloqueados en las Herramientas para webmasters mediante las opciones "Labs -> Vista previa instantánea ".
  • Asegúrate de enviar el contenido a Googlebot tal y como lo muestre el navegador web del usuario. El encubrimiento (técnica consistente en enviar a Googlebot contenido diferente del que se muestra al usuario) constituye una infracción de nuestras Directrices para webmasters ya que, entre otras cosas, puede hacer que proporcionemos un resultado irrelevante al usuario (el contenido que el usuario visualiza en su navegador puede ser totalmente distinto del que hemos rastreado e indexado nosotros). Hemos visto numerosos ejemplos de solicitudes POST en las que los webmasters habían encubierto contenido sin querer (lo que sigue siendo una infracción). Esos encubrimientos, incluso con los cambios más insignificantes, produjeron errores de JavaScript que impidieron indexar correctamente el sitio y acabaron por completo con la idea de utilizar el encubrimiento en primer lugar. En resumen, si quieres que tu sitio sea fácil de buscar, el encubrimiento provoca situaciones complicadas a nivel general que es mejor evitar.
Para verificar que no has encubierto contenido accidentalmente, puedes utilizar la Vista previa instantánea de las Herramientas para webmasters o probar a configurar la cadena del user-agent en tu navegador de la siguiente forma:
Mozilla/5.0 (compatible; Googlebot/2.1;
+https://www.google.com/bot.html)
Tu sitio no debe mostrar un aspecto diferente después de esta modificación. Si ves una página en blanco o un error de JavaScript o si hay partes de la página que faltan o aparecen cambiadas, significa que algo está mal.
  • Recuerda que debes incluir el contenido importante (es decir, el contenido que quieres que se indexe) como texto. Este debe ser visible directamente en la página, sin que sea necesaria ninguna acción por parte del usuario para que se muestre. La mayoría de los motores de búsqueda se basan en texto y, generalmente, funcionan mejor con contenido basado en texto. Por nuestra parte, mejoramos continuamente nuestra capacidad de rastrear e indexar contenido publicado de diferentes formas, pero sigue siendo recomendable utilizar texto para la información importante.
Cómo controlar tu contenido
Si quieres evitar que tu contenido se rastree o se indexe para la Búsqueda Web de Google, el mejor método siguen siendo las directivas de robots.txt tradicionales. Para evitar que se realice una Vista previa instantánea de tus páginas, consulta las Preguntas frecuentes sobre la Vista previa instantánea [ inglés ] en las que se describen el user-agent "Google Web Preview" y la metaetiqueta "nosnippet".

Previsiones para el futuro
Continuaremos esforzándonos para aumentar la exhaustividad de nuestros procesos de indexación de forma que los usuarios puedan encontrar información más relevante. Asimismo, esperamos que nuestra capacidad de rastreo e indexación mejore y evolucione con el tiempo, al ritmo de la propia Web. Si tienes alguna duda o pregunta, ponte en contacto con nosotros.