Portafolio / Plataforma y captura de leads
Una mesa de commodities que cotiza sin llamar.
XRT Group compra y vende crudo, diésel EN 590, jet fuel, granos, res USDA Kosher y Halal, y aceites de palma, soya y girasol desde Houston, con operación en Rotterdam y Singapur. Su comprador es un director de procurement que evalúa un proveedor nuevo a las once de la noche y no va a levantar el teléfono para preguntar un grado. Construimos la plataforma que responde esa evaluación: 19 fichas de producto con especificación completa, un formulario de RFQ que llega pre-llenado con el producto que se estaba mirando, y 22 artículos que contestan lo que ese comprador busca antes de saber que existe XRT.

01El encargo
El brokering se hace por teléfono. La evaluación, no.
El comercio de commodities todavía se cierra hablando: un bróker conoce a otro bróker, se pasan un cargamento y cada eslabón se lleva su diferencial. Lo que cambió no es el cierre — es lo de antes. Antes de que alguien tome una llamada, un director de procurement ya decidió si vale la pena tomarla, y esa decisión la toma leyendo.
XRT Group llegó con una propuesta clara —origen directo, sin intermediarios, con inspección de tercero en cada lote— y un sitio que no la podía sostener frente a esa lectura. El encargo fue construir la superficie donde esa evaluación ocurre: catálogo con especificación real, ruta de contacto que no obligue a empezar de cero, y contenido que llegue a la búsqueda antes que la marca.
Lo que el negocio ya tenía
- 01Mesas en Houston, Rotterdam y Singapur
- 02Cinco pilares: energía, granos, aceites, proteínas y fletes
- 03Inspección con SGS, Bureau Veritas e Intertek
- 04Contratos bajo GAFTA y FOSFA
- 05Res USDA con certificación Kosher y Halal
- 06Cumplimiento FATF AML, OFAC, C-TPAT y AEO
Nuestro rol
Sistema de diseño, desarrollo full-stack en Next.js, arquitectura de captura de RFQ, migración de DNS y perímetro de seguridad, configuración de correo corporativo y transaccional, auditoría técnica de SEO/GEO/AEO y producción del contenido editorial.
02El diagnóstico
Tres cosas que impedían que el sitio se encontrara.
La auditoría técnica no midió opinión de diseño: midió si un motor de búsqueda —o un motor de respuesta con IA— podía leer el sitio, entenderlo y citarlo. Salieron seis bloqueadores; estos tres explican los otros.
Diecinueve productos en una sola URL.
Todo el catálogo vivía en una página con anchor links. Un comprador que busca «ULSD EN 590 10 ppm FOB» necesita una URL que hable de eso y solo de eso; con anclas no hay página que indexar, no hay título que ganar y no hay ficha que citar.
Sin sitemap, sin robots y sin schema.
No había sitemap.xml ni robots.txt, la ruta dinámica del blog no existía, y ni una línea de JSON-LD. Un sitio sin datos estructurados es legible para una persona e invisible para el sistema que decide qué mostrarle a esa persona.
URLs de WordPress sin redirect.
El sitio anterior corría en WordPress y sus URLs seguían citadas afuera. Sin 301 hacia las nuevas rutas, cada enlace heredado terminaba en un 404 — y el 404 no solo pierde la visita: devuelve la señal de que el dominio se rompió.
03La regla
La decisión que ordenó todo lo demás.
Una URL por producto. Una fuente de verdad.
Partir el catálogo en páginas individuales es fácil de decir y caro de mantener: diecinueve fichas son diecinueve sitios donde el grado, el INCOTERM o el volumen mínimo pueden quedar desactualizados de forma distinta. Por eso la migración a /products/[slug] vino con la condición que la hace sostenible: un solo archivo, products.ts, del que salen la ficha, la tabla del catálogo, el JSON-LD y los campos que pre-llenan el formulario.
Eso convierte una corrección de SEO en una decisión de arquitectura. Cambiar el volumen mínimo de la palma de 2.000 a 3.000 toneladas se hace una vez y se propaga a la tabla, a la ficha, al schema y al RFQ. La alternativa —cuatro lugares y una lista de pendientes— es exactamente cómo un catálogo empieza a mentir.
Una URLUn archivoCero copias
04Dirección de arte
Dos registros, porque hay dos lectores.
La referencia de marca no era una empresa de fletes: era una terminal financiera. Rojo carmesí sobre negro, condensada de caja alta, densidad de dashboard institucional. Ese es el lenguaje de la superficie de trabajo — el catálogo, la ficha de producto, el directorio de servicios, el hub de contenido — y es negro a propósito: quien está ahí ya está comparando grados.
Pero el visitante no llega ahí primero. Llega al home, y al home llega alguien que todavía no sabe si XRT es real. Por eso el home invierte el sistema: fondo claro, fotografía de campo y refinería, prosa en Inter, botones amplios. La misma marca en dos registros — uno para persuadir y otro para operar — con el carmesí como único elemento que cruza de un lado al otro.
Principios del sistema
- 01Carmesí solo cuando algo se puede accionar
- 02Barlow Condensed Black en caja alta para titular
- 03Archivo Narrow para toda tabla de especificación
- 04Nada de texto en baja opacidad sobre negro
- 05Ticker de precios como cabecera permanente
- 06Códigos visibles: ENE, AGR, OIL, LOG, PRT
Dónde vive el sistema
No hay manual de marca aparte: la paleta y la tipografía se entregaron como tokens de Tailwind v4 (--color-xrt-*, --font-barlow, --font-archivo) dentro del propio repositorio. El sistema de diseño y el código son el mismo archivo.
05Sistema visual
Negro de fondo. Carmesí solo para actuar.
Acción: botones, enlaces de ficha, estados
- HEX
- #C8111F
- RGB
- 200 · 17 · 31
Estado presionado y bordes de acción
- HEX
- #9E0012
- RGB
- 158 · 0 · 18
Fondo de la superficie de trabajo
- HEX
- #111111
- RGB
- 17 · 17 · 17
Acento raro: consultoría y sellos
- HEX
- #C8973A
- RGB
- 200 · 151 · 58
Fondo del home y texto sobre negro
- HEX
- #FCF9F8
- RGB
- 252 · 249 · 248
Hairlines de tabla y separación de banda
- HEX
- #E5E2E1
- RGB
- 229 · 226 · 225
06Tipografía
Una que grita, una que lee y una que cabe.
Barlow Condensed
Aa Bb Cc — 0123456789
SemiBold 600 · Bold 700 · Black 900
Inter
Aa Bb Cc — 0123456789
Regular 400 · Medium 500 · SemiBold 600
Archivo Narrow
Aa Bb Cc — 0123456789
Regular 400 · SemiBold 600 · Bold 700
Ultra-Low Sulfur Diesel (ULSD)
clamp(40–72) · 0.5% · 900 · caja altaCompliance & Certification Matrix
clamp(28–44) · 0.5% · 900 · caja altaAutomated Routing Protocol
clamp(20–28) · 1% · 700 · caja altaXRT Group conecta redes de combustible, flotas comerciales y distribuidores de alimento con líneas de suministro de origen directo.
16 / 27 · 0 · 40010 ppm Sulfur / EN 590 · 3,000 MT · Platts ULSD · Intertek
13 / 18 · 6% · 600 · caja alta07Captura de leads
El RFQ empieza lleno, no en blanco.
Un formulario de cotización de commodities pide entidad legal, producto, grado, volumen, unidad, puertos, ventana de entrega e INCOTERM. Pedirle todo eso a alguien que estaba leyendo una ficha es perderlo. La arquitectura resuelve al revés: lo que la página ya sabe, lo escribe ella.
Next.js · App Router
Sitio y rutas de productoproducts.ts
Fuente única de especificaciónCloudflare
WAF, bots y rate limit/api/rfq
Verificación y escrituraSupabase
rfq_submissions con RLSMailgun · M365
Aviso a la mesa que toca
- 01
La ficha se presenta sola
El panel lateral de cada producto llega con el nombre, el código (ENE-003), el grado, el benchmark, el origen y el volumen mínimo ya escritos. Lo que falta por llenar son tres campos: entidad, correo y volumen.
- 02
El navegador conserva el contexto
Quien entra por Servicios responde tres preguntas —qué comercia, qué necesita hacer, qué prioriza— y el sistema resalta los módulos que aplican. Al abrir el panel de RFQ, esos módulos ya vienen puestos como pills.
- 03
El perímetro filtra antes que el código
El dominio pasó de Hostinger a Cloudflare con ese objetivo explícito: WAF en Medium, Bot Fight Mode y una regla de rate limiting sobre /api/rfq. El captcha invisible se verifica del lado del servidor antes de tocar la base.
- 04
Se escribe una fila, no un correo
El endpoint escribe en la tabla rfq_submissions de Supabase —entidad, commodity, volumen, arreglo de servicios, estado— con políticas de Row Level Security. La solicitud existe como dato antes de existir como notificación.
- 05
Se enruta a la mesa correcta
La categoría del commodity decide el destino: energy@xrtgroup.com para crudo, diésel y jet fuel; agro@xrtgroup.com para granos y res; oils@xrtgroup.com para aceites; logistics@xrtgroup.com para fletes. Nadie reenvía nada a mano.
- 06
El sitio dice qué sigue
La pantalla del RFQ publica la escalera de respuesta: 0–4 horas de pre-screening KYC y confirmación de mesa, 4–24 horas para la indicación preliminar, 24–72 horas para la oferta con términos de inspección, T+4 días para la carta de crédito.
5 pilares · 19 fichas · 4 mesas · Houston · Rotterdam · Singapur
08El trabajo
Lo que hay publicado.
Cifras del entregable, contadas desde fuera: el sitemap de xrtgroup.com se recorrió URL por URL el 25 de agosto de 2026 y las 48 responden 200.
- 48
- URLs en el sitemap, todas sirviendo 200
- 19
- Fichas de producto con página propia
- 22
- Artículos publicados en el hub de contenido
- 6
- Módulos de servicio con código y ficha
09SEO · GEO · AEO
Escrito para Google y para el que responde por él.
El comprador de commodities ya no siempre llega por un resultado azul: pregunta en Perplexity, en ChatGPT Search o en Gemini y recibe una respuesta sintetizada con dos o tres fuentes. Un sitio que quiere ser una de esas fuentes tiene que estar escrito para ser citado, no solo para ser rankeado.
Schema en todas las plantillas.
Organization y WebSite en la raíz; CollectionPage y un Product por cada ficha en el catálogo; Service por cada módulo más HowTo y FAQPage en servicios; Article y FAQPage en cada artículo; BreadcrumbList en todo. Verificado plantilla por plantilla en producción.
Nivel de especificación, no de resumen.
El estándar de contenido es INCOTERMS 2020, informes de inspección SGS, benchmarks Platts, CBOT y BMD, cumplimiento RSPO y EUDR. Un overview genérico de industria no se cita; una tabla con el diferencial y quién lo publica, sí.
Cada artículo trae su propia FAQ.
Jerarquía H2/H3 consistente, tablas comparativas y una sección de preguntas y respuestas que sale del mismo texto y alimenta el JSON-LD. Es la forma que un motor de respuesta puede levantar entera sin reescribirla.
10Las piezas
El sitio en producción, tal como se recorre.

