Saltar al contenido
Configuración

Archivo wp-config.php de WordPress: qué hace y cómo editarlo

wp-config.php guarda el acceso a tu base de datos, las claves de seguridad y los ajustes del sitio. Mira dónde está, qué hace cada parte y cómo editarlo bien.

Publicada

wp-config.php es el archivo que le indica a WordPress cómo conectarse a su base de datos y cómo funcionar. Normalmente está en la carpeta raíz de tu instalación, junto a wp-admin y wp-content. Puedes añadir o cambiar ajustes sin riesgo encima de la línea “That’s all, stop editing!” (Eso es todo, deja de editar), y debes dejar intactos los dos bloques de código que hay debajo. Haz antes una copia de seguridad, porque un solo error de escritura puede tumbar todo el sitio.

Puntos clave

  • El archivo guarda la contraseña de tu base de datos y tus claves de seguridad, así que trátalo como una contraseña y nunca publiques su contenido en un foro o chat de soporte.
  • Los ajustes personalizados van encima de la línea “stop editing”. La última línea debajo de ella carga WordPress, y un ajuste puesto después llega demasiado tarde.
  • La descarga de WordPress incluye wp-config-sample.php. El wp-config.php real se crea durante la instalación.
  • No cambies $table_prefix en un sitio activo editando solo esa línea. WordPress actuará como si no estuviera instalado.

Dónde encontrar wp-config.php

Conéctate por SFTP o abre el administrador de archivos de tu hosting y ve a la carpeta que contiene wp-admin, wp-includes y wp-content. La documentación de WordPress la llama la raíz de tu directorio de archivos de WordPress.

Si no está ahí, mira una carpeta más arriba. El cargador de WordPress comprueba primero la carpeta de instalación y luego la carpeta superior, y omite esta última si tiene su propio wp-settings.php, porque eso significa que allí hay otra instalación de WordPress.

Si no está en ninguno de los dos sitios, WordPress envía a los visitantes a su pantalla de instalación. Esa pantalla crea el archivo a partir de wp-config-sample.php. Si no puede escribir en la carpeta, te muestra el texto para que lo pegues a mano en un archivo nuevo.

Qué hace cada sección predeterminada

wp-config-sample.php es la plantilla, y tiene estas partes en este orden:

SecciónQué contiene¿Puedes cambiarla?
DB_NAME, DB_USER, DB_PASSWORD, DB_HOSTEl acceso a la base de datos. La plantilla usa localhost como host, y tu proveedor de hosting puede darte los valores reales.Sí, cuando cambien los datos de tu base de datos. Un valor incorrecto provoca el error al establecer una conexión con la base de datos.
DB_CHARSET, DB_COLLATECómo se guarda el texto en la base de datos. Los valores predeterminados son utf8mb4 y un valor vacío.El propio comentario de la plantilla sobre DB_COLLATE dice que no lo cambies si tienes dudas.
AUTH_KEY a NONCE_SALTOcho claves de seguridad y salts usadas para las cookies de inicio de sesión.Sí. Cambiarlas cierra la sesión de todos los usuarios.
$table_prefixEl texto al principio del nombre de cada tabla de la base de datos, wp_ de forma predeterminada.Solo al instalar, a menos que también cambies el nombre de las tablas y actualices las entradas guardadas de la base de datos cuyos nombres usan el prefijo.
WP_DEBUGEl modo de depuración, en false en la plantilla.Sí. La guía sobre la ubicación del registro de depuración muestra cómo enviar los errores a un archivo.
El comentario “custom values” (valores personalizados)Un espacio vacío para tus ajustes, que termina en la línea “stop editing”.Sí, aquí van tus añadidos.
ABSPATH y la línea de wp-settings.phpLa ruta a WordPress y la línea que carga el resto.No. Déjalas como están.

Conseguir claves nuevas lleva un clic: el servicio de claves secretas de WordPress.org te da un juego nuevo cada vez que lo cargas. Sustituye las ocho líneas por el juego nuevo.

Los archivos antiguos pueden no tener el comentario “custom values” y decir “Happy blogging” en lugar de “Happy publishing”. Ambos funcionan, y la regla es la misma: añade tus ajustes encima de esa línea.

Ajustes que se suelen cambiar

Cada uno ocupa una línea. Todos vienen de la documentación de wp-config.php, y los valores predeterminados, de default-constants.php de WordPress.

// Memory for the front end, then for wp-admin
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );

// Keep at most 3 revisions per post (false turns revisions off)
define( 'WP_POST_REVISIONS', 3 );

// Autosave every 180 seconds
define( 'AUTOSAVE_INTERVAL', 180 );

// Empty the trash after 7 days
define( 'EMPTY_TRASH_DAYS', 7 );

// Remove the theme and plugin file editor from wp-admin
define( 'DISALLOW_FILE_EDIT', true );

