Guías

Dominios personalizados para un SaaS en WordPress: Cómo funciona el mapeo de dominios por tenant

Equipo de GrabWP
· 7 min read · Revisado por Equipo de GrabWP

Si estás construyendo un SaaS en WordPress, tarde o temprano un cliente hace la misma pregunta: “¿Puedo usar mi propio dominio?”. Tu respuesta a eso moldea todo tu producto. Esta guía cubre cómo funciona en la práctica el mapeo de dominios por tenant con el plugin GrabWP Tenancy: las opciones de enrutamiento, cómo los clientes agregan dominios por sí mismos y qué sucede realmente en el server.

Por qué los dominios importan en un WaaS

En un negocio de Website-as-a-Service (WaaS), el dominio es la puerta principal del cliente. Afecta la confianza, la marca y el SEO. Un cliente que ve su sitio en tumarca.com/site/acme-widgets lo trata como una demo. El mismo cliente en acmewidgets.com lo trata como su propio negocio.

Los dominios importan por tres razones concretas:

  • Marca. Los clientes quieren su nombre en la barra de direcciones, no el tuyo.
  • SEO. Los motores de búsqueda indexan el contenido por hostname. Un dominio personalizado permite a cada tenant construir su propia autoridad.
  • Percepción de propiedad. Un dominio personalizado hace que el producto se sienta como suyo, lo cual reduce el churn y permite cobrar precios más altos.

El truco es ofrecer dominios personalizados sin convertir cada registro en un ticket de soporte de DNS manual. Eso significa empezar simple y actualizar según la demanda.

Opciones de enrutamiento: dominio personalizado vs basado en ruta

GrabWP Tenancy soporta dos modelos de enrutamiento, y puedes mezclarlos en toda tu base de tenants.

El enrutamiento basado en dominio mapea un dominio personalizado completo a un tenant. Cuando llega una solicitud para acmewidgets.com, GrabWP la resuelve al tenant Acme y carga los datos de ese tenant. Esto es lo que los clientes en un plan de pago normalmente quieren.

El enrutamiento basado en ruta pone cada tenant bajo una ruta en tu dominio compartido, como tusitio.com/site/acme-widgets. No se requieren cambios de DNS, lo que lo hace perfecto para el onboarding, pruebas y planes gratuitos. El prefijo de la ruta es configurable a través de la constante GRABWP_TENANCY_PATH_PREFIX, que por defecto es site. Configúralo con algo como app o clientes para que coincida con tu producto.

// wp-config.php
define( 'GRABWP_TENANCY_PATH_PREFIX', 'clients' );
// Tenants now live at yoursite.com/clients/acme-widgets

Ambos modelos pasan por la misma capa de resolución centralizada de URLs de tenants, así que no tienes que elegir uno y comprometerte para siempre. Un tenant puede vivir en una ruta hoy y en un dominio personalizado mañana.

Cómo agregan los clientes un dominio desde su dashboard

Gestión de dominios personalizados en el dashboard de dominios del WaaS de GrabWP

No quieres ser el intermediario para cada cambio de dominio. La capa WaaS de GrabWP le da a los tenants un dashboard de autoservicio a través del shortcode [grabwp_waas_dashboard]. Pon ese shortcode en una página de tu sitio de control y cada cliente que haya iniciado sesión verá su propio dashboard.

El dashboard incluye una pestaña de Domains donde los clientes gestionan los dominios adjuntos a su tenant. Desde ahí un cliente puede registrar el dominio personalizado que quiere apuntar a su sitio. Cuando un dominio es activado, la capa WaaS puede enviar un email de notificación de activación de dominio para que el cliente sepa que el mapeo está activo.

El flujo para el cliente se ve así:

  1. El cliente abre su dashboard y hace clic en la pestaña de Domains.
  2. El cliente ingresa el dominio que posee, por ejemplo acmewidgets.com.
  3. El cliente apunta el DNS de ese dominio a tu server (un registro A o CNAME, según tu configuración).
  4. Una vez que el DNS resuelve y el certificado está en su lugar, el tenant carga en el dominio personalizado.

Como operador, todavía puedes gestionar todo de forma centralizada a través de la interfaz de administración o el archivo de mapeo del tenant, lo cual es útil para cambios masivos o para gestionar dominios en nombre de un cliente.

Qué sucede en el server

Cuando se mapea un dominio, GrabWP hace el trabajo del lado de WordPress para hacer que las solicitudes resuelvan al tenant correcto. Vale la pena entender dos cosas.

Enrutamiento. La resolución centralizada de URLs de tenant inspecciona el hostname o ruta entrante y carga el tenant que coincida. Las solicitudes basadas en dominio y basadas en ruta pasan ambas por este único resolutor, así que el comportamiento se mantiene constante sin importar cómo se llegue a un tenant.

Sincronización de enlaces simbólicos. En la versión Pro, GrabWP mantiene los enlaces simbólicos de dominio sincronizados automáticamente cada vez que se crea, actualiza o elimina un tenant. Esto funciona en la interfaz de administración, la API REST y WP-CLI, así que un tenant aprovisionado por tu automatización de registro recibe el mismo trato que uno que creas a mano. También hay una acción en Pro Settings para sincronizar enlaces simbólicos de dominio en todos los tenants a la vez, lo cual es útil después de una migración o una importación masiva.