Combustibles, proteína, aceites de producción y aceites de semilla, cada uno con su especificación resumida y su propio CTA. El home no vende «commodities»: vende cuatro conversaciones distintas.

Cuatro pasos y una promesa: una sola mesa responde por la operación completa. Es la objeción central de la categoría —cuántos intermediarios hay detrás— contestada en el primer scroll.

Grado, origen, INCOTERMS, volumen mínimo, benchmark e inspector, en una fila por producto. Archivo Narrow existe en este proyecto exactamente para que esa fila quepa sin partirse.

Una URL por producto, con el RFQ pegado al costado y el contexto ya escrito en las notas. El comprador no vuelve a teclear lo que la página ya sabe.

Tres preguntas —qué comercias, qué necesitas hacer, qué priorizas— y el directorio se ilumina en los módulos que aplican. Un catálogo de servicios deja de ser una lista y se vuelve un filtro.

S-001 a S-006, con código, estado, protocolos que los gobiernan y su propio botón de cotización. Las cifras operativas son del cliente; el formato es lo que hace que se lean como infraestructura y no como folleto.

Cuatro bloques numerados —contraparte, especificación, términos de comercio, requisitos— con los correos de cada mesa y la escalera de respuesta al costado. Quien envía sabe qué pasa después y cuándo.

