El debate clásico

A la hora de estructurar un portal con múltiples proyectos o secciones, hay dos enfoques principales: usar subdominios (blog.dominio.com, app.dominio.com) o usar rutas (dominio.com/blog, dominio.com/app). Cada uno tiene sus casos de uso, pero para un portfolio o portal personal las rutas ganan casi siempre.

Ventajas de las rutas

1. Un solo certificado SSL

Con rutas solo necesitas un certificado para el dominio raíz. Con subdominios necesitas un wildcard (*.dominio.com) o certificados individuales por subdominio. El wildcard requiere validación DNS, lo que complica la automatización con Certbot en proveedores sin plugin.

2. Autoridad de dominio unificada (SEO)

Los motores de búsqueda tratan los subdominios como sitios separados. Todo el contenido en rutas contribuye a la autoridad de un único dominio, lo que mejora el posicionamiento global.

3. Configuración Nginx más simple

# Con rutas: un único bloque server
server {
    server_name dominio.com;
    location /blog { root /var/www/blog; }
    location /app  { root /var/www/app;  }
}

# Con subdominios: un bloque por subdominio
server { server_name blog.dominio.com; ... }
server { server_name app.dominio.com;  ... }

4. Cookies y sesiones compartidas

Las cookies del dominio raíz son accesibles desde todas las rutas. En cambio, los subdominios son orígenes distintos: compartir sesiones entre ellos requiere configuración explícita de Domain=.dominio.com.

Cuándo sí usar subdominios

  • Cuando los proyectos son aplicaciones completamente independientes con equipos distintos.
  • Cuando necesitas aislar entornos (staging, prod) con configuraciones de servidor muy diferentes.
  • Cuando la escala exige balanceadores de carga independientes por subdominio.

Conclusión

Para este portal adopté la estructura de rutas. Un dominio, un certificado, una configuración Nginx. Sencillo de mantener y mejor para el SEO. Si en el futuro algún proyecto crece lo suficiente como para necesitar su propio servidor, lo puedo mover a un subdominio sin afectar el resto.