Documento técnico · Sitio web corporativo

Arquitectura y operación de yoysimulators.com

Cómo está construido el sitio, cómo publica marketing sus cambios con asistencia de IA sin escribir código, y qué garantías de SEO, AEO y seguridad da ese flujo.

Versión
1.0
Fecha
29-09-2026
Responsable
Área Web / TI, yoy
Destinatarios
Marketing, agencia SEO, gerencia

1Resumen

yoysimulators.com es un sitio estático: cada página se genera como un archivo HTML completo antes de publicarse y se sirve desde un hosting estático. No hay servidor de aplicación, base de datos ni panel de administración expuesto a internet. El sitio tiene 34 páginas en 3 idiomas (inglés, español y francés), 102 URLs en total, incluido el blog.

El contenido de cada página vive en un archivo de datos por idioma. Los elementos de SEO (title, meta description, canonical, hreflang, datos estructurados, sitemap y redirecciones) se generan desde esos datos con plantillas, así que nadie los escribe a mano en cada página.

Marketing publica sin códigoPide el cambio a un asistente de IA en lenguaje natural. La IA edita los datos siguiendo las reglas del repositorio.
Cada cambio se valida soloAntes de publicarse, el sitio completo se construye y pasa validaciones automáticas de SEO, enlaces, imágenes y diseño móvil.
Todo queda versionadoCada publicación es un registro con autor, fecha y diferencias. Volver a una versión anterior toma un clic.
HubSpot se mantieneFormularios, CRM, tracking y automatizaciones siguen en HubSpot. Lo único que cambia es dónde se alojan las páginas.

2Arquitectura

El sitio tiene cuatro piezas. Ninguna ejecuta código en el servidor cuando un visitante abre una página.

PiezaTecnologíaFunción
RepositorioGitHub, yoyTeam/yoysimulators-webFuente única del sitio: contenido, plantillas, estilos e historial completo de cambios.
GeneradorEleventy 3Convierte los datos de cada página en HTML final, aplicando las plantillas de SEO y diseño.
Validación continuaGitHub ActionsConstruye el sitio y corre las validaciones en cada propuesta de cambio. Si alguna falla, el cambio no se puede publicar.
HostingHosting estático (ver opciones abajo)Sirve los archivos con HTTPS y cabeceras de seguridad, y genera una URL de vista previa para cada propuesta.

Opciones de hosting

El resultado de la generación es un conjunto de archivos HTML estándar, así que el sitio no depende de un proveedor. Hay dos opciones evaluadas, y el sitio, el flujo de publicación y las validaciones son los mismos en ambas:

OpciónVentajasA considerar
Instancia propia en Oracle Cloud (OCI)Infraestructura donde yoy ya opera sus sistemas, control total del servidor y de los registros de acceso.El servidor web y su actualización quedan a cargo del área web.
Plataforma de hosting estático con CDN (por ejemplo, Cloudflare Pages)Distribución global, vistas previas por propuesta y reversión integradas, sin servidor que mantener.La configuración vive en la cuenta del proveedor.

Cambiar de una opción a otra no requiere tocar el contenido ni las plantillas: se publican los mismos archivos en otro destino.

Así está organizado el contenido dentro del repositorio:

src/content/es/mining.json      título, meta description, secciones y bloques de la página "Minería" en español
src/content/en/mining.json      la misma página en inglés
src/content/fr/mining.json      la misma página en francés
src/_data/routes.json           URL de cada página por idioma y redirecciones 301
src/_data/robots.json           política de rastreo, incluidos los bots de IA
src/_includes/                  plantillas: cabecera, pie, secciones, bloques, SEO
CONTENIDO.md                    reglas que sigue la IA al editar (sección 4)

Marketing y la IA trabajan solo en src/content/ y, para URLs nuevas, en routes.json. Las plantillas las mantiene el área web, y un cambio en ellas se aplica de una vez a todas las páginas.

3Cómo se publica un cambio

Un ejemplo real de pedido de marketing:

Pedido al asistente de IA

