Archivo WP-Config vitaminado: No te conformes con lo predeterminado, optimízalo

configurar wordpress

Como su nombre indica, el archivo wp-config se encarga de contener los detalles de configuración de WordPress. Cuando instalamos un sitio web, este archivo se crea con una configuración básica, pero ¿por qué conformarse con eso? Veamos cómo puedes crear tu elegante archivo wp-config.

En este artículo, me gustaría:

  1. Explicar qué es el archivo wp-config y para qué se utiliza.
  2. Mostrar las diferentes formas de crearlo.
  3. Revelar el aspecto de un archivo wp-config en una instalación limpia de WordPress.
  4. Dé rienda suelta a algunos trucos de configuración para mejorar tanto el rendimiento como la seguridad de su sitio.

¿Qué es el archivo wp-config y para qué sirve?

Bueno, como dije al principio de este artículo, es el archivo donde se guardan los ajustes de WordPress. Puede encontrarlo en la carpeta raíz de su sitio, después de instalar WordPress. Es decir, si lo acabas de descargar, pero aún no lo has instalado, no aparecerá.

¿Cómo se puede crear el archivo wp-config?

A primera vista parece muy fácil, tienes dos opciones: la forma automática (que es como lo hace el 99% de los usuarios, incluido yo) o la forma manual.

La forma automática es crearla a través de la instalación de WordPress. Cuando introduzcas la URL de tu sitio por primera vez, obtendrás la pantalla de configuración de WordPress. Después de rellenar toda la información solicitada, se genera el archivo wp-config.

La otra forma es duplicar el archivo wp-config-sample.php, renombrarlo wp-config.php y editarlo con su configuración.

¿Qué datos de configuración tiene el archivo wp-config.php en una instalación limpia de WordPress?

Parámetros de acceso a la base de datos.
Esta es la primera información que aparece en la pantalla cuando abre su archivo wp-config.

