powerabode DMCCSitio, búsqueda y operación · La Haya y Dubái · 2026

Portafolio / Sitio multilingüe, SEO y operación

Nueve idiomas, 747 páginas y ningún servidor de aplicación.

powerabode es una empresa de sistemas comerciales para operadores de energía: convierte doctrina de cadena de suministro —licitación, contratos, recuperación de costos— en software y en servicios que se compran por entregable. Sus lectores son jefes de compras y contratos de petroleras nacionales e internacionales, en Europa, Medio Oriente, Asia y África. El sitio llegó como un paquete estático listo para subir. El encargo fue llevarlo a producción y volverlo un sistema: que se genere en nueve idiomas sin que las copias diverjan, que cada URL sea la que Google y los modelos esperan, que mida sin pedir permiso donde la ley lo exige y sin pedirlo de más donde no, y que avise antes que el cliente cuando algo deja de funcionar.

Cliente
powerabode DMCC
Sector
Sistemas comerciales para energía · IOC y NOC
Alcance
Arquitectura, idiomas, SEO/GEO/AEO, analítica y operación
Rol
Estrategia, desarrollo, contenido técnico y operación
Estado
En línea · powerabode.com
Portada de powerabode.com con el titular «Who shapes what your contracts cost? How do you optimise value?» sobre paneles solares y un aerogenerador en un valle verde.

01El encargo

Un sitio que se lee en nueve idiomas.

El que llega a powerabode.com no está comparando agencias: es un director de contratos de un operador estatal que quiere saber si alguien entiende por qué su recuperación de costos se queda en el 85 % y no en el 99. Lee en inglés, pero su equipo lee en árabe, en portugués o en bahasa, y la decisión la toma un comité. Por eso el sitio existe en nueve idiomas, y por eso cada idioma tenía que ser un sitio completo y no una traducción del menú.

El paquete que entregó el cliente era sólido en contenido y frágil en todo lo demás: 728 páginas escritas a mano o copiadas, un sitemap con 40 URLs para un sitio de 360, enlaces relativos que mandaban al lector en español a la página inglesa, un aviso de cookies que no describía lo que el sitio hacía y un formulario de demostración sin nada detrás. Ninguno de esos problemas se ve en una revisión visual. Todos cuestan posiciones, leads o confianza.

La decisión de fondo fue no cambiar de plataforma. No hay datos dinámicos, ni usuarios, ni catálogo: un sitio estático es la arquitectura correcta. Lo que faltaba era el sistema alrededor —generadores, validador, despliegue, medición y vigilancia— para que 747 archivos se comporten como un solo sitio.

Lo que tenía que resolver

  • 01Nueve idiomas sin copias que diverjan
  • 02Una URL canónica por página y por idioma
  • 03Árabe de derecha a izquierda, sin romper el diseño
  • 04Contenido que respondan los buscadores y los modelos
  • 05Analítica legal en la UE y útil fuera de ella
  • 06Reservas reales sobre el Outlook del cliente
  • 07Saber que el sitio está caído antes que el cliente
  • 08Correr en hosting compartido, sin framework

Nuestro rol

Arquitectura del sistema estático, generadores de idioma, menú y contenido, validador, SEO técnico, schema y plantillas de respuesta, piezas de contenido, consentimiento y analítica, lectura de Clarity, backend de reservas sobre Microsoft Graph y Resend, despliegue y sonda de salud.

02La regla

Lo que decidió cada script.

Si hay que acordarse, va a fallar.

Dos de los incidentes que este sitio vivió en producción tienen la misma causa. Una hoja de estilos nueva salió con el mismo número de versión que la anterior; los navegadores que ya la tenían en caché pintaron el menú nuevo con el CSS viejo, y la cabecera pasó de 73 a 2.233 píxeles. Nadie se equivocó en el código: alguien olvidó cambiar una cadena a mano.

Desde entonces la regla fue que nada dependa de la memoria. La versión de los assets es el hash de su contenido. Los enlaces internos los reescribe un script. El sitemap se deriva de las canónicas de cada página. El menú se construye leyendo las páginas que enlaza. Y cada pasada es idempotente: correrla dos veces no produce diferencias, y el validador rechaza el build si algo quedó desfasado.

