Si tu sitio de WordPress tiene cuentas de usuario, alguien está compartiendo sus credenciales de inicio de sesión.
Podría ser un estudiante que le pasa la contraseña de su curso a un amigo, un miembro que comparte su suscripción con la familia o un cliente que divide una licencia de software entre un equipo.
En cualquier caso, estás perdiendo ingresos y los datos de tus usuarios dejan de tener sentido.
Netflix tomó medidas enérgicas contra el intercambio de cuentas en 100 millones de hogares. No porque fuera fácil, sino porque la pérdida de ingresos era real. Tu sitio enfrenta el mismo problema, pero a menor escala.
En este tutorial, te mostraré cómo restringir el inicio de sesión de usuarios a un solo dispositivo activo a la vez en WordPress. No necesitas ser desarrollador.
Usarás un plugin gratuito para la restricción principal y WPCode para establecer exenciones para usuarios o roles específicos.
Ya sea que estés gestionando un sitio de membresía, administrando un producto de suscripción o vendiendo cursos en línea, esta configuración toma aproximadamente 15 minutos y funciona automáticamente a partir de entonces.
Conclusiones Clave
- Te mostraré un plugin gratuito que limita cada cuenta a un inicio de sesión activo con un solo cambio de configuración.
- Cubriré dos comportamientos de lógica de inicio de sesión y explicaré cuál es menos disruptivo para tus usuarios.
- Revelaré cómo eximir a usuarios o roles específicos usando WPCode, sin tocar los archivos de tu tema.
- Te guiaré sobre cómo enfocar la restricción por tipo de dispositivo, para que las sesiones móviles y de escritorio puedan tratarse de manera diferente.
- Te mostraré cómo probar que la restricción está funcionando antes de publicarla.
Lo que lograremos en este tutorial
Al final de esta guía, cada cuenta de usuario en tu sitio estará bloqueada a una sesión de inicio de sesión activa a la vez.
Cuando alguien intente iniciar sesión desde un segundo dispositivo, WordPress bloqueará el intento o finalizará silenciosamente su sesión anterior. Tú eliges.
Esto funciona en cualquier sitio de WordPress con cuentas de usuario: sitios de membresía, cursos en línea, productos de suscripción o blogs de varios autores.
Lo que tendrás configurado:
- Un límite de inicio de sesión por cuenta aplicado automáticamente en cada inicio de sesión.
- Exenciones opcionales para administradores, editores o IDs de usuario VIP específicos.
- Una prueba funcional para confirmar que la restricción está activa.

Lo que ve un usuario bloqueado cuando intenta iniciar sesión desde un segundo dispositivo.
Lo que necesitarás antes de empezar
Nivel de habilidad: Intermedio
Tiempo estimado: ~15 minutos
- Loggedin – Limit Concurrent Sessions – free plugin from the WordPress repository.
- No se necesita ninguna compra para lo que estamos haciendo aquí.
- Instálalo como cualquier otro plugin (Plugins » Añadir nuevo, busca “Loggedin”).
- WPCode – only needed for Method 2 (user and role exemptions).
- La versión gratuita WPCode Lite es suficiente. Instálala de la misma manera.
- Acceso de administrador de WordPress: necesitarás acceder a los menús de Configuración y Fragmentos de código.
- IDs de usuario para cualquier persona que desees eximir: solo Método 2. Te mostraré cómo encontrarlos rápidamente si no los conoces.
Cómo restringir el inicio de sesión de usuario a un solo dispositivo en WordPress
Ahora, como te mostraré dos métodos, he dividido los pasos en secciones sencillas. Puedes usar la tabla de contenido a continuación para saltar a cualquier método o paso que desees leer.
Con todo eso listo, vamos a empezar.
Método 1: Loggedin – Limitar sesiones concurrentes

Aquí es donde empezaría en cualquier sitio.
El plugin Loggedin – Limit Concurrent Sessions es gratuito, no requiere código y aplica la restricción automáticamente desde el momento en que guardas tu configuración. No hay nada que mantener una vez que está en funcionamiento.
Una cosa que vale la pena saber antes de configurarlo: el plugin permite por defecto 3 inicios de sesión activos por usuario cuando lo activas por primera vez. Así que ya está haciendo algo, solo que aún no restringe lo suficiente.
Paso 1: Instalar y configurar tu límite de inicio de sesión
Como se mencionó, Loggedin – Limit Concurrent Sessions es un plugin gratuito.
Como resultado, puedes acceder a él yendo a Todos los plugins » Añadir nuevo plugin en tu panel de WordPress. Después de esto, usa la barra de búsqueda para encontrar la herramienta en tu repositorio de plugins de WordPress.
Si tienes algún problema, consulta mi tutorial sobre cómo instalar plugins para obtener indicaciones.

