Cuando hablamos de tiempo de carga de una página web, lo que realmente medimos es cuánto tarda en descargarse y mostrarse en el navegador. Ese tiempo depende de varios factores:
Peso de la página (MB)
Es el tamaño total de todos los recursos: HTML, CSS, JavaScript, imágenes, fuentes, etc.
Cuanto más grande sea, más datos hay que transferir.
Ancho de banda (Mbps)
Es la velocidad de la conexión de red disponible.
Se mide en megabits por segundo (ojo: 1 byte = 8 bits).
A mayor ancho de banda, más rápido se transfieren los datos.
Fórmula básica
El tiempo de descarga puro se calcula así:
Tiempo de descarga (s)=Peso de la paˊgina (MB)×8Ancho de banda (Mbps)
Ejemplo:
Página de 2 MB
Conexión de 20 Mbps
2×820=0.8 segundos
Latencia
La latencia es el retraso que introduce la red en cada petición (RTT: Round Trip Time).
Aunque tengas mucho ancho de banda, si la latencia es alta (ej. 200 ms en redes móviles), cada recurso tarda más en empezar a descargarse.
Por eso se añade una aproximación de latencia al cálculo.
Rendimiento real
En la práctica, el tiempo de carga no es solo descarga + latencia. También influyen:
Número de peticiones (cada imagen, script, fuente es una petición).
Conexiones paralelas (los navegadores abren varias conexiones a la vez, pero no infinitas).
Protocolos (HTTP/2 y HTTP/3 reducen overhead).
Eficiencia de red (compresión, caché, TCP slow-start).
Por eso se aplica un factor de eficiencia (ej. 85%) para acercarse más a la realidad.
El tamaño total de una página web en MB se mide sumando el peso de todos los recursos que el navegador descarga para mostrarla. Te lo explico en detalle:
🔍 Qué se mide exactamente
HTML principal (el documento base).
CSS (hojas de estilo).
JavaScript (scripts).
Imágenes (PNG, JPG, SVG, WebP, etc.).
Fuentes web (tipografías).
Otros recursos (videos, audios, iconos, etc.).
Cada archivo tiene un tamaño en bytes. La suma de todos esos bytes se convierte a megabytes (MB):
1 MB=1024×1024 bytes≈1,048,576 bytes
Cómo medirlo en la práctica
Herramientas del navegador (DevTools)
Abres la página en Chrome/Firefox.
Pulsa F12 → pestaña Network.
Recarga la página.
En la parte inferior verás el Total transferido (suma de todos los recursos).
Ese número lo conviertes a MB.
Servicios online
Herramientas como GTmetrix, Pingdom Tools o WebPageTest te dan el tamaño total de la página y un desglose por tipo de recurso.
Línea de comandos (para desarrolladores)
Usando wget o curl puedes descargar la página y medir el tamaño de los archivos.
Ejemplo: wget --page-requisites --span-hosts URL descarga todo y luego puedes calcular el peso con du -sh.
Aprende a crear una estructura de registro de miembros para tu página web. Te explico como hacerlo en HTML, CSS y JS. Luego lee el artículo hasta el final para la verificación del usuario, la creación de la base de datos, y el estilo de tus páginas de registro, login, y verificación de email.
Te dejo una estructura completa con HTML + CSS + JS (fetch a endpoints) que puedes conectar a tu backend (WordPress o API propia). Si quieres mockear sin servidor, también incluyo una variante con localStorage.
Estructura de archivos HTML para login, registro, verificación y perfil
Usa siempre utf8mb4 para evitar problemas con acentos y emojis.
password debe ir con hash: guarda con password_hash($plain, PASSWORD_DEFAULT).
No dupliques emails: el índice UNIQUE en email ya te protege.
Si falla la creación: revisa que estás dentro de la base correcta antes de ejecutar el SQL.
ejemplos visuales creados que imitan la interfaz gráfica de phpMyAdmin, para que veas claramente dónde se crean la base de datos y la tabla.
🖼️ Ejemplo visual 1: Crear una base de datos en phpMyAdmin
En el menú superior verás la opción “Bases de datos”.
Ahí aparece un campo para escribir el nombre de la nueva base de datos y elegir el cotejamiento (utf8mb4_general_ci).
Luego pulsas “Crear”.
🖼️ Ejemplo visual 2: Crear una tabla dentro de la base de datos
Una vez seleccionada tu base en la columna izquierda, entras en la pestaña “Estructura”.
Verás un formulario que dice “Crear tabla”.
Ahí introduces el nombre de la tabla (ej. usuarios) y el número de columnas (ej. 6).
Después defines cada columna: id, nombre, email, password, token, verificado.
EJEMPLOS VISUALES
como CREAR una TABLA en MYSQL PHPMYADMIN
Ingresar registros a tablas de la base de datos utilizando la interfaz gráfica de PhpMyAdmin
Creación de la base de datos y tabla
Crear tablas en MySQL
Aquí tienes un mapa visual del flujo de archivos y carpetas para tu sistema de registro con verificación por correo en PHP. Así lo tendrás todo ordenado y claro:
📂 Estructura recomendada del proyecto
Código
/mi-proyecto/
│
├── /templates/
│ └── email-verificacion.html # Plantilla HTML del correo de verificación
│
├── /public/
│ ├── bienvenido-a-tu-cuenta.html # Página de bienvenida tras verificar
│ ├── login.html # Formulario de login
│ ├── register.html # Formulario de registro
│ └── verify.php # Página que procesa el token de verificación
│
├── /src/
│ ├── register.php # Script PHP que guarda usuario y envía correo
│ ├── login.php # Script PHP que valida credenciales
│ ├── reset.php # Script PHP para recuperación de contraseña
│ └── db.php # Conexión PDO a la base de datos
│
└── /sql/
└── usuarios.sql # Script SQL para crear la tabla en phpMyAdmin
🔑 Flujo de funcionamiento
Usuario se registra en register.html → el formulario envía datos a register.php.
register.php guarda el usuario en la tabla usuarios y carga la plantilla email-verificacion.html para enviar el correo.
El correo contiene un enlace a verify.php?token=XYZ.
verify.php valida el token en la base de datos y, si es correcto, redirige a bienvenido-a-tu-cuenta.html.
Desde ahí, el usuario puede ir a su perfil o iniciar sesión en login.html.
🚀 Ventaja de esta estructura
Separación clara: plantillas, scripts PHP, páginas públicas y SQL cada uno en su sitio.
Modularidad: puedes cambiar el diseño del correo sin tocar el PHP.
Escalabilidad: fácil añadir más funciones (roles, panel admin, etc.).
Aquí tienes el script SQL completo que puedes importar directamente en phpMyAdmin para crear la tabla usuariosdentro de tu base de datos.
📜 Script usuarios.sql
sql
-- Crear la base de datos (si aún no existe)
CREATE DATABASE IF NOT EXISTS usuarios_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
-- Usar la base de datos
USE usuarios_db;
-- Crear la tabla de usuarios
CREATE TABLE IF NOT EXISTS usuarios (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
email VARCHAR(150) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
token VARCHAR(64),
verificado TINYINT(1) DEFAULT 0,
creado_en TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
🛠 Cómo importarlo en phpMyAdmin
Entra en phpMyAdmin desde tu hosting.
Si no tienes base de datos, crea una nueva llamada usuarios_db.
Selecciona la base en la columna izquierda.
Ve a la pestaña SQL.
Copia y pega el script anterior.
Pulsa Ejecutar.
👉 Verás que se crea la tabla usuarios con las columnas necesarias para tu sistema de registro y verificación.
Campos importantes
id → identificador único.
nombre → nombre del usuario.
email → correo electrónico (único).
password → contraseña encriptada con password_hash().
token → clave de verificación enviada por correo.
verificado → estado de la cuenta (0 = no verificada, 1 = verificada).
creado_en → fecha y hora de registro.
Así ya tienes tu base de datos lista para conectar con tus scripts PHP (register.php, verify.php, login.php). 🚀
Pasos para ejecutar un script SQL en phpMyAdmin
Accede a phpMyAdmin
Desde tu panel de hosting (cPanel, Plesk, etc.), abre phpMyAdmin.
Verás en la parte izquierda la lista de bases de datos.
Selecciona la base de datos
Si ya creaste la base (ej. usuarios_db), haz clic sobre ella en la columna izquierda.
Si no existe, primero crea una nueva desde la pestaña “Bases de datos”.
Ir a la pestaña “SQL”
Una vez dentro de la base, en la parte superior verás varias pestañas: Estructura, SQL, Buscar, Exportar…
Haz clic en “SQL”.
Pegar el script
Se abrirá un editor de texto.
Copia y pega el script SQL que te pasé (por ejemplo, el de creación de la tabla usuarios).
Ejemplo:sqlCREATE TABLE usuarios ( id INT(11) AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(100) NOT NULL, email VARCHAR(150) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, token VARCHAR(64), verificado TINYINT(1) DEFAULT 0, creado_en TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Ejecutar
Pulsa el botón “Continuar” o “Ejecutar” (depende de la versión).
phpMyAdmin procesará el script y te mostrará un mensaje de éxito si todo salió bien.
Verificar la tabla
En la columna izquierda, dentro de tu base, debe aparecer la tabla usuarios.
Haz clic en ella y verás las columnas que definiste.
🚀 Resultado
Con esto ya tienes tu tabla creada y lista para usar desde PHP.
register.php insertará registros en ella.
verify.php buscará el token y actualizará el campo verificado.
LAS CONEXIONES SIMULTÁNEAS PUEDE CAUSAR UNA CAÍDA EN MariaDB, y perder la conexión del sitio web de WordPress con la Base de Datos, causando un ERROR DE CONEXIÓN CON LA BASE DE DATOS.
Arrancar, detener y reiniciar
Arrancar MariaDBsudo systemctl start mariadb
Detener MariaDB sudo systemctl stop mariadb
Reiniciar MariaDB sudo systemctl restart mariadb
Estado del servicio
Ver estado (sin quedarse dentro del visor)bashsudo systemctl status mariadb --no-pager
Ver si arranca al inicio del sistemabashsudo systemctl is-enabled mariadb
Logs y errores
Ver últimos registros de MariaDBbashjournalctl -u mariadb -n 50 --no-pager
Ver logs en tiempo realbashjournalctl -u mariadb -f
Comprobación de conexión
Entrar al cliente MySQL/MariaDBbashmysql -u root -p
Consejo: Si alguna vez te quedas “atrapado” viendo el estado con systemctl status, recuerda que basta con pulsar q para salir y volver al prompt.
Aquí tienes una mini‑guía de optimización de MariaDB para un VPS con 2 GB de RAM. Con estos ajustes tu servidor debería mantenerse estable y evitar que el sistema lo mate por falta de memoria.
⚙️ Configuración recomendada en /etc/mysql/mariadb.conf.d/50-server.cnf
Dentro del bloque [mysqld] añade o ajusta estas líneas:
ini
[mysqld]
# Memoria principal para InnoDB (ajustada a 256 MB para 2 GB de RAM)
innodb_buffer_pool_size = 256M
# Número máximo de conexiones simultáneas
max_connections = 100
# Tamaño máximo de tablas temporales en memoria
tmp_table_size = 64M
max_heap_table_size = 64M
# Caché de consultas (puede ayudar en sitios con muchas lecturas repetidas)
query_cache_size = 32M
query_cache_type = 1
# Limitar el tamaño del log binario si no usas replicación
expire_logs_days = 7
max_binlog_size = 100M
# Evitar que MariaDB consuma demasiada RAM en operaciones grandes
join_buffer_size = 2M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 4M
Pasos para aplicar
Edita el archivo: sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Añade el bloque [mysqld] con los parámetros anteriores.
Guarda con Ctrl+O, confirma con Enter y sal con Ctrl+X.
Activa swap si tu VPS no la tiene, para evitar OOM‑kill:bashsudo fallocate -l 1G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
Monitoriza consumo con:bashhtop
Ajusta valores si notas que MariaDB sigue consumiendo demasiada RAM.
script automático pensado para tu VPS Debian con 2 GB de RAM. Este script ajusta los parámetros de MariaDB y activa un archivo de swap de 1 GB para evitar que el sistema vuelva a matar el proceso por falta de memoria.
Aquí tienes un script avanzado que no solo optimiza MariaDB y activa swap, sino que además monitoriza el servicioy lo reinicia automáticamente si detecta un fallo por OOM‑kill (falta de memoria).
Este sitio utiliza solo cookies propias necesarias para su funcionamiento y para recordar tus preferencias de consentimiento. No empleamos cookies de publicidad ni de seguimiento, y los anuncios se muestran sin utilizar cookies.