Configuración wp-config en WordPress

wp-admin

En este artículo vamos a hablar de una parte muy importante de WordPress, el wp-config.php. Este archivo nos permite realizar la configuración básica de cualquier WordPress, ya que es donde se encuentran las principales opciones de “bajo nivel” que nos permiten tener el CMS funcionando.

El archivo wp-config.php es un archivo PHP, pero tiene poco código que se está ejecutando, aunque en su lugar, tiene parámetros y variables que son los que definen el correcto funcionamiento de la instalación de WordPress.

En el wp-config.php podemos configurar desde la contraseña de conexión a la DB MySQL hasta la memoria RAM utilizable por cada proceso PHP ejecutado por WordPress en el servidor web.

Podemos encontrar el wp-config.php de WordPress en la raíz del sitio, es decir, en el mismo sitio donde encontraremos las carpetas WP-CONTENT y WP-INCLUDES.

Podemos editar el archivo wp-config.php de WordPress con cualquier editor de texto, ya que es un archivo PHP normal.

Índice de contenidos

Este es el esquema con cada uno de los apartados que vamos a mostrar en este artículo:

  • Plugins y servicios para editar el wp-config.php con interfaz
    • WP Config File Editor para WordPress
    • Servicio online GenerateWP
    • Servicio online WP-CONFIG.PRO
  • Archivo wp-config.php predeterminado de WordPress
    • Configuración de MySQL en WordPress
    • SALT o claves de autentificación
    • Configurar el prefijo de la base de datos de WordPress
    • Activar el modo DEBUG de WordPress
  • Parámetros avanzados del wp-config.php
    • Forzar la URL y la HOME del sitio web
    • Cambiar la localización de WP-CONTENT en WordPress
    • Cambiar la localización de la carpeta de PLUGINS
    • Cambiar la localización de la carpeta de THEMES
    • Cambiar la localización de la carpeta UPLOADS
    • Modificar el tiempo de autoguardado del editor de WordPress
    • Desactivar o limitar las revisiones del editor de WordPress
    • Configurar el dominio usado para la cookie (Cookie Domain)
    • Activar el modo multisitio en WordPress (WordPress Multisite)
    • Configurar y personalizar el modo DEBUG en WordPress
    • Concatenar scripts Javascript en WordPress con el wp-config
    • Configurar memoria RAM utilizable por WordPress
    • Permitir CACHE con advanced-cache.php
    • Configurar permisos de archivos y carpetas con CHMOD
    • Desactivar el WP-CRON de WordPress y activar CDRON
    • Vaciar papeleras cada cierto tiempo
    • Reparar y optimizar la base de datos MySQL de WordPress
    • Desactivar el editor de código de themes y plugins
    • Desactivar la instalación y actualización de themes y plugins
    • Forzar HTTPS en WP-ADMIN de WordPress
    • Desactivar actualizaciones automáticas del core de WordPress
    • Sobreescribir imágenes después de editarlas en WordPress
    • Configuración de acceso a FTP para conexiones de WordPress
    • Bloquear el acceso desde otros dominios

Plugins y servicios para editar el wp-config.php con interfaz

Existen plugins que nos permitenmodificar ciertos parámetros del wp-config.php de WordPress directamente desde el backend de WordPress.

La mayoría de plugins de este tipo tienen un problema: las opciones o parámetros que se pueden configurar están bastante limitados.

Archivo wp-config.php predeterminado de WordPress

El archivo wp-config.php predeterminado de cualquier WordPress recién instalado tiene ciertos parámetros, pero podemos añadir más parámetros y opciones de configuración que vamos a explicar en este artículo. Además, algunos plugins al instalarlos añaden ciertos parámetros al archivo wp-config.php de WordPress.

El wp-config.php predeterminado de WordPress es este:

<?php

/** 

 * Configuración básica de WordPress.

 *

 * Este archivo contiene las siguientes configuraciones: ajustes de MySQL,
 prefijo de tablas,

 * claves secretas, idioma de WordPress y ABSPATH. Para obtener más
 información,

 * visita la página del Codex{@link
 http://codex.wordpress.org/Editing_wp-config.php Editing

 * wp-config.php} . Los ajustes de MySQL te los proporcionará tu proveedor
 de alojamiento web.

 *

 * This file is used by the wp-config.php creation script during the

 * installation. You don't have to use the web site, you can just copy this
 file

 * to "wp-config.php" and fill in the values.

 *

 * @package WordPress

 */


