{"id":32,"date":"2026-10-06T08:00:00","date_gmt":"2026-10-06T08:00:00","guid":{"rendered":"https:\/\/prensabot.com\/blog\/?p=32"},"modified":"2026-10-06T08:00:00","modified_gmt":"2026-10-06T08:00:00","slug":"el-enganoso-escaneo-exitoso-cuando-el-feed-responde-pero-no-entrega-noticias","status":"publish","type":"post","link":"https:\/\/prensabot.com\/blog\/el-enganoso-escaneo-exitoso-cuando-el-feed-responde-pero-no-entrega-noticias\/","title":{"rendered":"El enga\u00f1oso &#8216;escaneo exitoso&#8217;: cuando el feed responde pero no entrega noticias"},"content":{"rendered":"<p>En los sistemas automatizados de publicaci\u00f3n, el mensaje \u00abescaneo exitoso\u00bb suele generar una falsa sensaci\u00f3n de productividad. Sin embargo, en plataformas como PrensaBot, este indicador t\u00e9cnico solo confirma que la fuente RSS o API respondi\u00f3 correctamente (HTTP 200), no que haya generado contenido apto para publicaci\u00f3n. La realidad del backend es m\u00e1s compleja y est\u00e1 llena de filtros editoriales y t\u00e9cnicos que pueden dejar un feed perfectamente funcional sin entregar ni un solo candidato.<\/p>\n<h2>El mito del c\u00f3digo 200 como sin\u00f3nimo de contenido<\/h2>\n<p>El ejemplo documentado en julio pasado es revelador: una secci\u00f3n configurada para deportes locales segu\u00eda recibiendo noticias de la Selecci\u00f3n Argentina a pesar de m\u00faltiples ajustes. El problema no estaba en la pantalla de configuraci\u00f3n ni en la cach\u00e9, sino en una funci\u00f3n heredada del Mundial, <strong>unselectAllMundialPending<\/strong>, que segu\u00eda forzando t\u00e9rminos espec\u00edficos en el backend. La soluci\u00f3n t\u00e9cnica consisti\u00f3 en eliminar esa regla fija y hacer que fuentes, grupos y palabras clave fueran completamente configurables desde los datos editoriales, no desde c\u00f3digo duro.<\/p>\n<h2>Los siete filtros invisibles que bloquean contenido<\/h2>\n<p>Un feed puede responder correctamente y a\u00fan as\u00ed no producir candidatos por m\u00faltiples razones t\u00e9cnicas y editoriales:<\/p>\n<ul>\n<li><strong>Antig\u00fcedad:<\/strong> El contenido supera el l\u00edmite temporal configurado (ej: solo noticias de las \u00faltimas 24 horas)<\/li>\n<li><strong>Keywords:<\/strong> No contiene las palabras clave requeridas o activa exclusiones configuradas<\/li>\n<li><strong>Duplicados:<\/strong> El sistema detecta contenido similar ya procesado o publicado<\/li>\n<li><strong>Contenido suficiente:<\/strong> El texto no alcanza la extensi\u00f3n m\u00ednima establecida<\/li>\n<li><strong>Seguridad:<\/strong> Activaci\u00f3n de filtros por dominios, lenguaje o contenido sensible<\/li>\n<li><strong>Cupos:<\/strong> L\u00edmite diario o por secci\u00f3n ya alcanzado<\/li>\n<li><strong>Formato:<\/strong> Estructura XML\/JSON inv\u00e1lida o campos esenciales faltantes<\/li>\n<\/ul>\n<p>Estos filtros operan en cascada y de manera silenciosa. Un art\u00edculo puede superar la verificaci\u00f3n HTTP, pasar el parsing t\u00e9cnico, pero caer en cualquiera de estas etapas posteriores sin que el registro del escaneo muestre m\u00e1s que un fr\u00edo \u00ab\u00e9xito\u00bb.<\/p>\n<h2>Monitoreo m\u00e1s all\u00e1 del c\u00f3digo de respuesta<\/h2>\n<p>La lecci\u00f3n para equipos t\u00e9cnicos y editoriales es clara: monitorear solo los c\u00f3digos HTTP es insuficiente. Se necesitan m\u00e9tricas espec\u00edficas como <strong>tasa de conversi\u00f3n feed-a-candidato<\/strong>, <strong>an\u00e1lisis de causas de rechazo<\/strong> y <strong>alertas por feeds \u00abzombies\u00bb<\/strong> (aquellos que responden pero no entregan contenido v\u00e1lido por per\u00edodos prolongados). La configuraci\u00f3n debe ser din\u00e1mica y auditada regularmente, especialmente despu\u00e9s de eventos masivos como campeonatos mundiales que suelen dejar reglas temporales convertidas en permanentes por error.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un c\u00f3digo HTTP 200 no garantiza contenido publicable. Descubr\u00ed los filtros ocultos que pueden dejar un feed RSS perfectamente funcional sin entregar candidatos v\u00e1lidos para publicaci\u00f3n.<\/p>\n","protected":false},"author":2,"featured_media":31,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-32","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arquitectura-y-backend"],"_links":{"self":[{"href":"https:\/\/prensabot.com\/blog\/wp-json\/wp\/v2\/posts\/32","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prensabot.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prensabot.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prensabot.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/prensabot.com\/blog\/wp-json\/wp\/v2\/comments?post=32"}],"version-history":[{"count":1,"href":"https:\/\/prensabot.com\/blog\/wp-json\/wp\/v2\/posts\/32\/revisions"}],"predecessor-version":[{"id":43,"href":"https:\/\/prensabot.com\/blog\/wp-json\/wp\/v2\/posts\/32\/revisions\/43"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prensabot.com\/blog\/wp-json\/wp\/v2\/media\/31"}],"wp:attachment":[{"href":"https:\/\/prensabot.com\/blog\/wp-json\/wp\/v2\/media?parent=32"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prensabot.com\/blog\/wp-json\/wp\/v2\/categories?post=32"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prensabot.com\/blog\/wp-json\/wp\/v2\/tags?post=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}