Un límite que debe quedar claro: GrabWP no emite certificados TLS ni gestiona el DNS. Apuntar el dominio de un cliente a tu server y aprovisionar un certificado HTTPS es trabajo estándar de web server, manejado por tu hosting, un proxy inverso o una herramienta como Certbot. GrabWP maneja el mapeo y el enrutamiento una vez que la solicitud llega a WordPress. Mantener esa línea clara te ahorra muchos tickets de soporte confusos.

Empezar en un dominio compartido y actualizar después

El camino de onboarding más limpio es empezar cada tenant en una URL compartida basada en ruta y actualizar a un dominio personalizado solo cuando el cliente lo pida.

Aquí te explicamos por qué esto funciona tan bien. Un nuevo registro en tusitio.com/site/acme-widgets necesita cero configuración de DNS, así que el cliente está en línea en segundos. Cuando deciden pasarse a pro, agregan un dominio personalizado desde la pestaña de Domains.

Con el enrutamiento de alias Pro habilitado, la actualización es fluida: las URLs antiguas con ID de tenant hacen una redirección 301 a la URL del alias, preservando tanto la subruta como el query string. Eso significa que los enlaces existentes, los marcadores y cualquier página indexada se transfieren al nuevo dominio sin romperse, y se le dice a los motores de búsqueda que el contenido se movió de forma permanente.

Este modelo por etapas también se ajusta naturalmente a los precios. Los sitios basados en ruta pueden quedarse en tu plan gratuito o de prueba, y los dominios personalizados pueden ser una funcionalidad de pago en el plan Pro por $9.99/month. Los clientes actualizan cuando el valor es obvio para ellos, que es exactamente cuando quieren su propio dominio.

Errores comunes

Algunos problemas surgen repetidamente cuando los equipos lanzan dominios personalizados por primera vez:

  • Esperar que el plugin emita certificados. No lo hace. Aprovisiona TLS en la capa del server o proxy antes de mapear el dominio.
  • El DNS aún no se ha propagado. Un dominio recién apuntado puede tomar tiempo en resolver. Verifica el DNS antes de asumir que el mapeo está roto.
  • Olvidar sincronizar los enlaces simbólicos después de cambios masivos. Si importas o migras tenants fuera del flujo de creación normal, ejecuta la acción en Pro Settings para sincronizar los enlaces simbólicos de dominio en todos los tenants.
  • Omitir las redirecciones 301 al actualizar. Sin enrutamiento de alias, los enlaces antiguos basados en ruta pueden quedar obsoletos. Habilita el enrutamiento de alias Pro para que las URLs con ID de tenant redirijan al dominio personalizado.
  • Cambiar el prefijo de la ruta después del lanzamiento. Si cambias GRABWP_TENANCY_PATH_PREFIX más adelante, las URLs de ruta existentes se desplazarán. Decide tu prefijo desde el principio.

Comenzar

El mapeo de dominios personalizados es la diferencia entre una demo y un producto real. Empieza a cada cliente en una URL basada en ruta para un onboarding instantáneo, y luego déjales actualizar a su propio dominio desde la pestaña de Domains cuando estén listos. GrabWP se encarga del enrutamiento del lado de WordPress y la sincronización de enlaces simbólicos para que siempre cargue el tenant correcto.

¿Listo para ofrecer dominios personalizados en tu propio SaaS en WordPress? Explora la plataforma WaaS de GrabWP, lee nuestra guía complementaria sobre cómo construir un SaaS en WordPress sin código o descarga el plugin GrabWP Tenancy gratis para empezar a experimentar hoy mismo.

Preguntas frecuentes

¿GrabWP emite certificados SSL para los dominios personalizados de mis clientes?
No. GrabWP maneja el enrutamiento y mapeo del lado de WordPress para que cargue el tenant correcto para cada dominio. Emitir certificados TLS y apuntar el DNS a tu server es trabajo estándar de web server, normalmente manejado por tu hosting, un proxy inverso o una herramienta como Certbot. Apunta el DNS del cliente a tu server, aprovisiona el certificado y luego mapea el dominio al tenant en GrabWP.
¿Puede un tenant tener más de un dominio?
Sí. GrabWP Tenancy soporta múltiples dominios por tenant. Puedes mapear un dominio personalizado principal más alias adicionales a través de la interfaz de administración o el archivo de mapeo del tenant, y la resolución centralizada de URLs los dirige a todos al mismo tenant.
¿Puede un cliente empezar en un dominio compartido y agregar un dominio personalizado después?
Sí. Inicia cada tenant en una URL basada en ruta como tusitio.com/site/cliente-a sin cambios de DNS, y luego agrega un dominio personalizado cuando el cliente esté listo. Con el enrutamiento de alias Pro habilitado, las URLs antiguas con ID de tenant redirigen mediante 301 al nuevo dominio, conservando la subruta y el query string.

Editorial standards: Our content is written by WordPress experts with hands-on multi-tenancy experience. Articles are fact-checked and regularly updated to ensure accuracy.