{"id":52176,"date":"2026-10-15T17:35:51","date_gmt":"2026-10-15T12:05:51","guid":{"rendered":"https:\/\/www.lowcostwebagency.com\/?p=52176"},"modified":"2026-10-15T17:35:51","modified_gmt":"2026-10-15T12:05:51","slug":"automatizar-blog-ia-historia-reparacion","status":"publish","type":"post","link":"https:\/\/www.lowcostwebagency.com\/es\/automatizar-blog-ia-historia-reparacion\/","title":{"rendered":"Cuando mi generador rompi\u00f3 91 p\u00e1ginas: la historia de una reparaci\u00f3n"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1352px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:15px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:15px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-1\"><p>Automatizar un blog con IA es f\u00e1cil de imaginar y mucho m\u00e1s dif\u00edcil de conseguir. Quise publicar un art\u00edculo al d\u00eda en cuatro idiomas sin tocarlo; dos semanas despu\u00e9s, 91 p\u00e1ginas estaban da\u00f1adas. Esto es lo que se rompi\u00f3, c\u00f3mo lo reparamos Claude y yo, y qu\u00e9 funciona hoy.<\/p>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">Lo esencial en pocas l\u00edneas<\/h2>\n<ul style=\"margin: 15px 0 20px 25px;line-height: 1.7\">\n<li style=\"margin-bottom: 8px\">Un script y la IA Gemini publicaban un art\u00edculo al d\u00eda, en cuatro idiomas, sin que nadie los leyera. A las dos semanas, 91 p\u00e1ginas estaban da\u00f1adas.<\/li>\n<li style=\"margin-bottom: 8px\">Otra IA, Claude, encontr\u00f3 la causa (la arquitectura mucho m\u00e1s que el modelo) y despu\u00e9s audit\u00f3 y repar\u00f3 esas 91 p\u00e1ginas en directo en el sitio, con copia de seguridad y vuelta atr\u00e1s autom\u00e1ticas en cada paso.<\/li>\n<li style=\"margin-bottom: 8px\">Se construy\u00f3 un generador nuevo: una estructura impuesta, una maquetaci\u00f3n hecha por un programa, controles que bloquean y borradores en lugar de publicaciones.<\/li>\n<li style=\"margin-bottom: 8px\">Lo que queda de mi parte es lo que una m\u00e1quina no puede decidir: la l\u00ednea editorial, los hechos que hay que verificar y la renovaci\u00f3n de algunas credenciales de acceso.<\/li>\n<\/ul>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">La apuesta inicial<\/h2>\n<figure class=\"wp-block-image size-large aligncenter\" style=\"margin: 35px 0\">\n<img decoding=\"async\" src=\"https:\/\/www.lowcostwebagency.com\/wp-content\/uploads\/2026\/10\/automate-blog-ai-story-repair-pari.webp\" alt=\"Una peque\u00f1a oficina de agencia con un port\u00e1til, un despertador y cuatro bocadillos de di\u00e1logo vac\u00edos\" style=\"border-radius: 8px;width: 100%;height: auto\" title=\"\"><figcaption style=\"text-align: center;font-size: 0.9em;color: #555;margin-top: 8px\">La apuesta: un art\u00edculo al d\u00eda, en cuatro idiomas, sin tocarlo.<\/figcaption><\/figure>\n<p>Dirijo desde 2013 una agencia web con sede en Pondicherry, en la India. Creamos sitios web, tiendas online y aplicaciones m\u00f3viles, gestionamos las redes sociales de nuestros clientes y somos unas cincuenta personas. Por eso el blog de nuestro propio sitio deber\u00eda ser el escaparate m\u00e1s cuidado de la casa. Suele pasar lo contrario: en casa del herrero, cuchillo de palo.<\/p>\n<p>A principios de octubre quise arreglar eso de una vez. La idea cab\u00eda en una frase: un art\u00edculo al d\u00eda, escrito en ingl\u00e9s y adaptado despu\u00e9s al franc\u00e9s, al espa\u00f1ol y al italiano, y publicado sin que yo tuviera que tocarlo. Leo esos cuatro idiomas. S\u00e9 lo que un sitio multiling\u00fce bien hecho puede abrir, y tambi\u00e9n s\u00e9 cu\u00e1ntas horas cuesta alimentarlo a mano.<\/p>\n<p>La mec\u00e1nica parec\u00eda sencilla, casi demasiado buena. Un script escrito en Python. La inteligencia artificial de Google, Gemini, para redactar. Una tarea programada en Windows que se dispara cada ma\u00f1ana a las 10:14. Y mi sitio WordPress, con su tema Avada, sus traducciones gestionadas por <a href=\"https:\/\/www.lowcostwebagency.com\/es\/es-wpml-el-mejor-plugin-wordpress-para-sitios-web-multilingues\/\">WPML<\/a> y su <a href=\"https:\/\/www.lowcostwebagency.com\/es\/rank-math-o-yoast-seo-que-plugin-seo-eligir\/\">plugin de SEO<\/a>, para acogerlo todo.<\/p>\n<p>Era demasiado buena, en efecto. Durante unos d\u00edas todo dio la impresi\u00f3n de funcionar. Los art\u00edculos llegaban, las traducciones se colocaban junto al original y el blog se llenaba a una velocidad que ning\u00fan equipo humano habr\u00eda podido mantener. A las dos semanas hab\u00eda veintid\u00f3s temas en l\u00ednea, es decir, noventa y una p\u00e1ginas contando todas las traducciones.<\/p>\n<p>Sobre el papel, era un \u00e9xito. En la realidad, nadie hab\u00eda le\u00eddo esas p\u00e1ginas l\u00ednea por l\u00ednea. Yo no, ocupado con todo lo dem\u00e1s. El script tampoco, que solo sabe seguir sus instrucciones. Ni la m\u00e1quina que las hab\u00eda escrito, que no tiene ning\u00fan motivo para dudar de lo que produce.<\/p>\n<p>Este texto cuenta lo que vino despu\u00e9s. C\u00f3mo me di cuenta de que algo fallaba, por qu\u00e9 la situaci\u00f3n se volvi\u00f3 cr\u00edtica, c\u00f3mo otra inteligencia artificial, Claude, audit\u00f3 y luego repar\u00f3 cada una de esas p\u00e1ginas directamente en mi sitio en l\u00ednea, y c\u00f3mo reconstruimos el generador para que no vuelva a pasar. He intentado escribirlo de modo que se entienda sin saber una sola l\u00ednea de c\u00f3digo. Tambi\u00e9n te cuento los falsos comienzos, porque fueron los que m\u00e1s me ense\u00f1aron.<\/p>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">Lo que ocurre de verdad cada ma\u00f1ana a las 10:14<\/h2>\n<figure class=\"wp-block-image size-large aligncenter\" style=\"margin: 35px 0\">\n<img decoding=\"async\" src=\"https:\/\/www.lowcostwebagency.com\/wp-content\/uploads\/2026\/10\/automate-blog-ai-story-repair-cuisine.webp\" alt=\"Una cocina de restaurante donde un cocinero pasa platos a un camarero y nadie prueba nada\" style=\"border-radius: 8px;width: 100%;height: auto\" title=\"\"><figcaption style=\"text-align: center;font-size: 0.9em;color: #555;margin-top: 8px\">Una cocina donde nadie prueba: el error viaja hasta la mesa.<\/figcaption><\/figure>\n<p>Para entender qu\u00e9 sali\u00f3 mal, hay que mirar la cocina. Imagina un restaurante donde un cocinero muy talentoso prepara los platos, donde un camarero los corta, los endereza y los coloca en los platos, y donde nadie prueba nada antes de que el plato llegue al cliente. Mientras todo va bien, el sistema es de una eficacia temible. En cuanto un eslab\u00f3n se equivoca, el error viaja hasta la mesa sin que nadie lo haya visto.<\/p>\n<p>Esto es, a grandes rasgos, lo que hac\u00eda mi script cada d\u00eda:<\/p>\n<ol style=\"margin: 15px 0 20px 25px;line-height: 1.7\">\n<li style=\"margin-bottom: 8px\">Recorr\u00eda los titulares de algunos sitios de noticias sobre SEO e inteligencia artificial y le ped\u00eda a Gemini que eligiera un tema nuevo.<\/li>\n<li style=\"margin-bottom: 8px\">Le ped\u00eda un art\u00edculo de dos mil a dos mil quinientas palabras, en ingl\u00e9s, escrito en un lenguaje de marcado sencillo.<\/li>\n<li style=\"margin-bottom: 8px\">Hac\u00eda fabricar tres im\u00e1genes, una para la cabecera y dos para el cuerpo del texto.<\/li>\n<li style=\"margin-bottom: 8px\">Reclamaba un t\u00edtulo y una descripci\u00f3n para los buscadores.<\/li>\n<li style=\"margin-bottom: 8px\">Pasaba el texto por una funci\u00f3n de limpieza, encargada de convertirlo en una p\u00e1gina web limpia.<\/li>\n<li style=\"margin-bottom: 8px\">Ped\u00eda despu\u00e9s tres traducciones, al franc\u00e9s, al espa\u00f1ol y al italiano, con la consigna de no cambiar nada del formato.<\/li>\n<li style=\"margin-bottom: 8px\">Lo depositaba todo en el sitio, transmit\u00eda los enlaces entre idiomas gracias a un peque\u00f1o puente instalado expresamente en mi WordPress y esperaba al d\u00eda siguiente.<\/li>\n<\/ol>\n<p>Enseguida se nota lo que falta: un paso para mirar el resultado. Ninguna revisi\u00f3n, ning\u00fan control, ninguna alerta si algo no se parec\u00eda a un art\u00edculo terminado.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Los primeros signos<\/h3>\n<p>Leo los cuatro idiomas, lo que es a la vez una ventaja y una maldici\u00f3n: lo veo todo. Esto es lo que not\u00e9 primero y lo que la auditor\u00eda confirmar\u00eda despu\u00e9s:<\/p>\n<ul style=\"margin: 15px 0 20px 25px;line-height: 1.7\">\n<li style=\"margin-bottom: 8px\">Los fragmentos de c\u00f3digo hab\u00edan desaparecido o llegaban hechos jirones, incluso en art\u00edculos t\u00e9cnicos en los que eran el coraz\u00f3n del texto.<\/li>\n<li style=\"margin-bottom: 8px\">Hab\u00eda signos par\u00e1sitos por todo el texto: asteriscos, almohadillas, emojis, flechas dibujadas con guiones.<\/li>\n<li style=\"margin-bottom: 8px\">Algunas traducciones se deten\u00edan a mitad de una idea, a veces a mitad de una frase.<\/li>\n<li style=\"margin-bottom: 8px\">En italiano, la peque\u00f1a preposici\u00f3n \u201cai\u201d, que significa \u201ca los\u201d, se escrib\u00eda \u201cAI\u201d, como la inteligencia artificial, decenas de veces.<\/li>\n<li style=\"margin-bottom: 8px\">Las unidades y las siglas perd\u00edan sus may\u00fasculas, y los precios ya no coincid\u00edan de un idioma a otro.<\/li>\n<li style=\"margin-bottom: 8px\">Todos los art\u00edculos apuntaban a la misma palabra clave principal, \u201cDigital Strategy\u201d, justo lo que no hay que hacer en SEO.<\/li>\n<\/ul>\n<p>Tomado por separado, cada uno de estos defectos se arregla en cinco minutos. Multiplicados por veintid\u00f3s temas y cuatro idiomas, formaban una obra que ya no pod\u00eda ignorar. La situaci\u00f3n se hab\u00eda vuelto cr\u00edtica: el blog de una agencia web, que deber\u00eda demostrar nuestra seriedad, mostraba sus propios defectos a todos los visitantes, en cuatro idiomas.<\/p>\n<p>Primero intent\u00e9 arreglarlo con el propio Gemini, ense\u00f1\u00e1ndole el problema y pidi\u00e9ndole que corrigiera su propio script. Le dediqu\u00e9 mucho tiempo y sal\u00ed con la sensaci\u00f3n de que cada correcci\u00f3n creaba otra. Fue entonces cuando comprend\u00ed que quiz\u00e1 estaba mirando en la direcci\u00f3n equivocada.<\/p>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">Gemini solo era culpable a medias<\/h2>\n<figure class=\"wp-block-image size-large aligncenter\" style=\"margin: 35px 0\">\n<img decoding=\"async\" src=\"https:\/\/www.lowcostwebagency.com\/wp-content\/uploads\/2026\/10\/automate-blog-ai-story-repair-nettoyeur.webp\" alt=\"Una cinta transportadora que lleva p\u00e1ginas de texto a trav\u00e9s de una m\u00e1quina borradora demasiado aplicada\" style=\"border-radius: 8px;width: 100%;height: auto\" title=\"\"><figcaption style=\"text-align: center;font-size: 0.9em;color: #555;margin-top: 8px\">El limpiador demasiado aplicado borraba todo lo que parec\u00eda c\u00f3digo.<\/figcaption><\/figure>\n<p>Cuando un plato llega fr\u00edo, se culpa al cocinero. A veces es el camarero quien lo olvid\u00f3 en la ventanilla. Al leer el script de principio a fin, Claude recorri\u00f3 la cadena eslab\u00f3n por eslab\u00f3n, y el veredicto me sorprendi\u00f3: la mayor parte de los da\u00f1os no ven\u00eda de lo que Gemini hab\u00eda escrito, sino de lo que le ocurr\u00eda despu\u00e9s.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">El limpiador demasiado entusiasta<\/h3>\n<p>La funci\u00f3n encargada de convertir el texto en p\u00e1gina web ten\u00eda una misi\u00f3n razonable: evitar que fragmentos de c\u00f3digo o esquemas mal formados ensuciaran los art\u00edculos. Para ello, eliminaba todo lo que se parec\u00eda a c\u00f3digo. En concreto, borraba cada l\u00ednea que contuviera ciertas palabras, como \u201cimport\u201d o \u201cclass\u201d, y todo lo que estuviera entre tres acentos graves. En un art\u00edculo para principiantes, el c\u00f3digo de verdad es la excepci\u00f3n. En un art\u00edculo t\u00e9cnico es la raz\u00f3n de ser del texto, y desaparec\u00eda sin ning\u00fan mensaje de error.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">El l\u00edmite invisible<\/h3>\n<p>A Gemini se le ped\u00eda que redactara de dos mil a dos mil quinientas palabras, pero el script le conced\u00eda un margen de respuesta limitado a 8192 \u201ctokens\u201d, la unidad de medida del texto para una IA. Es justo. Y sobre todo, el script nunca comprobaba si la respuesta hab\u00eda llegado hasta el final. Un texto cortado en seco se publicaba como si fuera un texto terminado.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">La traducci\u00f3n de un solo golpe<\/h3>\n<p>Las traducciones se ped\u00edan de una vez, con la consigna de conservar el formato \u201cexactamente\u201d. Ninguna regla propia de cada idioma, ning\u00fan l\u00e9xico de nombres de marca que no se deb\u00edan tocar, ninguna convenci\u00f3n de may\u00fasculas. El resultado era fluido en la superficie y estaba lleno de peque\u00f1os errores en el fondo, como el famoso \u201cAI\u201d italiano.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">T\u00edtulos y descripciones aproximados<\/h3>\n<p>El t\u00edtulo y la <a href=\"https:\/\/www.lowcostwebagency.com\/es\/meta-descripciones-con-ia-dispara\/\">descripci\u00f3n para los buscadores<\/a> se extra\u00edan buscando la palabra \u201ctitle:\u201d en la respuesta. Si faltaba, el script recurr\u00eda a un texto gen\u00e9rico, el mismo para todos. Adem\u00e1s, el c\u00f3digo recortaba el t\u00edtulo SEO a cincuenta caracteres, fuera cual fuese la frase.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Y lo que Gemini ten\u00eda realmente sobre su conciencia<\/h3>\n<p>Su parte no es nula. Cuando se le pide un art\u00edculo de actualidad, a veces inventa una cifra o una caracter\u00edstica para parecer preciso. Le gustan los emojis, las listas con casillas y las tablas decorativas. Pero son inclinaciones, no aver\u00edas, y un buen sistema est\u00e1 dise\u00f1ado para encuadrarlas.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">La lecci\u00f3n<\/h3>\n<p>Un modelo de lenguaje es un redactor excelente y un controlador mal\u00edsimo de s\u00ed mismo. Lo que yo hab\u00eda construido se parec\u00eda a una f\u00e1brica sin departamento de calidad. El problema no era encontrar una IA mejor. Hab\u00eda que cambiar la arquitectura que la rodeaba.<\/p>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">Cambi\u00e9 de interlocutor<\/h2>\n<p>El d\u00eda que <a href=\"https:\/\/www.lowcostwebagency.com\/es\/gestiona-tu-wordpress-con-chatgpt\/\">abr\u00ed una conversaci\u00f3n con Claude<\/a>, ten\u00eda una petici\u00f3n en dos partes y la formul\u00e9 con la franqueza de quien ya no puede m\u00e1s: Gemini solo me creaba problemas, hab\u00eda sufrido demasiado y quer\u00eda saber dos cosas. Primero, qu\u00e9 fallaba en mi script. Despu\u00e9s, y sobre todo, c\u00f3mo reparar todos los art\u00edculos publicados desde el 1 de octubre, traducciones incluidas, con la lista de identificadores como apoyo.<\/p>\n<p>No ten\u00eda ninguna garant\u00eda de que funcionara. Comprend\u00ed enseguida que el camino ser\u00eda largo, y no solo por el trabajo en s\u00ed.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Primer obst\u00e1culo: el sitio cerraba la puerta<\/h3>\n<p>Claude trabaja en un entorno inform\u00e1tico aislado, en alg\u00fan lugar de la nube. Cuando intent\u00f3 consultar mi sitio, este respondi\u00f3 con una negativa. Nada grave: es el comportamiento normal de un sitio protegido. Pero el permiso de acceso se configura en los ajustes de mi cuenta de Claude, donde hay que a\u00f1adir el nombre de dominio de mi sitio a una lista de sitios autorizados. Respond\u00ed que no ve\u00eda la opci\u00f3n, porque estaba en el plan gratuito. Acto seguido pas\u00e9 al plan Pro y la opci\u00f3n apareci\u00f3.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Segundo obst\u00e1culo: las credenciales<\/h3>\n<p>Para modificar art\u00edculos hacen falta permisos de escritura. En lugar de pegar contrase\u00f1as en una conversaci\u00f3n, las reun\u00ed en un archivo de configuraci\u00f3n en mi ordenador, que Claude utiliz\u00f3 despu\u00e9s para trabajar, con un acceso espec\u00edfico que puedo revocar en cualquier momento. Este h\u00e1bito es una de las reglas que recomiendo al final de este texto.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Tercer obst\u00e1culo: el sitio solo respond\u00eda a mi ordenador<\/h3>\n<p>Incluso con el dominio autorizado, mi sitio segu\u00eda desconfiando del entorno de Claude. La soluci\u00f3n lleg\u00f3 desde un \u00e1ngulo inesperado: mi propio port\u00e1til, que el sitio conoce y acepta. Abr\u00ed la aplicaci\u00f3n de escritorio de Claude, que puede conectarse a mi equipo. Despu\u00e9s Claude prepar\u00f3 para mi PC un peque\u00f1o programa, una especie de ventanilla, que yo pongo en marcha y que ejecuta una a una las tareas que Claude deja en una carpeta y le devuelve los resultados. Claude escribe las instrucciones y las comprueba, mi ordenador habla con el sitio y el resultado vuelve a subir.<\/p>\n<p>Quedaba la \u00fanica pregunta que de verdad importaba: \u00bfhasta d\u00f3nde dejarle llegar? Lo resolv\u00ed sin matices. Quer\u00eda que interviniera directamente en el sitio en l\u00ednea, que publicara \u00e9l mismo sus correcciones y que me demostrara, en lugar de promet\u00e9rmelo, que estaba a la altura. A\u00f1ad\u00ed que, si necesitaba m\u00e1s potencia, ten\u00eda que dec\u00edrmelo. No la necesit\u00f3.<\/p>\n<p>Tambi\u00e9n puse una condici\u00f3n, que repito con gusto a cualquiera que conf\u00ede un trabajo a una IA: \u201cte toca a ti verificar lo que haces\u201d. Gui\u00f3 cada una de las etapas siguientes.<\/p>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">La auditor\u00eda: noventa y una p\u00e1ginas bajo la lupa<\/h2>\n<figure class=\"wp-block-image size-large aligncenter\" style=\"margin: 35px 0\">\n<img decoding=\"async\" src=\"https:\/\/www.lowcostwebagency.com\/wp-content\/uploads\/2026\/10\/automate-blog-ai-story-repair-audit.webp\" alt=\"Una lupa gigante sobre una cuadr\u00edcula de miniaturas de p\u00e1ginas con marcas verdes y puntos naranjas\" style=\"border-radius: 8px;width: 100%;height: auto\" title=\"\"><figcaption style=\"text-align: center;font-size: 0.9em;color: #555;margin-top: 8px\">La auditor\u00eda: noventa y una p\u00e1ginas examinadas una por una.<\/figcaption><\/figure>\n<p>Primera decisi\u00f3n, y me la impuso el sentido com\u00fan m\u00e1s que las ganas: no reparar hasta haber medido. No ten\u00eda una lista fiable de los defectos, solo impresiones. As\u00ed que le ped\u00ed a Claude que lanzara su propia auditor\u00eda, con datos recientes le\u00eddos directamente del sitio, sin fiarse de los que yo ten\u00eda a mano.<\/p>\n<p>Una auditor\u00eda es, sencillamente, una revisi\u00f3n met\u00f3dica, pero hecha por una m\u00e1quina que no se cansa. Para cada p\u00e1gina, el programa comparaba el t\u00edtulo, la estructura de los intert\u00edtulos, los p\u00e1rrafos, las listas, las tablas, los bloques de c\u00f3digo, las im\u00e1genes, los enlaces, la informaci\u00f3n destinada a los buscadores, el idioma empleado y la presencia del bot\u00f3n de contacto. Ochenta y ocho p\u00e1ginas se repart\u00edan en veintid\u00f3s grupos de cuatro idiomas. Otras tres traducciones flotaban por su cuenta, sin padre oficial: duplicados de un mismo art\u00edculo, que clasificamos como \u201chu\u00e9rfanas\u201d.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Cuando nada parece responder<\/h3>\n<p>Tuve un momento de duda. Pasado un rato, escrib\u00ed que el script que hab\u00eda lanzado me daba la impresi\u00f3n de girar en el vac\u00edo. Unos minutos despu\u00e9s me correg\u00ed: giraba de verdad, pero muy despacio. La raz\u00f3n es sencilla y un poco humillante para la impaciencia humana: consultar noventa y una p\u00e1ginas, en varios idiomas, varias veces cada una, lleva tiempo, sobre todo cuando el sitio se cuida de no dejarse desbordar.<\/p>\n<p>Entonces di la \u00fanica consigna que vale en este tipo de situaci\u00f3n. No necesitaba que fuera r\u00e1pido. Necesitaba que el resultado final fuera perfecto, y no importaba cu\u00e1nto tiempo llevara. Esa frase cambi\u00f3 la manera de trabajar: Claude dej\u00f3 de optimizar la velocidad para optimizar la fiabilidad.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Lo que revel\u00f3 la auditor\u00eda<\/h3>\n<table role=\"table\" style=\"display:block;position:relative;width:100%;margin:30px 0;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;background:#ffffff;border-collapse:separate\">\n<thead role=\"rowgroup\" style=\"position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0\">\n<tr role=\"row\">\n<th role=\"columnheader\" scope=\"col\">Lo que encontramos<\/th>\n<th role=\"columnheader\" scope=\"col\">Un ejemplo concreto<\/th>\n<th role=\"columnheader\" scope=\"col\">Lo que hicimos<\/th>\n<\/tr>\n<\/thead>\n<tbody role=\"rowgroup\" style=\"display:block;border:0\">\n<tr role=\"row\" style=\"display:flex;flex-wrap:wrap;border-bottom:1px solid #e2e8f0;border-left:4px solid #0f172a;background:#ffffff;margin:0\">\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;color:#0f172a;font-weight:600;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Lo que encontramos<\/span>C\u00f3digo ausente o roto<\/td>\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Un ejemplo concreto<\/span>Ejemplos de configuraci\u00f3n desaparecidos de art\u00edculos t\u00e9cnicos<\/td>\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Lo que hicimos<\/span>Reconstruidos en los cuatro idiomas, con comentarios en ingl\u00e9s<\/td>\n<\/tr>\n<tr role=\"row\" style=\"display:flex;flex-wrap:wrap;border-bottom:1px solid #e2e8f0;border-left:4px solid #0f172a;background:#f8fafc;margin:0\">\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;color:#0f172a;font-weight:600;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Lo que encontramos<\/span>Formato par\u00e1sito<\/td>\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Un ejemplo concreto<\/span>Asteriscos, almohadillas, emojis, esquemas hechos de guiones y flechas<\/td>\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Lo que hicimos<\/span>Limpiados; comparaciones dibujadas con caracteres convertidas en tablas de verdad<\/td>\n<\/tr>\n<tr role=\"row\" style=\"display:flex;flex-wrap:wrap;border-bottom:1px solid #e2e8f0;border-left:4px solid #0f172a;background:#ffffff;margin:0\">\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;color:#0f172a;font-weight:600;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Lo que encontramos<\/span>Traducciones truncadas<\/td>\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Un ejemplo concreto<\/span>Conclusiones ausentes, frases cortadas<\/td>\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Lo que hicimos<\/span>Completadas y revisadas<\/td>\n<\/tr>\n<tr role=\"row\" style=\"display:flex;flex-wrap:wrap;border-bottom:1px solid #e2e8f0;border-left:4px solid #0f172a;background:#f8fafc;margin:0\">\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;color:#0f172a;font-weight:600;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Lo que encontramos<\/span>Errores de may\u00fasculas y de idioma<\/td>\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Un ejemplo concreto<\/span>\u201cai\u201d convertido en \u201cAI\u201d en italiano (35 veces); kW y kHz en min\u00fasculas<\/td>\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Lo que hicimos<\/span>Corregidos en todas partes<\/td>\n<\/tr>\n<tr role=\"row\" style=\"display:flex;flex-wrap:wrap;border-bottom:1px solid #e2e8f0;border-left:4px solid #0f172a;background:#ffffff;margin:0\">\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;color:#0f172a;font-weight:600;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Lo que encontramos<\/span>SEO<\/td>\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Un ejemplo concreto<\/span>La misma palabra clave para todos, t\u00edtulos demasiado largos (90 de 91)<\/td>\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Lo que hicimos<\/span>T\u00edtulos, descripciones y palabras clave rehechos p\u00e1gina por p\u00e1gina<\/td>\n<\/tr>\n<tr role=\"row\" style=\"display:flex;flex-wrap:wrap;border-bottom:0;border-left:4px solid #0f172a;background:#f8fafc;margin:0\">\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;color:#0f172a;font-weight:600;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Lo que encontramos<\/span>Duplicados y enlaces<\/td>\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Un ejemplo concreto<\/span>Tres traducciones hu\u00e9rfanas, un enlace externo roto<\/td>\n<td role=\"cell\" style=\"display:block;flex:1 1 200px;min-width:200px;box-sizing:border-box;padding:14px 18px;margin:0;border:0;vertical-align:top;color:#334155;font-size:0.95em;line-height:1.55;text-align:left;background:transparent;\"><span aria-hidden=\"true\" style=\"display:block;margin:0 0 4px;font-size:0.72em;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#64748b;line-height:1.3\">Lo que hicimos<\/span>Hu\u00e9rfanas limpiadas, enlace sustituido<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Tomado por separado, el balance no era dram\u00e1tico, pero en conjunto era enorme. Y defin\u00eda la obra: no retocar tres frases, sino rehacer cada p\u00e1gina con reglas id\u00e9nticas, comprobar el resultado p\u00e1gina por p\u00e1gina y no suponer nunca que \u201cdebe de estar bien\u201d.<\/p>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">La obra: trabajar en directo sin romper el sitio<\/h2>\n<figure class=\"wp-block-image size-large aligncenter\" style=\"margin: 35px 0\">\n<img decoding=\"async\" src=\"https:\/\/www.lowcostwebagency.com\/wp-content\/uploads\/2026\/10\/automate-blog-ai-story-repair-filet.webp\" alt=\"Un funambulista con una caja de herramientas sobre una red de seguridad\" style=\"border-radius: 8px;width: 100%;height: auto\" title=\"\"><figcaption style=\"text-align: center;font-size: 0.9em;color: #555;margin-top: 8px\">Trabajar en directo en el sitio, con una red debajo.<\/figcaption><\/figure>\n<p>En toda reparaci\u00f3n llega un momento en que hay que elegir entre prudencia y eficacia. Le escrib\u00ed a Claude que necesitaba irme a dormir y que quer\u00eda que trabajara de forma aut\u00f3noma. Despu\u00e9s, unos mensajes m\u00e1s tarde: \u201cgo\u201d. Auditar, corregir y volver a publicar todos los art\u00edculos creados desde el 1 de octubre, directamente en el sitio en l\u00ednea.<\/p>\n<p>La frase puede parecer temeraria. Confiar a una IA la escritura en un sitio que recibe visitantes, sin releer uno mismo cada modificaci\u00f3n, es el tipo de decisi\u00f3n que da escalofr\u00edos. Lo que la hizo razonable no fue mi confianza. Fue la red de seguridad que Claude mont\u00f3 antes de escribir una sola l\u00ednea.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">La red de seguridad<\/h3>\n<p>Para cada art\u00edculo, el procedimiento era siempre el mismo, en este orden:<\/p>\n<ol style=\"margin: 15px 0 20px 25px;line-height: 1.7\">\n<li style=\"margin-bottom: 8px\"><strong>Guardar<\/strong> el estado actual de la p\u00e1gina, en un archivo conservado en mi ordenador.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Escribir<\/strong> la versi\u00f3n corregida en el sitio.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Releer<\/strong> lo que el sitio ha guardado realmente y compararlo con lo que deb\u00eda haber guardado.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Abrir la p\u00e1gina p\u00fablica<\/strong> como lo har\u00eda un visitante: tiene que responder, no mostrar c\u00f3digo t\u00e9cnico por error, contener las frases esperadas y mostrar el bot\u00f3n de contacto.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Volver atr\u00e1s autom\u00e1ticamente<\/strong>, sin esperar mi opini\u00f3n, si alguna de estas comprobaciones fallaba.<\/li>\n<\/ol>\n<p>Con este dispositivo, el peor escenario ya no era una p\u00e1gina rota en l\u00ednea, sino una p\u00e1gina rechazada y restaurada tal como estaba, con un mensaje de error que explicaba el motivo.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">C\u00f3mo se repararon las p\u00e1ginas<\/h3>\n<p>Claude no retocaba los art\u00edculos al azar. Reconstru\u00eda cada p\u00e1gina a partir de su contenido, con las mismas reglas para todos los idiomas: formato limpio, c\u00f3digo restablecido, may\u00fasculas corregidas, t\u00edtulos y descripciones reescritos, bot\u00f3n de contacto conservado, enlaces comprobados. Despu\u00e9s, un segundo conjunto de controles, independiente de la reparaci\u00f3n, revisaba el resultado. La idea es la misma que en un equipo humano: quien corrige no es quien valida.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Las oleadas<\/h3>\n<p>El trabajo avanz\u00f3 por oleadas sucesivas, cada vez m\u00e1s finas. La primera trat\u00f3 ochenta y siete p\u00e1ginas: ochenta superaron todos los controles a la primera y siete fueron rechazadas y corregidas despu\u00e9s. La segunda volvi\u00f3 a publicar las noventa y una p\u00e1ginas con textos m\u00e1s pulidos, y todas pasaron los controles. Una tercera retom\u00f3 once p\u00e1ginas por detalles pendientes. Pero lo m\u00e1s dif\u00edcil estaba a\u00fan por llegar.<\/p>\n<p>Mientras tanto, los tres borradores que yo no quer\u00eda ver modificados de ninguna manera siguieron intactos, como se hab\u00eda acordado: el per\u00edmetro de la obra estaba fijado y se respet\u00f3.<\/p>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">El misterio de las llaves<\/h2>\n<figure class=\"wp-block-image size-large aligncenter\" style=\"margin: 35px 0\">\n<img decoding=\"async\" src=\"https:\/\/www.lowcostwebagency.com\/wp-content\/uploads\/2026\/10\/automate-blog-ai-story-repair-enquete.webp\" alt=\"Un detective que inspecciona un filtro en forma de embudo que se traga s\u00edmbolos de llaves\" style=\"border-radius: 8px;width: 100%;height: auto\" title=\"\"><figcaption style=\"text-align: center;font-size: 0.9em;color: #555;margin-top: 8px\">El misterio de las llaves: un filtro que se tragaba el contenido.<\/figcaption><\/figure>\n<p>Es la parte del relato que m\u00e1s me gusta, porque parece una novela polic\u00edaca y porque demuestra por qu\u00e9 no basta con \u201ctiene buena pinta\u201d.<\/p>\n<p>Pasadas las primeras oleadas, Claude sigui\u00f3 mirando las p\u00e1ginas p\u00fablicas como un visitante, en particular las que conten\u00edan c\u00f3digo. Algo fallaba, de forma sutil. Algunos fragmentos superaban todos los controles internos pero se mostraban mal en el sitio: hab\u00edan desaparecido trozos, otros se hab\u00edan transformado.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Un detalle t\u00e9cnico, explicado con sencillez<\/h3>\n<p>En una p\u00e1gina web, ciertos caracteres est\u00e1n reservados: el signo \u201cmenor que\u201d sirve para abrir una etiqueta. Para mostrarlo como un simple s\u00edmbolo, se escribe en una forma codificada, una \u201centidad\u201d, por ejemplo <code>&amp;lt;<\/code>. El navegador la lee y muestra el signo. Es un mecanismo muy corriente, y lo us\u00e1bamos en todos los bloques de c\u00f3digo.<\/p>\n<p>Primera hip\u00f3tesis: el error ven\u00eda de nuestro lado. As\u00ed que Claude escribi\u00f3 la entidad en una forma reforzada, para que sobreviviera a una decodificaci\u00f3n adicional. Se volvi\u00f3 a publicar una oleada entera sobre esa base. Los controles de entonces se superaron, lo cual demuestra una cosa: a veces un control solo mide lo que fue dise\u00f1ado para medir.<\/p>\n<p>Porque el s\u00edntoma persist\u00eda, y ten\u00eda una particularidad inquietante. Solo aparec\u00eda en los art\u00edculos cuyo c\u00f3digo conten\u00eda llaves, esos signos <code>&lbrace;<\/code> y <code>&rbrace;<\/code> que se encuentran en casi todos los archivos de configuraci\u00f3n. Los art\u00edculos sin llaves se comportaban perfectamente.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Experimentos que no dejan rastro<\/h3>\n<p>Para entenderlo, Claude hizo lo que har\u00eda un buen investigador: reproducir el fen\u00f3meno en condiciones controladas. En un solo art\u00edculo puso una versi\u00f3n de prueba, observ\u00f3 la p\u00e1gina p\u00fablica y restaur\u00f3 la versi\u00f3n original. Volvi\u00f3 a empezar con variantes. Cada prueba era reversible y cada resultado qued\u00f3 anotado.<\/p>\n<p>Las conclusiones caben en tres l\u00edneas:<\/p>\n<ul style=\"margin: 15px 0 20px 25px;line-height: 1.7\">\n<li style=\"margin-bottom: 8px\">Cuando un art\u00edculo contiene una llave, un filtro del sitio borra todo lo que hay entre una llave de apertura y su cierre: texto, configuraci\u00f3n y ejemplos incluidos.<\/li>\n<li style=\"margin-bottom: 8px\">En esos mismos art\u00edculos, el filtro decodifica una vez las entidades, de modo que <code>&amp;lt;title&amp;gt;<\/code> se convert\u00eda en una etiqueta de verdad, invisible en pantalla.<\/li>\n<li style=\"margin-bottom: 8px\">Los art\u00edculos sin llaves se libraban de todo esto.<\/li>\n<\/ul>\n<p>No pude identificar al culpable. Mi sitio ejecuta numerosos plugins y fragmentos de c\u00f3digo, y el que aplica esta regla no se delat\u00f3. Claude revis\u00f3 lo que se pod\u00eda leer, sin modificar nada, y no encontr\u00f3 ninguna pista clara. Habr\u00e1 que volver sobre ello, y lo anoto entre mis tareas pendientes.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">La soluci\u00f3n: rodear el obst\u00e1culo en lugar de combatirlo<\/h3>\n<p>En lugar de esperar a dar caza al filtro, Claude busc\u00f3 una escritura que el filtro no reconociera. Prob\u00f3 varias codificaciones de las llaves. Algunas fallaban; otras funcionaban pero daban un resultado inutilizable. Solo una super\u00f3 todas las pruebas: una entidad con nombre del lenguaje de las p\u00e1ginas web, <code>&amp;lbrace;<\/code> para la llave de apertura y <code>&amp;rbrace;<\/code> para la de cierre. El filtro no las ve como llaves, y el navegador las muestra exactamente como tales.<\/p>\n<p>Quedaba aplicarla. La sexta oleada reescribi\u00f3 las setenta p\u00e1ginas afectadas, tres traducciones hu\u00e9rfanas incluidas, con esta convenci\u00f3n, y cada bloque de c\u00f3digo se compar\u00f3 con su fuente, signo por signo, en la p\u00e1gina p\u00fablica, con vuelta atr\u00e1s autom\u00e1tica ante la m\u00ednima diferencia. Resultado: setenta \u00e9xitos de setenta, ninguna vuelta atr\u00e1s.<\/p>\n<p>Hubo un \u00faltimo detalle curioso. Un plugin de enlaces internos inserta autom\u00e1ticamente enlaces en mis art\u00edculos, incluso, por exceso de celo, dentro de los bloques de c\u00f3digo. De momento es inofensivo, pero no es limpio, y ahora est\u00e1 en la lista de lo que voy a hacer excluir.<\/p>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">Verificar de verdad<\/h2>\n<p>Pasada la \u00faltima oleada, la tentaci\u00f3n de proclamar la victoria era grande. Claude hizo lo contrario: lanz\u00f3 una auditor\u00eda final de las noventa y una p\u00e1ginas, con una l\u00f3gica actualizada para tener en cuenta el descubrimiento de las llaves. El programa examin\u00f3 cada p\u00e1gina desde tres \u00e1ngulos: lo que el sitio guard\u00f3, lo que el sitio entrega a los programas que lo consultan y lo que ve realmente un visitante.<\/p>\n<p>Lleg\u00f3 el veredicto: noventa y una p\u00e1ginas de noventa y una conformes. Todas las p\u00e1ginas responden, tienen un \u00fanico t\u00edtulo principal, muestran el t\u00edtulo correcto, la descripci\u00f3n correcta, el bot\u00f3n de contacto, ning\u00fan c\u00f3digo t\u00e9cnico visible por error, e intert\u00edtulos y p\u00e1rrafos id\u00e9nticos a la fuente. Mil sesenta y dos bloques de c\u00f3digo, repartidos en setenta y cuatro art\u00edculos, salen id\u00e9nticos en las p\u00e1ginas p\u00fablicas. Se probaron ochenta y dos enlaces distintos; solo uno estaba realmente roto y se sustituy\u00f3.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">La falsa alarma que dice mucho<\/h3>\n<p>La primera auditor\u00eda completa termin\u00f3, sin embargo, en un aparente fracaso: uno de los controles se\u00f1alaba ochenta y cuatro art\u00edculos. Comparaba el contenido en bruto guardado en el sitio con el que se hab\u00eda enviado y encontraba diferencias.<\/p>\n<p>En lugar de declarar la alerta sin importancia, Claude se puso a entenderla. La causa era benigna: el propio sitio reescribe las direcciones de los enlaces internos en una forma m\u00e1s corta, lo que modifica el texto en bruto sin cambiar la p\u00e1gina. Una vez tenida en cuenta esa reescritura, las noventa y una p\u00e1ginas eran, efectivamente, id\u00e9nticas a su fuente.<\/p>\n<p>Lo importante no es el resultado final, sino el m\u00e9todo: una alerta que no se entiende no se suprime, se explica. Eso es lo que separa un \u201cterminado\u201d verificado de un \u201cterminado\u201d declarado.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">La obra en cifras<\/h3>\n<p>Para los aficionados a los n\u00fameros, este es el balance de la reparaci\u00f3n:<\/p>\n<ul style=\"margin: 15px 0 20px 25px;line-height: 1.7\">\n<li style=\"margin-bottom: 8px\"><strong>91 p\u00e1ginas<\/strong> reparadas: 22 temas en cuatro idiomas, m\u00e1s 3 traducciones hu\u00e9rfanas.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>1062 bloques de c\u00f3digo<\/strong> comprobados uno por uno, repartidos en 74 art\u00edculos.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>82 enlaces<\/strong> probados, de los cuales solo uno estaba roto.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>70 p\u00e1ginas<\/strong> reescritas para sortear el problema de las llaves, sin una sola vuelta atr\u00e1s.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>M\u00e1s de 30 reglas<\/strong> de control en el nuevo generador, y 10 pruebas autom\u00e1ticas que no tocan el sitio.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>6 minutos<\/strong> aproximadamente para producir, enlazar y verificar cuatro borradores en la prueba real.<\/li>\n<\/ul>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">Reconstruir en lugar de remendar<\/h2>\n<figure class=\"wp-block-image size-large aligncenter\" style=\"margin: 35px 0\">\n<img decoding=\"async\" src=\"https:\/\/www.lowcostwebagency.com\/wp-content\/uploads\/2026\/10\/automate-blog-ai-story-repair-atelier.webp\" alt=\"Un taller de tres puestos con un robot redactor, un ensamblador y un inspector\" style=\"border-radius: 8px;width: 100%;height: auto\" title=\"\"><figcaption style=\"text-align: center;font-size: 0.9em;color: #555;margin-top: 8px\">Reconstruir: un puesto para escribir, otro para ensamblar y otro para revisar.<\/figcaption><\/figure>\n<p>Reparar noventa y una p\u00e1ginas no resolv\u00eda nada si al d\u00eda siguiente, a las 10:14, el generador produc\u00eda una nueva tanda de defectos. Hab\u00eda que tratar la causa. Y la causa, como hab\u00edamos visto, no era un fallo que corregir, sino una forma de dise\u00f1ar: un sistema en el que un modelo escribe texto libre, que un script limpia a golpe de expresiones regulares, sin que nadie mire el resultado.<\/p>\n<p>Claude propuso no remendar ese script, sino escribir uno nuevo, construido sobre tres principios sencillos.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Tres principios<\/h3>\n<p><strong>Pedir una estructura, no un texto maquetado.<\/strong> En lugar de reclamar un art\u00edculo en lenguaje de marcado, que el script tendr\u00eda que limpiar despu\u00e9s, se le pide a la IA que entregue el art\u00edculo dividido en bloques identificados: un p\u00e1rrafo, un intert\u00edtulo, una lista, una tabla, un bloque de c\u00f3digo. Cada bloque se verifica uno por uno. Ya no hay nada que \u201climpiar\u201d, as\u00ed que ya no hay nada que borrar por error.<\/p>\n<p><strong>Separar la escritura de la maquetaci\u00f3n.<\/strong> La IA nunca escribe una l\u00ednea de p\u00e1gina web. Un programa cl\u00e1sico, que siempre hace lo mismo de la misma manera, convierte los bloques en p\u00e1ginas con el formato de mi tema. Por una buena raz\u00f3n: una m\u00e1quina que redacta es creativa, y por tanto variable. Una m\u00e1quina que maqueta tiene que ser aburrida, y por tanto fiable.<\/p>\n<p><strong>No publicar nunca sin control.<\/strong> Entre la redacci\u00f3n y el sitio se interpone una inspecci\u00f3n de calidad independiente, que puede bloquear la operaci\u00f3n.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">El recorrido de un art\u00edculo hoy<\/h3>\n<ol style=\"margin: 15px 0 20px 25px;line-height: 1.7\">\n<li style=\"margin-bottom: 8px\"><strong>Elecci\u00f3n del tema.<\/strong> El programa consulta los art\u00edculos ya publicados, as\u00ed como los borradores, y sus palabras clave, para no competir nunca consigo mismo. Por defecto elige un tema duradero en lugar de uno de actualidad, porque los datos de actualidad son los que una IA inventa con m\u00e1s facilidad.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Redacci\u00f3n en ingl\u00e9s<\/strong>, en forma de bloques, con una palabra clave principal precisa.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Control de calidad.<\/strong> Una treintena de reglas, cada una de las cuales corresponde a un defecto realmente encontrado en las p\u00e1ginas reparadas: texto cortado al final del art\u00edculo, emojis, restos de formato, unidades sin may\u00fascula, \u201cAI\u201d en un texto que no est\u00e1 en ingl\u00e9s, idioma dudoso, palabra clave ausente del primer p\u00e1rrafo, c\u00f3digo inv\u00e1lido, enlace a un art\u00edculo inexistente. Si hay un error, se pide una correcci\u00f3n dirigida, dos veces como m\u00e1ximo.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Adaptaci\u00f3n al franc\u00e9s, al espa\u00f1ol y al italiano.<\/strong> No una traducci\u00f3n palabra por palabra: una adaptaci\u00f3n, con una gu\u00eda de estilo por idioma, una lista de nombres de marca que no se traducen y la obligaci\u00f3n de conservar exactamente la misma estructura. Los bloques de c\u00f3digo no se vuelven a traducir nunca: simplemente se copian del original.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Segundo control<\/strong>, idioma por idioma, con una comparaci\u00f3n a\u00f1adida con la versi\u00f3n inglesa.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Maquetaci\u00f3n<\/strong>, hecha por el programa, y fabricaci\u00f3n de las im\u00e1genes.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Dep\u00f3sito como borradores en el sitio<\/strong>, enlace de los cuatro idiomas y relectura de cada borrador para asegurarse de que el sitio ha guardado lo que deb\u00eda.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Informe<\/strong>, en un archivo, con todo lo ocurrido y cualquier advertencia.<\/li>\n<\/ol>\n<p>Si una etapa se bloquea, no se crea nada. Mejor ning\u00fan art\u00edculo que un art\u00edculo estropeado.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Cuatro idiomas, cuatro maneras de equivocarse<\/h3>\n<p>Decir \u201ctraducimos a tres idiomas\u201d da la impresi\u00f3n de un trabajo mec\u00e1nico. Es falso, y es una de las razones por las que el antiguo script se equivocaba con tanta discreci\u00f3n: cada idioma tiene sus trampas, y se acumulan.<\/p>\n<p>En franc\u00e9s, la inteligencia artificial se escribe \u201cIA\u201d y no \u201cAI\u201d, los dos puntos, los signos de interrogaci\u00f3n y las comillas francesas se separan de la palabra con un espacio, y un t\u00edtulo lleva may\u00fascula solo en su primera palabra y en los nombres propios. El espa\u00f1ol y el italiano tambi\u00e9n usan la sigla \u201cIA\u201d. En italiano, \u201cai\u201d es adem\u00e1s una palabra de uso diario, una preposici\u00f3n: es justamente la que el antiguo script transformaba en \u201cAI\u201d, treinta y cinco veces. En espa\u00f1ol, el bot\u00f3n de contacto tuvo que pasar al tuteo para alinearse con el tono del resto del sitio.<\/p>\n<p>En todas partes se aplican otras reglas: los nombres de marcas y productos no se traducen jam\u00e1s, las unidades de medida tienen una caja que importa (un kW no es un kw) y la palabra clave principal debe sonar natural en cada idioma en lugar de traducirse al pie de la letra. Ninguna de estas reglas exist\u00eda en el antiguo script. El nuevo da a cada idioma su propia gu\u00eda de estilo, su l\u00e9xico de marcas y sus propios controles. Este trabajo es invisible cuando sale bien, y justo ese es el objetivo.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Las salvaguardas<\/h3>\n<p>El nuevo programa se detiene solo a los noventa minutos. Se niega a lanzarse dos veces a la vez. Solo crea un art\u00edculo al d\u00eda. Lleva un diario. Se apoya en diez pruebas autom\u00e1ticas que verifican su comportamiento sin tocar el sitio, incluido un sitio falso que simula aver\u00edas. Por \u00faltimo, las contrase\u00f1as ya no se escriben en el c\u00f3digo, sino que se guardan en un archivo aparte.<\/p>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">La trampa escondida de las 10:14<\/h2>\n<figure class=\"wp-block-image size-large aligncenter\" style=\"margin: 35px 0\">\n<img decoding=\"async\" src=\"https:\/\/www.lowcostwebagency.com\/wp-content\/uploads\/2026\/10\/automate-blog-ai-story-repair-pause.webp\" alt=\"Un reloj de pared sin n\u00fameros junto a un enorme bot\u00f3n de pausa\" style=\"border-radius: 8px;width: 100%;height: auto\" title=\"\"><figcaption style=\"text-align: center;font-size: 0.9em;color: #555;margin-top: 8px\">La pausa que nunca terminaba: nadie para pulsar una tecla.<\/figcaption><\/figure>\n<p>El nuevo generador exist\u00eda, superaba sus pruebas e incluso hab\u00eda tenido \u00e9xito en un ensayo en seco con el Gemini de verdad. Quedaba conectarlo a mi tarea programada, y fue entonces cuando le ped\u00ed a Claude que se asegurara de que el archivo principal de mi script, el que Windows lanza cada d\u00eda, estaba perfecto para generar los pr\u00f3ximos art\u00edculos. El trabajo merec\u00eda algo m\u00e1s que un simple copiar y pegar, y Claude descubri\u00f3 dos cosas.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Una pausa que no terminaba nunca<\/h3>\n<p>La primera: mi tarea, llamada \u201cR\u00e9daction post lcwa\u201d, lanzaba un peque\u00f1o archivo de arranque cuya \u00faltima l\u00ednea conten\u00eda un comando \u201cpause\u201d. Espera a que se pulse una tecla, lo cual es pr\u00e1ctico cuando se lanza el script a mano y se quiere leer el resultado. Pero en una tarea autom\u00e1tica ya no hay nadie para pulsar nada.<\/p>\n<p>Resultado: el script hab\u00eda terminado su trabajo en unos minutos, pero la tarea segu\u00eda apareciendo como \u201cen curso\u201d. Y Windows, por defecto, se niega a lanzar una nueva ejecuci\u00f3n mientras la anterior no haya terminado. La activaci\u00f3n del d\u00eda siguiente se habr\u00eda ignorado sin ruido. Sin error, sin alerta, simplemente un art\u00edculo que nunca habr\u00eda llegado.<\/p>\n<p>Claude suprimi\u00f3 el comando, a\u00f1adi\u00f3 un archivo de arranque aparte para mis pruebas manuales y termin\u00f3 la ejecuci\u00f3n que llevaba bloqueada desde la ma\u00f1ana. La tarea volvi\u00f3 al estado \u201clista\u201d, con su pr\u00f3xima ejecuci\u00f3n programada para el d\u00eda siguiente a las 10:14.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Un borrador todav\u00eda a la antigua<\/h3>\n<p>El segundo descubrimiento me hizo sonre\u00edr con amargura. La ejecuci\u00f3n de la ma\u00f1ana se hab\u00eda hecho con el antiguo script, y por tanto hab\u00eda creado cuatro borradores en los cuatro idiomas, con todos los defectos de siempre. No estaban publicados, lo que los hac\u00eda inofensivos, pero me recordaron que el calendario de un proceso autom\u00e1tico no se detiene porque est\u00e9s reparando algo.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">La prueba real<\/h3>\n<p>Para comprobarlo, no hay sustituto de un ensayo de verdad. Antes de llegar a \u00e9l, una primera comprobaci\u00f3n de conexi\u00f3n hab\u00eda fallado, por cierto, de forma instructiva: Claude le hab\u00eda pedido a Gemini una respuesta min\u00fascula para probar el enlace, y el modelo hab\u00eda agotado su presupuesto de respuesta pensando sin escribir nada. El nuevo programa detect\u00f3 esa salida interrumpida en lugar de dejarla pasar. Es exactamente lo que el antiguo script jam\u00e1s habr\u00eda hecho.<\/p>\n<p>La prueba real tuvo lugar despu\u00e9s en el sitio, como borrador. El programa eligi\u00f3 un tema, \u201cThe Essential Website Maintenance Checklist for Small Businesses\u201d, redact\u00f3 el art\u00edculo, lo adapt\u00f3 a los otros tres idiomas sin errores bloqueantes, fabric\u00f3 las im\u00e1genes y deposit\u00f3 los cuatro borradores, enlazados entre s\u00ed. Todo dur\u00f3 unos seis minutos.<\/p>\n<p>Despu\u00e9s, una auditor\u00eda independiente revis\u00f3 los cuatro borradores en el sitio: t\u00edtulos, descripciones, imagen destacada, dos im\u00e1genes en el texto con sus textos alternativos, cuatro enlaces internos que apuntaban a art\u00edculos publicados en el idioma correcto, bot\u00f3n de contacto, estructura id\u00e9ntica a lo enviado. Ning\u00fan problema. Un nuevo lanzamiento inmediato del programa fue, por su parte, rechazado al instante: ya se hab\u00eda creado un art\u00edculo ese d\u00eda, y la protecci\u00f3n antiduplicados hizo su trabajo.<\/p>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">Lo que la IA no hace por m\u00ed<\/h2>\n<figure class=\"wp-block-image size-large aligncenter\" style=\"margin: 35px 0\">\n<img decoding=\"async\" src=\"https:\/\/www.lowcostwebagency.com\/wp-content\/uploads\/2026\/10\/automate-blog-ai-story-repair-decisions.webp\" alt=\"Una persona y un robot que se dan la mano junto a una balanza y un cartel indicador\" style=\"border-radius: 8px;width: 100%;height: auto\" title=\"\"><figcaption style=\"text-align: center;font-size: 0.9em;color: #555;margin-top: 8px\">Algunas decisiones siguen siendo humanas: la m\u00e1quina propone, yo decido.<\/figcaption><\/figure>\n<p>El informe que Claude me entreg\u00f3 al final de la reparaci\u00f3n contiene un apartado entero titulado \u201cDecisiones que te corresponden\u201d. Dice mucho sobre el reparto de papeles. Una m\u00e1quina puede comprobar que un enlace funciona, que un fragmento de c\u00f3digo est\u00e1 intacto, que un t\u00edtulo es id\u00e9ntico a su fuente. No puede decidir lo que mi agencia quiere contar, ni los riesgos que acepta correr. Esto es lo que qued\u00f3 sobre mi mesa.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Las decisiones editoriales<\/h3>\n<p><strong>Los duplicados.<\/strong> Tres traducciones \u201chu\u00e9rfanas\u201d (en franc\u00e9s, espa\u00f1ol e italiano) son duplicados de baja calidad de un art\u00edculo sobre meta descripciones que ya estaba en el sitio. Claude las limpi\u00f3 y las volvi\u00f3 a publicar, pero me advirti\u00f3 de que lo m\u00e1s limpio ser\u00eda redirigirlas al art\u00edculo principal o retirarlas. Conservar, redirigir o despublicar: es una decisi\u00f3n de SEO, por tanto, una decisi\u00f3n de jefe.<\/p>\n<p><strong>La actualidad.<\/strong> Entre los art\u00edculos de Gemini, algunos comentaban la actualidad de grandes marcas: un fabricante de coches, plataformas de streaming, gigantes tecnol\u00f3gicos. Contienen cifras y afirmaciones que nadie ha verificado en la fuente, y Claude me recomend\u00f3 una revisi\u00f3n humana de los hechos. Estos temas, adem\u00e1s, est\u00e1n muy lejos de mi oficio, lo que devuelve a una pregunta m\u00e1s sencilla: \u00bfde verdad necesito hablar de ellos?<\/p>\n<p><strong>La competencia entre mis propios art\u00edculos.<\/strong> Varios art\u00edculos apuntan a palabras clave muy cercanas (las meta descripciones, los t\u00edtulos generados por IA, el contenido escrito por IA). Cuando dos p\u00e1ginas de un mismo sitio responden a la misma b\u00fasqueda, Google tiene que elegir, y no siempre elige la que uno habr\u00eda preferido. Fusionar, diferenciar o impulsar uno de los dos: me toca arbitrar a m\u00ed.<\/p>\n<p><strong>Los t\u00edtulos y las im\u00e1genes.<\/strong> Una vez a\u00f1adido el nombre de la agencia, 90 t\u00edtulos de 91 superan los sesenta caracteres, y Google puede cortarlos en sus resultados. En una imagen fabricada por la IA hay una palabra mal escrita; en otro art\u00edculo falta una imagen. Son defectos menores, pero afectan a la imagen de la agencia: yo decido c\u00f3mo tratarlos.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Publicar o no publicar<\/h3>\n<p>El nuevo generador deposita sus art\u00edculos como borradores, igual que el antiguo. Una opci\u00f3n permitir\u00eda publicarlos solos cuando todos los controles est\u00e9n en verde; no la he activado, y los temas de actualidad se quedar\u00edan de todos modos en borrador. Un solo ensayo completo con art\u00edculos de verdad no basta para confiar el escaparate de la agencia a un automatismo. Decidir\u00e9 despu\u00e9s de observar varios d\u00edas de producci\u00f3n.<\/p>\n<h3 style=\"margin-top: 30px;margin-bottom: 15px;font-weight: 600\">Lo que sigue siendo imperfecto<\/h3>\n<p>Prefiero ser honesto sobre lo que no est\u00e1 resuelto. El filtro del sitio que borraba todo lo que hab\u00eda entre llaves est\u00e1 sorteado, pero no explicado: sabemos c\u00f3mo es y c\u00f3mo evitarlo, no qu\u00e9 elemento del sitio lo aplica. Es como fregar una fuga sin haber encontrado la tuber\u00eda. Un m\u00f3dulo de enlaces internos inserta adem\u00e1s enlaces en los bloques de c\u00f3digo, donde no pintan nada; no es grave, pero sigue pendiente de arreglar. Por \u00faltimo, por higiene, hay que renovar algunos accesos al sitio. Es un trabajo de seguridad, me corresponde a m\u00ed, y de hecho Claude se abstuvo de tocarlo: no dir\u00e9 m\u00e1s aqu\u00ed.<\/p>\n<p>Nada de esto es un fracaso de la IA. El d\u00eda que un asistente te anuncie que todo es perfecto, es hora de desconfiar. Este me entreg\u00f3 la lista de lo que no lo es.<\/p>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">Manual de uso: diez reglas para automatizar un blog con IA sin caer en trampas<\/h2>\n<p>Si tienes un blog, aunque sea modesto, y piensas confiar parte del trabajo a una IA, esto es lo que me ha ense\u00f1ado esta aventura. No son principios te\u00f3ricos: cada una de estas reglas corresponde a un incidente real de este relato.<\/p>\n<ol style=\"margin: 15px 0 20px 25px;line-height: 1.7\">\n<li style=\"margin-bottom: 8px\"><strong>No publiques nunca sin que nadie haya mirado.<\/strong> Mi generador publicaba cada ma\u00f1ana sin ning\u00fan control humano. Hizo falta una auditor\u00eda completa para medir la magnitud de los da\u00f1os. Un borrador cuesta un minuto de revisi\u00f3n; un art\u00edculo roto en l\u00ednea cuesta la confianza de los lectores.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Separa la escritura, la maquetaci\u00f3n y el control.<\/strong> La IA redacta, un programa previsible fabrica la p\u00e1gina, una tercera capa verifica. Cuando una sola herramienta lo hace todo, se controla a s\u00ed misma, y eso no es un control.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Pide una estructura, no un texto ya maquetado.<\/strong> En lugar de reclamar un art\u00edculo para convertirlo despu\u00e9s, se piden bloques identificados (t\u00edtulos, p\u00e1rrafos, listas, tablas, c\u00f3digo) que el programa ensambla por s\u00ed mismo.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Convierte cada defecto en una regla.<\/strong> La palabrita italiana \u201cai\u201d convertida en la sigla \u201cAI\u201d en treinta y cinco sitios no solo se corrigi\u00f3: dio origen a un control autom\u00e1tico. El generador aplica hoy m\u00e1s de treinta.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Prueba de verdad, pero de forma reversible.<\/strong> Antes de cada modificaci\u00f3n del sitio en l\u00ednea, <a href=\"https:\/\/www.lowcostwebagency.com\/es\/7-mejores-complementos-de-backup-y-restauracion-wordpress\/\">una copia de seguridad<\/a>; despu\u00e9s, una relectura y una vuelta atr\u00e1s autom\u00e1tica si algo falla.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Verifica como un visitante, no como un desarrollador.<\/strong> Mirar lo que contiene la base de datos no basta: hay que abrir la p\u00e1gina p\u00fablica. Fue comparando lo que el sitio mostraba de verdad con lo que le hab\u00edamos enviado como apareci\u00f3 el misterio de las llaves.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Empieza con borradores.<\/strong> Te dejan el derecho a equivocarte y el \u00faltimo minuto para enmendar un error.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Vigila los textos cortados.<\/strong> Una IA puede detenerse a mitad de una frase sin avisar. El generador comprueba ahora que cada respuesta ha terminado con normalidad, y rechaza un art\u00edculo que no acaba bien.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Prefiere los temas duraderos y verifica los datos.<\/strong> Una gu\u00eda pr\u00e1ctica envejece bien. Un art\u00edculo de actualidad exige cifras exactas, que una IA a veces inventa con un aplomo perfecto.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Mant\u00e9n tus contrase\u00f1as fuera del c\u00f3digo y exige rastros de lo que hacen tus tareas autom\u00e1ticas.<\/strong> Los accesos est\u00e1n ahora en un archivo aparte. Y cada ejecuci\u00f3n deja un diario y un c\u00f3digo de salida legibles, porque fue una simple pausa olvidada al final de un archivo de arranque la que hab\u00eda bloqueado la tarea de la ma\u00f1ana.<\/li>\n<\/ol>\n<p>Ninguna de estas reglas est\u00e1 reservada a los desarrolladores. Todas se reducen a la misma idea: conseguir que el error sea visible antes de que llegue al lector.<\/p>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">Una memoria para lo que viene<\/h2>\n<p>\u00daltima petici\u00f3n de esta serie, y no la menor: le ped\u00ed a Claude que conservara una memoria de todo lo que hemos hecho, para recurrir a ella cada vez que creemos art\u00edculos nuevos. Un art\u00edculo m\u00e1s no parte, pues, de cero: hereda lo que los anteriores han ense\u00f1ado a este sitio.<\/p>\n<p>En concreto, esta memoria retiene cinco cosas:<\/p>\n<ul style=\"margin: 15px 0 20px 25px;line-height: 1.7\">\n<li style=\"margin-bottom: 8px\">las reglas editoriales aprendidas a las malas (las may\u00fasculas italianas, el tuteo espa\u00f1ol, las marcas que no se traducen);<\/li>\n<li style=\"margin-bottom: 8px\">la organizaci\u00f3n del generador y de sus archivos;<\/li>\n<li style=\"margin-bottom: 8px\">el funcionamiento de la tarea de las 10:14 y sus trampas;<\/li>\n<li style=\"margin-bottom: 8px\">el historial de incidentes, con su causa;<\/li>\n<li style=\"margin-bottom: 8px\">la lista de lo que queda por decidir.<\/li>\n<\/ul>\n<p>No contiene, en cambio, ni contrase\u00f1as ni claves: esos secretos no tienen nada que hacer en una memoria. El h\u00e1bito sirve para cualquier proyecto. Despu\u00e9s de una obra, p\u00eddele a tu asistente que anote lo que conviene recordar: quince d\u00edas de tanteos se convierten as\u00ed en un saber hacer, en lugar de quedarse en una simple an\u00e9cdota.<\/p>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">Qu\u00e9 ha cambiado desde el 1 de octubre<\/h2>\n<figure class=\"wp-block-image size-large aligncenter\" style=\"margin: 35px 0\">\n<img decoding=\"async\" src=\"https:\/\/www.lowcostwebagency.com\/wp-content\/uploads\/2026\/10\/automate-blog-ai-story-repair-demain.webp\" alt=\"Un escritorio por la ma\u00f1ana con un port\u00e1til, un caf\u00e9, una pila de borradores y un peque\u00f1o robot que saluda\" style=\"border-radius: 8px;width: 100%;height: auto\" title=\"\"><figcaption style=\"text-align: center;font-size: 0.9em;color: #555;margin-top: 8px\">Ma\u00f1ana a las 10:14: me esperar\u00e1 un nuevo borrador.<\/figcaption><\/figure>\n<p>El 1 de octubre ten\u00eda un blog que publicaba cada d\u00eda gracias a un script que yo cre\u00eda bajo control. El 15 tengo noventa y una p\u00e1ginas auditadas y reparadas una a una, verificadas en el sitio en l\u00ednea como lo har\u00eda un visitante; un generador completamente reconstruido; una tarea programada que ya no se queda bloqueada; y una primera prueba real que produjo cuatro borradores enlazados en cuatro idiomas, controlados incluso antes de que yo los abriera.<\/p>\n<p>Lo que hay que retener: Gemini sigue escribiendo los art\u00edculos de la ma\u00f1ana. Lo que ha cambiado no es el nombre del modelo: es todo lo que hay alrededor. Una estructura impuesta, un ensamblaje previsible, controles que bloquean, borradores, un diario, copias de seguridad. No he aprendido que una IA sea mejor que otra. He aprendido que a una IA se la dirige como a cualquier colaborador: le explicas lo que esperas, verificas lo que te entrega y montas el sistema que permite enmendar el error.<\/p>\n<p>Tambi\u00e9n he aprendido a pedir. Lo que de verdad me sirvi\u00f3 fue exigir un an\u00e1lisis detallado antes de actuar, una verificaci\u00f3n real despu\u00e9s y un informe que diga lo que queda por hacer. El resultado es mejor, pero sobre todo ahora s\u00e9 por qu\u00e9 lo es.<\/p>\n<p>Esta es la clase de rigor que intento aportar a los proyectos de mis clientes: sitios web, automatizaciones, contenidos. Si tienes un blog que publica solo y que nadie ha le\u00eddo nunca entero, o si quieres automatizar sin perder el control, hablemos. Miraremos juntos lo que es s\u00f3lido, lo que lo es menos y qu\u00e9 conviene hacer primero.<\/p>\n<p>Ma\u00f1ana a las 10:14 se generar\u00e1 un nuevo art\u00edculo. Me esperar\u00e1 como borrador, y me parece muy bien as\u00ed.<\/p>\n<h2 style=\"margin-top: 45px;margin-bottom: 20px;font-weight: 700\">Anexo: peque\u00f1o glosario para no perderse<\/h2>\n<p>Algunas palabras vuelven una y otra vez en este relato. Aqu\u00ed est\u00e1n, sin jerga.<\/p>\n<ul style=\"margin: 15px 0 20px 25px;line-height: 1.7\">\n<li style=\"margin-bottom: 8px\"><strong>Script<\/strong>: un peque\u00f1o programa, escrito aqu\u00ed en Python, que ejecuta una serie de instrucciones sin intervenci\u00f3n humana.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Tarea programada<\/strong>: un despertador para ordenadores. Windows lanza el programa a la hora fijada, haya o no alguien delante de la pantalla.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Gemini, Claude<\/strong>: dos asistentes de inteligencia artificial, el primero creado por Google y el segundo por Anthropic.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Token<\/strong>: la unidad de medida del texto para una IA, m\u00e1s o menos un trozo de palabra. La longitud de una respuesta se limita en tokens.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>WordPress, Avada, <a title=\"\" class=\"aalmanual\" target=\"_blank\"  rel=\"nofollow\"   style=\"color:#1e73be;\" href=\"https:\/\/wpml.org\/?aid=99585&#38;affiliate_key=maLr5kyxRHSY\">WPML<\/a><\/strong>: WordPress es el software que hace funcionar mi sitio; Avada, su tema, es decir, su aspecto; <a title=\"\" class=\"aalmanual\" target=\"_blank\"  rel=\"nofollow\"   style=\"color:#1e73be;\" href=\"https:\/\/wpml.org\/?aid=99585&#38;affiliate_key=maLr5kyxRHSY\">WPML<\/a>, el m\u00f3dulo que gestiona las versiones en varios idiomas y vincula cada p\u00e1gina con sus traducciones.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Plugin<\/strong>: un m\u00f3dulo que se a\u00f1ade a WordPress para darle una funci\u00f3n suplementaria (SEO, traducci\u00f3n, enlaces internos\u2026).<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Borrador<\/strong>: un art\u00edculo guardado en el sitio pero invisible para el p\u00fablico, a la espera de revisi\u00f3n.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Lenguaje de marcado (HTML, Markdown)<\/strong>: el HTML es el lenguaje de las p\u00e1ginas web. Markdown es una escritura simplificada, con asteriscos y almohadillas, que luego se convierte en HTML; cuando la conversi\u00f3n falla, esos signos quedan visibles en el texto.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Entidad<\/strong>: una manera de escribir un car\u00e1cter reservado en una p\u00e1gina web. El signo \u201cmenor que\u201d se escribe <code>&amp;lt;<\/code>.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Expresi\u00f3n regular<\/strong>: una f\u00f3rmula de b\u00fasqueda y sustituci\u00f3n, muy potente y muy fr\u00e1gil, que el antiguo script usaba para \u201climpiar\u201d el texto.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>SEO<\/strong>: el conjunto de pr\u00e1cticas que ayudan a que una p\u00e1gina aparezca en los resultados de Google.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Palabra clave principal<\/strong>: la expresi\u00f3n con la que una p\u00e1gina busca posicionarse en los resultados. Cuando dos p\u00e1ginas apuntan a la misma, compiten entre s\u00ed: es la canibalizaci\u00f3n.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Auditor\u00eda<\/strong>: una revisi\u00f3n met\u00f3dica y cuantificada, aqu\u00ed realizada por un programa.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>C\u00f3digo de salida<\/strong>: el peque\u00f1o n\u00famero que devuelve un programa al terminar, cero si todo ha ido bien, otra cosa en caso contrario. Es lo que permite a una tarea autom\u00e1tica se\u00f1alar un fallo.<\/li>\n<li style=\"margin-bottom: 8px\"><strong>Vuelta atr\u00e1s<\/strong>: el regreso autom\u00e1tico a la versi\u00f3n anterior de una p\u00e1gina cuando una verificaci\u00f3n falla.<\/li>\n<\/ul>\n<p>\u00bfTe falta alguna palabra? D\u00edmelo y la a\u00f1adir\u00e9 a este glosario.<\/p>\n<div class=\"lowcost-cta-box\" style=\"background: #f8fafc;border-left: 4px solid #0f172a;padding: 25px;margin: 40px 0;border-radius: 0 8px 8px 0\">\n<h3 style=\"margin-top: 0;color: #0f172a;font-size: 1.3em\">\u00bfListo para escalar tu infraestructura digital?<\/h3>\n<p style=\"color: #334155;line-height: 1.6\">No dejes que los cuellos de botella t\u00e9cnicos frenen tu crecimiento. Habla de tu proyecto en torno a <strong>Cuando mi generador rompi\u00f3 91 p\u00e1ginas: la historia de una reparaci\u00f3n<\/strong> directamente con nuestros expertos s\u00e9nior de Low Cost Web Agency.<\/p>\n<p style=\"margin-bottom: 0\"><a href=\"https:\/\/wa.me\/919786495150\" target=\"_blank\" style=\"display: inline-block;background: #25D366;color: white;padding: 12px 24px;border-radius: 6px;text-decoration: none;font-weight: bold\" rel=\"noopener\">\ud83d\udcac Cont\u00e1ctanos por WhatsApp (+919786495150)<\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>C\u00f3mo automatizar un blog con IA sin romperlo todo: la historia de 91 p\u00e1ginas da\u00f1adas, la reparaci\u00f3n con Claude y diez reglas. L\u00e9ela ahora.<\/p>\n","protected":false},"author":1,"featured_media":52163,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_ps_exclude_item":"","rank_math_title":"Automatizar un blog con IA: 91 p\u00e1ginas rotas y reparadas","rank_math_description":"C\u00f3mo automatizar un blog con IA sin romperlo todo: la historia de 91 p\u00e1ginas da\u00f1adas, la reparaci\u00f3n con Claude y diez reglas. L\u00e9ela ahora.","rank_math_focus_keyword":"automatizar un blog con IA","footnotes":"","_links_to":"","_links_to_target":""},"categories":[1499],"tags":[],"class_list":["post-52176","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-low-cost-web-agency-es-2"],"_links":{"self":[{"href":"https:\/\/www.lowcostwebagency.com\/es\/wp-json\/wp\/v2\/posts\/52176","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lowcostwebagency.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lowcostwebagency.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lowcostwebagency.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lowcostwebagency.com\/es\/wp-json\/wp\/v2\/comments?post=52176"}],"version-history":[{"count":1,"href":"https:\/\/www.lowcostwebagency.com\/es\/wp-json\/wp\/v2\/posts\/52176\/revisions"}],"predecessor-version":[{"id":52185,"href":"https:\/\/www.lowcostwebagency.com\/es\/wp-json\/wp\/v2\/posts\/52176\/revisions\/52185"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lowcostwebagency.com\/es\/wp-json\/wp\/v2\/media\/52163"}],"wp:attachment":[{"href":"https:\/\/www.lowcostwebagency.com\/es\/wp-json\/wp\/v2\/media?parent=52176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lowcostwebagency.com\/es\/wp-json\/wp\/v2\/categories?post=52176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lowcostwebagency.com\/es\/wp-json\/wp\/v2\/tags?post=52176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}