Ajustes básicos de wp-config.php: de la ubicación del archivo a la memoria y las revisiones

El archivo wp-config.php es el archivo de configuración más importante: en un sitio WordPress contiene la información esencial, todo lo que WordPress necesita para conectarse a su base de datos y funcionar, por lo que actúa como el corazón del sitio.
Ⅰ. Función de wp-config.php
Este archivo contiene los siguientes ajustes sensibles.

Por eso, el archivo wp-config.php es el objetivo principal, lo primero que buscan los atacantes externos. Si sus permisos están mal configurados o su contenido queda expuesto, puede filtrarse toda la base de datos o perderse el control de administración, lo que supone una grave vulnerabilidad de seguridad. Por eso, el primer paso para reforzar la seguridad de WordPress es proteger este archivo.
1️⃣ Dónde está wp-config.php
wp-config.php está en la carpeta raíz donde se instaló WordPress, junto a las carpetas [wp-admin], [wp-content] y [wp-includes]. En un hosting con cPanel esa carpeta es [public_html]; este sitio lo tiene en [/home/uknew/www/wp-config.php] dentro de un VPS de Lightsail.
Si no ves el archivo en la carpeta raíz, revisa la carpeta de un nivel superior. WordPress busca wp-config.php primero en la carpeta de instalación y, si no está, lo carga desde la carpeta inmediatamente superior.
2️⃣ Cómo abrir wp-config.php
En el [Administrador de archivos] del panel de tu hosting, ve a la carpeta raíz, haz clic derecho en wp-config.php y elige [Edit]. Así puedes editarlo directamente en el navegador, sin otro programa.
Con un cliente FTP (FileZilla), descargas el archivo a tu ordenador, lo editas con un editor y lo vuelves a subir. Guarda una copia del original antes de subirlo para poder restaurarlo enseguida si algo falla.
En servidores como un VPS a los que accedes por SSH, ejecuta un editor seguido de la ruta del archivo, como con [vi]; [nano] lo abre de la misma forma.
vi /home/uknew/www/wp-config.php3️⃣ wp-config-sample.php y la estructura básica
El paquete de WordPress recién descargado no trae wp-config.php, solo [wp-config-sample.php] en el mismo lugar. Al introducir los datos de la base de datos en la pantalla de instalación, WordPress crea wp-config.php a partir de este archivo; copiarlo y renombrarlo a mano da el mismo resultado.
define( 'DB_NAME', 'database_name_here' );
define( 'DB_USER', 'username_here' );
define( 'DB_PASSWORD', 'password_here' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );
define( 'AUTH_KEY', 'put your unique phrase here' );
define( 'SECURE_AUTH_KEY', 'put your unique phrase here' );
define( 'LOGGED_IN_KEY', 'put your unique phrase here' );
define( 'NONCE_KEY', 'put your unique phrase here' );
define( 'AUTH_SALT', 'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT', 'put your unique phrase here' );
define( 'NONCE_SALT', 'put your unique phrase here' );
$table_prefix = 'wp_';
define( 'WP_DEBUG', false );Las cuatro líneas [DB_NAME], [DB_USER], [DB_PASSWORD] y [DB_HOST] llevan los datos de la base de datos que te da el hosting. Si un solo valor es incorrecto, en lugar del sitio aparece el error [Error establishing a database connection].
Las ocho líneas de [AUTH_KEY] a [NONCE_SALT] cifran las cookies de inicio de sesión; genera un juego nuevo en [https://api.wordpress.org/secret-key/1.1/salt/] y sustitúyelas todas a la vez. Al cambiarlas se cierra la sesión de todos los usuarios conectados.
[$table_prefix] es el prefijo que se añade a los nombres de las tablas, [wp_] por defecto, y sirve para distinguir varias instalaciones de WordPress que comparten una base de datos. Si cambias [WP_DEBUG] a [true], se muestran los errores de PHP, que aparecen en pantalla, así que en un sitio en producción déjalo en [false].
Ⅱ. /* That’s all, stop editing! Happy publishing. */
Técnicamente, este comentario (/* That’s all, stop editing! Happy publishing. */) no cumple ninguna función especial como código PHP. Es solo un comentario.
Pero el equipo de WordPress lo dejó como una ‘señal‘ : un aviso a los usuarios de que “debajo de este comentario está el código esencial que WordPress necesita para funcionar, así que no lo toques”.
1️⃣ Clave: por qué el código va encima de este comentario
El archivo wp-config.php de WordPress termina con la siguiente estructura.
// (omitido: Base de datos (datos), Seguridad (claves), Tabla (prefijo) etc.)
/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*/
define( 'WP_DEBUG', false );
###
/* That's all, stop editing! Happy publishing. */
/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', dirname( __FILE__ ) . '/' );
}
/** Sets up WordPress vars and included files. */
require_once( ABSPATH . 'wp-settings.php' );- Las constantes de configuración (define) van arriba: La mayoría de las constantes de configuración de WordPress (define) deben definirse /* That’s all, stop editing! Happy publishing. */ justo encima del comentario para que WordPress las cargue correctamente al inicializar su configuración.
- La carga de WordPress empieza abajo: Debajo de este comentario están la definición de [ABSPATH] y el código [require_once( ABSPATH . ‘wp-settings.php’ );]. Desde el momento en que se carga este archivo [wp-settings.php], las funciones principales de WordPress empiezan a ejecutarse.
Por eso, cuando añades ajustes adicionales (por ejemplo, desactivar la edición de archivos con [define(‘DISALLOW_FILE_EDIT’, true);] o fijar un límite de memoria con [define(‘WP_MEMORY_LIMIT’, ‘256M’);]), escríbelos para que se carguen antes, por delante del archivo de carga principal de WordPress, es decir, justo encima del comentario, para que se apliquen sin errores.
wp-config-sample.php tiene otro comentario, [Add any custom values between this line and the “stop editing” line.], justo encima del comentario [stop editing]; coloca tus propios ajustes entre estos dos comentarios.
Ⅲ. Ajustes básicos de wp-config.php tras instalar WordPress
1️⃣ Ajustes de Heartbeat
El ‘Heartbeat’ de WordPress es una señal que comprueba si el servidor y el sitio siguen conectados. La Heartbeat API usa
/wp-admin/admin-ajax.php, a través del cual hace llamadas AJAX desde el navegador. En el escritorio de WordPress, este archivo envía una petición POST cada 15 segundos.
Puedes dejarlo activo solo en las pantallas del editor, [post.php]·[post-new.php].
Heartbeat no tiene una constante para wp-config.php, así que este archivo no puede controlarlo. Si pones el código de abajo en wp-config.php, se ejecuta antes de que WordPress cargue la función [add_action] y el sitio se detiene con el error [Call to undefined function add_action()].
WP Rocket: en la pestaña [Heartbeat], elige [Do not limit], [Reduce activity] o [Disable] para el backend, el editor de entradas y el frontend.