// Force HTTPS for logins and wp-admin
define( 'FORCE_SSL_ADMIN', true );

// Set the site addresses here
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );

Copia solo las líneas que necesites. Algunas tienen detalles que conviene conocer:

  • Memoria: WordPress usa de forma predeterminada 40M, o 64M en multisitio, y 256M para wp-admin, a menos que PHP ya permita más. Si tu hosting no deja cambiar el límite, WordPress usa el que PHP ya tiene. La guía de memoria agotada explica qué hacer en ese caso.
  • Revisiones: están activadas de forma predeterminada. Pon false para desactivarlas o un número para limitarlas.
  • Autoguardado y papelera: los valores predeterminados son 60 segundos y 30 días. Poner EMPTY_TRASH_DAYS en 0 desactiva la papelera, y la documentación advierte de que WordPress ya no pedirá confirmación cuando alguien haga clic en “Delete Permanently” (Borrar permanentemente).
  • Editor de archivos: la guía de seguridad dice que esto no impedirá que un atacante suba archivos maliciosos, aunque podría detener algunos ataques. DISALLOW_FILE_MODS va más allá y también bloquea la instalación y actualización de plugins y temas.
  • HTTPS: cuando el ajuste “Dirección de WordPress” ya empieza por https, WordPress pone FORCE_SSL_ADMIN en true por sí solo. Esta línea solo cambia algo cuando la dirección no empieza por https.
  • Direcciones del sitio: anulan los valores guardados sin cambiar lo que hay en la base de datos. Incluye la parte https://.

Un ajuste requiere más planificación. define( 'DISABLE_WP_CRON', true ); hace que las visitas a páginas dejen de iniciar tareas programadas, así que configura un cron del servidor para wp-cron.php antes de activarlo, o las entradas programadas y otras tareas temporizadas no se ejecutarán.

Cómo editar wp-config.php de forma segura

  1. Descarga primero una copia. Guárdala en tu propio ordenador. Una copia dejada en el servidor con un nombre como wp-config.php.bak puede leerse en un navegador, porque el servidor ya no la trata como PHP.
  2. Abre el archivo en un editor de texto plano. La guía de edición de WordPress considera aceptables Notepad++, Sublime Text y Visual Studio Code, y desaconseja Google Docs y Microsoft Word porque los procesadores de texto cambian las comillas y pueden añadir código que estropea los archivos.
  3. Busca la línea “stop editing” y pon tus líneas nuevas justo encima. Si el ajuste ya está definido más arriba, cambia esa línea.
  4. Guarda, sube el archivo y carga tu sitio en una ventana privada del navegador, además de una página de wp-admin.
  5. Si algo falla, vuelve a poner tu copia. Eso deshace la edición aunque wp-admin no cargue.

Mover el archivo por encima de la raíz web

La guía de seguridad dice que wp-config.php puede guardarse una carpeta por encima de tu instalación de WordPress, y el código del cargador lo gestiona sin ajustes adicionales. Mueve el archivo y comprueba que el sitio sigue cargando. El traslado tiene dos límites:

  • La carpeta superior no puede contener otra instalación de WordPress. El cargador ignora una carpeta superior que tenga su propio wp-settings.php.
  • Un nivel más arriba solo es privado si WordPress está en la raíz web. Si WordPress está en una subcarpeta como /blog/, un nivel más arriba suele seguir siendo público.

La misma guía dice que algunas personas sostienen que el traslado aporta beneficios mínimos de seguridad y que puede introducir vulnerabilidades graves si se hace sin cuidado. Así que tómalo como algo opcional. Para Apache, la guía también da este bloque para el principio de tu archivo .htaccess, que deniega las peticiones directas al archivo:

<Files "wp-config.php">
Require all denied
</Files>

Nuestra guía de seguridad de .htaccess trata esa regla junto con otras.

Permisos de archivo de wp-config.php

La documentación de WordPress da cifras algo distintas según la situación:

  • La guía de seguridad dice que solo tú y el servidor web deberíais poder leer el archivo, lo que, según ella, en general significa 400 o 440.
  • La guía de permisos de archivos indica 440 o 400 en hosting compartido con suexec, para que otros usuarios del servidor no puedan leerlo. También muestra 600 como ejemplo asegurado.
  • Para los archivos normales de WordPress, esa guía indica 644 o 640.

La cifra que funcione depende del usuario del sistema con el que se ejecute tu servidor web. El servidor web tiene que poder leer el archivo, así que si el sitio deja de cargar tras un cambio, vuelve al valor anterior y pregunta a tu proveedor de hosting cuál se adapta a su configuración.