GenerarValidarPublicar

03Arquitectura de información

Producto, soluciones y evidencia.

El menú plano de la entrega mezclaba producto, servicios y lectura. Se reorganizó alrededor de las tres preguntas con las que llega un comprador técnico, en un mega menú que existe igual en las 747 páginas y en los nueve idiomas, porque se genera desde el contenido de cada página y no se escribe dos veces.

01 · Product

Qué es el sistema.

The Workbench —la plataforma que lleva la doctrina al día a día del equipo de contratos— y Codex, el cuerpo de conocimiento que la alimenta. Es la puerta de quien quiere ver software antes de hablar con nadie.

02 · Solutions

Qué se compra y a qué precio.

Siete servicios, cada uno con alcance, tarifa y fecha fijos, más los programas de recuperación de costos, liderazgo de costo y valor, arquitectura de procurement y G2G. Cada servicio enlaza a los análisis que lo explican, y cada análisis al servicio que lo ejecuta.

03 · Resources

Por qué creerles.

Insights, Academy, la filosofía y el glosario de propiedad intelectual. El riel destacado del menú se genera desde el índice de Insights, así que siempre muestra el último análisis en el idioma del lector, y el build falla si un enlace del menú no lleva a ninguna parte.

04Sistema visual

Azul de grupo, teal de lectura.

Azul powerabode

Titulares, botones primarios y bandas oscuras

HEX
#1B3764
RGB
27 · 55 · 100
Teal de texto

Etiquetas, enlaces y estado activo del menú

HEX
#267A73
RGB
38 · 122 · 115
Teal gráfico

Insignias, subrayados y el Value Disk

HEX
#45B5AA
RGB
69 · 181 · 170
Tinta

Cuerpo de texto

HEX
#24344A
RGB
36 · 52 · 74
Verde

Estado operativo en la insignia de salud

HEX
#7FB069
RGB
127 · 176 · 105
Azul claro

Acentos de gráficos y diagramas

HEX
#8FC7E8
RGB
143 · 199 · 232
Soft

Bandas alternas y tarjetas

HEX
#F7F9FB
RGB
247 · 249 · 251

05Tipografía

Una pregunta en Light, la respuesta en Bold.

Titulares: la pregunta en 300, la respuesta en 700

Open Sans

¿Quién decide lo que cuesta un contrato?

300 Light · 600 · 700 Bold

Lectura larga en nueve alfabetos

Open Sans

Entre ocho y doce personas determinan el costo real de un contrato.

300 · 400 · 600

Una sola palabra: «powerabode»

Comfortaa

powerabode

400 · 500

H1

¿Cómo se optimiza el valor?

Light con la cola en Bold
H2

Siete servicios, una cadena

Light, interlineado ajustado
H3

Recuperación de costos

Semibold
Párrafo

Lo que se licita es solo el 20 % del valor en juego.

17 px · 300 · interlineado 1,7
Etiqueta

THE WORKBENCH

Caja alta en teal de texto · tracking +0,16 em
La palabra del grupo

powerabode

Comfortaa en minúscula

06El sitio

Las páginas, tal como las sirve el dominio.

07El build

Once pasadas, un orden que no se negocia.

