5 problemas de WordPress más comunes
Si acabas de entrar en tu site y te sale un mensaje de error o, aún peor, la pantalla se queda en blanco, ¡no te asustes! Por algún motivo, hay un error en tu WordPress y tendrás que corregirlo. En la entrada de hoy voy a presentarte los 5 problemas más comunes, algunos de los posibles motivos que los generan y cómo solucionarlos. Además, muchos de los consejos y soluciones que veremos son aplicables a otros tipos de error con los que te puedes encontrar (son algo así como “soluciones genéricas”).
1. La pantalla blanca de la muerte.
La pantalla blanca de la muerte, o WSOD por sus siglas en inglés (White Screen of Death), es uno de los errores más habituales. Quien más, quien menos, se ha encontrado con él en algún momento de su vida como usuario de WordPress. ¡Imagina el sudor frío que te entra cuando ves que tu web ha quedado reducido a la nada!
Los principales motivos para este error son:
- Falta de memoria (en inglés, exhausted memory)
- Un plugin
- Un tema
Veamos cómo puedes solucionar la WSOD tú mismo:
Falta de memoria
Alcanzar el límite de memoria suele ser una de las explicaciones más habituales a este error y, si ese es el caso, aumentar ese límite no cuesta nada. Para ello, accede al fichero wp-config.php
usando tu cliente de FTP (o cPanel, o lo que sea que tengas para ver los ficheros de tu instalación WordPress) y añade la siguiente instrucción dentro de la etiqueta <?php
para aumentar el límite hasta los 64 Mb:
define( 'WP_MEMORY_LIMIT', '64M' );
Evidentemente, puedes establecer este límite al valor que quieras (por ejemplo, 128 Mb o 256 Mb…), pero no te recomiendo que pongas un valor mucho más alto; WordPress debería funcionar correctamente con esas cantidades de memoria y, si no lo hace, es posible que el problema sea otro. De ser así, entonces hay que analizar las otras posibles causas.
Plugins
Si sigues teniendo acceso al escritorio de WordPress, entonces solucionar este error es bastante sencillo. Simplemente ve a la sección de plugins y desactiva el último plugin que hayas instalado. Si eso no corrige el problema, lo más probable es que el error lo esté generando la actualización de algún otro plugin, así que nos toca descubrir cuál es. Para ello, desactiva todos los plugins de golpe (puedes usar la cajita de selección que aparece en la cabecera de la tabla de plugins para marcarlos todos y, a continuación, seleccionar la acción en lote Desactivar). A continuación, puedes ir activando los plugins uno a uno hasta encontrar el que peta.
Si no tienes acceso al escritorio, tendremos que desactivar los plugins vía FTP. Usando tu cliente de FTP (o, igual que antes, la herramienta de la que dispongas para manipular los ficheros en tu servidor de WordPress), ve al directorio wp-content
y cambia el nombre de la carpeta plugins
a plugins-debug
. Después de cambiar el nombre, accede a tu site para verificar que las cosas funcionan correctamente. Para activar los plugins uno a uno, vuelve a crear el directorio plugins
(recuerda que acabamos de cambiarle el nombre a plugins-debug
y que, por tanto, el directorio plugins
no existe) y ve moviendo los plugins de plugins-debug
a plugins
, de tal forma que puedas detectar cuál es el que falla. Cuando acabes, puedes deshacerte del directorio plugins-debug
, el cual, por cierto, debería estar vacío.
Una vez hayas identificado qué plugin está dando problemas, tienes varias opciones:
- Instala una versión anterior que sepas que no falla (y evita actualizarlo).
- Contacta al desarrollador, explícale tu problema y pídele que corrija su plugin.
- Reemplaza el plugin por otro que te dé la misma funcionalidad… pero sin pantallazos blancos, claro
Temas
Si ni tan siquiera desactivando los plugins hemos conseguido deshacernos de la pantalla en blanco, entonces es muy probable que lo que falle sea tu tema. Igual que en el caso de los plugins, si tu web ha dejado de funcionar de la noche a la mañana por culpa de un tema, o bien tu tema se ha actualizado y la actualización contiene un error, o bien has editado algo manualmente y te has equivocado.
Para analizar si el pantallazo lo está generando el tema seguiremos los mismos pasos que hemos hecho con los plugins. Accede al directorio wp-content/themes
y cambia el nombre del directorio de tu tema (por ejemplo, de my-theme
a my-theme-debug
) para que WordPress crea que has desinstalado el tema y, por lo tanto, se vea obligado a usar algún tema por defecto (como el Twenty Fifteen).
Una vez sabes que la culpa es del tema ya puedes tomar acciones para corregirlo:
- Si has editado el tema manualmente (normalmente, añadiendo o modificando algo del fichero
functions.php
), te recomiendo que deshagas los cambios. Si no tienes muy claro qué has hecho y cómo volver al estado anterior, entonces vuelve a instalar el tema de cero. Y, ya que estamos, recuerda que antes de tocar nada de tu WordPress (especialmente si hablamos de código) es muy importante hacer una copia de seguridad; si algo peta, la copia de seguridad nos permitirá volver al estado anterior en un par de minutos. - Contacta con el autor del tema y pídele ayuda.
- Usa otro tema.
Y si todo esto falla… ¡Activa el modo DEBUG de PHP!
Lo peor que te puede pasar es que ninguna de las acciones anteriores corrija tu solución. Pero también puede pasar que sí te haya permitido identificar qué falla, pero no sepas cómo corregirlo. En esos casos, ¿qué podemos hacer? Bueno, lo único que está en nuestras manos es intentar conseguir más información sobre el problema. Para ello, abre el fichero wp-config.php
y busca la siguiente línea:
define( 'WP_DEBUG', false );
Una vez localizada, añadele un // al principio:
// define( 'WP_DEBUG', false );
para que quede comentada. A continuación, añade las siguientes instrucciones:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
las cuales activan la información de DEBUG de PHP. Gracias al DEBUG, cuando accedas a tu web ya no verás una pantalla en blanco, sino que podrás ver qué errores hay en el código PHP que evitan que tu web se muestre y que acabe siendo una página en blanco, además de los ficheros y líneas donde aparecen.
Si no te interesa que esa información se vea en tu web, puedes evitar que salga por el navegador y hacer que aparezca en un fichero de log añadiendo estas dos líneas adicionales:
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
Con ellas, toda la información de log aparecerá en un fichero llamado error.log
, el cual encontrarás en el directorio wp-content
.
2. INTERNAL SERVER ERROR
A veces, tu servidor responde con un error 500, Internal Server Error (error interno del servidor). En estos casos, lo mejor que puedes hacer es levantarte, ir a por un café y volver con paciencia, porque puede ser cualquier cosa.
De nuevo, culpa de algún plugin, del tema o falta de memoria
Pues sí, hay veces en que los errores introducidos por plugins o temas no acaban en un pantallazo blanco, sino que devuelven el temido error 500. En estos casos, lo único que puedes hacer es repetir los pasos que hemos descrito en las acciones anteriores…
Corrige el fichero .htaccess
¿No era culpa de ningún plugin? ¿Tampoco de un tema? Bueno, no desesperes; quizás lo que ha fallado es tu fichero .htaccess
. En estos casos, lo mejor es hacer borrón y cuenta nueva. Accede vía FTP al sistema de ficheros de tu WordPress y cámbiale el nombre a, por ejemplo, .htaccess_backup
. Si no lo encuentras, seguramente sea porque está oculto; asegúrate de marcar la opción “Mostrar archivos ocultos” en tu programa de FTP.
Una vez “eliminado” el fichero (en realidad, sólo le hemos cambiado el nombre ), ve al escritorio de WordPress » Ajustes » Enlaces Permanentes y haz clic en el botón Guardar cambios. El cambio de ajustes regenera automáticamente el fichero .htaccess
y, así, puedes validar que la nueva versión funciona correctamente.
3. ERROR ESTABLISHING DATABASE CONNECTION
Otro de los errores típicos que podemos encontrarnos. Normalmente es un error del servidor, pero a veces es algo tan tonto como que hemos cambiado el usuario y/o la contraseña de la base de datos y WordPress ya no puede acceder.
Repasa el fichero wp-config.php
Lo primero que tienes que hacer es ver si el error aparece sólo en la parte pública de tu web o también aparece en el escritorio (wp-admin
).
A) Si sólo aparece en tu parte pública y, además, ves un texto del tipo “La base de datos necesita ser reparada”, entonces sólo tienes que añadir esto en tu fichero wp-config.php
:
define( 'WP_ALLOW_REPAIR', true );
A continuación, visita la siguiente página en tu web http://tuweb.es/wp-admin/maint/repair.php y sigue los pasos para reparar la base de datos. Una vez hayas acabado, no olvides eliminar la línea que acabamos de añadir en wp-config.php
.
B) Si has cambiado el nombre de usuario o la contraseña de tu base de datos, comprueba que la información que hay en wp-config.php
sobre la base de datos es correcta:
define( 'DB_NAME', 'database-name' );
define( 'DB_USER', 'database-username' );
define( 'DB_PASSWORD', 'database-password' );
define( 'DB_HOST', 'localhost' );
En el ejemplo anterior he dado por sentado que el servidor que tiene la base de datos es el mismo que el que está ejecutando WordPress (de ahí que use localhost), pero en algunos casos no es así.
Contacta con tu proveedor de hosting
Si nada de esto arregla el problema, o el error apareció después de un pico de tráfico, entonces es muy probable que sea tu proveedor de hosting el que te está capando el acceso a la base de datos. Contacta con ellos y pídeles ayuda; ¡será mucho más rápido y sencillo!
4. Error con las actualizaciones automáticas
WordPress 3.7 introdujo las actualizaciones automáticas con el objetivo de promover una mejor seguridad y facilitar la implantación de nuevas versiones. Por defecto, sólo las actualizaciones menores (o sea, las de mantenimiento o de seguridad) son las que se actualizan de forma automática. A veces, estas actualizaciones fallan. Teniendo en cuenta que se llevan a cabo sin ningún tipo de interacción humana, ¿cómo podemos saber que ha habido algún problema con ellas? Bueno, por los siguientes motivos:
- Aparece un error de PHP
- Tu web ha quedado en blanco (de nuevo, la infame WSOD, de la cual ya hemos hablado)
- Tienes un aviso que te informa del error
Los motivos para que una actualización automática falle son varios, pero los más habituales son una conexión a Internet intermitente o que los permisos de ficheros y directorios no sean los adecuados y, por tanto, no se puedan sobrescribir con la nueva versión.
Actualización manual
Como todo en esta vida, si no funciona automáticamente, prueba haciéndolo a mano Imagino que ya habrás instalado algún que otro WordPress a mano, pero sino lo has hecho, en el Codex te explican cómo actualizar WordPress manualmente.
5. Entradas de WordPress con Error 404
Uno de los errores más frustrante es cuando intentamos acceder a las entradas de nuestro blog o a páginas de nuestra web y lo que obtenemos es un error 404. Este tipo de errores suceden cuando el servidor no encuentra el recurso que le estamos pidiendo, ya sea porque no existe o porque no sabe adonde ir a buscarlo. En el caso de WordPress, lo más probable es que el fichero .htaccess
esté corrupto. ¡Veamos qué podemos hacer para arreglarlo!
Corrigiendo nuestros enlaces permanentes
Ya hemos visto cómo conseguir que WordPress regenere automáticamente el fichero .htaccess
. Si eso no soluciona nuestro problema (me extrañaría, la verdad), podemos intentar crearlo manualmente y añadir el siguiente contenido:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Soluciones adicionales a otros problemas
En mi experiencia, las soluciones que describo en esta entrada te ayudarán a solucionar la mayoría de problemas con los que vas a encontrarte. Pero, por desgracia, hay otros errores menos habituales o más complejos de solucionar que he dejado fuera de esta entrada. Para ellos, te recomiendo que eches un vistazo a la página de desarrolladores de WordPress donde se discuten los diferentes tipos de errores que hay.
¡Mucha suerte! 🙂