Rastreador de Facebook

La forma más frecuente de compartir contenido en Facebook es en forma de página web. La primera vez que alguien comparta un enlace, el rastreador de Facebook extraerá el HTML de la URL para recopilar, almacenar en caché y mostrar información sobre el contenido en Facebook, como un título, una descripción y una imagen en miniatura.

Acceso del rastreador

El rastreador de Facebook necesitar tener acceso a tu contenido para extraerlo y compartirlo correctamente. Tus páginas deben estar visibles para el rastreador. Si exiges iniciar sesión o restringes de cualquier otro modo el acceso a tu contenido, tendrás que incluir al rastreador en la lista blanca. También debes eximirlo de los mecanismos de protección frente a ataques DDoS.

Si el contenido no está disponible en el momento de la extracción, puedes forzar una nueva extracción cuando esté disponible al pasar la URL por el depurador de contenido compartido.

Identificar el rastreador

El rastreador de Facebook puede identificarse mediante una de estas dos cadenas de agente de usuario:

facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)

O bien

facebookexternalhit/1.1

Puedes dirigirte a uno de estos agentes de usuario para proporcionar al rastreador una versión no pública de tu página que solo tenga metadatos, no contenido real. De este modo, optimizarás el rendimiento e impedirás que se acceda a contenido de pago.

A 28 de mayo de 2014, también es posible ver un rastreador con la siguiente cadena de agente de usuario:

Facebot

Facebot es el robot de rastreo web de Facebook que ayuda a mejorar el rendimiento de publicidad. Facebot está diseñado para ser educado. No intenta obtener acceso a cada servidor web más de una vez cada pocos segundos, de acuerdo con las normas de la industria y respetará tu configuración de robots.txt.

Ten en cuenta que Facebot comprueba los cambios en tu archivo de robots.txt del servidor solo unas cuantas veces al día, de modo que las actualizaciones se considerarán en el siguiente rastreo y no de manera inmediata.

Limitación de velocidad del rastreador

Puedes etiquetar páginas y objetos para cambiar la frecuencia con la que el rastreador de Facebook comprobará si tienen nuevo contenido. Utiliza la propiedad de objeto og:ttl para limitar el acceso del rastreador si está siendo demasiado invasivo.

Proporcionar acceso al rastreador

Hay dos formas de proporcionar acceso al rastreador:

  1. Incluir en la lista blanca las cadenas de agente de usuario indicadas anteriormente, que no requiere ningún tipo de mantenimiento
  2. Incluir en la lista blanca las direcciones IP utilizadas por el rastreador, que es más seguro:

Ejecuta este comando para obtener una lista actualizada de las direcciones IP que utiliza el rastreador.

whois -h whois.radb.net -- '-i origin AS32934' | grep ^route  

El comando devolverá una lista de direcciones IP que cambian con frecuencia:

# For example only - over 100 in total
31.13.24.0/21 
66.220.144.0/20    
2401:db00::/32  
2620:0:1c00::/40  
2a03:2880::/32 

Garantizar una latencia razonable

Asegúrate de que el rastreador pueda recuperar de forma razonablemente rápida (en no más de varios segundos) los recursos a los que se hace referencia en las URL que se van a rastrear. De lo contrario, Facebook no podrá mostrar el recurso.

URL canónicas

Nuestro rastreador captura el contenido para compartir al resolver la URL que designes como canónica.

A modo de práctica recomendada, etiqueta todas las variaciones de una página con la URL canónica al usar og:url (opción recomendada) o link rel="canonical". El propio HTML de la URL canónica debe contener también una etiqueta og:url para designarse a sí mismo como recurso canónico.

<meta property="og:url" content="https://example.com/path" />

De este modo, se garantiza que todas las acciones, como los Me gusta y las veces que se comparte el contenido, se agrupen en la misma URL, en lugar de distribuirse entre varias versiones de una página.

Del mismo modo, las diferentes versiones del mismo contenido se tratarán como una sola, aunque estén alojadas en subdominios distintos o se pueda acceder a ellas a través de http:// y https://.

Si es necesario, nuestro rastreador seguirá una cadena de redireccionamientos para resolver la URL canónica.

Migrar contenido y actualizar URL

Si migras el contenido de una URL a otra, los Me gusta y las veces que se compartió el contenido no se migrarán automáticamente. Puedes conservar el recuento de este tipo de acciones mediante estos dos pasos:

1. Eximir el rastreador de Facebook de tu redireccionamiento HTTP

Utiliza un redireccionamiento HTTP 301 o 302 para enviar a los usuarios a la nueva URL cuando visiten la antigua.

No obstante, el rastreador necesita poder acceder a la página antigua, por lo que exime a su agente de usuario del redireccionamiento y envía un redireccionamiento HTTP únicamente a clientes de rastreador que no sean de Facebook.

El HTML de la URL antigua debe seguir conteniendo etiquetas de Open Graph (incluida una etiqueta og:url que apunte a sí misma) y devolver una respuesta HTTP 200 cuando el rastreador lo cargue.

Asegúrate también de que tu registro AAAA esté actualizado correctamente cuando cambies la URL, porque el rastreador lo buscará y devolverá un código "0" si no lo encuentra.

2. Utilizar la página antigua como URL canónica de la nueva

Agrega esta etiqueta al HTML de la nueva URL:

<meta property="og:url" content="https://example.com/old-url" />

Aunque se recomienda utilizar la etiqueta og:url, este método funcionará también con rel=canonical.

De este modo, se indica a nuestro rastreador que la URL canónica está en la ubicación antigua; el rastreador la utilizará para generar la cantidad de Me gusta de la página. Los nuevos Me gusta de cualquiera de las dos ubicaciones se agruparán en ambos lugares.

La URL antigua debe seguir mostrando un documento con etiquetas de Open Graph y devolver una respuesta HTTP 200, al menos cuando la cargue el rastreador de Facebook. La URL antigua debe contener su propia etiqueta og:url que apunte a sí misma. Si quieres que otros clientes hagan el redireccionamiento cuando visiten la URL, debes enviar la respuesta HTTP 301 a todos los clientes del rastreador que no sean de Facebook.

Puedes aprender a reconocer el rastreador de Facebook en nuestra guía de prácticas recomendadas sobre el uso compartido.