pantalla en blanco wordpress

Pantalla en blanco en WordPress, no se visualiza nada en la web, solo se descarga un archivo cuando intentas acceder a tu sitio, este error inesperado suele pasarle a muchos cuando usas WordPress.

En este post voy a mencionarte las posibles causas de este error y la solución.

Este error no tiene nada que ver con tu computadora o el tipo de navegador o versión que uses.

De hecho si ingresas a cualquier otra web podrás comprobar que no se trata de ningún error del navegador que actualmente usas o tu conexión a Internet.

Este tipo de evento suele mostrar un aviso de Error 500, Internal Server Error o la página en blanco.

Así que toca buscar el motivo ¿Por qué tu web basada en WordPress no carga?

En resumen o hay un problema con tu proveedor de hosting o tienes algún error en tu instalación WordPress.

La primera pregunta que debes hacerte, ¿He hecho algún cambio reciente en WordPress lo cual haya conllevado a ese error?

Si ese es el caso basta con revertir los cambios para que la web vuelva a funcionar correctamente como lo hacía antes.

Este artículo supone que ya está familiarizado con la funcionalidad básica de WordPress y con la edición de ficheros en su proveedor de hosting.

Error luego de actualizar la versión WordPress

Si no has hecho ningún cambio a nivel de código, pero si se actualizo automáticamente WordPress.

Ya deberías saber que WordPress es un CMS muy popular y por ello es un blanco de ataque para los hackers, y siempre está actualizándose para arreglar bug.

A veces estas actualizaciones no pueden sobrescribir algunos ficheros del directorio de tu instalación porque los permisos de ficheros y directorios no son los adecuados.

Lo que conlleva a que tu web caiga y te muestre un error PHP o la Pantalla en blanco (Pantalla de la muerte) donde si intentas acceder por lo general se descarga un archivo el cual si lo abres en el bloc de notas de Windows o cualquier editor de texto.

Te encontraras con el siguiente código.

<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
<?

Si tu web posee el archivo robots.txt o el sitemap.xml comprueba ingresando a la dirección correspondiente al robots y al sitemap de tu dominio. Si logra mostrar correctamente el archivo robots y el sitemap y no la pantalla en blanco. Significa que no hay un error en la base de datos por ahora y el motivo es otro.

Es muy probable que el archivo .htaccess este corrupto para comprobar esta teoría simplemente debes crear otro fichero limpio .htaccess.

Antes de realizar eso debes renombrar el antiguo .htaccess a .htaccess_web (puedes editarlo con cualquier nombre lo importante es distinguir el nuevo que crearas del viejo).

# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Ya creado el nuevo .htaccess ingresa nuevamente a la dirección de tu web y si la web vuelve a funcionar normalmente entonces el problema radicaba en el .htaccess ahora solo te queda averiguar en qué línea del código .htaccess que renombraste está el error y corregirlo.

Falta de Memoria en WordPress

Si lo anterior no soluciono el error y tu web sigue mostrando pantalla en blanco en todas las páginas, puede ser debido a un problema de falta de memoria en tu instalación de WordPress y es uno de los errores más habituales.

Solucionar este error es sumamente sencillo solo basta con aumentar la memoria y ya.

Pero este error es causado por la instalación de ciertos Plugins que exigen alto consumo de memoria y de CPU en tu instalación de WordPress por lo que siempre debes tener cuidado con los Plugins que instalas.

Accediendo a tu cuenta cPanel, DirectAdmin o utilizando un cliente de FTP o cualquier medio que uses para ver los ficheros de instalación de WordPress, buscamos el fichero llamado default-constants.php que se encuentra en la carpeta wp-includes.

¿Y por qué este archivo y no el típico wp-config.php?

Vamos paso a paso, existe mucha documentación en donde te indican que para aumentar la memoria límite de WordPress debes editar el fichero wp-config.php o el php.ini, pero esto realmente puede o no solucionar el problema en algunos casos.

Es por ello que existen dos posibles soluciones al problema.

Opción 1: Forzar el límite de la memoria desde el fichero default-constants.php

Esta opción radical requiere que hagas clic en el para editarlo y podrás notar que es default-constants.php quien limita nuestra memoria a solo 40 MB.

$current_limit     = @ini_get( 'memory_limit' );
	$current_limit_int = wp_convert_hr_to_bytes( $current_limit );

	// Define memory limits.
	if ( ! defined( 'WP_MEMORY_LIMIT' ) ) {
		if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) {
			define( 'WP_MEMORY_LIMIT', $current_limit );
		} elseif ( is_multisite() ) {
			define( 'WP_MEMORY_LIMIT', '64M' );
		} else {
			define( 'WP_MEMORY_LIMIT', '40M' );
		}
	}