"En la página de Minería en español, agrega este párrafo después del bloque de CAEX Master, con esta imagen. Usa como keyword principal 'simulador de extintores', ajusta el title y la meta description, y replica el cambio en inglés y francés."

  1. La IA prepara el cambio marketing + IA

    Edita los archivos de contenido de los tres idiomas siguiendo CONTENIDO.md, sube la imagen con su texto alternativo y abre una propuesta de cambio (pull request) con un resumen en lenguaje simple.

  2. Validación automática GitHub Actions

    Se construye el sitio completo y corren las validaciones de la sección 7. Si algo falla, la propuesta queda bloqueada y el error indica qué página y qué elemento arreglar.

  3. Vista previa hosting

    Se genera una URL privada con el sitio tal como quedaría. Marketing revisa el resultado en escritorio y en móvil.

  4. Aprobación marketing o área web

    Una persona autorizada aprueba la propuesta. Los cambios de contenido los aprueba marketing; los que tocan plantillas o redirecciones, el área web.

  5. Publicación automática

    Al aprobar, el cambio pasa a la rama principal y el sitio se publica en menos de dos minutos. El sitemap se actualiza en la misma publicación.

  6. Reversión si hace falta cualquier aprobador

    Si algo no quedó bien, se revierte ese cambio puntual desde GitHub o se vuelve a publicar la versión anterior. Ninguna de las dos opciones requiere al área web.

Para quien prefiera editar viendo la página, existe además un editor visual propio (yoysimulators-cms) que publica por el mismo flujo: construye, valida, registra el cambio y permite volver a una versión anterior desde el editor.

Blog

Un post nuevo es un archivo de contenido más. La IA arma el post con su título, extracto, fecha, autor, imagen destacada, etiquetas y versiones por idioma. El sitio agrega solo la tarjeta en el listado del blog, la URL, el sitemap y los datos estructurados de artículo.

4Reglas para la IA

El archivo CONTENIDO.md, en la raíz del repositorio, es el contexto que recibe cualquier asistente de IA (Claude, Gemini o ChatGPT) antes de editar. Está versionado: si la agencia SEO recomienda un cambio de criterio, se actualiza ahí y rige desde el siguiente pedido. Resumen de lo que exige:

  • Alcance: editar solo archivos de contenido. No tocar plantillas, estilos, scripts ni cabeceras.
  • Estructura: un solo H1 por página, con la keyword principal. Jerarquía H2 y H3 sin saltos.
  • Metadatos: title de hasta 60 caracteres, meta description de 140 a 160 y slug estable. Cambiar una URL existente exige una redirección 301 en routes.json.
  • Imágenes: texto alternativo descriptivo en el idioma de la página, formato WebP o JPG, peso máximo definido y ancho y alto declarados.
  • Idiomas: todo cambio se replica en los tres idiomas o se marca explícitamente como pendiente de traducción.
  • Estilos: usar solo los bloques y variantes del sistema de diseño de yoy. No escribir CSS ni HTML libre.
  • Enlaces: enlaces internos con la URL del mismo idioma. Los externos se abren en otra pestaña.
  • Keywords: la lista vigente por página, entregada por la agencia SEO, vive en el mismo archivo.

Estas reglas no dependen de que la IA las cumpla. Las que se pueden medir también son validaciones automáticas (sección 7), así que un cambio que las rompa no llega a publicarse.

5SEO técnico

Cada página se entrega como HTML completo, con el contenido visible en el código fuente, sin depender de JavaScript. Es el formato que los buscadores leen con menos esfuerzo. Todo lo siguiente se genera en cada publicación:

ElementoCómo se genera
<title> y meta descriptionDesde los datos de la página, por idioma.
CanonicalAutomático, apuntando a la URL propia de cada idioma.
hreflang (es, en, fr, x-default)Automático desde routes.json. Las tres versiones siempre se enlazan entre sí.
Atributo langPor idioma, en cada página.
Datos estructurados JSON-LDOrganization y WebSite en todo el sitio, Product en las fichas de simuladores, Article en el blog y BreadcrumbList en todas las páginas.
Open Graph y Twitter CardsTítulo, descripción e imagen para compartir en redes, tomados de los datos de la página.
sitemap.xmlRegenerado en cada publicación, con alternates por idioma.
robots.txtDesde robots.json, con la política de bots de IA que defina el equipo SEO.
Redirecciones 301Desde routes.json. Se conservan las 129 URLs heredadas de Squarespace y Weglot, incluidas etiquetas del blog y rutas antiguas.
Página 404Responde con código 404 real y en el idioma de la URL, para no generar contenido duplicado.
Detección de idiomaSi alguien llega a una página en inglés con el navegador en español o francés, se le lleva a esa versión. Si elige otro idioma en el selector, se respeta su elección. Los rastreadores siempre reciben la URL solicitada.

