Cuándo necesita realmente un VPS para su sitio
Compruebe seis señales: correos de límite, errores 508, cron bloqueado y falta de SSH. Un VPS no arregla todos los sitios lentos ni los problemas de código.
Cuándo necesita realmente un VPS
Necesita un VPS el día en que su plan de hosting se convierte en un límite, no el día en que su sitio parece lento. El hosting compartido aloja cientos de cuentas en una misma máquina, y el proveedor protege esa máquina limitando los recursos que puede usar cada cuenta. Cuando alcanza un límite que no puede aumentar, o necesita software que el proveedor no instalará, el problema es el plan y la solución es un VPS. En cualquier otro caso, la migración sólo traslada el mismo sitio lento a un servidor que ahora debe administrar usted.
La pregunta útil es qué límite está alcanzando. Cada sección siguiente describe una señal que puede comprobar directamente: un correo del proveedor, un código de estado HTTP, una cola que nunca se vacía o un paquete que no se puede instalar. Si ninguna coincide con su sitio, debe leer la sección sobre cuándo un VPS no ayudará.
Qué es un VPS, en dos párrafos
Un VPS (servidor privado virtual) es una parte propia de un servidor físico. El proveedor ejecuta un hipervisor, un software que divide una máquina en varias máquinas virtuales aisladas, y le alquila una de ellas. Obtiene una cantidad fija de RAM y disco, un número acordado de núcleos de CPU, una dirección IP (protocolo de Internet) pública propia y un sistema operativo completo al que nadie más inicia sesión. En él no se ejecuta nada excepto lo que usted instala.
La parte que cambia su trabajo es root, la cuenta de administrador de Linux. Con root puede instalar cualquier paquete, editar cualquier archivo de configuración, abrir cualquier puerto y reiniciar cualquier servicio. El hosting compartido le proporciona un panel de control y una carpeta dentro de la máquina de otra persona. Un VPS le proporciona una instalación vacía de Ubuntu o Debian y un acceso SSH (shell seguro); a partir de ahí, todo depende de sus decisiones. La lista completa de lo que le proporcionan root y una IP dedicada es más larga de lo que admite una página de actualización, y también lo es la lista de responsabilidades que implican. Si quiere comparar primero los dos modelos, empiece por cómo se diferencian el hosting compartido y un VPS en el uso diario.
Señal 1: el proveedor le envía un correo sobre los límites de CPU o de procesos de entrada
La mayoría de los servicios de hosting compartido con cPanel utilizan CloudLinux. CloudLinux coloca cada cuenta dentro de un LVE (entorno virtual ligero) con límites estrictos: un porcentaje de un núcleo de CPU, un límite de memoria, una tasa de entrada/salida y un número de procesos de entrada. Los procesos de entrada, EP, indican cuántas peticiones puede ejecutar su cuenta al mismo tiempo. Miden la concurrencia, no el tráfico mensual.
Esta distinción explica el correo que no esperaba. Un blog con caché y 5,000 visitas al día puede no ejecutar nunca dos procesos de PHP a la vez. Una tienda WooCommerce con 300 visitas al día ejecuta muchos simultáneamente, porque los carritos, el proceso de pago, admin-ajax.php y todas las páginas para usuarios autenticados omiten la caché de página y llegan a PHP. La concurrencia es lo que llena el contador de EP. Por eso, una tienda pequeña puede quedar sin servicio mientras un blog mucho más grande no tiene ese problema.
Puede comprobarlo antes de recibir el correo. En cPanel, abra la página Resource Usage. Esta página muestra los errores de cada límite durante las últimas 24 horas para nombres como CPU, EP, IO y PMEM. Un error corresponde a una petición cuyo procesamiento se limitó o rechazó. Cero errores significa que todavía tiene margen. Un recuento diario de errores que sigue aumentando indica que ya ha superado la capacidad del plan. El siguiente nivel de hosting compartido ofrece un límite algo mayor del mismo tipo.
Señal 2: el sitio devuelve 508 o 503 mientras el tráfico parece normal
508 Resource Limit Is Reached es la página que LiteSpeed sirve cuando una cuenta supera su límite de LVE. 503 Service Unavailable suele indicar que el grupo de PHP-FPM (gestor de procesos FastCGI) no tiene ningún worker libre o que se activó el terminador de procesos del host. Ambos códigos son rechazos de la plataforma. La petición nunca llegó a tu tema, por lo que ningún cambio en un plugin lo solucionará.
Obsérvalo desde un terminal en lugar del navegador, porque el navegador reintenta, almacena respuestas en caché y oculta el patrón.
for i in $(seq 1 30); do
curl -sS -o /dev/null -w '%{http_code} %{time_starttransfer}\n' https://your-site.example/
sleep 2
doneUna ejecución normal consta de treinta líneas que empiezan todas por 200. Un 508 o 503 entre respuestas normales indica que la plataforma rechazó una petición mientras el sitio seguía disponible. Ejecuta el mismo bucle durante tu hora de mayor actividad y repítelo mientras el panel de administración de WordPress esté abierto en otra pestaña, ya que el panel suele ser la parte que más recursos consume en la mayoría de las tiendas.
Señal 3: necesita cron, un worker en segundo plano o una cola
WordPress incluye su propio planificador, WP-Cron, y lo ejecuta cuando se visualizan páginas. wp-cron.php se activa cuando un visitante carga una página. Por eso, un sitio con poco tráfico ejecuta tarde sus tareas programadas, mientras que un sitio con mucho tráfico añade el coste del planificador al tráfico normal. WooCommerce envía las renovaciones de suscripciones, los correos de pedidos, las actualizaciones de inventario y las entregas de webhooks mediante Action Scheduler, que depende de ese mismo planificador.
Puede comprobar el impacto en el panel de administración. Abra WooCommerce, después Status y, a continuación, Scheduled Actions. Las acciones que aparecen como Pending y tienen una fecha programada pasada indican que la cola está retrasada. Los correos de pedidos que esperan sus clientes se encuentran en esa cola.
Muchos proveedores de hosting compartido ofrecen cron real en cPanel, aunque el intervalo mínimo suele estar limitado a 15 minutos. Es suficiente para la mayoría de los sitios: configure cron para ejecutar WP-Cron y desactive la versión activada por las visitas. Haga este cambio antes de migrar nada. No tiene coste y resuelve el caso habitual. Las líneas exactas están en reemplazar WP-Cron por una tarea cron real del sistema.
El hosting compartido no le proporcionará un proceso que permanezca en ejecución. Un worker de cola, un servidor websocket, una importación que tarde veinte minutos o cualquier proceso que normalmente ejecutaría como una unidad systemd será terminado por los límites de procesos de la cuenta, normalmente sin que aparezca ningún mensaje. Un proceso de ejecución prolongada es un requisito real de un VPS y es la señal menos discutible de esta página.
Señal 4: necesita SSH o un paquete que el proveedor no instalará
Las solicitudes que siempre se rechazan son las mismas: Redis o Memcached para la caché de objetos, la extensión imagick o intl para PHP, ffmpeg para archivos multimedia, una versión más reciente de PHP, Node.js para un paso de compilación, WP-CLI y Composer. La respuesta de un proveedor de hosting compartido suele ser no, y es una respuesta razonable. Una máquina aloja cientos de cuentas. Por tanto, cualquier paquete que instalen estará disponible para todos y deberán ofrecer soporte para él de forma permanente.
La caché de objetos es la solicitud que suele superar el límite. WordPress mantiene las opciones y los resultados de las consultas en memoria sólo durante una solicitud. Una caché de objetos los conserva entre solicitudes. Esto elimina muchas consultas repetidas a MySQL de cada página para usuarios autenticados. Esas páginas son las que sirve una tienda. Para hacerlo necesita un servidor Redis bajo su control: añadir una caché de objetos Redis a WordPress explica qué cambia y qué permanece intacto.
SSH es la otra mitad de esta señal. Sin un shell, restaurar una base de datos de 4 GB implica usar phpMyAdmin. La operación suele agotar el tiempo de espera antes de terminar y deja una base de datos incompleta. Con un shell, basta con un comando mysql que se ejecuta hasta finalizar.
Señal 5: necesita un segundo sitio o una copia de staging
Los planes compartidos básicos normalmente permiten un dominio, y el complemento para añadir un segundo suele costar aproximadamente lo mismo que un VPS pequeño. El problema más importante es que una copia de staging en la misma cuenta comparte los límites de esa cuenta. Si realiza pruebas de carga en staging, producción también se cae porque ambos consumen los mismos límites de EP y CPU. En un VPS, staging es un segundo directorio y una segunda base de datos en hardware que ya ha pagado. Un solo servidor puede alojar varios proyectos independientes siempre que dimensione sus recursos de forma realista.
Señal 6: sus datos deben permanecer en un país concreto
Los planes compartidos a menudo no indican en qué centro de datos se almacenan sus archivos y rara vez permiten cambiarlo después. Si un contrato con un cliente o una normativa nacional exige que la base de datos permanezca dentro de un país concreto, un VPS es la forma más sencilla de cumplirlo, porque puede elegir la región al crear el servidor y demostrar dónde se encuentra. La latencia es el segundo motivo para prestar atención a la ubicación. Mídala en lugar de hacer suposiciones:
curl -sS -o /dev/null -w 'connect %{time_connect}s ttfb %{time_starttransfer}s\n' https://your-site.example/Ejecute ese comando desde una máquina situada en el país donde están sus clientes. Un tiempo de connect que represente una parte importante del total indica que la distancia es el problema. Acercar el servidor ayuda más que cualquier plugin. Cómo elegir entre una ubicación en Canadá y otra en Estados Unidos explica las ventajas y desventajas cuando la respuesta no es evidente.
Cuándo un VPS no ayudará
Un sitio lento suele ser lento por motivos que se trasladan con él. Estos cuatro problemas no cambiarán en el nuevo servidor:
- Imágenes subidas con la resolución completa de la cámara y redimensionadas por el navegador. Los mismos bytes atravesarán la misma red desde cualquier servidor.
- Cuarenta plugins, varios de los cuales se ejecutan en cada petición. Es el mismo PHP haciendo el mismo trabajo.
- Sin caché de páginas, por lo que cada visitante activa un arranque completo de WordPress y un conjunto de consultas a la base de datos.
- Un plugin que llama a una API externa (interfaz de programación de aplicaciones) mientras se genera la página, por lo que la página espera al servidor de otra persona.
Nada de eso cambia cuando obtiene root. Ejecutará el mismo código en un hardware que ahora tendrá que ajustar, sin el equipo de soporte del proveedor detrás.
Hay una prueba rápida que permite distinguir ambos casos. Tome el TTFB (tiempo hasta el primer byte) del comando curl anterior y compárelo con el tiempo que tarda la página en terminar de cargarse en un navegador. Un TTFB de 1.5 segundos apunta al servidor. Revise primero PHP y la base de datos, y después los límites del plan. Un TTFB de 200 milisegundos con una página que todavía tarda 7 segundos apunta al frontend, es decir, a las imágenes y los scripts. Un VPS cambia el primer valor y no hace nada con el segundo.
Hay otro caso que debe tener en cuenta. Si hoy no puede explicar cómo restauraría su sitio desde una copia de seguridad, esa es la habilidad que debe corregir antes de migrar. En un alojamiento compartido, una mala semana le cuesta un ticket de soporte. En un VPS, le cuesta todo lo que sepa hacer en ese momento.
Qué asumes al mudarte
El primer día llegan cuatro tareas a tu mesa. Las actualizaciones de seguridad, incluidos los reinicios que requieren las actualizaciones del kernel. El firewall y la configuración de SSH, porque un VPS nuevo con una IP pública empieza a recibir intentos de inicio de sesión en cuestión de minutos. Las copias de seguridad almacenadas fuera del servidor y restauradas al menos una vez. Y ser la persona que está despierta a las 2am cuando el servidor deja de responder, porque ya no hay una cola de soporte detrás de ti.
Nada de esto es difícil, pero todo requiere trabajo real que antes estaba incluido en tu factura. Un VPS es tan seguro como la persona que lo administra, y esa es la respuesta honesta.
Si la lista parece un segundo trabajo, delega esas tareas. Un VPS administrado mantiene los recursos dedicados, mientras el proveedor se encarga de las actualizaciones y la monitorización, a cambio de un precio mensual más alto. Calcula correctamente ese intercambio antes de decidir: la diferencia entre un VPS administrado y uno no administrado y cuánto cuesta un VPS al mes cuando se incluyen las copias de seguridad son las dos páginas que debes leer a continuación. Tampoco esperes cPanel de forma predeterminada. El panel es software con licencia, por lo que un VPS básico llega sin él, y los paneles gratuitos que lo sustituyen merecen una revisión si quieres una interfaz gráfica.
Moverse sin interrumpir la tienda
Copie primero y cambie al final. Prepare el sitio en el VPS y pruébelo mediante la dirección IP del servidor o un nombre de host temporal. Cambie los registros DNS (domain name system) sólo después. Reduzca a 300 segundos el TTL (time to live) del registro un día antes del cambio. Así, la modificación se propagará en minutos en lugar de horas. Mantenga pagada la cuenta compartida durante dos semanas más. Es la opción de rollback más barata que tendrá. La secuencia completa, incluida la copia de la base de datos y la búsqueda y sustitución de URL, está en mover un sitio WordPress activo de un hosting compartido a un VPS.
Antes de evaluar el nuevo servidor, tenga en cuenta lo siguiente: un VPS sigue compartiendo las CPU físicas con otras máquinas virtuales. Por eso, un vecino con mucha carga puede ralentizarlo. Esto aparece como steal time indicado por top y se puede medir, no es un comportamiento inexplicable.
FAQ
¿Cómo sé si el límite está en mi alojamiento o en mi sitio?
Dos valores responden a esta pregunta. Abra la página Resource Usage de cPanel y busque fallos relacionados con CPU, EP o IO durante las últimas 24 horas. Cualquier fallo indica que el plan limitó o rechazó peticiones. Después, mida el TTFB con curl -o /dev/null -w '%{time_starttransfer}' https://your-site.example/. La combinación de fallos y un TTFB alto indica un límite del alojamiento, y un VPS lo resuelve. Si no hay fallos, el TTFB es bajo y la página parece lenta, el problema está en el frontend y un VPS no lo solucionará.
¿Un VPS es más rápido que un hosting compartido?
Sólo para el trabajo que realiza el servidor. Un VPS le proporciona RAM dedicada, por lo que PHP y MySQL dejan de competir con otras cuentas. También permite añadir una caché de objetos y ajustar PHP-FPM por su cuenta. No reduce el tamaño de las imágenes, elimina un plugin lento ni reduce la cantidad de JavaScript que carga el tema. Un sitio lento en el navegador seguirá siendo lento después de la migración.
¿Necesito conocer Linux para administrar un VPS?
Necesita conocimientos suficientes para mantener el sistema actualizado, mantener el firewall cerrado y restaurar una copia de seguridad. Para alguien que ya trabaja con soltura en un terminal, esto equivale aproximadamente a un fin de semana de aprendizaje. Si prefiere no aprender mientras una tienda procesa pedidos, un plan administrado es una opción válida: el proveedor se ocupa de las actualizaciones y la monitorización, y usted conserva los recursos dedicados.
¿Una tienda WooCommerce necesita un VPS?
No necesariamente, aunque las tiendas alcanzan los límites antes que los blogs. Las páginas del carrito y del proceso de pago no pueden servirse desde una caché de páginas. Por eso, una tienda con tráfico moderado ejecuta más PHP al mismo tiempo que un blog con diez veces más visitantes. Cuando aparecen fallos de procesos de entrada en días normales, o Action Scheduler se retrasa en el envío de correos de los pedidos, la tienda ha superado los límites del hosting compartido.