wp-config.php de WordPress

Dificultad del post: facilmediadificil
wp-config.php wordpress

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 están 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 ejecuta. 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.

configurar wp-config.php

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:

configurar wp-config.php

No ves el archivo wp-config.php en la imagen anterior, ¿verdad? La razón es que es una foto de un WordPress recién descargado de es.wordpress.org.

Al descargar WordPress desde es.wordpress.org no estará el wp-config.php. Sin embargo, sí tendremos el wp-config-sample.php, que es una plantilla de lo que será el wp-config.php después de instalar WordPress y con toda la configuración básica de WordPress.

configurar wp-config.php

En esta última foto ya ves el wp-config.php y dónde lo vas a encontrar en una instalación de WordPress.

Podemos editar el archivo wp-config.php de WordPress con cualquier editor de texto, ya que es un archivo PHP normal.
En el siguiente vídeo, puedes ver cómo editar el archivo wp-config.php de WordPress utilizando el File Manager o Administrador de archivos de cPanel:

Y en este otro vídeo, puedes ver como realizar el proceso de editar el wp-config.php de WordPress con un cliente FTP como Filezilla:

Y este es el índice de contenidos sobre el wp-config.php de WordPress que vas a poder encontrar en este artículo:

Icono suscripción Newsletter

¿Quieres
recibir mis articulos?

No te pierdas todos mis trucos para WordPress, CMS, Marketing Digital y WPO.

RESPONSABLE:

RAIOLA NETWORKS, S.L.

C.I.F.: B27453489

Avda de Magoi, 66, Semisótano, Dcha., 27002 Lugo (Lugo)

Telefono: +34 982776081

e-mail: info@raiolanetworks.es

FINALIDAD:Atender solicitudes de información, ejecución de la contratación de servicios y remisión de comunicaciones comerciales.
LEGITIMACIÓN:Consentimiento del interesado y contratación de productos y/o servicios del Responsable
DESTINATARIOS:

No se ceden datos a terceros, salvo obligación legal.

Personas físicas o jurídicas directamente relacionadas con el Responsable

Encargados de Tratamiento adheridos al Privacy Shield

DERECHOS:Acceder, rectificar y suprimir los datos, portabilidad de los datos, limitación u oposición a su tratamiento, derecho a no ser objeto de decisiones automatizadas, así como a obtener información clara y transparente sobre el tratamiento de sus datos.
INFORMACIÓN ADICIONAL:Se puede consultar la política de privacidad de forma más detallada aquí.

 

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

Aunque a mí personalmente me gusta configurar el wp-config.php de WordPress utilizando un cliente FTP y un editor de texto como Notepad o Notepad++, existen plugins que nos permitirán modificar 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.

 

WP Config File Editor para WordPress

Este plugin es gratuito y podemos encontrarlo en el repositorio de plugins de WordPress. Aunque lleva algún tiempo sin actualizar en el momento de escribir y publicar este post, sigue siendo viable utilizarlo.

Tiene muchas opciones de parametrización organizadas en pestañas:

configurar wp-config.php

También permite configurar cosas bastante curiosas, como las cookies utilizadas por WordPress para funcionar en el dominio principal o el funcionamiento del WP-CRON de WordPress, que tantos problemas de consumo de recursos nos da en algunos casos.

A mí personalmente me gusta bastante este plugin, aunque sé que en algunos casos está bastante limitado.

Puedes encontrar más información acerca de WP Config File Editor para WordPress aquí: https://es.wordpress.org/plugins/wp-config-file-editor/

 

Servicio online GenerateWP

GenerateWP dispone de varios servicios para generar distintos archivos de configuración y funcionamiento de WordPress. Uno de ellos es el wp-config.php

configurar wp-config.php

Aunque para mí es un servicio bastante limitado y que puede ser muy mejorable, puede servir como orientación a la hora de configurar correctamente un archivo wp-config.php. Sin embargo, los usuarios avanzados preferirán hacerlo manualmente editando el wp-config.php con un editor de texto.

Puedes utilizar el servicio de GenerateWP en su sitio web oficial: https://generatewp.com/wp-config/

 