Una vez instalado y activado, ve a Ajustes » Generales. Ten en cuenta que esta es la opción "Ajustes" nativa de WordPress, no un elemento de menú propio.
Después de esto, desplázate hasta el final de esa página y encontrarás la sección Ajustes de Loggedin.
Aquí te explico exactamente qué hacer:
- Busca el campo Máximo de inicios de sesión activos y cambia el valor a 1.
- No guardes todavía, primero establece la Lógica de inicio de sesión (siguiente paso).

⚠️Comprobación rápida: Asegúrate de estar en Ajustes » Generales, no en la página propia del plugin Loggedin. Los ajustes no aparecen en un menú dedicado del plugin.
Paso 2: Elegir tu lógica de inicio de sesión
Esta es la decisión que realmente importa y es una que la mayoría de los tutoriales omiten.
El menú desplegable Lógica de inicio de sesión tiene dos opciones: Permitir y Bloquear. Suenan similares pero se comportan de manera completamente diferente desde la perspectiva de tus usuarios.
- Permitir significa: cuando llega un segundo intento de inicio de sesión, WordPress lo permite. Pero finaliza silenciosamente la sesión activa más antigua del usuario. La persona que ya inició sesión es expulsada sin previo aviso. Simplemente se encontrará en la pantalla de inicio de sesión, preguntándose qué pasó.
- Bloquear significa: el nuevo intento de inicio de sesión es rechazado. La persona que intenta iniciar sesión ve un mensaje de error que le indica que la cuenta ya está en uso. Su sesión existente permanece activa.
Aquí está el detalle: cuál eliges depende de tu audiencia.
Bloquear funciona mejor para sitios de membresía o cursos donde deseas una aplicación clara, y estás de acuerdo con cierta fricción. Permitir es menos conflictivo y se adapta a equipos internos o configuraciones de menor riesgo donde el reemplazo silencioso de sesiones está bien.

Una vez que hayas decidido, selecciona tu opción en el menú desplegable y haz clic en Guardar cambios.
Paso 3: Forzar el cierre de sesión de las sesiones existentes
Este paso es opcional, pero lo ejecutaría el día del lanzamiento.
Cuando activas la restricción por primera vez, los usuarios que ya estaban conectados en varios dispositivos permanecen conectados. El límite solo se aplica a los nuevos inicios de sesión. Forzar cierre de sesión borra eso.
Para usarlo, necesitarás el ID de usuario de WordPress de cualquier cuenta que desees restablecer.
Aquí tienes la forma más rápida de encontrar uno: ve a Usuarios » Todos los usuarios, pasa el cursor sobre cualquier nombre de usuario y mira la URL que se muestra en la barra de estado de tu navegador. Verás algo como ?user_id=5. Ese número es el ID.

Introduce el ID en el campo Forzar cierre de sesión y haz clic en el botón. Ese usuario será desconectado inmediatamente de todas las sesiones activas.

Paso 4: Establecer el nivel de caché
Si estás utilizando un plugin de caché como WP Rocket, W3 Total Cache, LiteSpeed Cache o similar, esta configuración es importante.
El nivel de caché incorrecto puede hacer que WordPress sirva datos de sesión obsoletos, lo que hace que la restricción de inicio de sesión se comporte de manera impredecible.
La sección de Configuración de Loggedin incluye un menú desplegable Nivel de caché con cuatro opciones:
- Normal – la opción correcta para la mayoría de los sitios. Maneja configuraciones de caché estándar de WordPress.
- Solo activos – almacena en caché archivos estáticos (CSS, JS) pero no datos de sesión. Bueno para configuraciones de caché más ligeras.
- Avanzado – usa esto si estás ejecutando una configuración agresiva de caché de página completa.
- Desactivado – solo si no estás usando ninguna caché.
Para la mayoría de los sitios de membresía o cursos que ejecutan WP Rocket o similar, Normal funciona bien. Haz clic en Guardar cambios una vez que hayas seleccionado tu nivel.

Eso es todo. Ahora puedes restringir a los usuarios a un solo dispositivo en tu sitio de WordPress. Mira la captura de pantalla a continuación para ver qué esperar.

