Mixbot: Cloudflare bloquea el crawler de Facebook, preview de compartir sale genérica #170
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Síntoma
Al compartir un artículo en Facebook (botón "Compartir" del sitio,
facebook.com/sharer/sharer.php?u=...), la preview que muestra Facebook es genérica (solo "feadulta.com"), no la del artículo concreto (título/descripción/imagen del post compartido).Diagnóstico
Comprobado en origen (SSH al server,
curla127.0.0.1conHost: www.feadulta.com, bypasseando Cloudflare): las etiquetas Open Graph del artículo están perfectas y específicas:El botón de compartir (
fea-share.php) enlaza correctamente a esa URL — no es un bug del sitio ni del HTML generado.El problema es que Cloudflare devuelve 403 a cualquier request "no-navegador" contra
www.feadulta.com. Lo he comprobado concurl(varios User-Agents), con un Chromium headless (Playwright) y con la herramienta de fetch externa de Anthropic — los tres bloqueados. Es casi seguro que el crawler de Facebook (facebookexternalhit) choca con el mismo bloqueo al intentar leer las etiquetas OG del artículo, y por eso Facebook cae al fallback genérico (o sirve un scrape cacheado de cuando no pudo entrar).Mismo tipo de bloqueo que ya está fichado en el issue #145 (Cloudflare 403 a la REST API), pero aquí afecta al crawler de compartidos de Facebook en vez de a la API.
Qué hace falta (lado Cloudflare)
facebookexternalhit(y de paso los crawlers legítimos de otras redes:Twitterbot,WhatsApp,Slackbot, etc.).Relacionado: #145.
Resuelto (lado Cloudflare, Inma)
Al mirar las Custom rules de Cloudflare vimos que ya tenías una regla "Permitir Facebook" (Skip para
facebookexternalhit) — por eso, sondeando ahora, el crawler de Facebook ya pasaba (200). Es probable que la añadieras después de abrir este issue.Lo que seguía bloqueado era Twitter/X (403, lo tumbaba "bloquear bots 1") y no estaban contemplados otros crawlers sociales.
Cambio aplicado: ampliada esa regla → renombrada a "Permitir crawlers sociales" (acción Skip, saltando all remaining custom rules + rate limiting + managed rules), con esta expresión:
Verificado (sondeo externo a
https://www.feadulta.com/echar-raices/con cada UA):Etiquetas OG correctas (
og:title"Echar raíces", descripción e imagen). A partir de ahora las comparticiones nuevas en esas redes saldrán con la tarjeta buena.Nota (punto 2 del issue): el re-escaneo con el Sharing Debugger solo hace falta para URLs ya compartidas que tengan caché vieja en Facebook — no es masivo; Inma apenas comparte en FB, así que se puede omitir (o hacerlo puntualmente para la home/carta si interesa).
Por nuestra parte, se puede cerrar. 🎯