Servicio online WP-CONFIG.PRO

Hace relativamente poco, Javier Casares de WPDanger puso en funcionamiento un nuevo servicio para configurar el archivo wp-config.php de WordPress desde una interfaz gráfica web.

configurar wp-config.php

Es un servicio bastante completo y a mí me gusta más que el servicio de GenerateWP. Además, por lo que he podido leer en Twitter, el autor lo irá complementando poco a poco. Aún así, en el momento de publicar este articulo el archivo wp-config.php generado es bastante completo y nos ofrece la posibilidad de configurar bastantes parámetros.

Puedes utilizar el servicio de wp-config.pro desde su sitio web oficial: https://wp-config.pro/

 

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 ciertas cosas al archivo wp-config.php de WordPress.

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

Vamos 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.

Los parámetros son estos:

  • DB_NAME: Nos permite establecer el nombre de la base de datos.
  • DB_USER: Nos permite establecer el usuario de conexión a la base de datos.
  • DB_PASSWORD: Nos permite establecer la contraseña de conexión a la base de datos.
  • DB_HOST: Nos permite establecer el host o servidor MySQL donde está la DB.
  • DB_CHARSET: La codificación de caracteres. Para 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 problema en dejarlo en blanco.

Lo bueno es que estos parámetros de conexión a la base de datos MySQL quedan configurados automáticamente en el primer paso del asistente de instalación de WordPress:

configurar wp-config.php

Normalmente, solo tocamos estos parámetros de configuración manualmente cuando hacemos una migración de WordPress desde un servidor a otro o algo similar.

 

SALT o claves de autentificación

Las claves secretas son claves aleatorias que se utilizan para proteger las sesiones y las 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.

Estas claves se autogeneran cuando instalamos WordPress y solo tendremos que tocarlas de nuevo introduciendo 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, como he explicado en la guía para mejorar la seguridad de WordPress que he publicado en este blog, 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.

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.

Para cambiar el prefijo de la base de datos en WordPress ya instalados y funcionando, revisa este tutorial: https://alvarofontela.com/seguridad-wordpress/#cambiar_el_prefijo_de_la_base_de_datos_de_wordpress

 

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.

El modo debug nos permite a los administradores del sitio web ver los errores pertinentes con el fin de poder repararlos.

Para poder activar el modo DEBUG, simplemente debemos poner TRUE en el parámetro WP_DEBUG.

 

Parámetros avanzados del wp-config.php

Como he dicho anteriormente, todo lo que has visto hasta el momento en este artículo son parámetros predeterminados del wp-config.php por defecto de cualquier instalación de WordPress, pero podemos utilizar muchos otros parámetros en el wp-config.php de nuestro WordPress, excluyendo los propios de los 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.

Si nuestro WordPress está en una subcarpeta, tendríamos que configurarlo así:

Como he dicho, 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.

configurar wp-config.php

Normalmente solo se utiliza esta configuració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:

O de la URL del sitio web:

Lo recomendable es hacerlo 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:

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

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

Al igual que en los dos 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:

Normalmente, al igual que en el caso de cambiar 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 tres casos anteriores, podemos personalizar la localización y el nombre de la carpeta UPLOADS que por defecto se encuentra dentro de la carpeta WP-CONTENT y que es donde se guardan todas las imágenes, PDFs y otros tipos de archivos que subimos a nuestro WordPress desde la galería multimedia o desde cualquier formulario del front-end.

Podemos cambiar la ubicación de la carpeta UPLOADS con la siguiente línea en el wp-config.php:

Debemos añadir esta línea de código justo antes de esta otra, que viene siendo el final del archivo wp-config.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, sobre todo en contenidos muy largos y sobrecargados.

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

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 con la siguiente línea en el editor:

Y podemos limitar el número de revisiones que se van a crear especificando el límite con el siguiente parámetro:

Como he dicho antes, al desactivar o limitar la creación de revisiones conseguiremos evitar problemas por tener bases de datos muy grandes llenas de basura, ya que las revisiones se guardan en la base de datos.

 

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:

Repito: 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 esta línea:

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