¿Qué pasa si quieres más control? Ahí es donde entra el Método 2.
Método 2: WPCode – Excluir usuarios o roles específicos

El Método 1 aplica la restricción a todos los usuarios de tu sitio. Eso es generalmente lo que quieres, pero no siempre.
Los administradores, editores o miembros de alto valor a menudo necesitan acceso desde varios dispositivos. Desconectar tu propia cuenta de administrador de una segunda pestaña es frustrante.
Si quieres gestionar quién tiene qué acceso en tu sitio, las exenciones son el enfoque correcto.
Aquí es donde entra WPCode. Añadirás un fragmento de código PHP que le dice a Loggedin que omita la restricción para IDs de usuario o roles específicos, sin editar los archivos del tema o tu tema hijo.
La versión gratuita, WPCode Lite, es todo lo que necesitas aquí.
Te proporciona una interfaz dedicada para administrar fragmentos, mantiene tu código separado de tu tema y facilita la activación o desactivación de fragmentos sin romper nada.
La versión gratuita WPCode Lite tiene una biblioteca de más de 130 fragmentos preconstruidos y admite PHP personalizado, que es exactamente lo que estamos usando.
Puedes encontrarlo en el repositorio de WordPress en Plugins » Añadir nuevo y buscar "WPCode".

Después de esto, instálalo y actívalo como cualquier otro plugin.
Paso 1: Crear un nuevo fragmento de PHP
Una vez que WPCode esté instalado y activo, verás un elemento de menú Fragmentos de código en la barra lateral de tu WordPress.

Aquí te explico exactamente qué hacer:
- Ve a Fragmentos de código » + Añadir fragmento en tu panel.
- Aterrizarás en la biblioteca de fragmentos. Busca la opción Añade tu código personalizado (Nuevo fragmento).
- Pasa el ratón por encima y haz clic en Usar fragmento.
- Aparece una ventana emergente preguntando qué tipo de código estás añadiendo. Haz clic en Fragmento de PHP.

Paso 2: Excluir usuarios específicos
Ahora estás en el editor de fragmentos. Aquí es donde añades el código que omite la restricción de inicio de sesión para cuentas de usuario individuales.
Aquí te explico exactamente qué hacer:
- Dale a tu fragmento un título claro, algo como Omitir restricciones de inicio de sesión para ciertos usuarios.
- Pega este código en el panel Vista previa del código:
<code>function loggedin_bypass_users( $bypass, $user_id ) {<br> $allowed_users = array( 1, 2, 3 );<br> if ( in_array( $user_id, $allowed_users ) ) {<br> $bypass = true;<br> }<br> return $bypass;<br>}<br>add_filter( 'loggedin_bypass', 'loggedin_bypass_users', 10, 2 );</code>
- Reemplaza
1, 2, 3en el array$allowed_userscon los IDs de usuario reales que deseas eximir.

Para encontrar el ID de un usuario: ve a Usuarios » Todos los usuarios, pasa el ratón por encima de su nombre de usuario y mira la URL en la barra de estado de tu navegador. Verás ?user_id=X. Ese número es su ID.
Este es el mismo proceso que usamos en el Método

Paso 3: Excluir roles específicos
Si prefieres eximir roles completos en lugar de usuarios individuales, crea un segundo fragmento usando este código. El proceso es idéntico al Paso 2.
Todo lo que tienes que hacer es seleccionar Añade tu código personalizado (Nuevo fragmento), luego el tipo PHP y pegar el código.
function loggedin_bypass_roles( $bypass, $user_id ) {
$allowed_roles = array( 'administrator', 'editor' );
$user = get_userdata( $user_id );
if ( $user && array_intersect( $allowed_roles, $user->roles ) ) {
$bypass = true;
}
return $bypass;
}
add_filter( 'loggedin_bypass', 'loggedin_bypass_roles', 10, 2 );
Una vez hecho, edita el array $allowed_roles para que coincida con los roles de tu sitio.
Por defecto, exime a administradores y editores. Así que, elimina 'editor' si solo quieres eximir a los administradores, o añade otros roles como 'shop_manager' o 'subscriber'.