Las imágenes son etiquetas <img> normales con texto alternativo, dimensiones y carga diferida. Google las indexa igual que en cualquier CMS, porque lo que evalúa es el HTML resultante, no la herramienta que lo produjo.

6AEO: optimización para motores de respuesta

Los asistentes de IA (ChatGPT, Gemini, Perplexity, Google AI Overviews) leen el sitio igual que un buscador, con una diferencia: muchos de sus rastreadores no ejecutan JavaScript. Un sitio estático les entrega todo el contenido en la primera respuesta.

  • Contenido legible sin JavaScript: textos, encabezados, listas y tablas vienen en el HTML.
  • Datos estructurados: el JSON-LD de la sección 5 describe qué es cada simulador, para qué industria sirve y quién lo fabrica.
  • Preguntas frecuentes: hay un bloque de FAQ con su marcado FAQPage para las páginas donde marketing quiera responder preguntas directas.
  • Política de rastreo: el acceso de cada bot de IA se controla en robots.json, según lo que decida el equipo SEO.
  • Velocidad: las páginas se entregan ya generadas, sin tiempo de procesamiento en el servidor.

7Controles de calidad

Estas validaciones corren en cada propuesta de cambio y deben pasar todas para que el cambio se publique. No dependen de revisión humana.

ValidaciónQué comprueba
Estructura SEOEn las 102 URLs: un solo H1, title y description presentes, canonical correcto, 4 hreflang que apuntan a la misma página en cada idioma.
HTML e imágenesAtributos bien formados (por ejemplo, comillas sin escapar en un texto alternativo), texto alternativo completo e imágenes que existen.
Recursos externosSolo se cargan recursos de dominios autorizados. Nada queda apuntando a Squarespace ni a servicios desconocidos.
Diseño móvilSe renderiza cada página en un navegador real a ancho de teléfono y se detectan desbordes y elementos superpuestos.
RedireccionesTodas las URLs heredadas responden 301 hacia su destino, sin cadenas ni bucles.
BlogTarjetas visibles, imagen destacada y cabecera correctas en cada post.
ConsentimientoNinguna herramienta de medición ni píxel publicitario se carga antes de que el visitante acepte.
SeguridadLa política de seguridad de contenido (CSP) no bloquea nada legítimo y las cabeceras cumplen los límites del hosting.
Datos estructuradosEl JSON-LD es válido y consistente con el contenido visible de la página.

Estos controles ya encontraron errores reales. Por ejemplo, detectaron 26 textos alternativos con comillas sin escapar en 9 páginas en español, que habían quedado de una traducción asistida anterior. Hoy un error así impide publicar.

8Seguridad y continuidad

  • Superficie mínima: no hay base de datos, login público, plugins ni servidor que parchar. Los ataques habituales a WordPress o a CMS alojados no tienen dónde entrar.
  • Cabeceras de seguridad: HTTPS obligatorio, CSP con lista cerrada de scripts, protección contra incrustación en otros sitios y política de referrer.
  • Cuentas: hosting y GitHub con autenticación de dos factores obligatoria. Solo personas autorizadas aprueban publicaciones.
  • Historial completo: cada cambio queda con autor, fecha y diferencias exactas. Nada se sobrescribe sin registro.
  • Respaldo: el repositorio contiene el sitio completo. Se puede reconstruir y publicar en cualquier proveedor de hosting estático en minutos.
  • Privacidad: banner de consentimiento en los tres idiomas (Consent Mode v2 de Google), con enlace a la política de privacidad de yoy y su anexo para el sitio.
  • Sin dependencia de una persona: la publicación ocurre en GitHub y en el hosting, no en un equipo local. Este documento y los manuales del repositorio describen cada procedimiento.

9Roles y responsabilidades

RolResponsable deNo necesita
MarketingTextos, keywords, imágenes, posts del blog, metadatos. Aprueba sus propios cambios de contenido.Saber programar ni pedir cada cambio a TI.
Asistente de IAConvertir el pedido en cambios que cumplan CONTENIDO.md y abrir la propuesta.Acceso a producción. Solo propone.
Agencia SEOEstrategia de keywords, auditorías y criterios de CONTENIDO.md. Revisa URLs de vista previa cuando lo pida.Acceso al código. Sus criterios se incorporan como reglas y validaciones.
Área web / TIPlantillas, sistema de diseño, validaciones, seguridad, redirecciones y auditoría periódica.Intervenir en cambios de contenido del día a día.