AML/KYC, OFAC, EU 5AMLD, C-TPAT, AEO, ISO 9001, GAFTA y FOSFA, cada uno con su organismo, su estado y qué implica en la operación. En esta categoría, el cumplimiento es producto.

Despacho destacado más rejilla, con categoría, fecha, mesa firmante y tiempo de lectura. El blog no está para «tener blog»: está para que la respuesta que da una IA sobre INCOTERMS venga de aquí.

Azúcar, granos y soft commodities como red secundaria, escritos como lo que son: capacidad bajo pedido, no una línea principal. Decirlo así evita la promesa que después hay que sostener.

Una sola banda a sangre al final de la página, con dos salidas: abrir el RFQ o conocer la casa. Ninguna tercera opción compitiendo por el clic.

El ticker de precios se mantiene sobre la navegación también en móvil: es la señal de que del otro lado hay una mesa mirando el mercado, y cabe en la franja donde no estorba.
11El resultado
El sitio ya se puede auditar desde fuera.
xrtgroup.com está en producción sobre Next.js con App Router, Tailwind v4 y Payload, servido desde un VPS de Hostinger detrás de Cloudflare. Las 48 URLs del sitemap responden 200 —7 páginas centrales, 19 fichas de producto y 22 artículos—, robots.txt declara el sitemap y bloquea la ruta de API, y el JSON-LD está desplegado en todas las plantillas.
Lo que sigue está escrito y priorizado: mantener la cadencia editorial quincenal, sostener la escalera de respuesta del RFQ ahora que el formulario recibe tráfico real, y revisar los 301 de las URLs heredadas de WordPress a medida que aparezcan en Search Console. El proyecto está en ejecución activa y esta página se actualiza cuando esas piezas se muevan.
Cómo está construido
- 01Next.js App Router · Tailwind CSS v4 · Turbopack
- 02Payload sobre el mismo runtime de Next.js
- 03VPS de Hostinger · repositorio en GitHub
- 04Cloudflare: DNS, WAF, bots y rate limit en /api/rfq
- 05Supabase (PostgreSQL) con Row Level Security
- 06Microsoft 365 con SPF, DKIM y autodiscover en DNS Only
- 07Mailgun en subdominio para correo transaccional
- 08Mailchimp con claves DKIM propias, sin chocar con M365
Qué no afirma este caso
No hay cifras de tráfico, conversión ni posiciones: el proyecto sigue en ejecución y esos datos no existen todavía de forma medible. Las cifras operativas que aparecen en el sitio —corredores cubiertos, nodos de transportista, proveedores registrados— son del cliente y describen su operación, no nuestro resultado.
Sigue el trabajo
Si tu comprador te evalúa antes de escribirte, tu sitio es la entrevista.
Commodities, industria pesada, servicios técnicos B2B: cuando la compra se decide leyendo, la especificación publicada vale más que cualquier argumento de venta. Y solo funciona si sale de una sola fuente.
Cuéntanos tu proyecto