// ** Ajustes de MySQL. Solicita estos datos a tu proveedor de alojamiento
 web. ** //

/** El nombre de tu base de datos de WordPress */

define('DB_NAME', 'nombredetubasededatos');


/** Tu nombre de usuario de MySQL */

define('DB_USER', 'nombredeusuario');


/** Tu contraseña de MySQL */

define('DB_PASSWORD', 'contraseña');


/** Host de MySQL (es muy probable que no necesites cambiarlo) */

define('DB_HOST', 'localhost');


/** Codificación de caracteres para la base de datos. */

define('DB_CHARSET', 'utf8');


/** Cotejamiento de la base de datos. No lo modifiques si tienes dudas. */

define('DB_COLLATE', '');


/**#@+

 * Claves únicas de autentificación.

 *

 * Define cada clave secreta con una frase aleatoria distinta.

 * Puedes generarlas usando el
 {@link https://api.wordpress.org/secret-key/1.1/salt/
 servicio de claves secretas de WordPress}

 * Puedes cambiar las claves en cualquier momento para invalidar
 todas las cookies existentes. Esto forzará a todos los usuarios
 a volver a hacer login.

 *

 * @since 2.6.0

 */

define('AUTH_KEY', 'pon aquí tu frase aleatoria'); 
// Cambia esto por tu frase aleatoria.

define('SECURE_AUTH_KEY', 'pon aquí tu frase aleatoria'); 
// Cambia esto por tu frase aleatoria.

define('LOGGED_IN_KEY', 'pon aquí tu frase aleatoria'); 
// Cambia esto por tu frase aleatoria.

define('NONCE_KEY', 'pon aquí tu frase aleatoria'); 
// Cambia esto por tu frase aleatoria.

define('AUTH_SALT', 'pon aquí tu frase aleatoria'); 
// Cambia esto por tu frase aleatoria.

define('SECURE_AUTH_SALT', 'pon aquí tu frase aleatoria'); 
// Cambia esto por tu frase aleatoria.

define('LOGGED_IN_SALT', 'pon aquí tu frase aleatoria'); 
// Cambia esto por tu frase aleatoria.

define('NONCE_SALT', 'pon aquí tu frase aleatoria'); 
// Cambia esto por tu frase aleatoria.


/**#@-*/


/**

 * Prefijo de la base de datos de WordPress.

 *

 * Cambia el prefijo si deseas instalar multiples blogs 
en una sola base de datos.

 * Emplea solo números, letras y guión bajo.

 */

$table_prefix  = 'wp_';


/**

 * Para desarrolladores: modo debug de WordPress.

 *

 * Cambia esto a true para activar la muestra de avisos
 durante el desarrollo.

 * Se recomienda encarecidamente a los desarrolladores
 de temas y plugins que usen WP_DEBUG

 * en sus entornos de desarrollo.

 */

define('WP_DEBUG', false);



/* ¡Eso es todo, deja de editar! Feliz blogging */