define( 'DB_NAME', 'your-database-name' );
define( 'DB_USER', 'your-database-user' );
define( 'DB_PASSWORD', 'your-database-password' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8' );
define( 'DB_COLLATE', '' );

Como puedes ver, estas constantes se refieren al nombre de la base de datos, el usuario y la contraseña para acceder al servidor donde está instalada, la codificación de caracteres y la agrupación.

Cuando instala WordPress, estos parámetros se rellenan automáticamente, siempre que haya elegido crear el archivo wp-config automáticamente. De lo contrario, tendrá que rellenarlos manualmente.

La información de los tres primeros varía dependiendo de la base de datos de su sitio, a menos que tenga todas las instalaciones de WordPress en la misma base de datos (lo que no recomiendo), mientras que la información de los tres últimos, suele ser común para todas las bases de datos.

Claves de autenticación únicas
En los parámetros de configuración de la base de datos, encontrará las claves únicas de autenticación. Podemos definirlos como contraseñas, con elementos que dificultan su descifrado y, por tanto, hacen más complicado romper la barrera de seguridad de un sitio.

define ('AUTH_KEY', 'tu-frase-aleatoria-cifrada-aquí')
define ('SECURE_AUTH_KEY', 'tu-frase-aleatoria-cifrada-aquí')
define ('LOGGED_IN_KEY', 'tu-frase-aleatoria-encriptada-aquí')
define ('NONCE_KEY', 'tu-frase-aleatoria-cifrada-aquí');
define ('AUTH_SALT', 'tu-frase-aleatoria-cifrada-aquí')
define ('SECURE_AUTH_SALT', 'tu-frase-aleatoria-aquí')
define ('LOGGED_IN_SALT', 'tu-frase-aleatoria-cifrada-aquí')
define ('NONCE_SALT', 'tu-frase-aleatoria-cifrada-aquí');

Si ha elegido configurar manualmente el archivo wp-config, tendrá que generar las claves para insertarlas aquí. Para ello, WordPress pone a tu disposición un generador online para que no tengas que pensar en todos estos caracteres.

Por otro lado, también se recomienda cambiar estas claves de vez en cuando (cada mes, por ejemplo) como forma de protegerlas.

Prefijo de la base de datos
A continuación puede encontrar el prefijo de las tablas de la base de datos.

$table_prefix = 'wp_';

WordPress se compone de 13 tablas básicas, más todas las que puedes crear instalando plugins… y algún otro tema. El prefijo se utiliza para que, en caso de querer utilizar la misma base de datos para varias instalaciones (cosa que ya he dicho que no recomiendo), las tablas no se sobrescriban entre sí.

Por otro lado, cambiar el prefijo por defecto también puede ayudarnos a evitar posibles ataques.

Modo de depuración de WordPress
Este es un parámetro muy útil, sobre todo si te dedicas al desarrollo de plugins o temas para WordPress, porque puede ocultar (o mostrar) errores de funcionamiento y compatibilidad, con otros plugins o con el propio core.

define ('WP_DEBUG', false);

Por defecto, el modo de depuración está desactivado (y también debería estarlo en producción). Pero para probarlo en tu entorno de escritorio local, lo ideal es que lo habilites poniendo la constante a TRUE y limpies tu código de incidencias.

Ruta de instalación de WordPress y el archivo donde se definen las variables y otros archivos utilizados
Aunque esta información también está definida en el archivo wp-config.php, seguirás lo que dice unas líneas más arriba y dejarás de editar el archivo desde ahí. Editar estos archivos e incluso estas líneas, sin conocimientos, puede hacer que te cargues la web (y, si tienes conocimientos, mejor crea tu propio CMS / Framework y no te metas con el núcleo de WordPress).

La información a la que me refiero es la siguiente:

if (! set ('ABSPATH'))
define ('ABSPATH', nombre del directorio (FILE.) '/');
require_once (ABSPATH. 'wp-settings.php');

Bueno, hasta ahora has conseguido ver lo que trae el archivo de serie wp-config, pero no has venido aquí para eso, ¿verdad? Veamos cómo se puede vitaminar el archivo.

Trucos de configuración para mejorar el rendimiento y la seguridad de la web

  • mejorar el archivo wp-config

Evite las actualizaciones automáticas
WordPress, por defecto, se actualiza automáticamente si no lo haces tú mismo. Aunque siempre es necesario actualizar el núcleo, los plugins y los temas, hay veces que esto puede causar conflictos.

Por esta razón, siempre prefiero actualizar manualmente haciendo una copia de seguridad previa, para que en caso de fallo, tengas la opción de volver a un estado anterior. Para desactivar las actualizaciones automáticas de WordPress, puede utilizar la siguiente constante:

define ('AUTOMATIC_UPDATER_DISABLED', true);

Activación y desactivación de la caché de WordPress
Si trabajas en local, quizás habilitar la caché sea un truco a la hora de mostrar los cambios por adelantado y desde luego en producción ayuda mucho. De hecho, favorece la velocidad de la web. Con estas tres constantes, puede habilitar (o deshabilitar) el almacenamiento en caché según sea necesario.

//Activar o caché
define( 'WP_CACHE', true );
define( 'ENABLE_CACHE', true );
//Desactivar o caché
define( 'WP_CACHE', false );
define( 'DISABLE_CACHE', true );

Limitar (o desactivar) los comentarios en WordPress
No sé si te has dado cuenta, pero cada vez que escribes una entrada y la guardas, aparece un mensaje justo encima del botón de publicar que dice «X revisiones». Son copias de la entrada y que se guardan en la base de datos, como un control de versiones.

Ahora piense en el número de veces que puede hacer clic en «Guardar» al escribir una entrada. ¿Ponemos una media de 10? Suponiendo que tienes 100 entradas en tu blog, y considerando que por cada una de ellas has guardado copias 10 veces, entonces tienes 1000 registros en la base de datos. 1000 registros para sólo 100 entradas. Así que tiene más de 900. 900 registros que ocupan un valioso espacio en su base de datos.

¿Qué hacer entonces?

Con esta constante, puedes limitar el número de revisiones creadas al número que especifiques. Entonces, cuando supere ese número, eliminará automáticamente las copias.

define ('WP_POST_REVISIONS', 5);

También puedes decirle que no guarde ninguna, siempre y cuando pongas la constante en FALSE.

define ('WP_POST_REVISIONS', false);

Vaciar la basura automáticamente
Otra cosa que llena la base de datos es el contenido que está en la basura. Al enviar contenidos que ya no interesan a la papelera, sólo los quitas de la vista, pero siguen ocupando espacio.

Seguro que es común olvidarse de vaciar la papelera de reciclaje, pero a estas alturas ya habrás aprendido que para mantener el espacio en tu base de datos, esta es una acción extremadamente necesaria.

Pero tranquilo, si tú también tienes una memoria de pez como yo, hay solución. Añadiendo esta línea en nuestro archivo wp-config, puedes decirle a WordPress que vacíe la papelera automáticamente cada X días (recomiendo poner una semana o así, para que tengas tiempo de reconsiderar si realmente quieres borrar ese contenido o no).

define ('EMPTY_TRASH_DAYS', 7);

Desactivar el editor de código de WordPress
Como habrás visto, WordPress incorpora un editor de código en su wp-admin, desde el que puedes acceder y modificar el código del tema y los plugins instalados. Al principio, aunque esto parece práctico, ya que le ahorra tener que descargar un archivo para editarlo, deja su sitio muy vulnerable. Aconsejo, por tanto, desactivarlo. Para ello, incluya la siguiente línea.

define ('DISALLOW_FILE_EDIT', false);

Evitar la instalación, desinstalación y actualización de plugins
Pero, si además de editar el código, quiere evitar la instalación de nuevos plug-ins y la actualización o desinstalación de los existentes, utilice la constante establecida en TRUE.

En principio, recomiendo esta configuración sólo si te dedicas al mantenimiento de la web y si quieres evitar que los clientes rompan algo. Por lo demás, no impida que los usuarios actualicen sus plug-ins cuando usted quiera.

define ('DISALLOW_FILE_MODS', true);

Por cierto, al añadir esta línea, la anterior no es necesaria.

Establecer el límite de memoria de PHP
WordPress, como cualquier otra aplicación desarrollada con PHP, consume memoria del servidor. Hay ocasiones, por tanto, que dependiendo del proceso, si se alcanza la memoria máxima requerida, el servidor lanzará un error y detendrá la ejecución de la aplicación.

Para evitarlo, aumente el límite de memoria del servidor incluyendo la siguiente constante en su archivo wp-config. Sin embargo, esto sólo se aplicará a WordPress, ya que no se aplica a las demás aplicaciones que pueda tener en su servidor.

define ('WP_MEMORY_LIMIT', '128M');

También podemos establecer un límite máximo de memoria, para no abusar de ella.

define ('WP_MAX_MEMORY_LIMIT', '256M');

Desactivar el CRON de WordPress
Las tareas CRON permiten automatizar procesos del sitio web, como la creación de una copia de seguridad o la publicación de una entrada a una hora determinada. WordPress, por defecto, trae su propio sistema de tareas CRON. Sin embargo, sólo funciona si la web recibe una visita ese día. ¿Qué pasa si no se produce? Pues bien, ese día no se copiará el sitio o no se publicará la entrada.

Para evitar esto, lo que recomiendo es desactivar el sistema CRON de WordPress con esta línea …

define ('DISABLE_WP_CRON', true);

… Y crea una tarea en tu servidor que ejecute el archivo wp-cron de WordPress X veces al día. De esta manera, no sólo evitará que algo se ejecute en su sitio, sino que además no ralentizará su funcionamiento.

Optimizar la base de datos de WordPress
Como he dicho antes, muchos plugins y temas, después de ser desinstalados (o incluso actualizados), dejan residuos en la base de datos, que ocupan un valioso espacio. Para eliminar este desperdicio, recomiendo hacer una optimización de la base de datos cada X tiempo (yo suelo hacerlo una vez al mes).

¿Pero cómo se puede hacer esto? Bueno, muy fácil. En primer lugar, debe añadir esta línea al archivo wp-config.

define ('WP_ALLOW_REPAIR', true);

A continuación, introduzca la siguiente URL (sustituya «seudominio.com» por el dominio de su sitio): http://www.seudominio.com/wp-admin/maint/repair.php

Después de hacer la optimización, ponga la constante en FALSE y en TRUE la próxima vez que quiera hacer otra optimización de la base de datos.

Compactación de archivos
Para terminar, te mostraré tres líneas que ayudan a mejorar la velocidad de tu sitio:

El primero de ellos servirá para compactar los archivos CSS.

define ('COMPRESS_CSS', true);

La segunda, tiene el mismo funcionamiento, pero para los archivos JavaScript en la web.

define ('COMPRESS_SCRIPTS', true);

Y la tercera permitirá la compresión GZIP para la web.

define ('ENFORCE_GZIP', true);

Con estas tres líneas, puede evitar la instalación de un complemento de compresión de archivos.

Bonificación extra
Por último, voy a revelar un truco interesante. Algunas de las constantes que he enseñado son para entornos de desarrollo, otras para entornos de producción.

Sin extendernos demasiado, los propios parámetros de la base de datos pueden variar del servidor local al servidor web, por lo que, dependiendo del entorno en el que se trabaje, es posible que haya que añadir filas, eliminar otras y cambiar valores.

De todos modos, para evitar todo eso, suelo definir una constante y asignarle el entorno en el que estoy ahora, yo los llamé «local» y «site», pero puedes llamarlos como quieras.

define( 'WORKING_IN', 'local' );

Luego, mediante un interruptor, añado las constantes que necesito con sus respectivos valores. Así, con unos pocos cambios en el código, puedo configurar el entorno que necesito.

switch( WORKING_IN )
{
case 'local':
//escriba aquí la configuración local
break;
case 'sitio web':
//escriba aquí la configuración del producto
break;
}

Eso es todo, espero haberte ayudado a ti o a tu empresa

Ah! Si necesitas un Alojamiento Web y Tiendas Virtuales cuenta con mis servidores, todos están optimizados para wordpress y cuentan con mi soporte técnico para la optimización de wp-config.php

Sobre Hugo Calixto

Hugo Calixto¡Hola! Soy Hugo Calixto, Programador WEB y Profesional SEO desde 2017.

Qué hago: Desarrollo sitios personalizados (con o sin Wordpress), administro servidores y soy especialista en SEO (optimización de sitios para motores de búsqueda).

Y lo que más me gusta de mi trabajo es: "Ayudar a la gente" y "Probar de todo" y "usar lo que aprendo para poder hacer cosas nuevas".

¡Oh! Si necesitas ayuda, llama a Hugo Calixto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

*