La semana que el SEO de Chordna nos dio la lección
Cuatro hotfixes seguidos en el prerender de Chordna, una limpieza de instrucciones que afecta a todos los repos y una skill de contenido que llevaba meses en hibernación. La semana en la que el detalle aburrido decidió cómo nos lee Google.
Hay semanas de feature shiny y semanas de fontanería. Esta fue de fontanería, y la fontanería terminó siendo lo más interesante.
El protagonista absoluto fueron cuatro PRs seguidos en Chordna intentando arreglar algo que sobre el papel parece resuelto desde hace dos décadas: que Google y Twitter lean correctamente las páginas de un SPA. Spoiler: nunca está resuelto del todo, sobre todo cuando metes prerender por encima de React y pretendes que la home, /explore, /about y /privacy se comporten como las páginas de canción que sí funcionaban bien.
Chordna: la semana en la que el prerender nos miró mal
La historia empieza el viernes 18 con un fix que sonaba inocente: rebuild diario del frontend más una validación de prerender completa. Hasta ahí, ok. Pero al activar la validación nos saltó lo obvio que llevábamos meses ignorando: las rutas que no eran de canción se servían sin prerender, y por tanto sin meta tags útiles. Google las indexaba como páginas vacías con un título genérico. Mucha letra de canción bien posicionada, y la home del producto invisible.
El sábado 19 fueron tres PRs seguidos. Primero, prerender para rutas no-canción — el fix de fondo. Luego, una regresión de HF2: el prerender se ejecutaba antes de que el canonical específico de ruta estuviera disponible, así que todas las páginas heredaban el canonical de la home. Esto es el tipo de bug que sólo se ve si tu smoke test compara canonical contra URL solicitada, y el nuestro no lo hacía bien. Tercer PR: errores de sintaxis en bash del propio smoke test (sí, el test que iba a salvarnos tenía bugs) y un falso positivo en el título de la home. Y de remate, el cuarto: hacer que el smoke parsease twitter:description y og:image como descripción, porque dependiendo de qué meta-tag mires obtienes resultados distintos y el test estaba siendo demasiado optimista.
Moraleja técnica del frente Chordna: si tu pipeline de SEO depende de cuatro tags que pueden estar o no en el HTML servido, tu validación no puede ser "existe <title>". Tiene que ser "el canonical coincide con la URL solicitada, la descripción no es la de la home, y la imagen OG no es el placeholder por defecto". Las cuatro PRs juntas son básicamente el mismo aprendizaje: el smoke test es producto, no infraestructura. Si te falla un día y lo ignoras, tu posicionamiento se degrada en silencio.
La parte de producto: Chordna depende de SEO orgánico. No tenemos paid acquisition, no tenemos viralidad social, vivimos de que alguien busque la letra de una canción y aparezcamos. Cada día que las páginas se sirven sin meta tags útiles es un día de tráfico que no vuelve. No es glamouroso contarlo, pero es el motor real del producto.
CLAUDE.md: la dieta semanal
La otra historia transversal fue una limpieza coordinada de los archivos CLAUDE.md en Hezu, Ganga24, Sofi y sixsevenapps. El 17 de abril hubo commits casi simultáneos compactando secciones: "Documentation Structure", "Module Architecture", "Key Directories", "Key Components". En sixsevenapps pasamos de 86 a 49 líneas.
Esto suena a documentación, pero es performance. Cada token que un agente lee al arrancar una sesión es coste y, sobre todo, ruido. Cuanto más largo es el CLAUDE.md, más fácil que el modelo se ancle en detalles que ya no son relevantes y menos atención queda para la tarea en sí. La regla interna fue sencilla: si una sección describe estructura de carpetas que se puede inferir con un ls, fuera. Si una sección documenta convenciones reales que no se ven en el código, se queda. Resultado: instrucciones más cortas, decisiones más rápidas, menos sesiones que empiezan releyendo cosas en vez de actuando.
No es un cambio sexy. Es de esos que se notan dos semanas después cuando todo va un poco más fluido y nadie sabe por qué.
Ganga24: una skill que llevaba un mes en el cajón
En Ganga24 importamos finalmente FEAT-022, la skill /content-ganga24 que había quedado archivada en un plan del 4 de abril. Es la que genera slideshows de deals, imágenes creativas, captions y calendario editorial desde cualquier sesión. La parte interesante no es la skill en sí — es que el plan original tenía dos semanas de antigüedad y aún era válido al desempolvarlo. Eso significa dos cosas: o el problema sigue siendo el mismo (probable), o no hemos avanzado el suficiente en producto para invalidarlo (también probable). Lo dejamos como FEAT activa, no como reliquia.
sixsevenapps: cerrando un pike
En casa archivamos las findings de la auditoría del 2 de abril como feedback y dimos por cerrado el pike. Nada espectacular, pero el journal pasó a generarse en automático dos días esa semana (14 y 16), lo cual es la métrica que importa: que la maquinaria de contenido del propio site funcione sin tocarla.
Lo que se llevó esta semana
Si tuviera que resumirlo en una frase: la semana en la que descubrimos que el smoke test de SEO era más importante que la feature de SEO. Y la semana en la que recortamos instrucciones a los agentes para que dejaran de leer y empezaran a trabajar.
La fontanería no se cuenta en pitch decks. Pero es la que decide si Google te encuentra el lunes.