Tan solo tienes que cambiar el valor 40M en la línea define( ‘WP_MEMORY_LIMIT’, ’40M’ ); por los 64M recomendados y listo problema resuelto.

Algo sumamente importante con esta solución es que cuando actualices WordPress a una nueva versión es posible que el fichero default-constants.php vuelva a sobrescribirse deshaciendo tus cambios. Por lo que esta opción es algo poco viable para ti si no quieres estar revisando dicho fichero en cada actualización de WordPress.

Opción 2: Editar el fichero wp-config.php

Esta es la solución que encontraras en muchos sitios y foros, que consiste en agregar una nueva linea al fichero wp-config.php

En la carpeta raíz de tu instalación Wp, se encuentra el fichero wp-config.php.

Puedes descargarlo y editarlo con tu editor de código de preferencia y subir luego el archivo o editarlo directamente desde el administrador de archivos de tu cuenta de hosting compartido y añadir la siguiente línea:

// Aumento de memoria para evitar errores
define( 'WP_MEMORY_LIMIT', '64M' );
define( 'WP_MAX_MEMORY_LIMIT', '128M' );

Para ilustrarte mejor puedes pegar lo anterior en la siguiente área de tu fichero wp-config.php como te muestro a continuación:

<?php
// Aumento de memoria para evitar errores
define( 'WP_MEMORY_LIMIT', '64M' );
define( 'WP_MAX_MEMORY_LIMIT', '128M' );
/**
 * The base configuration for WordPress
 *
 * The wp-config.php creation script uses this file during the installation.
 * You don't have to use the web site, you can copy this file to "wp-config.php"
 * and fill in the values.
 *
 * This file contains the following configurations:
 *
 * * Database settings
 * * Secret keys
 * * Database table prefix
 * * ABSPATH
 *
 * @link https://wordpress.org/documentation/article/editing-wp-config-php/
 *
 * @package WordPress
 */

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );

/** Database username */
define( 'DB_USER', 'username_here' );