En mis labores de WPO y resolución de problemas en WordPress, además de la herramienta Query Monitor suelo utilizar el modo DEBUG de WordPress para revisar los errores que muestra una instalación al ejecutarse.

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:

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:

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:

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:

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:

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:

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.

Podemos distinguir los archivos JS y CSS concatenados con esta función cuando acaban en .min.js y .min.css

 

Comprimir CSS en WordPress con el wp-config.php

Con el wp-config.php de WordPress podemos activar una constante para comprimir el CSS del sitio web o, al menos, para intentarlo, ya que nunca he conseguido resultados concluyentes con esta variable.

Podemos activar la compresión de CSS en el wp-config.php con esta línea:

Para mí, 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 o, al menos, como en el caso anterior del CSS. Yo tampoco he conseguido resultados concluyentes con esta variable.

Podemos activar la compresión de JavaScript en el wp-config.php con esta línea:

Como he dicho 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:

Aunque hace relativamente poco salió un formato de compresión web más potente que GZIP llamado Brotli, GZIP 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.

Este es un ejemplo en formato videotutorial sobre como modificar el wp_memory_limit de WordPress en el wp-config.php:

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:

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

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:

Recuerda: 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:

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 tu sitio web (por no decir 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:

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á de forma tan dinámica y automática 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.

Quiero recordarte 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, podemos hacerlo desde el wp-config.php de WordPress con esta línea de código:

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:

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 residuos en la base de datos y puede ser necesario vaciar las papeleras de WordPress cada cierto tiempo.

Si realmente no queremos utilizar la papelera en WordPress, ya que creemos que nunca necesitamos recuperar elementos borrados, podemos desactivar la papelera con esta línea en el wp-config.php de WordPress:

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:

Ten cuidado con la configuración de la papelera de WordPress, ya que un elemento eliminado por completo no puedes recuperarlo NUNCA (salvo que recuperes una copia de seguridad de todo tu sitio web).

 

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:

Y después podremos acceder al sistema con el navegador, entrando al dominio de nuestra web, en esta ruta:

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

configurar wp-config.php

Este sistema es bastante potente aunque, en ocasiones, cuando una base de datos está MUY corrupta, puede 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 este:

Si queremos volver a activar el editor de código, simplemente tenemos que 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:

Lo malo es que, para actualizar los plugins y los themes, debemos desactivar esta opción en el wp-config.php antes.

 

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:

Como he dicho, actualmente esta opción no tiene mucho sentido.

 

Desactivar actualizaciones automáticas en WordPress

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: plugins, themes y traducciones.

Por algunas razones, podemos querer que nuestro WordPress (y sus componentes) no se actualice. Podemos hacer esto desde el wp-config.php con esta línea:

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

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 de WordPress

No solo podemos desactivar las actualizaciones automáticas del núcleo de WordPress, sino que también podemos configurar un poco 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:

Evidentemente, si lo que queremos es activar por completo las actualizaciones automáticas en WordPress, debemos especificarlo con este código:

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

Yo personalmente NO recomiendo las autoactualizaciones, ya que podemos tener problemas cuando actualizamos automáticamente un WordPress para el que aún no se han actualizado los plugins.

Recuerda que la actualización de componentes y del propio WordPress es una de las tareas más importantes que se debe realizar dentro del mantenimiento de cualquier sitio web creado y gestionado con WordPress.

 

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:

Esta opción no afecta a los plugins optimizadores de imágenes utilizados 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:

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

 

Bloquear el acceso desde otros dominios

Existen casos en los que, mediante un ALIAS u otra técnica, el contenido de tu sitio web (por no decir directamente tu sitio web entero) puede ser cargado desde otro dominio diferente a tu dominio.

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:

Y si queremos añadir algún dominio en exclusión para permitirle acceder a nuestro sitio web:

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.

 

Esto no es todo. ¿O no?

Posiblemente me deje en el tintero MUCHOS más parámetros que puede aceptar el wp-config.php de WordPress, ya que la documentación oficial es bastante “corta” y no existen muchas fuentes con listados de parámetros fuera de los comunes.

La cuestión es ir encontrando parámetros para realizar ciertas acciones en cualquier instalación de WordPress.

Estos parámetros van apareciendo y otros van quedando “deprecated”. Por lo tanto, para estar constantemente actualizado de lo que va apareciendo, es recomendable revisarse la documentación oficial.

Aquí te dejo un post de wpenginneer.com donde se muestra un listado de constantes que puedes declarar en el wp-config.php de WordPress: https://wpengineer.com/2382/wordpress-constants-overview/

Y esta es la documentación oficial sobre el wp-config.php que puedes encontrar en el CODEX oficial de WordPresshttps://codex.wordpress.org/Editing_wp-config.php

Icono suscripción Newsletter

¿Quieres
recibir mis articulos?

No te pierdas todos mis trucos para WordPress, CMS, Marketing Digital y WPO.

RESPONSABLE:

RAIOLA NETWORKS, S.L.

C.I.F.: B27453489

Avda de Magoi, 66, Semisótano, Dcha., 27002 Lugo (Lugo)

Telefono: +34 982776081

e-mail: info@raiolanetworks.es

FINALIDAD:Atender solicitudes de información, ejecución de la contratación de servicios y remisión de comunicaciones comerciales.
LEGITIMACIÓN:Consentimiento del interesado y contratación de productos y/o servicios del Responsable
DESTINATARIOS:

No se ceden datos a terceros, salvo obligación legal.

Personas físicas o jurídicas directamente relacionadas con el Responsable

Encargados de Tratamiento adheridos al Privacy Shield

DERECHOS:Acceder, rectificar y suprimir los datos, portabilidad de los datos, limitación u oposición a su tratamiento, derecho a no ser objeto de decisiones automatizadas, así como a obtener información clara y transparente sobre el tratamiento de sus datos.
INFORMACIÓN ADICIONAL:Se puede consultar la política de privacidad de forma más detallada aquí.

Tal vez te interese...

Picture of Álvaro Fontela
Álvaro Fontela
Soy ponente en congresos de marketing digital, consultor WordPress, ademas de CEO y co-fundador de Raiola Networks, amante del mundo del motor (coches japoneses) y tecnófilo empedernido.
Picture of Álvaro Fontela
Álvaro Fontela
Soy ponente en congresos de marketing digital, consultor WordPress, ademas de CEO y co-fundador de Raiola Networks, amante del mundo del motor (coches japoneses) y tecnófilo empedernido.

40 Responses

  1. Una entrada realmente interesante. He aprendido muchísimo con ella. Directa a mis enlaces favoritos para ir trasteando cada apartado uno a uno 🙂 Muchas gracias.

    1. Muchas gracias por tus palabras Eduardo, me alegro de que te guste, espero ir completándolo, ya que me he olvidado algunas constantes 😉

  2. Sin duda excelente y muy completa a mi nivel de conocimiento, me servirá como referência. Muchas gracias amigo un saludo

  3. Hola Alvaro, ¿Como estas?

    te queria consultar que te parece este config.php que armé por default para mis proyectos

    /* Various */
    define( ‘WP_HOME’, ‘http://example.com’ );
    define( ‘WP_SITEURL’, ‘http://example.com’ );
    define(‘FS_METHOD’, ‘direct’);
    define(‘WP_ALLOW_REPAIR’, true);
    define( ‘WPLANG’, ‘es_ES’ );
    define( ‘SHORTINIT’, true );

    /* SSL */
    if (PROTOCOL === ‘https://’){
    define( ‘FORCE_SSL_LOGIN’, true );
    define( ‘FORCE_SSL_ADMIN’, true );
    }

    /* Content */
    define( ‘AUTOSAVE_INTERVAL’, 300 );
    define( ‘WP_POST_REVISIONS’, false );
    define( ‘WP_POST_REVISIONS’, 3 );
    define( ‘MEDIA_TRASH’, true );
    define( ‘EMPTY_TRASH_DAYS’, 7 );
    define( ‘WP_MAIL_INTERVAL’, 86400 );

    /* Memory */
    define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
    define( ‘WP_MAX_MEMORY_LIMIT’, ‘512M’ );

    /* Updating */
    define( ‘AUTOMATIC_UPDATER_DISABLED’, true );
    define( ‘WP_AUTO_UPDATE_CORE’, ‘minor’ );
    define( ‘CORE_UPGRADE_SKIP_NEW_BUNDLED’, true );

    /* File edition */
    define( ‘DISALLOW_FILE_MODS’, true );
    define( ‘DISALLOW_FILE_EDIT’, true );
    define( ‘IMAGE_EDIT_OVERWRITE’, true );

    /* Performance */
    define( ‘WP_CACHE’, true );
    define( ‘COMPRESS_CSS’, true );
    define( ‘COMPRESS_SCRIPTS’, true );
    define( ‘CONCATENATE_SCRIPTS’, true );
    define( ‘ENFORCE_GZIP’, true );

    /* Cron */
    define( ‘DISABLE_WP_CRON’, false );
    define( ‘ALTERNATE_WP_CRON’, false );
    define(‘WP_CRON_LOCK_TIMEOUT’, 900);

    /* Filtering */
    define( ‘DISALLOW_UNFILTERED_HTML’, false );
    define( ‘ALLOW_UNFILTERED_UPLOADS’, false );

    /* Feed reader */
    define( ‘MAGPIE_CACHE_ON’, true );
    define( ‘MAGPIE_CACHE_DIR’, ‘cache’ );
    define( ‘MAGPIE_CACHE_AGE’, 3600 );
    define( ‘MAGPIE_CACHE_FRESH_ONLY’, false );
    define( ‘MAGPIE_DEBUG’, false );
    define( ‘MAGPIE_USER_AGENT’, ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0’ );
    define( ‘MAGPIE_FETCH_TIME_OUT’, 5 );
    define( ‘MAGPIE_USE_GZIP’, true );

    /* Debug */
    define( ‘WP_DEBUG’, true );
    if ( WP_DEBUG ) {
    define( ‘WP_DEBUG_DISPLAY’, true );
    define( ‘WP_DEBUG_LOG’, true );
    }
    define( ‘SCRIPT_DEBUG’, true );
    define( ‘SAVEQUERIES’, false );

    /* Do not change anything else after this line! Thank you! */

    if ( ! defined( ‘ABSPATH’ ) )
    define( ‘ABSPATH’, dirname( __FILE__ ) . ‘/’ );
    require_once ABSPATH . ‘wp-settings.php’;

    Desde ya muchas gracias

    1. Yo esto lo sacaria:

      Por seguridad: define(‘WP_ALLOW_REPAIR’, true);
      Porque te sirve para nada: define( ‘ALTERNATE_WP_CRON’, false );

      Estos son se lo que son:
      define( ‘DISALLOW_UNFILTERED_HTML’, false );
      define( ‘ALLOW_UNFILTERED_UPLOADS’, false );
      define( ‘MAGPIE_CACHE_ON’, true );
      define( ‘MAGPIE_CACHE_DIR’, ‘cache’ );
      define( ‘MAGPIE_CACHE_AGE’, 3600 );
      define( ‘MAGPIE_CACHE_FRESH_ONLY’, false );
      define( ‘MAGPIE_DEBUG’, false );
      define( ‘MAGPIE_USER_AGENT’, ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0’ );
      define( ‘MAGPIE_FETCH_TIME_OUT’, 5 );
      define( ‘MAGPIE_USE_GZIP’, true );

      Yo esto solo lo meto si hay problemas, ya que hacer debug consume recursos:

      /* Debug */
      define( ‘WP_DEBUG’, true );
      if ( WP_DEBUG ) {
      define( ‘WP_DEBUG_DISPLAY’, true );
      define( ‘WP_DEBUG_LOG’, true );
      }
      define( ‘SCRIPT_DEBUG’, true );
      define( ‘SAVEQUERIES’, false );

  4. Tengo en Debian 9 y tengo la versión 7.4 de PHP, pero Wordpress sigue indicándome que tengo la versión 7.0.
    Estoy buscando y buscando y no encuentro donde indicarle a Wordpress que tiene que coger la versión 7.4 instalada.
    He reiniciado el servicio y el servidor y nada.

    1. Hola Oscar, esto que me estas comentando, salvo casos muy aislados donde tengas que establecer un php.ini no se hace asi.

      Puedes tener varias versiones del interprete PHP instaladas, pero es el vHost el que tiene que utilizar una versión u otra, y eso se gestiona de otra forma mas compleja.

      Es decir, debes especificarlo en el panel de control del servidor y si no utilizas ningún panel, debes especificarlo en los archivos de configuración del servidor. No es cosa de WordPress.

  5. Hola oscar por fa a ver si puedes echarme una mano, quiero instalar un plugin en Wordpress y me da error de ftp, al trabajar en local puse en el wp-config.php define(‘FS_METHOD’, ‘direct’); que por lo que lei lo transmitía directo, despues modifique los permisos para que puedan acceder en las carpetas y aun así me pone instalación fallida no ha sido posible copiar el archivo. que puedo hacer

  6. Muy bueno! me ayudaste a resolver y a que mi sitio pueda seguir añadiendo y editando Temas y plugins!
    muchas gracias desde Argentina!!

  7. Muy buenas tardes, muchas gracias por tus aportes, me han servido mucho, una consulta, tengo un tema que instale, llamado Eduma, pero hay algunas imágenes de cabecera que no se pueden modificar con el editor de WP o con elementor que es el que tengo instalado, se puede hacer desde el administrador de archivos?

    1. Hola Luis, aunque el método no me guste, si que podrías sustituir las imágenes. Repito, esto no es recomendable, pero se puede hacer.

  8. Temenda la cantidad de información valiosa que aportaste en este post.
    Te lo agradezco mucho.
    Me pregunto si desde el config.php se puede también limitar el tamaño de los archivos que suben los usuarios a mi web, para no tener que hacerlo desde php.ini (que dependo del hosting para ponerlo en práctica)

    Gracias!
    Saludos.

    1. Hola Alejandro, que yo sepa, no se puede hacer desde WordPress, al menos de forma generalizada. Después algunos plugins como Gravity Forms tienen sus propias configuraciones para esto.

  9. Hola Álvaro.

    Ante todo agradecerte tu “tabajazo” redactando estas publicaciones que tanto me han ayudado en muchísimas ocasiones. Gracias.

    define( ‘FORCE_SSL_ADMIN’, true );

    ¿Este código me puede solucionar un problema que tengo con un archivo que me sube a la web como http cuando debería ser https?

    Se trata de una web la cual tiene ya unos años, empezó como http y un tiempo después le puse el certificado y migré de http a https siguiendo las instrucciones tuyas en una publicación tuya en el blog de Raiola.

    Gracias de antemano.

    1. Hola Ferran, pues…nunca lo he usado para eso, pero puede que si…

      Pero si te sigue subiendo cosas con HTTP, es que algo te has dejado atrás, igual tienes que volver a pasarle Better Search Replace en la DB.

  10. Por favor necesito ayuda. He creado un metrónomo con html, css y javascript y no se como hacer para que aparezca en mi página de wordpress para hacerlo online. Ayuda por favor

  11. Hola
    Estoy iniciándome en la creación de páginas web y hasta ahora iba bien (me falta bastante todavía pero sigo intentando) por lo que creé mi segunda página pero me arroja un error que se encuentra en wp-config-php línea 99 que sería:
    94 /* That’s all, stop editing! Happy publishing. */
    95
    96 /** Absolute path to the WordPress directory. */
    97 if ( ! defined( ‘ABSPATH’ ) ) {
    98 define( ‘ABSPATH’, __DIR__ . ‘/’ );
    99 }
    100
    101 /** Sets up WordPress vars and included files. */
    102 require_once ABSPATH . ‘wp-settings.php’;
    103 define(‘DISALLOW_FILE_EDIT’, true);
    104 define(‘DISABLE_WP_CRON’, true);
    105 define (WP_POST_REVISIONS, true);

    ¿Alguien me puede ayudar al respecto? Muchas gracias XD

  12. Hola Alvaro.
    Encontre tu blog buscando como configurar mi wp-config.
    Tengo un misterio que sucede en mi sitio, esta alojado en bluehost y de vez en vez sucede que me barren mi archivo wp-config a 0, es decir sin referencias a la base de datos etc y por lo tanto me aparece un error que dice que no se puede establecer contacto con la base de datos.
    Tengo otros sitios web en el mismo hosting y en el mismo directorio, creados desde bluehost como addon domains, sin embargo aun no comprendo si hay algun plugin que se actualice automaticamente o que es lo que causa la perdida de informacion de mi wpconfig.
    es bastante raro, ya que no tengo mas usuarios ni accesos ftp ni nada que pueda ser “hackeo” y el soporte bluehost no sabe ni tiene idea porque pasa esto.
    En fin. Espero me de a entender. tengo mas de un año con este problema y ninguno de los desarrolladores de los plugins importantes me saben responder.
    Saludos

    1. Hola Daniel, siento el proveedor de hosting quien lo hace; como usuario es imposible darte alguna indicación, ya que es una cosa interna de ellos.

  13. Gracias por compartir tanto conocimiento Álvaro!! Tengo un error en el backend que me solapa al final del todo de la página parte del frontend (bastante extraño) y mañana haré algunas pruebas con algunas configuraciones de tu post. Me faltaba activar el debug de Javascript que me da que el error viene por ahí… Tremendo crack!! 😉

  14. hola alvaro muy buen aporte!,
    Tengo un problema y quizas sepas ayudarme como arreglarlo , tuve un problema que me dejo de mostar las imagenes que cargaba a la biblioteca de medios y lo solucione modificando la ruta a la por defecto , el problema es que ahora me sale error 404 en la biblioteca de medios y si modifico la ruta de nuevo a wp-admin no me muestra las imagenes en la pagina normal , por tu ayuda gracias de antemano

    1. Hola Jeancarlo, estoy seguro de que tienes un problema de rutas definidas que puede venir incluso por algo tan simple como un slash que falte o que sobre, pero…sin verlo no puedo decirte algo concreto.

  15. Hola álvaro, tengo un problema con mi sitio web, “Cada solicitud a WordPress pasa por el archivo index.php, lo que significa que la mayor parte del consumo de CPU está relacionada con este archivo.” , he estado buscando como solucionarlo y me encontre con este sitio. Tengo conocimiento muy basicos de programación. Alguna idea para solventar este problema, de recursos. gracias.

    1. Hola Sebastián, lo que comentas es “normal”, es decir, todas las peticiones al frontend de WordPress pasan por el index.php y esto no se puede cambiar, porque es la forma de funcionar de WordPress.

      Si hay un alto consumo de recursos por este archivo (esto puede ser cuando se hace un profiling superficial), te garantizo, que la razón es otra.

  16. Hola Álvaro, ejemplar tu paciencia y saber con nosotros, soy un profano en programación web, pero me voy apañando poco a poco, he tenido un problema con la ultima actualización de Wordpres 6.5, y con un plugin, he conseguido recuperar la web retrocediendo a la versión anterior de Wordpress, pero aún me sigue saliendo un error de wp-config.php, y es el siguiente: public_html/wp-config.php on line 77, no se que hacer porque por lo demás sigue funcionando todo bien, sabrías decirme que hacer??, Muchas Gracias de antemano, y enhorabuena por tu blog.

    1. Hola Luis, lamentablemente no puedo decirte nada debido a que la linea 77 en cada wp-config.php es diferente, depende de los espacios y los parametros que tu tengas en ese archivo.

      Para saber exactamente cual es el problema, tienes que ir al wp-config.php de tu web y mirar que hay exactamente en la linea 77.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Artículos destacados

Copias de seguridad en WordPress

wp-cron.php de WordPress

Elementor Forms de Elementor Pro

Optimizar la carga de JavaScript y CSS en WordPress

Desinfectar un WordPress hackeado

WebP en WordPress

Artículos más comentados

TPV o POS en WooCommerce

Elementor Forms de Elementor Pro

Entendiendo la DB de WordPress

WP Rocket para acelerar WordPress con cache de página

Copias de seguridad en WordPress

WebP en WordPress