Paso 4: Establecer el tipo de dispositivo (Opcional)
Esta es una función que la mayoría de la gente no sabe que WPCode incluye, y es útil para este caso de uso específico. Antes de guardar tu fragmento, desplázate hacia abajo para encontrar la configuración de Tipo de dispositivo.
Tienes tres opciones:
- Cualquier dispositivo – el fragmento se ejecuta para todos los usuarios independientemente del dispositivo en el que se encuentren (esta es la opción predeterminada)
- Solo escritorio – la omisión de la restricción se aplica solo cuando los usuarios inician sesión desde un navegador de escritorio
- Solo móvil – la omisión se aplica solo en dispositivos móviles
La mayoría de los sitios lo dejarán en Cualquier dispositivo.
Pero si el contenido de tu membresía está principalmente basado en escritorio y quieres bloquear múltiples sesiones de escritorio mientras eres más flexible con los móviles, aquí es donde lo configurarías.

Paso 5: Guardar y activar tu fragmento
Una vez hecho, ve debajo del área de fragmentos de WPCode para encontrar la pestaña Inserción .
Aquí, navega a "Método de inserción", donde puedes insertar el código con Inserción automática o Shortcode. Luego, usa el menú desplegable "Ubicación" para indicarle a WPCode dónde debe aparecer el fragmento.

Después de esto, es hora de activar y guardar.
Aquí te explico exactamente qué hacer:
- Desplázate hasta la parte superior del editor de fragmentos.
- Cambia el estado del fragmento de Inactivo a Activo.
- Haz clic en Guardar fragmento.