Las páginas en inglés y las fuentes de traducción son lo único que se edita a mano. Todo lo demás —las ocho ediciones traducidas, el menú, los rieles, las rutas limpias y los sitemaps— lo producen scripts de Node sin dependencias, en un orden que importa: el generador de idiomas reconstruye las traducciones desde el inglés, así que cualquier pasada de contenido tiene que correr después de él.

  1. Fuentes

    HTML inglés e i18n/
  2. Generadores

    Idiomas, menú, rieles, gráficos
  3. Hash de assets

    Versión derivada del contenido
  4. Rutas y sitemaps

    Derivados de las canónicas
  5. Validador

    747 páginas, cero enlaces rotos
  1. 01

    Generar los idiomas

    Ocho ediciones desde el inglés y `i18n/`, con el `lang`, la dirección y la etiqueta `base` de cada idioma. Las páginas anidadas mantienen sus enlaces dentro del idioma elegido.

  2. 02

    Componer lo compartido

    Mazo de fundadores, índice de Insights, mega menú, llamada a G2G y Value Disk. Cada pasada lee el texto ya aprobado de cada página e idioma; no escribe copy nueva.

  3. 03

    Versionar por contenido

    El `?v=` de `pa3.css` y `pa3.js` es el sha256 de los dos archivos. Cambia cuando cambian ellos, y solo entonces: una pasada de contenido no toca 728 páginas por nada.

  4. 04

    Inyectar la cabecera

    Verificación de Google y Bing, Consent Mode y Clarity entre marcadores, desde un solo archivo. Volver a correrlo reemplaza el bloque, no lo apila.

  5. 05

    Canonizar enlaces y rutas

    Los 26.235 enlaces internos se reescriben a su ruta canónica con el prefijo del idioma, y se generan las carpetas de respaldo para que cada URL limpia responda 200 en cualquier host.

  6. 06

    Derivar los sitemaps y validar

    Un sitemap por idioma bajo un índice, cada URL con su clúster hreflang completo, leído de las propias páginas. Después, el validador: enlaces, assets, anclas del índice de cada artículo, doctype, `lang` y versión de assets.

9 idiomas · 747 páginas validadas · 0 dependencias de npm

08Nueve idiomas

Una traducción que no te devuelve al inglés.

Inglés, árabe, bengalí, español, francés, indonesio, japonés, portugués y ruso. Tener las páginas traducidas era la parte fácil; lo difícil era que el lector se quedara en su idioma y que Google entendiera qué página es la versión de cuál.

01 · El enlace que se escapaba

Ocho idiomas mandaban al inglés.

Los enlaces eran relativos y las páginas limpias declaraban `<base href="/">`: en `/es/about/` cada enlace del menú resolvía contra la raíz y llevaba al lector a la página inglesa. Se reescribieron todos a rutas absolutas con su prefijo, y el generador ya no puede reintroducir el error.

02 · El clúster hreflang

Un x-default por página, no por sitio.

Las 728 páginas apuntaban su `x-default` a la portada, así que todos los clústeres reclamaban la misma URL, y Google descarta hreflang cuando eso pasa. Ahora cada página apunta a su propia versión inglesa, y las páginas que solo existen en inglés no anuncian traducciones que no hay.

03 · Detectar sin secuestrar

El navegador manda; la zona horaria, no.

La primera visita detectaba el idioma por zona horaria cuando el navegador no coincidía, y un lector en inglés en Madrid acababa en la edición española. Ahora la preferencia explícita del navegador gana siempre. El árabe usa propiedades lógicas para que el cajón, el menú y el índice se espejen solos.

09Las ediciones

El mismo sitio, de derecha a izquierda.

10SEO técnico

Una URL por página. Ni una más.

Antes de escribir una sola palabra para posicionar, había que conseguir que el sitio se pudiera indexar como un solo sitio. Cada página existía en hasta cuatro direcciones, y el sitemap solo conocía una de cada nueve.

01 · El host

Un host, una barra, ningún .html.

`www` redirige al ápice y HTTP a HTTPS. `/about.html` y `/about/` respondían los dos 200; ahora el primero hace 301 al segundo, comparando contra la petición original para que las reescrituras internas no entren en bucle. Canónicas, hreflang, Open Graph, JSON-LD y sitemap declaran la misma forma: la que termina en barra.

02 · El sitemap

De 40 URLs a 369.

Un índice con un sitemap por idioma y cada URL con su clúster hreflang, derivado de las canónicas de las páginas: si una página cambia, el sitemap no puede quedarse atrás. Se verificó que las 369 URLs respondan 200 contra el Apache de producción.

03 · Lo heredado

31 redirecciones y un 404 de verdad.

Una auditoría de todas las URLs que alguna vez indexó el dominio encontró rutas antiguas con enlaces externos respondiendo 404. Cada una salta una sola vez a su destino canónico, y una ruta inventada responde 404 real, no un 200 con la portada. La verificación de Bing se sirve como XML exento de la redirección de host.