/** Database password */
define( 'DB_PASSWORD', 'password_here' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

/**#@+
 * Authentication unique keys and salts.
 *
 * Change these to different unique phrases! You can generate these using
 * the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}.
 *
 * You can change these at any point in time to invalidate all existing cookies.
 * This will force all users to have to log in again.
 *
 * @since 2.6.0
 */
define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

/**#@-*/

/**
 * WordPress database table prefix.
Pero ten en cuenta que de nada servirá aumentar la memoria a 64M si en el servidor no se ha subido, por eso la primera tarea es revisar o consultar con tu proveedor cuál es el tamaño de la memoria PHP asignada a tu cuenta de hosting compartido o instala un plugins que te mostrara la memoria PHP asignada.

El plugins Server IP & Memory Usage Display te informa de la memoria del hosting, la que tiene asignada WordPress, la IP y la versión PHP instalada.

Aunque existen otros plugins para monitorear estos valores, este es el más simple y es tan fácil que solo tienes que instalarlo, activarlo y mirar la parte inferior de tu panel de administración WordPress para que veas la RAM consumida en ese momento.

Los plugins para detectar estos valores no son muy exactos, si eres de los que instala y activa nuevos plugins, activando Server IP & Memory Usage Display de vez en cuando podrás tener una idea de la memoria que está consumiendo tu web WordPress.

Error en el Tema o en un Plugins

Si aumentando la memoria de WordPress, o creando un nuevo fichero htaccess no logras deshacerte de la pantalla en blanco entonces es muy probable que lo que este fallando sea tu tema actual o algún Plugins.

Para descartar que sea algún Plugins accede al directorio wp-content y renombra la carpeta Plugins a Plugins-web, después de cambiar el nombre accede nuevamente a tu sitio para verificar si deja de mostrar la pantalla en blanco.

Si tu web no depende excesivamente de algún Plugin entonces mostrará tu web correctamente, y sabrás que el causante del problema es un plugin, ya sea porque se ha actualizado y dicha actualización contiene algún error o un plugins que has instalado recientemente.

Cambiar el nombre de la carpeta Plugins obviamente dejaran de funcionar todos los plugins.

Toca crear otra carpeta con el nombre plugins e ir moviendo dentro de la misma un plugins a la vez desde la carpeta que renombraste plugins-web para detectar cuál es el plugins que está fallando.

De haber alguno que esté causando el error, las posibles causas son como describí anteriormente, hubo un error en una actualización / incompatibilidad o el plugins no está configurado de manera correcta.

Por lo que si es un error de actualización la solución es borrar el plugins e instalarlo nuevamente.

Pero si es una mala configuración tienes que buscar la documentación que proporciona el desarrollador para arreglar el problema.

Si pasaste todos los plugins a la carpeta y no es ningún plugin y persiste el problema toca revisar si es el tema actual que usas, si es un tema que posee actualizaciones, es posible que tu web ha dejado de funcionar porque la actualización del tema contiene un error fatal, algo poco común.

Pero para detectar si el problema es el tema realizamos el mismo procedimiento hecho con los plugins ir al directorio wp-content/themes y renombrar la carpeta correspondiente al nombre de tu tema, ejemplo MyTheme a MyTheme-web.

Luego ingresas nuevamente a la dirección de tu web. Para verificar si se muestra correctamente, obviamente cargara con un tema por defecto por ejemplo el (Twenty Sixteen) esto sucede porque WordPress se ve obligado a usar algún tema instalado por haber renombrado el nombre del tema principal y cree que lo has desinstalado.

Si detectaste que el problema es el tema reinstala el tema que usas nuevamente o cámbialo por otro, si lo compraste a un desarrollador y este posee garantías comunícate con él para que te resuelva el problema del tema lo más pronto posible.

Siempre es recomendable no eliminar todos los temas por defecto que trae WordPress cuando lo instalas, dejar al menos uno por si el tema que usa tu web falla por algún error de código y necesites activar un tema mientras solucionas el problema.

Desactiva el archivo wp-cron.php

El wp-cron.php de WordPress es un administrador de tareas virtual, que se ejecuta cada vez que se cargan las páginas, básicamente se encarga de:

  • Buscar automáticamente actualizaciones de WordPress, Plugins y Plantillas instaladas.
  • Enviar pingbacks.
  • Publicar artículos que hayas programado en una fecha especifica.
  • Realizar copias de seguridad, entre otros.

Pero esta ejecución tiene un pequeño inconveniente y esta relacionado con el rendimiento de recursos del CPU del servidor.

Si tu sitio web tiene elevado trafico, el cron de WordPress se ejecutara exorbitantemente agotando los recursos del CPU de su hosting compartido, lo que conlleva a generarse los errores “500, servicio no disponible”, o en el peor de los casos que te suspendan la cuenta de hosting.

Para prevenir o solucionar el error 500 lo que haremos sera desactivar el wp-cron.php de WordPress y activar un cron job desde cPanel.

Para desactivar wp-cron.php tienes que acceder al directorio raíz de tu instalación WordPress y ubicar el fichero wp-config.php para editarlo y agregar la siguiente linea:

/** Desactivar fichero wp-cron.php */

define('DISABLE_WP_CRON', true);

Justo debajo de <?php como se muestra a continuación.

<?php

/** Desactivar fichero wp-cron.php */

define('DISABLE_WP_CRON', true);
/**
 * The base configuration for WordPress
 *
 * The wp-config.php creation script uses this file during the
 * installation. You don't have to use the web site, you can
 * copy this file to "wp-config.php" and fill in the values.
 *
 * This file contains the following configurations:
 *
 * * MySQL settings
 * * Secret keys
 * * Database table prefix
 * * ABSPATH
 *
 * @link https://codex.wordpress.org/Editing_wp-config.php
 *
 * @package WordPress
 */

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

/** MySQL database password */
define('DB_PASSWORD', 'password_here');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

/**#@+
 * Authentication Unique Keys and Salts.
 *
 * Change these to different unique phrases!

Guardamos los cambios y listo el wp-cron.php no se ejecutara repetitivamente sin haber creado un cron-jobs desde cPanel.

En buen hosting es poco probable que el archivo wp-cron.php cause problemas de pantalla en blanco en WordPress.

Activa el modo Debug

Si todo lo anterior no soluciona el problema, activa el modo debug de WordPress, que básicamente es un modo en el que se mostrarán los errores de la web al intentar acceder a ella.

Para ello, abre el fichero wp-config.php y busca la siguiente línea:

define( 'WP_DEBUG', false );

Una vez localizada, solo debes cambiar la palabra false por true.

define( 'WP_DEBUG', true );

Y guardar los cambios. Recarga tu web y ya no veras la pantalla en blanco sino avisos del tipo warning o notice, pero los que te tienen que preocupar son los avisos que dicen fatal error.

Un ejemplo:

Fatal error: Class ‘nombre_de_funcion_’ not found in /url-de-servidor/httpdocs/wp-content/themes/nombre-de-tema/carpeta/archivo.php on line 102

Este es un error en un tema, donde indica que hay un error en la linea 102, la manera más fácil de solucionar el problema es cambiar el tema por otro, pero como no queremos cambiar el diseño de la web lo ideal es corregir el error que se muestra en la linea 102.

Si ves que no hay ningún error, vuelve a colocar la palabra false a la linea del archivo wp-config.php.

Conclusión

En definitiva, estos siempre son los principales problemas causantes del error de pantalla en blanco en WordPress. Espero que esta información te sirva para solucionar el problema, si no sabes cómo hacerlo o tienes alguna duda deja un comentario.

Similar Post