blog

wordpress

Cómo configurar WordPress sin morir en el intento

En este artículo hablaremos de una parte muy importante de WordPress: el wp-config.php. También veremos algunas opciones ocultas que puede ser interesante revisar.

En la instalación se creará el fichero con parámetros básicos, podemos partir nosotros del wp-config-sample.php que viene incluido si queremos realizar la instalación con todos los parámetros configurados previamente.

En esta ocasión omitiremos los parámetros básicos que vienen en ese fichero, como conexión a base de datos y similar, ya que son bastante explicativos de por sí. Vamos a centrarnos en opciones menos conocidas pero que pueden servir para realizar configuraciones mucho más avanzadas y que pueden solucionar ciertos fallos, sobre todo en alojamientos con pocos recursos y/o mucho tráfico.

Todos estos parámetros es recomendable configurarlos previamente a realizar la instalación, porque si bien algunos podrían funcionar en un sitio en producción, también podrían provocar fallos.

Si buscamos un generador para ir escogiendo las opciones, uno de los mejores es el https://wpconfig.wpsysadmin.com de Javier Casares.

Configurando WordPress paso a paso

Configurar el prefijo de la base de datos de WordPress

Para mejorar la seguridad es recomendable cambiar el prefijo de base de datos, por defecto el prefijo es “wp_” pero lo ideal sería cualquier otra cosa más complicada de adivinar por posibles atacantes. Este parámetro es necesario cambiarlo antes de la instalación de WordPress.

$table_prefix  = 'wp_';

Forzar la URL y la HOME del sitio web

define( 'WP_HOME', 'https://example.com' ); 

define( 'WP_SITEURL', 'https://example.com' );

Mediante estos parámetros podemos forzar la URL y el dominio predeterminado, ya que tendrán prioridad sobre lo configurado en los ajustes del propio WordPress. Esto ayuda a reducir las consultas a base de datos.

Cambiar la localización de WP-CONTENT en WordPress

Podemos personalizar la ubicación de la carpeta WP-CONTENT de WordPress, donde se guardan los temas, plugins y contenidos, normalmente para que esté fuera de la ruta estándar:

define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/blog/wp-content' );

Cambiar la localización de la carpeta de PLUGINS

define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/blog/wp-content/plugins' );

Si detectas problemas de compatibilidad con algún plugin, puedes añadir la ruta:

define( 'PLUGINDIR', dirname(__FILE__) . '/blog/wp-content/plugins' );

Cambiar nombre de la carpeta UPLOADS

define( 'UPLOADS', 'blog/wp-content/media' );

No podemos cambiar la ruta absoluta, siempre va a depender de la instalación, pero podemos cambiar el nombre de la carpeta por temas de imagen.

Desactivar o limitar las revisiones del editor de WordPress

Podemos desactivar totalmente el guardado de revisiones creadas por el editor de WordPress con la siguiente línea en el editor:

define( 'WP_POST_REVISIONS', false );

Con el siguiente parámetro especificamos el número máximo de revisiones, ya que ocupan espacio en la base de datos:

define( 'WP_POST_REVISIONS', 3 );

Configurar el dominio de las cookies

Si utilizamos varios subdominios para servir el contenido estático (css.example.com, js.example.com, img.example.com) podemos indicar el dominio principal para el que se crearán las cookies, dejando los dominios de carga paralela libres de ellas.

define( 'COOKIE_DOMAIN', 'www.example.com' );

Forzar compresión GZIP en WordPress

Podemos activar la compresión GZIP desde el wp-config.php de WordPress utilizando la siguiente línea (previamente debe estar activado en el servidor web):

define( 'ENFORCE_GZIP', true );

Configurar memoria RAM usable por WordPress

WordPress, de forma nativa, sólo utiliza 40 MB de memoria RAM por cada proceso de PHP.

Si queremos aumentar ese límite para evitar errores, pondremos esta línea en el wp-config.php de WordPress para establecer el límite en 128 MB (o cualquier otro límite que necesitemos):

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

Para configurar el máximo de memoria RAM utilizable en el backend de WordPress pondremos esta línea en el wp-config.php:

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

Importante: estos parámetros no harán su trabajo si previamente no tenemos configurados valores similares en el propio PHP.

Cambiar el WP-CRON por el cron del propio sistema

WordPress utiliza AJAX para ejecutar tareas periódicas con el fichero wp-cron.php, el proceso se llama cuando la página recibe visitas, por lo que se ejecutará muchas veces en sitios muy populares (con el consumo de recursos que supondrá) y apenas se ejecutará en sitios sin visitas (quedando muchas tareas retrasadas, como los posts programados).

Para evitar esto, podemos desactivar el cron integrado y usar el del propio sistema:

define( 'DISABLE_WP_CRON', true );

Ahora añadiremos una línea como la siguiente mediante crontab o similar:

wget -q -O /dev/null -t 1 «https://example.com/wp-cron.php?doing_wp_cron» >/dev/null 2>&1

Vaciar papelera cada cierto tiempo

Con la siguiente línea podemos indicarle cada cuanto tiempo debe vaciarse la papelera (por defecto son 30 días):

define( 'EMPTY_TRASH_DAYS', 15 );

Si definimos el valor a 0, se desactivará la funcionalidad de papelera y no podremos recuperar ningún tipo de contenido.

Reparar y optimizar la base de datos MySQL de WordPress

Podemos activar una funcionalidad que sirve para reparar y optimizar la base de datos MySQL de WordPress, lo haremos con la siguiente línea:

define( 'WP_ALLOW_REPAIR', true );

Tras ello podremos acceder a la ruta en que nos mostrará las opciones (cambiando ‘example.com’ por tu propio dominio):

https://example.com/wp-admin/maint/repair.php

Lo que debería salirnos en el navegador web es esto:

wordpress

Importante: es muy recomendable comentar o borrar esa línea tras realizar la reparación, pues la ruta es públicamente accesible.

Desactivar el editor de código de themes y plugins

Por seguridad podemos desactivar el editor integrado ya que, si alguien consigue acceder al backend, no sería posible que insertaran código en temas y/o plugins:

define( 'DISALLOW_FILE_EDIT', true );

Configurar actualizaciones automáticas

define( 'AUTOMATIC_UPDATER_DISABLED', true );

Esta opción desactivará por completo las actualizaciones automáticas.

Deshabilitar las actualizaciones del propio WordPress:

define( 'WP_AUTO_UPDATE_CORE', false );

Habilitar todas las actualizaciones, tanto menores como mayores:

define( 'WP_AUTO_UPDATE_CORE', true );

Habilitar actualizaciones sólo de versiones menores, p.ej. 5.1.x (opción por defecto):

define( 'WP_AUTO_UPDATE_CORE', 'minor' );

Cómo revisar todas las opciones (e incluso cambiarlas)

ajustes wp

 

Finalmente, accediendo a https://url_de_tu_sitio/wp-admin/options.php encontraremos un menú donde podemos ver todas las opciones que utiliza WordPress e incluso podemos cambiar la mayoría de ellas.

No es un menú para andar jugando, como bien indica ya el aviso de la parte superior.