11AEO y contenido

Escrito para que la respuesta sea citable.

Un comprador de procurement ya no empieza en la página diez de Google: le pregunta a un asistente. El contenido se escribió para ganar esas dos lecturas a la vez —la del buscador y la del modelo que resume—, con la respuesta arriba, la estructura declarada y nada que el modelo tenga que adivinar.

01 · La plantilla

Respuesta corta, índice, FAQ, fuentes.

Los 25 análisis siguen la misma forma: hero, respuesta rápida, introducción, índice con anclas, cuerpo, herramientas, autor, FAQ, resumen y referencias. Cada uno declara BlogPosting, BreadcrumbList y FAQPage, y la FAQ visible es la misma del JSON-LD.

02 · Las palabras del comprador

Títulos que dicen lo que se busca.

Con datos de DataforSEO para Google Estados Unidos, los títulos y descripciones del hub de servicios, los siete servicios y seis análisis pasaron a abrir con la frase que el comprador escribe: procurement consulting, category management, contract management, should-cost analysis. Cuatro guías nuevas atacaron términos con demanda que ningún análisis cubría, sin canibalizar los existentes.

03 · El grafo

Organización, servicios y términos.

La portada declara Organization con razón social, las dos oficinas, logotipo y temas de conocimiento, más WebSite. Cada servicio declara Service con proveedor, audiencia y área servida. El glosario es un DefinedTermSet. Y los análisis enlazan al servicio que ejecuta la idea, con anclas de palabra clave, y viceversa.

12Insights

La respuesta primero. El razonamiento después.

13GEO

Visible para el que responde, no para el que entrena.

La política de rastreadores separa dos usos que la mayoría de los sitios mezcla. El `robots.txt` declara señales de contenido —búsqueda sí, entrenamiento no, uso como referencia— y cierra la puerta a los rastreadores que recogen datos para entrenar modelos: GPTBot, ClaudeBot, Google-Extended, CCBot y una treintena más. Los buscadores y los asistentes que responden con enlace siguen entrando.

Es una decisión de negocio, no técnica. powerabode vende doctrina; que un modelo la absorba sin atribución es regalarla, y que un asistente la cite con enlace es exactamente el canal que busca. El panel de Clarity ya muestra sesiones que llegan desde Copilot, al lado de las de Google y Bing.

Para que esa cita ocurra, el contenido está escrito para extraerse: respuesta corta al inicio, encabezados que son preguntas, cifras con su fuente y un grafo JSON-LD que conecta organización, servicios, artículos y términos. Lo que se publica en Insights es lo que se puede citar; lo que vive dentro del trabajo con el cliente no se publica.

Qué ve cada rastreador

  • 01Googlebot y Bingbot: todo el sitio
  • 02Asistentes con enlace: todo el sitio
  • 03Rastreadores de entrenamiento: nada
  • 04Señal declarada: search=yes, ai-train=no
  • 05Uso permitido: referencia, con enlace

Pendiente

Un `llms.txt` con el mapa de doctrina, servicios y análisis: hoy el dominio responde 404 en esa ruta.

14Medición

Pedir permiso donde la ley lo exige.

La primera versión medía solo con consentimiento en todo el mundo, y el sitio pasó semanas casi ciego: un comprador en Riad o en Yakarta no hace clic en un aviso de cookies. La versión final aplica la regla donde la ley la impone y mide por defecto donde no, con la misma salida para todos.

01 · GA4

Consent Mode v2 por región.

El almacenamiento analítico arranca concedido, con un valor por defecto denegado para el Espacio Económico Europeo, Reino Unido y Suiza que Google aplica por IP. La publicidad queda denegada en todas partes. Una elección guardada gana siempre, se lee antes de que cargue la etiqueta y no se vuelve a preguntar.

02 · Clarity

Grabar desde la primera vista, sin cookies.