10Comparación con HubSpot CMS

La alternativa propuesta es alojar las páginas en HubSpot Content Hub. Esta tabla compara ambas opciones para este sitio en particular:

CriterioSitio estático (actual)HubSpot Content Hub
Edición por marketingCon asistente de IA, o en el editor visual propio.Editor visual de HubSpot, sin IA integrada al flujo de yoy.
SEO técnicoCompleto y verificado en cada publicación (secciones 5 y 7).Bueno. Algunas funciones de SEO y multi-idioma dependen del plan contratado.
Validación antes de publicarAutomática, bloquea errores.Revisión manual del editor.
Historial y reversiónCompleto, por cambio, sin límite.Historial de revisiones por página.
CostoSin licencia de CMS. Hosting estático y GitHub dentro de los planes actuales.Licencia mensual por plan y usuarios. Funciones avanzadas en planes superiores.
PortabilidadHTML estándar. Se mueve a cualquier hosting.Temas en HubL, lenguaje propio de HubSpot. Salir implica rehacer el sitio.
MigraciónYa realizada. Diseño idéntico al original, auditado.Rehacer 102 URLs, reconstruir el diseño y volver a auditar.
Formularios, CRM y trackingHubSpot, integrado.HubSpot, nativo.

HubSpot sigue siendo la herramienta de marketing en ambos casos. La diferencia está solo en dónde viven las páginas y cómo se controla su calidad técnica.

11Riesgos y mitigaciones

RiesgoMitigación
La IA introduce un error de HTML o SEO.Las validaciones automáticas bloquean la publicación y la vista previa permite revisarla antes.
Un cambio publicado sale mal.Reversión en un clic. Cada publicación anterior queda guardada.
Se cambia una URL y se pierde posicionamiento.Toda URL eliminada o renombrada exige una redirección 301, y la validación lo comprueba.
La IA no respeta el estilo de marca.Solo puede usar bloques del sistema de diseño. HTML y CSS libres no pasan la validación.
Marketing queda sin apoyo técnico.El flujo no requiere al área web para contenido. Hay manuales en el repositorio y un canal de soporte para casos nuevos.
Cambian los criterios de SEO o AEO.Se actualizan CONTENIDO.md y las validaciones. Una mejora en una plantilla llega a las 102 URLs a la vez.

12Evidencia medida

Resultado de revisar las 36 URLs de la auditoría SEO en el sitio original (Squarespace con Weglot) y en el sitio nuevo:

Criterio (36 URLs)SquarespaceSitio nuevo
Canonical correcto por idioma0 / 3636 / 36
hreflang completo y recíproco0 / 3636 / 36
Atributo lang del idioma real0 / 3636 / 36
Un solo H125 / 3636 / 36
Sin traducción por script de terceros (Weglot)0 / 3636 / 36

Estas cifras se pueden verificar en cualquier momento con el código fuente de cada URL o con las herramientas de la agencia.

13Estado de implementación

Este documento describe el sistema completo. Al 29-09-2026, este es el estado de cada parte:

ComponenteEstado
Sitio estático, 102 URLs, diseño idéntico al originalImplementado
Canonical, hreflang, lang, sitemap, robots, 404 realImplementado
Redirecciones de las 129 URLs heredadasImplementado
Detección de idioma del navegadorImplementado
Consentimiento, GA4 y tracking de HubSpotImplementado
Cabeceras de seguridad y CSPImplementado (CSP en modo reporte hasta el lanzamiento)
Validaciones automáticas de SEO, HTML, móvil, blog y consentimientoImplementado
Editor visual con publicación, historial y reversiónImplementado (en piloto, sobre el sitio de pruebas)
Validación en GitHub Actions y vistas previas por propuestaEn implementación
Datos estructurados JSON-LD, Open Graph y bloque FAQEn implementación
CONTENIDO.md con las reglas para la IAEn implementación
Piloto de publicación con marketingPendiente
Cambio de DNS de yoysimulators.comPendiente, coordinado con la agencia SEO