Perfmatters: [Disable Heartbeat] define en qué pantallas se permite Heartbeat y [Heartbeat Frequency], el intervalo de las peticiones.

Si no usas ninguno de los dos plugins, no instales otro plugin solo para Heartbeat. Los plugins dejan sus ajustes en la base de datos incluso después de eliminarlos, así que pon el código de abajo en el [functions.php] de tu tema.
/** Disable Heartbeat everywhere except post editor */
add_action('init', function() {
global $pagenow;
if ($pagenow != 'post.php' && $pagenow != 'post-new.php') {
wp_deregister_script('heartbeat');
}
}, 1);2️⃣ Ajustes de memoria de WordPress
El ajuste de memoria fija cuánta memoria puede usar WordPress en PHP, para evitar errores de falta de memoria (Fatal error: Allowed memory size exhausted) mientras se ejecutan temas o plugins. Es decir, para que el sitio sea estable y no se exceda en recursos, es una protección básica.
La mayoría de los tutoriales de WordPress y la documentación oficial muestran solo [define(‘WP_MEMORY_LIMIT’, ‘256M’);].
/** Memory Limit for WordPress */
define('WP_MEMORY_LIMIT', '256M'); // frontend
define('WP_MAX_MEMORY_LIMIT', '512M'); // admin/backend‘WP_MAX_MEMORY_LIMIT’ es un ajuste que permite más memoria en el backend que en el frontend.
WP_MEMORY_LIMIT es el “límite de memoria para los visitantes”,
y WP_MAX_MEMORY_LIMIT es el “límite ampliado para la administración y los procesos internos”.
Hay que configurar ambos para lograr un control completo de la memoria de WordPress.Si el valor de wp-config.php es mayor que el de php.ini o el pool de PHP-FPM del servidor, se aplica la configuración del servidor.
3️⃣ Limitar las revisiones
Las revisiones de WordPress van acumulando versiones anteriores de cada entrada, lo que ralentiza el sitio. En sitios sin caché, e incluso con caché mientras trabajas en el escritorio, sobre todo al crear entradas o páginas, las páginas que ven los visitantes también pueden volverse lentas.
Por ejemplo, cuando el servidor usa alrededor del 50% de su CPU total, las páginas de los visitantes pueden ir más lentas sea cual sea el plugin de caché.
Por eso se desactivan las revisiones o se limita su número.
No hace falta instalar un plugin para fijar el número de revisiones. Una línea con una constante en wp-config.php hace lo mismo y no deja en la base de datos ajustes de plugins que luego haya que limpiar.
◽️️Desactivar las revisiones por completo
/** Disable Post Revisions completely */
define('WP_POST_REVISIONS', false);◽️️Limitar las revisiones a un número fijo (p. ej., 3)
/** Limit Post Revisions to 3 per post */
define('WP_POST_REVISIONS', 3);◽️️Ajustar el intervalo de autoguardado
WordPress guarda automáticamente las entradas cada minuto por defecto. Puedes ampliarlo, por ejemplo, de los 60 segundos por defecto a 5 minutos (300 segundos).
/** Increase autosave interval to 5 minutes */
define('AUTOSAVE_INTERVAL', 300);Si usas WP Rocket o Perfmatters, también puedes gestionarlo desde sus pantallas de ajustes. WP Rocket: su opción [Revisions] en la pestaña [Database] elimina las revisiones acumuladas; no tiene un ajuste para limitar su número.

Perfmatters: [Limit Post Revisions] fija cuántas revisiones guardar por entrada y [Autosave Interval], el intervalo de autoguardado.

🔢 FAQ & contenido recomendado
Rendimiento
Desactivar WP-Cron y usar el cron del sistema
Cómo desactivar wp-cron.php, que se ejecuta en cada carga de página, y pasarlo a un cron del servidor.
Configuración
2 formas de quitar la solicitud de credenciales FTP
Dos formas de eliminar la ventana de datos FTP que aparece cada vez que actualizas un plugin.
Error
Critical error: causas y solución
Cómo se encontró y resolvió la causa cuando apareció el mensaje [There has been a critical error].
ℹ️ Aviso de afiliados
El contenido de este sitio incluye enlaces de afiliado. Cuando un visitante compra un producto o servicio a través de uno de ellos, el sitio recibe una comisión del vendedor. El importe que paga el comprador(baja durante las promociones ↓)no aumenta. Los precios, descuentos y existencias publicados corresponden al momento de redacción y pueden variar, así que confírmalos con el vendedor antes de comprar. Los productos se eligen y evalúan con criterios propios, y las comisiones no influyen en el orden ni en el contenido de las reseñas.