Clarity no tiene interruptor por región, así que una zona horaria `Europe/*` hace sus veces. Antes la etiqueta se cargaba solo al aceptar, y los heatmaps nunca veían la primera vista: justo la que importa. Ahora carga siempre en modo sin cookies y una sola llamada levanta Clarity y GA4 a la vez al aceptar.

03 · El aviso

Rechazar, en nueve idiomas.

El aviso nombra a Google Analytics y a Clarity, ofrece «Reject» con el mismo peso que aceptar y, al rechazar, retira a los dos y borra sus cookies. El consentimiento está versionado: quien aceptó un texto que no mencionaba la grabación de sesiones vuelve a ser preguntado. Y 234 páginas que se habían publicado sin el aviso ahora lo construyen.

15Clarity · 30 días

Pocos visitantes, lectura precisa.

Panel de Microsoft Clarity del proyecto, últimos 30 días al 27 de octubre de 2026. Es un sitio de nicho para un comprador muy concreto: el número es pequeño y se publica tal cual. Clarity excluyó además 248 sesiones de bots, más del doble que las humanas.

117
Sesiones humanas, de 112 usuarios distintos
34 %
Profundidad media de scroll
0 %
Sesiones con clics de frustración
0
Errores de JavaScript registrados

16Heatmaps

Dónde se detiene la lectura.

17Lo que se leyó

Tres lecturas, tres decisiones.

Clarity no se instaló para tener un panel: se instaló para encontrar lo que una auditoría estática no ve. Con poco tráfico la regla es leer comportamientos que se repiten, no porcentajes, y cruzar cada lectura con el código antes de tocar nada.

01 · La prueba llega tarde

Subir las cifras al primer viewport.

Solo el 21 % de las vistas de la portada pasa del 25 % de la página, y las tres cifras que sostienen el argumento —ahorro, recuperación y plazo— están justo debajo del pliegue. La propuesta es integrarlas en el hero, donde las ve todo el que entra.

02 · URLs viejas con visitas

Dos rutas heredadas seguían vivas fuera.

Entre las páginas de entrada aparecieron dos URLs de la arquitectura anterior, bajo `/systems-delivery/`, que respondían 404 a gente real. No estaban en ningún mapa de redirecciones; las encontró el tráfico. Cada una se mapea a su equivalente actual.

03 · El dominio temporal

El hosting servía una copia del sitio.

Cuatro sesiones entraron por el subdominio temporal del hosting, que servía el sitio completo. La canónica apuntaba bien, así que no había contenido duplicado indexado, pero la regla correcta es una redirección 301 del host temporal al ápice.

18Operación

Un sitio que avisa antes que el cliente.

Un sitio estático no se cae como una aplicación: se degrada en silencio. El CSS de una versión queda junto al HTML de otra, un certificado vence, un formulario deja de entregar. La operación se diseñó para ver exactamente esos fallos, que un ping de disponibilidad no ve.

  1. GitHub Actions

    Despliegue y sonda
  2. Bluehost

    public_html por rsync y SSH
  3. Cloudflare

    TLS, caché y rastreadores
  4. Sonda

    17 comprobaciones cada 15 min
  5. Alerta

    Correo solo al cambiar de estado
  1. 01

    Publicar sin lo interno

    Cada push a `main` sincroniza el repositorio con `public_html`. El `.htaccess` responde 404 a archivos ocultos, a `docs/`, `tools/` y a la configuración del repositorio: en el servidor solo se sirve el sitio.

  2. 02

    Sondear lo que importa

    Páginas críticas, dos ediciones traducidas, sitemap y robots, el CSS y el JS en la versión exacta que pide la portada en vivo, el 404 de una ruta inventada, la redirección a HTTPS, el vencimiento del certificado y el estado del backend de reservas.

  3. 03

    Publicar el estado

    El resultado se escribe en `status.json` junto a las páginas, y el despliegue lo excluye para no pisar una medición real con una copia vieja del repositorio. La insignia del pie lo lee.

  4. 04

    Avisar por transición

    Un correo HTML cuando el estado cambia —operativo, degradado, caído, recuperado— y un recordatorio cada sexta lectura fallida. Sin eso, un cron de 15 minutos convierte una caída de dos días en 192 correos iguales.

  5. 05

    No ocultar la alerta

    Si el correo falla, la sonda no falla con él: el informe se sube igual como artefacto del flujo. El canal de aviso no puede tapar lo que tenía que avisar.

