04Plataforma de evento deportivo · SEO y GEO

Colombia Championship

Sitio oficial de un CrossFit Licensed Event con la mayor bolsa de premios del CrossFit colombiano: Opens con cuenta regresiva, categorías, blog y preguntas frecuentes, optimizado para aparecer en Google y ser citado por asistentes de IA.

Rol
Ingeniero de Software & Analista Web
Periodo
Oct 2025 — Actualidad
Alcance
Análisis, desarrollo, SEO técnico y GEO
Stack
React 18 · Vite · Tailwind CSS · Puppeteer
Vista principal de Colombia Championship: Plataforma de evento deportivo · SEO y GEO
100/100
rendimiento en PageSpeed (escritorio, en producción)
96/100
rendimiento en PageSpeed (móvil, en producción)
100/100
SEO en PageSpeed, escritorio y móvil
8
tipos de datos estructurados para Google e IA
01

Contexto

El Colombia Championship es un CrossFit Licensed Event con 288 cupos en cinco categorías y una bolsa de premios de $100.000.000 COP. El sitio es el punto de entrada de los atletas: ahí consultan fechas, WODs del Open y parámetros por categoría, y desde ahí se inscriben.

El sitio era una aplicación React que llegaba vacía a Google y a los robots de IA, y no tenía contenido informativo que respondiera las dudas de los atletas. Mi trabajo fue analizar los requerimientos con la organización, desarrollar la plataforma y llevarla a un nivel profesional de SEO técnico, SEO local y GEO (posicionamiento en asistentes de IA).

02

La solución

01

Análisis y diseño

Levantamiento de requerimientos funcionales y no funcionales con los organizadores, diagramas UML de casos de uso, secuencia y flujos, e historias de usuario estimadas y priorizadas en Jira bajo Scrum.

Colombia Championship: Inicio del evento
02

Inicio del evento

Video de fondo, cuenta regresiva a la final, bolsa de premios y llamada a la inscripción. La calidad del video se elige según la red del visitante: imagen en 2G/3G, 480p en 4G y 720p o 1080p en WiFi.

Colombia Championship: Opens con cuenta regresiva
03

Opens con cuenta regresiva

Cada WOD del Open se publica con su workout por categoría, estándares de movimiento, rulebook oficial y un contador del tiempo que le queda al atleta para enviar su video.

Colombia Championship: Una sola fuente de datos
04

Una sola fuente de datos

Cupos, cargas, movimientos, fechas y precios viven en un solo archivo (competencia2027.js). De ahí salen la tabla de parámetros, las preguntas frecuentes, los datos estructurados y el llms.txt: al cambiar de edición se edita un archivo y todo el sitio se actualiza.

Colombia Championship: Preguntas frecuentes para Google e IA
05

Preguntas frecuentes para Google e IA

Respuestas generadas desde los datos oficiales y publicadas con schema FAQPage. Junto con el archivo llms.txt y un robots.txt que permite a GPTBot, ClaudeBot y PerplexityBot, el sitio está preparado para ser citado por ChatGPT, Perplexity y Gemini.

Colombia Championship: Blog por clústeres temáticos
06

Blog por clústeres temáticos

Siete artículos en Markdown organizados por temas (clasificar en el Open, categorías, competir en Montería) que enlazan a su página pilar. Los borradores no se publican y las portadas de 1200×630 se generan por script.

Colombia Championship: Artículos con autoría y contexto
07

Artículos con autoría y contexto

Cada artículo muestra autor real con página de perfil, fechas de publicación y actualización, tiempo de lectura, resumen corto y migas de pan, con schemas BlogPosting, Person y BreadcrumbList.

Colombia Championship: Diseño pensado para celular
08

Diseño pensado para celular

La mayoría de atletas consulta el sitio desde el teléfono: menú compacto, cuenta regresiva siempre visible y contenido que se reorganiza sin perder información.

Colombia Championship: Rendimiento medido en producción
09

Rendimiento medido en producción

PageSpeed Insights sobre el dominio publicado: 100 en rendimiento y SEO en escritorio; 96 en rendimiento y 100 en accesibilidad y SEO en móvil.

03

Desafíos técnicos

Una aplicación React invisible para buscadores

Reto
React dibuja la página en el navegador, así que Google y los robots de IA, que no ejecutan JavaScript, recibían el HTML vacío.
Solución
Script de prerenderizado con Puppeteer que en cada build abre todas las rutas en un Chrome sin interfaz y guarda el HTML completo. Hoy /opens llega con cerca de 1.900 palabras indexables.

Errores 404 que devolvían el inicio

Reto
Cualquier URL inexistente mostraba el Inicio con código 200, algo que Google interpreta como contenido duplicado.
Solución
Configuración de Apache en Hostinger (.htaccess) con páginas 404 reales, redirecciones 301, HTTPS forzado, compresión y caché del navegador.

Recursos pesados

Reto
Logos y patrocinadores pesaban casi 2 MB y el proyecto arrastraba unos 40 MB de archivos sin uso.
Solución
Conversión a WebP con tamaños reales (logo de 812 KB a 28 KB, patrocinadores de 908 KB a 28 KB), limpieza de recursos y fuente servida desde el propio dominio.

Video de fondo en redes lentas

Reto
Mantener el impacto visual sin sacrificar la carga en celulares con conexión limitada.
Solución
Detección del tipo de red para servir imagen o la calidad de video adecuada, sin bloquear la interacción con la página.
04

Stack

Frontend
  • React 18
  • Vite 7
  • Tailwind CSS 3
  • Motion
  • GSAP
SEO y GEO
  • Prerenderizado con Puppeteer
  • JSON-LD
  • Sitemap de imágenes y videos
  • llms.txt
Contenido
  • Markdown
  • front-matter
  • marked
Infraestructura
  • Hostinger
  • Apache (.htaccess)
Análisis
  • Requerimientos RF/RNF
  • UML
  • Jira
  • Scrum