🌐 NutriNen Landing & SEO Tools
Dominio: nutrinen.com
Hosting: Cloudflare Pages (proyectonutrinen)
Source:public/nutrinen-baby/
Build:node scripts/build-nutrinen-site.cjs
Última actualización: 2026-03-09
📊 Arquitectura
public/nutrinen-baby/
├── index.html # Landing marketing principal
├── styles.css # Estilos globales (CSS variables)
├── app.js # JS compartido (navbar, reveals, FAQ)
├── cookie-consent.js # Consentimiento de cookies (RGPD)
├── ads-loader.js # Cargador de publicidad programática
├── newsletter-widget.js # Widget newsletter en footer (auto-inyectado)
├── 404.html # Página 404 personalizada
├── privacidad/index.html # Política de Privacidad
├── terminos/index.html # Términos de Servicio
├── newsletter/index.html # Landing de newsletter (formulario completo)
├── sitemap.xml # Mapa del sitio (29 tools + 33 blog + newsletter + legal)
├── robots.txt # SEO crawl config
├── _headers # Cache headers Cloudflare
├── img/ # Imágenes (fondos, logo, og-cover)
├── blog/ # 33 artículos SEO
│ ├── index.html # Índice del blog
│ └── [34 carpetas]/ # Un artículo por carpeta
└── tools/ # 29 herramientas SEO gratuitas
├── alimentos-por-edad/
├── caja-musica/
├── calculadora-embarazo/
├── calculadora-hidratacion/
├── calculadora-imc/
├── calculadora-leche/
├── calculadora-porciones/
├── calculadora-tomas/
├── calendario-alergenos/
├── calendario-denticion/
├── calendario-vacunas/
├── checklist-bebe/
├── decodificador-caca/
├── generador-actividades/
├── generador-pures/
├── guia-cortes/
├── menu-bliss/
├── menu-blw/
├── menu-infantil/
├── nombres-bebe/
├── nutricion-embarazo/
├── nutricion-fertilidad/
├── percentiles/
├── peso-embarazo/
├── primeros-auxilios/
├── quiz-primera-comida/
├── tabla-sueno/
├── test-hitos/
└── test-postparto/
🛠️ 29 Herramientas SEO (Lead Magnets)
Todas son gratuitas, sin registro, sin login. Cada una es un HTML standalone con CSS/JS inline.
| # | Slug | Nombre | Descripción | Backend |
|---|---|---|---|---|
| 1 | alimentos-por-edad |
🥑 Buscador Alimentos por Edad | 100+ alimentos con preparación y alérgenos por edad | API (/api/nutrinen/alimentos) |
| 2 | percentiles |
📊 Calculadora de Percentiles OMS | Peso/talla vs tablas OMS oficiales | No (local) |
| 3 | menu-blw |
🥦 Generador de Menú BLW | Menú semanal aleatorio por edad con IA | API (/api/nutrinen/blw) |
| 4 | menu-bliss |
🍖 Generador de Menú BLISS | BLW modificado: hierro + energía en cada comida | API (/api/nutrinen/bliss) |
| 5 | quiz-primera-comida |
🧪 Quiz: ¿Está listo para comer? | 7 preguntas de señales de preparación | No (local) |
| 6 | calendario-alergenos |
🗓️ Calendario de Alérgenos | Planificación de 14 alérgenos (regla 3 días) | No (local) |
| 7 | calculadora-tomas |
🍼 Calculadora Tomas / Biberones | ml por toma según edad, peso y lactancia | No (local) |
| 8 | nombres-bebe |
👶 Buscador de Nombres para Bebé | 550+ nombres con análisis IA (DeepSeek) | API (/api/nutrinen/names) |
| 9 | decodificador-caca |
💩 Decodificador de Caca | Color, textura, edad → diagnóstico | No (local) |
| 10 | calculadora-porciones |
🍽️ Calculadora de Porciones por Edad | Gramos y equivalente visual de 30 alimentos | No (local) |
| 11 | guia-cortes |
🔪 Guía de Cortes Seguros | Formas y tamaños anti-atragantamiento por edad | No (local) |
| 12 | calculadora-embarazo |
🤰 Calculadora de Embarazo | FPP, semanas, trimestre, desarrollo semanal | No (local) |
| 13 | calculadora-hidratacion |
💧 Calculadora de Hidratación | ml de agua según peso y edad | No (local) |
| 14 | calculadora-imc |
⚖️ Calculadora IMC Infantil | IMC con interpretación por percentil | No (local) |
| 15 | calculadora-leche |
🥛 Calculadora de Leche | Leche materna/fórmula por peso y edad | No (local) |
| 16 | calendario-denticion |
🦷 Calendario de Dentición | Cronología de erupción dental | No (local) |
| 17 | calendario-vacunas |
💉 Calendario de Vacunas 2026 | Esquema oficial de vacunación | No (local) |
| 18 | checklist-bebe |
✅ Checklist del Bebé | Lista de preparación para la llegada | No (local) |
| 19 | generador-actividades |
🎨 Generador de Actividades | Actividades de estimulación por edad | API (/api/nutrinen/actividades) |
| 20 | generador-pures |
🥣 Generador de Purés | Recetas de purés por edad | No (local) |
| 21 | menu-infantil |
🍝 Menú Infantil | Menú equilibrado para +2 años | No (local) |
| 22 | nutricion-embarazo |
🤰 Nutrición en el Embarazo | Guía nutricional por trimestre | No (local) |
| 23 | nutricion-fertilidad |
🌱 Nutrición y Fertilidad | Alimentación para mejorar fertilidad | No (local) |
| 24 | peso-embarazo |
⚖️ Peso en el Embarazo | Ganancia de peso recomendada por semana | No (local) |
| 25 | primeros-auxilios |
🚑 Primeros Auxilios Bebé | Guía de emergencias infantiles | No (local) |
| 26 | tabla-sueno |
😴 Tabla de Sueño | Horas de sueño por edad | No (local) |
| 27 | test-hitos |
🧠 Test de Hitos | Evaluación de desarrollo por edad | No (local) |
| 28 | test-postparto |
🩺 Test Postparto | Evaluación de recuperación postparto | No (local) |
| 29 | caja-musica |
🎵 Caja de Música | Sonidos y nanas para dormir al bebé | No (local) |
🏗️ Build & Deploy
Build (minifica HTML/CSS/JS)
# Desde raíz del proyecto
node scripts/build-nutrinen-site.cjs
Esto genera dist/nutrinen/ con HTML minificado, CSS comprimido y JS optimizado.
Deploy
cd dist/nutrinen
npx wrangler pages deploy . --project-name=nutrinen --commit-dirty=true
Deploy completo (1 liner)
node scripts/build-nutrinen-site.cjs; cd dist/nutrinen; npx wrangler pages deploy . --project-name=nutrinen --commit-dirty=true; cd ../..
🎨 Patrones de Diseño
Variables CSS globales
--nn-green:#5ec722(primario)--nn-green-dark:#4da61c--nn-green-light:#7ee644--nn-bg:#0f0f1a(fondo oscuro)--nn-bg-card:rgba(255,255,255,0.04)
Fondos por herramienta
Cada tool tiene backgrounds en hero y CTA section:
| Tool | Hero | CTA |
|---|---|---|
| alimentos-por-edad | fondo1 | fondo5 |
| percentiles | fondo4 | fondo5 |
| nombres-bebe | fondo4 | fondo5 |
| calculadora-embarazo | fondo5 | fondo4 |
| calculadora-tomas | fondo4 | fondo5 |
| calendario-alergenos | fondo2 | fondo5 |
| quiz-primera-comida | fondo4 | fondo5 |
| decodificador-caca | fondo2 | fondo5 |
| guia-cortes | fondo1 | fondo2 |
| menu-bliss | fondo5 | fondo4 |
| menu-blw | fondo4 | fondo5 |
| calculadora-porciones | fondo4 | fondo1 |
CTA Button pattern
background: linear-gradient(135deg, var(--nn-green), var(--nn-green-dark));
color: #fff;
box-shadow: 0 4px 20px rgba(94,199,34,0.25);
border-radius: 14px;
Footer "Más herramientas"
Cada tool incluye un footer con links tipo card-grid a las demás herramientas.
📈 SEO
- Cada tool tiene
<title>,<meta description>, Open Graph tags - JSON-LD structured data en la landing principal (MobileApplication + FAQPage)
<link rel="canonical">en cada página- Imágenes con
altdescriptivos - Semantic HTML (
<section>,<article>,<details>)
🔗 APIs Backend (cadences.app)
| Tool | Endpoint | Proveedor IA |
|---|---|---|
nombres-bebe |
POST /api/nutrinen/names |
DeepSeek V3 → Workers AI fallback |
menu-blw |
POST /api/nutrinen/blw |
DeepSeek V3 → Workers AI fallback |
menu-bliss |
POST /api/nutrinen/bliss |
DeepSeek V3 → Workers AI fallback |
alimentos-por-edad |
GET /api/nutrinen/alimentos |
Pre-seeded en D1 |
generador-actividades |
POST /api/nutrinen/actividades |
DeepSeek V3 |
| Newsletter | POST /api/nutrinen/newsletter |
— (solo D1 + Turnstile) |
Los menús BLW/BLISS se pre-generan con scripts/seed-nutrinen-blw.cjs y scripts/seed-nutrinen-bliss.cjs.
📬 Newsletter
Sistema de captación de leads con widget en todas las páginas y landing dedicada.
Componentes
| Componente | Archivo | Descripción |
|---|---|---|
| Widget | newsletter-widget.js |
Barra en footer de todas las páginas, redirige a landing |
| Landing | newsletter/index.html |
Formulario completo con Cloudflare Turnstile |
| API | functions/api/nutrinen/newsletter.js |
POST endpoint, verifica Turnstile server-side |
| DB | nutrinen_newsletter |
D1 table (email, nombre, etapa, region, nombre_bebe, etc.) |
Campos del formulario
| Campo | Tipo | Obligatorio |
|---|---|---|
| text | ✅ | |
| Nombre | text | ❌ |
| Etapa del bebé | select (embarazo, 0-6m, 6-12m, 12-24m, 24m+) | ❌ |
| Nombre del bebé | text | ❌ |
| Fecha de nacimiento | date | ❌ |
| Región | select (10 zonas + otra) | ❌ |
| Rango edad padres | select (18-24, 25-30, 31-35, 36-40, 41+) | ❌ |
| Consentimiento RGPD | checkbox | ✅ |
| Cloudflare Turnstile | captcha invisible | ✅ |
Migraciones
| Migración | Contenido |
|---|---|
0093_nutrinen_newsletter.sql |
Tabla base + índices |
0094_nutrinen_newsletter_extra_fields.sql |
Campos: region, nombre_bebe, fecha_nacimiento, rango_edad_padres |
Anti-bot
- Cloudflare Turnstile (modo managed, tema dark): verificación invisible client + server-side
- Site key de producción configurado en HTML (
0x4AAAAAACoOD3KMxD9f2CpH) - Secret key en código como fallback, opcionalmente en
env.TURNSTILE_SECRET
📝 Blog (33 artículos publicados)
33 artículos SEO indexados en public/nutrinen-baby/blog/. Cada artículo tiene su propio index.html con JSON-LD, breadcrumbs, y CTAs a herramientas relacionadas.
Última actualización: 2026-03-09