17 comprobaciones · cada 15 minutos y después de cada despliegue · estado público en /status.json

19Reservas

Un formulario que no promete lo que no hizo.

El formulario de demostración siempre se había visto bien. No tenía nada detrás, y cuando fallaba abría el cliente de correo del visitante y mostraba la tarjeta de éxito: para una reserva, decía que el horario estaba confirmado sin haberlo escrito en ningún calendario.

01 · El calendario

Outlook 365 vía Microsoft Graph.

Una reserva se escribe como bloqueo tentativo y sin asistentes, porque añadir un asistente es lo que hace que Outlook envíe una invitación. El correo interno lleva enlaces firmados de un solo uso para confirmar o declinar; confirmar crea el enlace de Teams y avisa al cliente, en su idioma, árabe incluido.

02 · El correo

Resend para avisar, un minuto para acusar.

El equipo recibe la solicitud al instante, con Reply-To al visitante. El acuse al visitante sale un minuto después, porque una respuesta instantánea se lee como contestador. Las credenciales viven fuera de `public_html` y fuera del repositorio.

03 · El error honesto

Sin mailto, sin éxito falso.

Si el backend no responde, el formulario lo dice, conserva lo escrito y ofrece copiarlo, en los nueve idiomas. La validación ya no repinta el paso en cada tecla —el campo perdía el foco tras el primer carácter—, y los horarios se calculan en la zona del organizador, no en la del visitante.

20El dominio hoy

Lo que declara powerabode.com.

Contado sobre lo que sirve powerabode.com y sobre el validador del repositorio el 27 de octubre de 2026.

747
Páginas HTML validadas en cada build
369
URLs canónicas en 9 sitemaps por idioma
25
Análisis publicados en Insights
31
Rutas heredadas con 301 a su destino

21El estado

Lo que está hecho y lo que viene.

El sitio está en producción en powerabode.com, detrás de Cloudflare, con 369 URLs en sitemaps por idioma, verificación en Google Search Console y Bing Webmaster Tools, y la sonda reportando cada 15 minutos. El certificado, las redirecciones, el 404, los assets versionados y las nueve ediciones pasan en cada lectura.

En búsqueda, el sitio está al comienzo. Las URLs canónicas, el sitemap completo y el contenido por intención se publicaron entre julio y octubre de 2026; en la consulta de ese mes, DataforSEO registra las primeras posiciones del dominio en Google Estados Unidos, todavía fuera de la primera página. En un nicho técnico como este, la autoridad se construye en trimestres, no en semanas, y el caso no la adelanta.

Lo que sí cambió es medible en el código: un sitio que existía en hasta cuatro direcciones por página ahora tiene una; ocho idiomas que no se enviaban a Google ahora tienen sitemap; un formulario sin backend ahora tiene uno con error honesto; y un sitio que nadie vigilaba ahora avisa solo.

Siguiente trimestre

  • 01Subir las cifras de prueba al hero
  • 02Redirigir las dos rutas heredadas que aún dan 404
  • 03301 del subdominio temporal al ápice
  • 04Publicar un llms.txt con el mapa de doctrina
  • 05Revisar el perfil de enlaces entrantes heredado
  • 06Traducir el cuerpo de los análisis nuevos

Qué no afirma este caso

No hay cifras de leads, conversiones ni posiciones en primera página, porque todavía no existen. Las cifras de comportamiento son de un mes y se publican con su denominador. La infraestructura de descubrimiento y de medición está construida y se puede comprobar; el tráfico que traiga es un resultado que se reportará cuando llegue.

Sigue el trabajo

Un sitio que se valida, se mide y avisa solo.

Sitios multilingües, B2B técnico, servicios de alta confianza: en estos proyectos lo que cuesta no es el diseño, es lo que se rompe en silencio después. Construimos el sistema alrededor para que no pase.

Cuéntanos tu proyecto