/** WordPress 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');

Comencemos a explicar estos parámetros de configuración uno por uno, y las opciones de parametrización que tienen, además de qué tipo de efecto tienen en WordPress.

Configuración de MySQL en WordPress

En el archivo wp-config.php se guardan los 5 parámetros principales que permiten a WordPress conectarse y trabajar con la base de datos MySQL.

define('DB_NAME', 'nombredetubasededatos');
define('DB_USER', 'nombredeusuario');
define('DB_PASSWORD', 'contraseña');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

Explicamos cada uno de los apartados:

  • DB_NAME: permite establecer el nombre de la base de datos.
  • DB_USER: permite establecer el usuario de conexión a la base de datos.
  • DB_PASSWORD: permite establecer la contraseña de conexión a la base de datos.
  • DB_HOST: permite establecer el host o servidor MySQL donde está la DB.
  • DB_CHARSET: permite establecer la codificación de caracteres, en España suele ser UTF8.

Adicionalmente tenemos el parámetro DB_COLLATE, pero para webs en España si en DB_CHARSET configuramos UTF8 no deberíamos tener problemas en dejarlo en blanco.

Todos estos parámetros de conexión a la base de datos quedan configurados automáticamente cuando hemos instalado nuestro WordPress.

SALT o claves de autentificación

Las claves secretas son claves aleatorias, las cuales son usadas para proteger las sesiones y cookies en WordPress.

Estas claves no son obligatorias, pero sí que ayudan bastante con la seguridad de WordPress. Se incluyeron en la versión 2 de WordPress, y son claves que debemos cambiar si nos hackean.

define('AUTH_KEY', 'pon aquí tu frase aleatoria');
 // Cambia esto por tu frase aleatoria.

define('SECURE_AUTH_KEY', 'pon aquí tu frase aleatoria'); 
// Cambia esto por tu frase aleatoria.

define('LOGGED_IN_KEY', 'pon aquí tu frase aleatoria'); 
// Cambia esto por tu frase aleatoria.

define('NONCE_KEY', 'pon aquí tu frase aleatoria'); 
// Cambia esto por tu frase aleatoria.

define('AUTH_SALT', 'pon aquí tu frase aleatoria'); 
// Cambia esto por tu frase aleatoria.

define('SECURE_AUTH_SALT', 'pon aquí tu frase aleatoria');
 // Cambia esto por tu frase aleatoria.

define('LOGGED_IN_SALT', 'pon aquí tu frase aleatoria');
 // Cambia esto por tu frase aleatoria.

define('NONCE_SALT', 'pon aquí tu frase aleatoria');
 // Cambia esto por tu frase aleatoria.

Estas claves se autogeneran cuando instalamos WordPress, tan sólo tenemos que tocarlas de nuevo introduciendo nuestras claves aleatorias en caso de una brecha de seguridad importante.

Si quieres generar las SALT o claves de autentificación secretas puedes utilizar el siguiente generador oficial: https://api.wordpress.org/secret-key/1.1/salt/ (si lo recargas, vas a ver que las claves generadas son diferentes).

Configurar el prefijo de la base de datos de WordPress

Para mejorar la seguridad de un sitio web WordPress, es necesario configurar un prefijo de tabla diferente en la DB de WordPress.

De forma predeterminada, el prefijo es “wp_” y lo ideal es poner cualquier otro prefijo.

$table_prefix  = 'wp_';

En muy pocas ocasiones se puede cambiar el prefijo de la base de datos desde aquí, ya que si lo hacemos directamente en un WordPress que ya está instalado, nos fallará todo.

Activar el modo DEBUG en WordPress

La última opción por defecto que vamos a comentar es el parámetro de activación del modo debug para encontrar errores.

define('WP_DEBUG', false);

El modo debug permite a los administradores del sitio web ver los errores con el fin de poder repararlos. Para poder activar dicho modo, debemos poner, en vez de false, la opción true en el parámetro WP_DEBUG

Parámetros avanzados del wp-config.php

Se pueden utilizar muchos más parámetros en el wp-config.php de nuestro WordPress, excluyendo los propios plugins.

Podemos utilizar parámetros de distintos tipos, tanto para mejorar el rendimiento como para mejorar la seguridad de WordPress.

Forzar la URL y la HOME del sitio web

Mediante el wp-config.php de WordPress podemos forzar la URL y el dominio predeterminado de WordPress, ya que lo que especificamos en este archivo se sobrepone sobre la configuración de la URL y el dominio del sitio que hay en la base de datos de WordPress.

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

Si nuestro WordPress está en una subcarpeta, lo tenemos que configurar de la siguiente manera:

define( 'WP_HOME', 'http://example.com/blog' );
define( 'WP_SITEURL', 'http://example.com/blog' );

Estos parámetros tienen prioridad frente a los mismos parámetros configurados en las opciones de la base de datos de WordPress.

Si especificamos la URL del sitio y la HOME del sitio en el wp-config.php, también se bloqueará la configuración de estas opciones en los ajustes del backend de WordPress.

Normalmente se utiliza esta opción cuando cambiamos el dominio de un sitio web. En condiciones normales no se suele cambiar este parámetro.

También se utilizan estas opciones para cambiar de HTTP a HTTPS, ya que las URL especificadas deben llevar el protocolo exacto que vamos a utilizar (HTTP o HTTPS).

Cambiar la localización de WP-CONTENT en WordPress

Podemos personalizar la ubicación de la carpeta WP-CONTENT de WordPress, donde se guardan todos los elementos, complementos y contenidos de WordPress (excepto los que se guardan en la base de datos).

Con esta línea de código podemos especificar dónde se va a guardar el contenido de WP-CONTENT, ya que también podemos cambiar el nombre de la carpeta.

Podemos especificar la ruta desde el punto de vista del directorio local:

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

O de la URL del sitio web:

define( 'WP_CONTENT_URL', 'http://example/blog/wp-content' );

Lo recomendable es hacerlo como en la primera opción, es decir, según el punto de vista del directorio local.

Lo ideal es hacer esta configuración antes de empezar a introducir contenido en WordPress, ya que después puede ser más lío. Hay muchos plugins que guardan contenido e información en carpetas dentro de WP-CONTENT.

Cambiar la localización de la carpeta de PLUGINS

Al igual que en el caso del WP-CONTENT, podemos personalizar la localización y el nombre de la carpeta PLUGINS que por defecto se encuentra dentro de WP-CONTENT.

Podemos especificar la ruta de la carpeta plugins con esta línea en el wp-config.php:

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

También podemos hacerlo con esta línea especificando la URL:

define( 'WP_PLUGIN_URL', 'http://example/blog/wp-content/plugins' );

En algunos casos, cambiar la ruta de la carpeta PLUGINS de WordPress puede ayudarnos en temas relacionados con la seguridad web.

Cambiar la localización de la carpeta de THEMES

Igual que en los casos anteriores, podemos personalizar la localización y el nombre de la carpeta THEMES que por defecto se encuentra dentro de WP-CONTENT.

Podemos especificar también la localización de la carpeta THEMES donde se guardan los temas o plantillas de WordPress. Lo podemos hacer con esta línea de código en el wp-config.php.

$theme_root = WP_CONTENT_DIR . '/themes'

Como ocurre con los casos anteriores, la carpeta PLUGINS, esta modificación se suele hacer por temas de seguridad en WordPress.

Cambiar la localización de la carpeta UPLOADS

 

Como en los casos anteriores, podemos personalizar la localización y el nombre de la carpeta UPLOADS la cual se encuentra por defecto dentro de la carpeta WP-CONTENT, y es en la que se guardan todas las imágenes, PDFs y cualquier otro tipo de archivo que hayamos subido a nuestro sitio desde la galería multimedia o desde cualquier formularioa del front-end.

La línea con la que debemos trabajar es la siguiente.

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

Debemos añadir esta línea de código justo antes de esta otra, que viene siendo el final del archivo wp-config.php:

require_once(ABSPATH . 'wp-settings.php');

Este cambio también suele realizarse por temas de seguridad, aunque en muchos casos también se hace por razones de personalización y branding en la instalación.

Modificar el tiempo de autoguardado del editor de WordPress

De forma nativa, el editor de WordPress realiza un autoguardado del editor abierto cada 60 segundos. Esto nos ayuda cuando se nos “cierra” el navegador web o si ocurre cualquier problema, para que no perdamos el contenido que tenemos sin guardar.

El problema es que, en instalaciones WordPress alojadas en hostings y servidores con pocos recursos, podemos llegar a tener problemas con los guardados continuos, sobretodo en contenidos muy largos y sobrecargados.

Se puede personalizar el periodo de tiempo para realizar autoguardados en el editor de WordPress con esta línea en el wp-config.php de WordPress.

define( 'AUTOSAVE_INTERVAL', 300);

En el parámetro anterior debemos especificar los segundos entre autoguardados.

Esta funcionalidad de WordPress utiliza código AJAX para realizar la tarea, por lo que se hace uso intensivo del API Heartbeat de WordPress que tantos problemas causa en algunos casos.

Debemos tener en cuenta que los autoguardados realmente son revisiones y que estas revisiones se guardan en la base de datos ocupando espacio y haciéndola más grande y lenta.

Desactivar o limitar las revisiones del editor de WordPress

También podemos desactivar o limitar las revisiones que se crean en el editor de WordPress.

Podemos desactivar por completo el guardado de revisiones creadas por el editor de WordPress mediante la siguiente línea en el editor.

define( 'WP_POST_REVISIONS', false )

Y también podemos limitar el número de revisiones que se van a crear, especificando el límite con la siguiente línea de código.

define( 'WP_POST_REVISIONS', 3 )

Como hemos comentado, el problema de las revisiones es que guardan gran cantidad de datos en nuestra base de datos, por lo que con el tiempo se torna cada vez más lenta.

Configurar el dominio usado para la cookie (Cookie Domain)

Normalmente, se recomienda utilizar uno o varios subdominios libres de cookies para servir contenido estático de forma optimizada, tal y como hacen la mayoría de servicios CDN.

Cuando usamos domain sharding o carga paralela, puede interesarnos definir cuál es el dominio principal desde el que se cargan las cookies del sitio web.

Esto podemos hacerlo con la siguiente línea de código en el wp-config.php de WordPress:

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

Volvemos a hacer incapié en que esto solo es necesario hacerlo cuando configuramos carga paralela o un dominio mediante domain sharding de subdominios.

Activar el modo multisitio en WordPress (WordPress Multisite)

WordPress Multisitio es una configuración de WordPress que nos permite separar varias subinstalaciones casi independientes de WordPress utilizando una única instalación de WordPress con una sola base de datos.

La activación inicial de WordPress Multisite se realiza desde el wp-config.php de la instalación de WordPress, con la siguiente línea de código:

define( 'WP_ALLOW_MULTISITE', true );

Después de hacer esto, tendremos que reajustar algunas cosas desde el panel de administración de WordPress con el fin de configurar nuestra nueva instalación de WordPress Multisitio.

Configurar y personalizar el modo DEBUG en WordPress

El modo DEBUG para desarrolladores hace que WordPress nos muestre errores de distintas formas.

Podemos activar y desactivar el modo DEBUG en WordPress utilizando estas líneas de código en el wp-config.php de WordPress.

define( 'WP_DEBUG', true );
define( 'WP_DEBUG', false );

Si quieres hacer DEBUG de los scripts JavaScript y de las hojas de estilo CSS, debes añadir esta línea al wp-config.php con el modo DEBUG activado.

define( 'SCRIPT_DEBUG', true );

Si quieres guardar los errores que se muestran en el modo DEBUG en un archivo LOG TXT, puedes añadir la siguiente línea al wp-config.php de WordPress con el modo debug activado:

define( 'WP_DEBUG_LOG', true );

Y si quieres ver en pantalla todos los errores mostrados por el modo DEBUG, puedes usar este parámetro en el wp-config.php de WordPress con el modo DEBUG activado:

define( 'WP_DEBUG_DISPLAY', true )

Así es cómo funcionan estos parámetros del modo DEBUG en un entorno real de errores en WordPress. Si tenemos un problema y queremos que queden registrados todos los errores, simplemente debemos poner lo siguiente en el wp-config.php. Todo ésto se resume en las siguientes líneas de código.

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Con las líneas anteriores, los errores no se mostrarán, pero quedarán registrados igualmente en un archivo TXT.

Concatenar scripts JavaScript en WordPress en el backend

WordPress puede concatenar en uno solo todos los archivos Javascript utilizados en el backend o panel de administración de WordPress. De esta forma, podemos llegar a conseguir un panel de administración mucho más rápido para los administradores y editores.

Podemos activar y desactivar la concatenación de JavaScript en el backend de WordPress con la siguiente línea en el wp-config.php de WordPress.

define( 'CONCATENATE_SCRIPTS', true );

Esto no afectará para nada al front-end de WordPress, es decir, no se combinarán los JavaScript en el front-end del sitio web, solo en el backend o panel de administración de WordPress.

Comprimir CSS en WordPress con wp-config.php

Mediante wp-config.php podemos activar una constante para comprimir el CSS del sitio web o, al menos, para intentarlo, no es fiable 100%.

Debemos utilizar la siguiente línea de código.

define( 'COMPRESS_CSS', true );

Esta variable no sustituye la minificacion de hojas de estilo CSS y la compresión GZIP o Brotli realizada por el servidor web

Comprimir scripts JavaScript en WordPress con el wp-config.php

Con el wp-config.php de WordPress podemos activar una constante para comprimir el JavaScript del sitio web, en teoría debe funcionar aunque no es 10% fiable.

La línea de código que debemos utilizar es la siguiente:

define( 'COMPRESS_SCRIPTS', true );

Volvemos a recalcar, como en el caso del CSS, esta variable no sustituye la minificacion y la carga asíncrona de JavaScript realizadas con otras técnicas WPO.

Forzar compresión GZIP en WordPress con el wp-config.php

Si la compresión GZIP esta activada en el servidor web, podemos activar la compresión GZIP desde el wp-config.php de WordPress utilizando la siguiente línea:

define( 'ENFORCE_GZIP', true )

Aunque hace relativamente poco salió un formato de compresión web más potente que GZIP llamado BrotliGZIP sigue siendo el formato de compresión web más utilizado. Por lo tanto, es el que debemos utilizar y activar por el momento.

Configurar memoria RAM utilizable por WordPress

WordPress tiene un problema: de forma nativa solo es capaz de utilizar 40 MB de memoria RAM por cada proceso de PHP ejecutado.

Esto actualmente es un problema importante, dado que plugins potentes como WooCommerce o LearnDash utilizan más de esta memoria RAM y en la configuración inicial de WooCommerce ya se recomienda ampliar la memoria utilizable.

Si el límite de RAM o memoria utilizada por PHP es alto en el intérprete PHP, debemos configurar la memoria RAM utilizable en el wp-config.php de WordPress

Para configurar el límite de memoria RAM utilizable por cada proceso PHP que nosotros queramos, vamos a poner esta línea en el wp-config.php de WordPress para establecer el límite en 256 MB.

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

Y esta otra línea para establecer el límite de memoria en 512MB:

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

Por otro lado, para configurar el máximo de memoria RAM utilizable en el backend de WordPress debemos poner esta línea en el wp-config.php.

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

Para que estas variables funcionen correctamente, debemos tener primero establecidos los límites de memoria en la configuración del intérprete PHP donde se ejecuta el sitio web, es decir, en el servidor.

Permitir CACHE con advanced-cache.php

La mayoría de plugins de cache para WordPress utilizan el archivo wp-config.php junto con el archivo advanced-cache.php para gestionar la cache del sitio web de forma eficiente.

Los plugins de cache para WordPress más conocidos, como por ejemplo WP Rocket o W3 Total Cache, utilizan el archivo advanced-cache.php. Por lo tanto, para que funcionen debe existir la siguiente línea en el archivo wp-config.php de WordPress.

define( 'WP_CACHE', true );

Cuando instalamos y activamos un plugin de cache que requiere esta configuración para funcionar, esta línea de código se inserta automáticamente en el wp-config.php de nuestro WordPress.

Configurar permisos de archivos y carpetas CHMOD

Una buena configuración de los permisos CHMOD de Linux es una excelente opción para tener una buena seguridad en nuestro sitio web (por no comentar que es la base de cualquier seguridad).

En el wp-config.php de WordPress podemos especificar los permisos que WordPress asignará a los archivos y carpetas de su instalación.

Los permisos recomendados son CHMOD 755 para las carpetas y CHMOD 644 para los archivos. Podemos sobreescribirlos con estas líneas en el wp-config.php de WordPress:

define( 'FS_CHMOD_DIR', ( 0755 & ~ umask() ) );
define( 'FS_CHMOD_FILE', ( 0644 & ~ umask() ) );

Esto también podemos configurarlo desde un cliente FTP como Filezilla o con cualquier otra herramienta que nos permita acceder a los archivos y carpetas. Sin embargo, no será tan dinámico y automático como con el archivo wp-config.php de WordPress.

Desactivar el WP-CRON de WordPress y activar el CRON

El WP-CRON en algunas ocasiones puede ser un problema, ya que a veces causa problemas relacionados con el rendimiento web.

Cuando tenemos problemas con el WP-CRON de WordPress, podemos pasar a utilizar el CRON de Linux y aliviar así la carga de PHP.

Recordar que en WordPress es muy necesario el WP-CRON para que se ejecuten algunas tareas importantes con AJAX, como el autoguardado o la ejecución de tareas programadas de algunos plugins, ya que WP-CRON puede programar tareas de cualquier plugin.

Para desactivar el WP-CRON de WordPress, se puede hacer desde el wp-config.php de WordPress con la siguiente línea de código.

define( 'DISABLE_WP_CRON', true );

Y después de desactivar el WP-CRON de WordPress, podemos dar de alta en el CRON de Linux una tarea que se ejecute cada 5 minutos y que ejecute la siguiente ruta en la instalación de WordPress.

wget -q -O /dev/null -t 1 "http://tusitioweb.es/wp-cron.php?doing_wp_cron" >/dev/null 2>&1

En el caso de algunas instalaciones WordPress muy complejas, aliviar las tareas programadas con el CRON de Linux como alternativa a WP-CRON puede ayudar bastante.

Vaciar papeleras cada cierto tiempo

Junto con las revisiones, los elementos de la papelera van dejando resíduos en la base de datos, y puede ser necesario vaciar las papeleras de WordPress cada cierto tiempo.

Si realmente no queremos utilizar las papeleras de WordPress, por el motivo que sea, podemos desactivar la papelera con la siguiente línea en nuestro archivo wp-config.php

define( 'EMPTY_TRASH_DAYS', 0 );

Si lo que queremos es vaciar la papelera cuando un elemento haya pasado X días en ella, debemos especificarlo con una línea como esta con la cantidad de días especificada en el wp-config.php de WordPress:

define( 'EMPTY_TRASH_DAYS', 30 )

Ojo a la configuración de la papelera, ya que una vez eliminemos un elemento no podremos recuperar de ninguna manera, salvo que tengamos una copia de seguridad de la web completa.

Reparar y optimizar la base de datos MySQL de WordPress

Muy poca gente sabe que WordPress lleva integrado un sistema para reparar y optimizar su propia base de datos, pero que este sistema está oculto y casi nunca se utiliza.

Por otro lado, este sistema es bastante efectivo y suele funcionar cuando la DB de WordPress está corrupta.

Para activar este sistema que sirve para reparar y optimizar la DB MySQL de WordPress, debemos añadir esta línea al wp-config.php de WordPress.

define( 'WP_ALLOW_REPAIR', true );

Y después podremos acceder al sistema con el navegador, entrando al dominio de nuestra web, siguiendo la ruta siguiente.

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

Aunque con este sistema se consigue dejar la base de datos limpia casi completamente, si está demasiado corrupta no será suficiente.

Desactivar el editor de código de themes y plugins

Esta medida se aplica normalmente por seguridad. Esto se debe a que, teóricamente, si alguien consigue entrar al backend de nuestro WordPress y no puede acceder al editor de código de themes y plugins, tampoco podrá insertar código que pueda ejecutarse.

El código que tenemos que poner en el wp-config.php de WordPress para desactivar el editor de código es el siguiente.

define( 'DISALLOW_FILE_EDIT', true );

Si queremos volver a activar el editor de código, lo único que tenemos que hacer es eliminar esta línea o establecer la constante como false, y debemos hacerlo siempre que queramos usarlo. Esto no afecta al editor de contenido de WordPress, únicamente al editor de código del personalizador.

Desactivar la instalación y actualización de themes y plugins

Esto también se utiliza como medida de seguridad para WordPress, ya que desactivaremos la posibilidad de modificar themes y plugins en WordPress (ni instalar, ni actualizar, ni desinstalar). Todo lo que debemos hacer es añadir esta línea al wp-config.php de nuestro WordPress.

define( 'DISALLOW_FILE_MODS', true )

Forzar HTTPS en el WP-ADMIN de WordPress

Actualmente, los certificados SSL son más comunes y la mayoría de sitios web ya tendrían que estar funcionando con HTTPS para ser bien vistos por Google.

Ahora mismo esta medida no tiene sentido, ya que con una línea en el wp-config.php de WordPress y siempre y cuando tengamos SSL en nuestro dominio, podemos forzar a que todos los que entren al WP-ADMIN de WordPress lo hagan a través del SSL redireccionándolos a HTTPS.

define( 'FORCE_SSL_ADMIN', true );

Desactivar actualizaciones automáticas

Desde hace ya algunas versiones, WordPress puede actualizarse automáticamente en algunas ocasiones, sobretodo versiones menores y no solo del núcleo de WordPress, sino también: pluginsthemes y traducciones.

Por el motivo que sea, queremos que nuestro WordPress (y sus componentes) no se actualicen. Mediante la siguiente línea podemos hacer ésto.

define( 'AUTOMATIC_UPDATER_DISABLED', true );

Si lo que queremos es activar la auto actualización podemos hacerlo con esta línea:

define( 'AUTOMATIC_UPDATER_DISABLED', false );

Una razón para controlar las actualizaciones puede ser comprobar que todo está OK antes de actualizar, aunque normalmente solo se actualizan versiones menores con actualizaciones automáticas.

Lo más común es que las actualizaciones automáticas de este tipo solo apliquen al núcleo de WordPress y que se hagan de forma automática en background, siempre dentro de las versiones menores.

Configurar actualizaciones automáticas del core (núcleo)

No sólo tenemos la opción de desactivar las actualizaciones automáticas del núcleo de WordPress, incluso podemos configurar algo su comportamiento.

Si queremos desactivar por completo las actualizaciones del core de WordPress de forma automática, lo podemos especificar con esta línea en el wp-config.php de WordPress.

define( 'WP_AUTO_UPDATE_CORE', true );

Si queremos provocar el efecto contrario, es decir, activar las actualizaciones, utiilizaremos este código.

define( 'WP_AUTO_UPDATE_CORE', false );

Si solo queremos que se autoactualice WordPress en versiones menores, podemos también especificarlo con esta línea en el wp-config.php.

define( 'WP_AUTO_UPDATE_CORE', 'minor' );

Sobrescribir imágenes después de editarlas en WordPress

Mucha gente no sabe que WordPress tiene un editor de imágenes integrado y que podemos utilizarlo desde la galería multimedia o al subir contenido a la galería de WordPress.

Con este editor podemos realizar algunas modificaciones en imágenes. Sin embargo, cuando las realizamos las imágenes son guardadas siempre como una imagen nueva con un nombre nuevo. Esto puede dar lugar a consumir más espacio de almacenamiento de forma innecesaria con todo lo que eso implica.

Con esta línea en el wp-config.php de WordPress, podemos hacer que se sobreescriban las imágenes al editarlas con el editor de WordPress.

define( 'IMAGE_EDIT_OVERWRITE', true );

Esta opción no afecta a los plugins optimizadores de imágenes que se utilizan para la optimización de las imágenes al subirlas al sitio.

Configuración de acceso a FTP para conexiones de WordPress

En algunos proveedores de hosting puedes encontrarte con problemas a la hora de subir plugins o themes al WordPress. Esto ocurre por la configuración del servidor o los permisos.

Nos daremos cuenta de que tenemos este problema cuando nos pida en el backend de WordPress los datos de acceso a FTP para subir cualquier cosa.

En algunos casos, podemos solucionar este problema especificando los datos en el wp-config.php de nuestro WordPress.

Veamos como lo podemos hacer. Estas son las líneas de código que debemos incluir a nuestro archivo wp-config.php.

define('FS_METHOD', 'ftpext');
define('FTP_BASE', '/var/www/vhosts/loquesea/ejemplo/');
define('FTP_USER', 'username');
define('FTP_PASS', 'password');
define('FTP_HOST', 'host');
define('FTP_SSL', false);

Normalmente no es necesario declarar todo estos datos, basta con especificar los datos que utilizaríamos en la conexión con nuestro cliente FTP: servidor, nombre, contraseña y puerto (si no es el predeterminado).

Bloquear el acceso desde otros dominios

Existen casos en los cuales, mediante un ALIAS u otra técnica, el contenido de nuestro sitio web puede ser cargado desde otro dominio diferente al nuestro.

Con una línea del wp-config.php de WordPress podemos evitar esto. Incluso podemos añadir exclusiones con otra constante.

La línea en cuestión que debemos añadir al wp-config.php para bloquear el acceso a dominios que no son el principal es la siguiente.

define( 'WP_HTTP_BLOCK_EXTERNAL', true );

Y si quisiéramos añadir algún dominio en exclusión para permitirle acceder a nuestro sitio web, tan sólo tendríamos que escribir la siguiente línea en nuestro archivo.

define( 'WP_ACCESSIBLE_HOSTS', '*.ejemplodominio.com, ejemplodosdominio.es' );

Debemos tener bastante cuidado con lo que bloqueamos con esto, ya que si no lo configuramos bien puede interferir en la configuración del CDN y de sistemas similares.

Hay muchos más parámetros que podemos configurar en nuestro archivo wp-config.php de WordPress para realizar muchas tareas, os facilito la URL de un artículo donde podéis encontrar multitud de parámetros para configurar más tareas en nuestro archivo

Y en la siguiente URL puedes encontrar la documentación oficial sobre el wp-config.php en el CODEX oficial de WordPress.

Sobre Francisco Paredes Parralejo 130 Artículos
Consultor web, podéis ver los trabajos desde la web http://sutilweb.com