Bien hecho. El fragmento se activa inmediatamente. No se necesita actualizar la página. El usuario que haya iniciado sesión ahora omitirá la restricción para cualquier persona en tu lista de exenciones.
Cómo probar tu trabajo
No asumas que está funcionando; verifícalo. Esta prueba toma dos minutos y confirma que la restricción se aplica realmente.
Aquí te explico exactamente qué hacer:
- Abre tu navegador en modo incógnito o privado.
- Ve a tu página de inicio de sesión de WordPress e inicia sesión con una cuenta de usuario normal (no de administrador).
- Sin cerrar sesión, abre tu ventana normal del navegador.
- Intenta iniciar sesión con la misma cuenta.
Si elegiste Bloquear como Lógica de inicio de sesión, deberías ver el error "Se ha alcanzado el límite de inicio de sesión de este usuario".
Si eliges Permitir, tu sesión de incógnito debería finalizar. Actualízala y serás redirigido a la pantalla de inicio de sesión.
Si ambas sesiones permanecen activas, verifica dos cosas: confirma que Máximo de inicios de sesión activos esté configurado en 1 (no en el valor predeterminado de 3), y asegúrate de haber hecho clic en Guardar cambios después de ajustar la configuración.
⚠️Consejo rápido: Usa una cuenta de suscriptor o cliente para esta prueba, no tu cuenta de administrador, especialmente si has configurado una exención de rol para los administradores.
Problemas Comunes y Soluciones Rápidas
Problema: "La cuenta de administrador también está siendo bloqueada"
- Lo que está sucediendo: La restricción se aplica a todos los roles de usuario por defecto, incluidos los administradores.
- Solución rápida: Agrega el fragmento de omisión de rol del Método 2, Paso 3, e incluye 'administrator' en el array
$allowed_roles. Si solo necesitas omitirte a ti mismo, la omisión por ID de usuario del Paso 2 es más simple.
Mi experiencia: Siempre agrego la exención de administrador antes de habilitar la restricción en cualquier sitio en vivo; ahorra una llamada de soporte embarazosa.
Problema: "Los usuarios se están desconectando aleatoriamente, incluso sin un segundo inicio de sesión"
- Lo que está sucediendo: Un plugin de caché está sirviendo datos de sesión obsoletos, lo que provoca detecciones falsas de "segundo inicio de sesión".
- Solución rápida: Vuelve a Configuración » General » Configuración de Loggedin y cambia el Nivel de caché a Avanzado. Borra tu caché después de guardar. Si no estás seguro de qué plugin de optimización de velocidad está causando el conflicto, el modo Avanzado cubre la mayoría de las configuraciones.
Mi experiencia: Este problema afecta a sitios que ejecutan un caché agresivo de página completa; WP Rocket en particular.
Problema: "La restricción no funciona en absoluto después de la activación"
- Lo que está sucediendo: El plugin se configuró por defecto en 3 inicios de sesión activos y olvidaste cambiarlo a 1.
- Solución rápida: Ve a Configuración » General, confirma que Máximo de inicios de sesión activos esté configurado en 1 y haz clic en Guardar cambios.
Problema: "Los miembros se quejan de que los desconectan sin motivo"
- Lo que está sucediendo: Están compartiendo credenciales entre familiares o dispositivos; la lógica de Permitir está reemplazando su sesión silenciosamente.
- Solución rápida: Cambia la lógica de inicio de sesión a Bloquear para que vean un error claro en lugar de un cierre de sesión silencioso. O usa Forzar cierre de sesión para restablecer sus sesiones y explica la nueva política.
Espero que hayas encontrado útil este tutorial sobre cómo restringir a los usuarios a un solo dispositivo. Si algo no está claro, consulta las preguntas frecuentes a continuación.
Preguntas frecuentes: Cómo restringir el inicio de sesión de usuarios a un solo dispositivo en WordPress
¿Funciona esto con WooCommerce o plugins de membresía como MemberPress?
Sí. Loggedin se integra con el sistema de inicio de sesión principal de WordPress, por lo que funciona independientemente del plugin de membresía o comercio electrónico que estés utilizando. Las cuentas de clientes de WooCommerce, los miembros de MemberPress y cualquier otro sistema de usuarios basado en roles se verán afectados por la restricción.
¿Esto bloqueará a mis administradores?
Por defecto, sí, la restricción se aplica a todos los roles. Si deseas eximir a los administradores (o a cualquier otro rol), agrega el fragmento de omisión de rol del Método 2, Paso 3. Puedes ejecutar ambos fragmentos simultáneamente, uno para roles y otro para usuarios individuales.
¿Qué sucede con los usuarios que ya han iniciado sesión cuando habilito esto?
Las sesiones existentes no se cierran inmediatamente cuando activas la restricción. El límite solo se aplica a los nuevos intentos de inicio de sesión. Si deseas aplicarlo retroactivamente, usa la función Forzar cierre de sesión del Método 1, Paso 3, e ingresa los IDs de usuario que deseas restablecer.
¿Puedo limitar las cuentas a 2 o 3 dispositivos en lugar de 1?
Sí. Simplemente cambia el valor de Máximo de inicios de sesión activos en Ajustes » General al número que necesites. Establecerlo en 2 permite dos sesiones simultáneas por cuenta. Esto es útil si deseas permitir tanto un teléfono como una computadora portátil, pero nada más.
Reflexiones finales
Restringir los inicios de sesión a un solo dispositivo es uno de esos cambios que se pagan solos rápidamente en cualquier sitio con cuentas de pago.
Lo configuras una vez y cada nuevo inicio de sesión posterior se aplica automáticamente. Sin mantenimiento, verificaciones manuales ni persecución de quienes comparten credenciales.
El plugin Loggedin maneja la restricción principal en pocos minutos.
WPCode te da la flexibilidad de eximir a las personas adecuadas sin tocar una línea de código del tema.
Entre ambos, obtienes una configuración lo suficientemente sólida para proteger tus ingresos y lo suficientemente flexible para no frustrar a tu propio equipo.
Si tienes un sitio de membresía o vendes acceso a cualquier tipo de contenido, vale la pena hacerlo hoy mismo.
Tus datos de usuario se volverán inmediatamente más confiables, y los ingresos que estás perdiendo por credenciales compartidas dejarán de filtrarse.
Para una mirada más profunda al endurecimiento de tu sitio más allá de los controles de inicio de sesión, la guía completa de seguridad de WordPress es un buen próximo paso.
Centro de recursos: Seguridad y gestión de usuarios de WordPress
Estas guías cubren los próximos pasos para asegurar tu sitio y administrar a tus usuarios correctamente.
- Las 9 Mejores Comparativas de Plugins de Seguridad para WordPress: una comparación probada de los mejores plugins de seguridad para WordPress, que cubre firewalls, escaneo de malware y protección de inicio de sesión.
- Cómo limitar los intentos de inicio de sesión en WordPress paso a paso: restrinja cuántas veces alguien puede intentar iniciar sesión antes de ser bloqueado. Combina bien con la restricción de un solo dispositivo.
- Los 8 mejores plugins de fuerza bruta que probé y que realmente bloquean: proteja su página de inicio de sesión contra ataques automatizados de contraseñas.
- Los 7 mejores plugins y herramientas CAPTCHA de WordPress comparados: agregue una capa adicional a su formulario de inicio de sesión para que los bots ni siquiera puedan intentar iniciar sesión.
- Cómo crear un curso en línea con WordPress: si está restringiendo los inicios de sesión para proteger el contenido del curso, aquí le mostramos cómo crear y estructurar el curso en sí.
- La lista de verificación completa de seguridad de WordPress: todo en un solo lugar: seguridad de inicio de sesión, permisos de archivos, copias de seguridad y más.
Comentarios Deja una respuesta