Errores comunes

  • Pegar un ajuste después de la línea wp-settings.php. Esa línea carga WordPress y fija sus valores predeterminados. Una constante de PHP no puede cambiar durante la ejecución de un script, así que tu línea no tiene efecto.
  • Definir el mismo ajuste dos veces. La primera línea fija el valor y la segunda no puede cambiarlo. El manual de PHP indica que redeclarar una constante está obsoleto desde PHP 8.5, así que también puede generar un mensaje. Busca el nombre en el archivo antes de añadirlo.
  • Poner comillas alrededor de true o false. 'false' es una cadena no vacía, y PHP la trata como true. Escribe false sin comillas. Los tamaños como '256M' sí las necesitan.
  • Comillas tipográficas de un procesador de texto o una página web. PHP necesita comillas rectas, así que las tipográficas causan un error que impide cargar el sitio.
  • Mostrar errores de depuración en un sitio activo. WP_DEBUG_DISPLAY es true de forma predeterminada, así que si activas solo WP_DEBUG, los errores aparecen en la página a la vista de los visitantes. La guía sobre la ubicación del registro de depuración muestra cómo enviarlos a un archivo.
  • Dejar WP_ALLOW_REPAIR activado. La documentación dice que lo actives solo cuando haga falta y lo desactives una vez resuelto el problema.

Preguntas frecuentes

¿Qué es wp-config.php en WordPress? Es el archivo de configuración que WordPress carga al iniciarse. Guarda el acceso a tu base de datos, las claves de seguridad y el prefijo de las tablas, y es donde añades ajustes como WP_DEBUG o WP_MEMORY_LIMIT.

¿Dónde está el archivo wp-config.php? Normalmente en la raíz de tu instalación de WordPress, la carpeta que también contiene wp-admin, wp-includes y wp-content. WordPress también lo acepta una carpeta por encima de la instalación, siempre que esa carpeta no tenga wp-settings.php.

¿Dónde añado código en wp-config.php? Encima de la línea That’s all, stop editing! Happy publishing. (Eso es todo, deja de editar. Feliz publicación.) Los archivos antiguos dicen Happy blogging. La última línea debajo de ella carga WordPress, así que un ajuste puesto después de esa línea llega demasiado tarde.

¿Es seguro editar wp-config.php? Sí, si guardas una copia de seguridad y usas un editor de texto plano. Un solo error de escritura puede impedir que cargue todo el sitio, incluido wp-admin, así que descarga una copia primero. Si el sitio falla después de tu edición, vuelve a poner la copia.

¿Qué pasa si elimino wp-config.php? WordPress ya no encuentra el acceso a la base de datos e inicia su proceso de instalación, con un aviso para crear un archivo de configuración. Tu contenido sigue en la base de datos, así que restaurar la copia o volver a crear el archivo con los mismos datos reconecta el sitio.

¿Qué permisos debe tener wp-config.php? La guía de seguridad de WordPress dice que solo tú y el servidor web deberíais poder leerlo, lo que en general significa 400 o 440. Su guía de permisos de archivos también muestra 600. El servidor web tiene que seguir leyendo el archivo, así que consulta a tu proveedor de hosting si el sitio deja de cargar.

Fuentes


Crea los ajustes que necesitas sin escribirlos a mano, incluidas claves de seguridad nuevas, con el generador gratuito de wp-config.php.

FAQ

Preguntas

¿Qué es wp-config.php en WordPress?

Es el archivo de configuración que WordPress carga al iniciarse. Guarda el acceso a tu base de datos, las claves de seguridad y el prefijo de las tablas, y es donde añades ajustes como WP_DEBUG o WP_MEMORY_LIMIT.

¿Dónde está el archivo wp-config.php?

Normalmente en la raíz de tu instalación de WordPress, la carpeta que también contiene wp-admin, wp-includes y wp-content. WordPress también lo acepta una carpeta por encima de la instalación, siempre que esa carpeta no tenga wp-settings.php.

¿Dónde añado código en wp-config.php?

Encima de la línea That's all, stop editing! Happy publishing. (Eso es todo, deja de editar. Feliz publicación.) Los archivos antiguos dicen Happy blogging. La última línea debajo de ella carga WordPress, así que un ajuste puesto después de esa línea llega demasiado tarde.

¿Es seguro editar wp-config.php?

Sí, si guardas una copia de seguridad y usas un editor de texto plano. Un solo error de escritura puede impedir que cargue todo el sitio, incluido wp-admin, así que descarga una copia primero. Si el sitio falla después de tu edición, vuelve a poner la copia.

¿Qué pasa si elimino wp-config.php?

WordPress ya no encuentra el acceso a la base de datos e inicia su proceso de instalación, con un aviso para crear un archivo de configuración. Tu contenido sigue en la base de datos, así que restaurar la copia o volver a crear el archivo con los mismos datos reconecta el sitio.

¿Qué permisos debe tener wp-config.php?

La guía de seguridad de WordPress dice que solo tú y el servidor web deberíais poder leerlo, lo que en general significa 400 o 440. Su guía de permisos de archivos también muestra 600. El servidor web tiene que seguir leyendo el archivo, así que consulta a tu proveedor de hosting si el sitio deja de cargar.