¿Qué es el "500 Internal Server Error" y cómo solucionarlo?
Este tutorial abarca los siguientes temas:
El error “HTTP 500 Internal Server” es bastante general, ya que puede ser causado por una amplia gama de problemas. Debido a eso, es posible que te encuentres con él con bastante frecuencia.
Este artículo explicará el “HTTP Error 500” y cómo solucionarlo.
¿Qué significa “HTTP 500 Internal Server Error”?
El código de estado HTTP “500 – Internal Server Error” es uno de los muchos códigos de error HTTP 5.XX (500, 502, 503, 504, etc.). Cada uno de ellos especifica un problema diferente, pero el denominador común que comparten es que te dicen que algo está mal con el servidor del sitio web.
El error HTTP 500, en particular, indica que el servidor ha encontrado una condición inesperada que le impidió cumplir con la solicitud.
En otras palabras, el servidor de alojamiento no puede determinar el problema exacto y mostrar un mensaje más específico. En cambio, responde con el error “500 Internal Server Error”, lo que significa que no está claro qué es lo que está mal.
Es posible que veas diferentes variaciones de mensajes ya que muchos sitios web y servidores web personalizan la página de error.
Algunos ejemplos del mensaje de error incluyen:
- 500 Internal Server Error
- Internal Server Error 500
- HTTP Error 500
- HTTP Status 500 – Internal Server Error
- Error 500 Internal Server Error
- 500 Error
- 500. That’s an error
Aparte del texto, el aspecto de la página puede variar para diferentes sitios web. A continuación puedes ver una versión genérica de la página “Internal Server Error”.
Otras veces, la página puede tener un diseño personalizado, como se ve en la siguiente imagen.
Estos son solo algunos ejemplos de la página de error y puedes verla en innumerables variaciones. Independientemente de cómo se vea la página, siempre tiene el mismo significado: hay un problema que el servidor no puede identificar y le impide cargar el sitio web.
¿Cuáles son los problemas comunes que pueden causar un error interno del servidor HTTP 500?
Aunque la definición del error indica que el problema proviene del servidor, ese no siempre es el caso. Algunos de los problemas comunes que pueden causar el error son:
- Caché corrupta del navegador
- Problemas de conectividad temporales
- Errores de sintaxis o reglas incorrectas en el archivo .htaccess del sitio web
- Permisos incorrectos de archivos y carpetas
- Versión de PHP incorrecta para el sitio web
- Archivo .htaccess dañado
- Base de datos del sitio web corrupta
- Problemas con los temas y plugins de WordPress
- Límite de memoria PHP agotado en el sitio web
- Archivos core corruptos de WordPress
- Archivos grandes en tu sitio web
- Problemas con el servidor MySQL
¿Cómo arreglar el error “500 Internal Server”?
Como puede ver en la lista anterior, los orígenes del error son bastante diversos. Dado que la página de error no indicará claramente el problema, es posible que debas solucionar algunas de las posibles causas hasta que encuentres el culpable.
Repasaremos la mayoría de los posibles problemas y sus soluciones.
¿Cómo arreglar el “HTTP Error 500” como visitante?
Como visitante, lo único que puedes hacer es comprobar si un problema de conectividad desde tu lado causa el error. También puedes aplicar las siguientes acciones como propietario de un sitio web, ya que estas son las comprobaciones más rápidas. Si el error es causado por un problema local desde tu lado, los pasos a continuación pueden ahorrarte mucho tiempo de resolución de problemas.
Recargar la página
El “HTTP Error 500” puede ser visible solo para ti, en caso de que haya un breve problema de conectividad. El sitio web en si puede estar funcionando bien, pero es posible que hayas intentado acceder cuando hubo un tiempo de inactividad momentáneo, o tu red no pudo establecer una conexión con el servidor del sitio web.
Intenta recargar la página en el mismo navegador con el botón Recargar o presionando el atajo de teclado Command + R para Mac, o F5 (Control+F5) para Windows.
Si el sitio web se carga correctamente, el problema fue solo temporal y puedes detener la resolución de problemas.
Limpia la caché y las cookies de tu navegador
Cuando el sitio web no se abre después de recargar, es posible que tu navegador mantenga archivos de caché y cookies caducados o corruptos. Recargar la página no los eliminará, por lo que debes limpiarlos manualmente.
Lee esta guía sobre cómo limpiar la caché y las cookies en los navegadores de escritorio para obtener instrucciones detalladas.
Revisa estos artículos sobre cómo eliminar la caché en un teléfono Android o iPhone, si usas un dispositivo móvil.
Alternativamente, puedes probar abriendo la página desde otro navegador. Por ejemplo, si usas Chrome, prueba Firefox o viceversa.
Después de limpiar la caché del navegador, vuelve a cargar la página para ver si eso resolvió el problema. Si no es así, procede con el siguiente paso.
Visitar el sitio web usando otra red
Los problemas de conectividad que causan el “error HTTP 500” pueden ocurrir en toda tu red. En este caso, probablemente verás el error en cualquier dispositivo en esta red.
Para probar si este es el problema, cambia a otra red. Por ejemplo, si usas un teléfono móvil conectado a Wi-Fi, cambia a datos móviles.
¿Cómo arreglar el error interno del servidor HTTP 500 del sitio web?
En el mejor de los casos, los pasos mencionados anteriormente solucionarán el problema. Sin embargo, si el error persiste, es posible que debas investigar más a fondo el problema, ya que el error proviene del sitio web en si.
Como propietario de un sitio o webmaster, hay varias comprobaciones que puedes hacer para resolver el “500 Internal Server Error”.
Comprueba los registros de errores del sitio web
En muchos casos, los archivos o scripts mal configurados son la fuente de los errores del sitio web. Los registros de errores pueden ayudarte a identificarlos más fácilmente.
Normalmente, deberías tener dichos registros en el panel de control de tu hosting. Los usuarios de SiteGround pueden encontrar el Registro de errores en el Site Tool del sitio web.
Para acceder, navega a la sección Sitios web en tu Área de Cliente. Abre el Site Tools del sitio respectivo, selecciona Estadísticas y haz clic en Registro de errores.
Verás los errores más recientes en tu sitio web que el servidor detectó. Cada error se registrará con algunos datos clave:
- La fecha y hora del error.
- Descripción del error.
- Información sobre qué carpeta o archivo posiblemente está generando el error.
A continuación, puedes ver un registro de errores que indica un problema con el archivo .htaccess.
Este registro indica que el problema proviene del archivo .htaccess ubicado en la carpeta raíz del sitio web. También especifica que el error está relacionado con un argumento <IfModule> que falta, lo que significa que hay un error de sintaxis.
Con esta información, puedes navegar a la carpeta especificada desde el Gestor de archivos, editar el archivo .htaccess y corregir el error de sintaxis.
Ten en cuenta que el Registro de errores registra errores relacionados con la configuración del servidor. Los errores causados por la configuración incorrecta de PHP y los scripts no se registran, ya que ocurren a nivel de aplicación.
Los errores de PHP se registran en el php_errorlog. Se genera automáticamente en la carpeta del archivo PHP infractor. En el hosting de SiteGround, el registro de errores de PHP está activo por defecto. Si lo has desactivado anteriormente o tu hosting no lo ha habilitado, lee esta guía sobre cómo habilitar el informe de errores en un script PHP.
Para inspeccionar el registro de errores de PHP, puedes usar el Gestor de archivos o el cliente de FTP. Navega a la carpeta raíz, si el error es causado por un script ubicado en la carpeta raíz. Abre el archivo php_errorlog, donde puedes examinar los errores.
El php_errorlog muestra errores generales de PHP. Sin embargo, es posible que necesites un registro más detallado del problema. Si tienes un sitio web de WordPress, también puedes habilitar el registro de depuración para WordPress que puede mostrar más información. Para conocer los pasos detallados sobre cómo habilitar el registro de depuración de WordPress, consulta esta guía.
Restablecer permisos de archivos y carpetas
Otro problema común que puede causar el “error HTTP 500” son los permisos de archivos y carpetas incorrectos en su sitio web. Si los permisos impiden que los visitantes abran los archivos y carpetas críticos del sitio web, es posible que vean la página de error.
Los permisos estándar son 644 para archivos y 755 para carpetas. Puedes cambiarlos desde el Gestor Archivos en tu panel de hosting o desde un Cliente FTP.
Para configurar los permisos para los sitios de WordPress, los clientes de SiteGround pueden usar la herramienta Restablecer permisos para WordPress en Site Tools.
Si tu sitio web usa otro tipo de aplicación, lee esta guía sobre cómo cambiar los permisos de los archivos y carpetas desde el Gestor archivos.
Alternativamente, si el panel de tu hosting no tiene herramientas similares, puedes cambiar los permisos desde SSH o desde un cliente FTP.
Cambiar la versión de PHP
Una versión incorrecta de PHP en tu sitio web puede hacer que los scripts PHP agoten el tiempo de espera o producir errores fatales. Como resultado, el sitio web puede devolver el “HTTP 500 Error”.
Prueba cambiando la versión de PHP a una versión anterior o posterior. Si el error desaparece, es una indicación de que la versión anterior era incorrecta. Mantén el sitio en la recién seleccionada versión.
Los usuarios de SiteGround pueden cambiar fácilmente la versión de PHP con solo unos pocos clics en Site Tools. Para conocer los pasos detallados, consulta esta guía sobre cómo cambiar a una versión PHP diferente en Site Tools.
Inspeccionar o regenerar el archivo .htaccess
Una causa común del “Internal Server Error” es un problema dentro del archivo .htaccess. Si el archivo está dañado, define una carpeta raíz incorrecta o contiene errores de sintaxis, el resultado habitual es la página “HTTP 500 Error”.
Corregir el error de sintaxis en .htaccess
Como ejemplo de error de sintaxis, podemos usar el error mencionado anteriormente del registro de errores.
2022-05-17 14:32:40 UTC [apache][core:alert] [pid 68451] [client 35.214.177.225:57966] /home/user/www/sg-testing.com/public_html/.htaccess: <IfModule> directive requires additional arguments
Para inspeccionar el archivo, abre el Site Tools del sitio web. Luego, selecciona la sección Sitio web y abre Gestor archivos.
Navega a la carpeta raíz del sitio web, que es el nombre del sitio/public_html. En nuestro ejemplo, el nombre es sg-testing.com, por lo que la ruta de la carpeta es sg-testing.com/public_html.
En esta carpeta, puedes encontrar el archivo .htaccess. Selecciona el archivo y luego presiona Editar para abrir el editor de código.
Ahora puedes inspeccionar su código. Como apunta el registro de errores, el problema es del <IfModule>. El problema es un error de sintaxis porque al módulo le falta una barra diagonal en la etiqueta de cierre </IfModule>.
Añade la barra y luego guarda los cambios con el botón Guardar. Vuelve a cargar el sitio web y ahora debería cargar correctamente.
Carpeta raíz del sitio web incorrecta definida en .htaccess
Otro error común en el .htaccess es la carpeta raíz definida incorrectamente para el sitio web. Por lo general, esto es el resultado de uno de los siguientes casos:
- Transferiste el sitio web desde otro proveedor de alojamiento donde residía en una subcarpeta.
- Desarrollaste el sitio web en una subcarpeta y luego lo moviste a la carpeta del dominio principal en el mismo alojamiento.
- Para un sitio web de WordPress, instalaste un plugin que ha cambiado el RewriteBase en .htaccess. El plugin puede necesitar una configuración adicional para funcionar con el código modificado, pero actualmente, el sitio web es inaccesible debido al “500 Internal Error”.
Para ilustrar mejor el problema, podemos usar el siguiente ejemplo.
Fíjate en la ruta /dev en RewriteBase. Este código indica al servidor que cargue el sitio web desde una carpeta llamada public_html/dev. Dado que la carpeta no existe, cuando cargas una página desde el sitio web, producirá el error “Internal Server Error”.
Para solucionar el problema, simplemente elimina la ruta de la subcarpeta de RewriteBase para que el código se vea así:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !/(wp-content\/uploads/.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Este es el código predeterminado de WordPress que define la carpeta raíz del sitio web. Confirma el cambio en el Gestor de archivos con el botón Guardar y vuelve a cargar el sitio web. El error ya no debería aparecer.
Regenerar el archivo .htaccess
Otro escenario estándar que puede solucionar el problema es reemplazar el archivo .htaccess con una nueva copia. Para reemplazar el archivo con una nueva copia, abre el Gestor de archivos, navega a public_html, selecciona el archivo .htaccess y elige Renombrar.
Puedes elegir cualquier nombre para el archivo. Por ejemplo, puedes nombrarlo htaccess-old y crear un nuevo archivo .htaccess.
Si el sitio web es WordPress, accede al panel de WordPress, navega a la sección Ajustes y abre Enlaces permanentes. Simplemente haz clic en el botón Guardar cambios y tu sitio web generará un nuevo archivo .htaccess con el código predeterminado de WordPress.
Si tu sitio web no es WordPress, busca el código .htaccess predeterminado para tu aplicación específica. Usa el botón Nuevo archivo en el Gestor de archivos y nombra el nuevo archivo .htaccess. Pega el código predeterminado en .htaccess y guarda los cambios.
Después de configurar el nuevo archivo .htaccess, vuelve a cargar el sitio web para ver si el error ha desaparecido.
Reparar la base de datos o arreglar las credenciales de la base de datos
Otro problema común que puede causar el “500 Internal Server Error” es una base de datos corrupta de tu sitio web. Puedes considerar restaurar la base de datos desde una copia de seguridad o repararla.
Para WordPress, el error puede ocurrir si el sitio web no se conecta a la base de datos. Asegúrate de que las credenciales estén configuradas correctamente en el archivo wp-config.php.
Para obtener pasos detallados, lee esta guía sobre cómo corregir el error ‘Estableciendo una conexión de base de datos’ en WordPress.
Desactivar plugins para tu sitio web de WordPress
Un plugin mal configurado también puede desencadenar el “Error HTTP 500” en WordPress. El procedimiento estándar es desactivar los plugins uno por uno hasta encontrar el culpable.
Si el error está solo en el front-end, pero aún tienes acceso al panel de administración de WordPress, puedes desactivar los plugins desde la sección Plugins. Luego elige Plugins instalados. En el menú desplegable Acciones en lote, selecciona Desactivar. Marca la casilla Plugin y presiona Aplicar para desactivar todos los plugins.
En muchos casos, el error te impide iniciar sesión en el panel de WordPress, por lo que es posible que debas usar una forma alternativa.
Una sugerencia popular que encontrarás online es cambiar el nombre de la carpeta wp-content/plugins. No recomendamos este método ya que puede arreglar el “Error HTTP 500”, pero causar otras complicaciones.
Es más seguro y eficiente desactivar todos los plugins de Site Tools (si eres usuario de SiteGround) o de la base de datos.
Lee las siguientes guías para ver los pasos detallados:
- Cómo deshabilitar todos los plugins desde Site Tools
- Cómo deshabilitar todos los plugins desde la base de datos del sitio web
Después de desactivar los plugins, vuelve a cargar el sitio web. Si el sitio web está arreglado, es una fuerte indicación de que el error es causado por uno de los plugins.
Procede activando los plugins uno por uno. Cuando se reactive el plugin defectuoso, el error volverá. Luego puedes desactivar los plugins de nuevo para acceder al panel de control y activar todos los plugins excepto el problemático.
Puedes considerar reemplazar este plugin por otro o contactar a sus desarrolladores para reportar el problema.
Cambia el tema de tu sitio web de WordPress
Un tema mal configurado también puede causar el “500 Internal Server Error” en WordPress. Para comprobar si el tema es el problema, necesitarás reemplazarlo con otro.
Por lo general, puedes cambiar el tema desde el panel de WordPress del sitio web. Sin embargo, en muchos casos, el “Error HTTP 500” te impide iniciar sesión.
Lee esta guía sobre cómo cambiar el tema de WordPress para obtener más información.
Aumentar el límite de memoria PHP del sitio web
El “Error HTTP 500” también puede ser causado por scripts PHP que excedieron el límite de memoria de tu sitio web. Por defecto, el límite en todos los planes de SiteGround está configurado en 512M. Sin embargo, tu sitio web de WordPress puede estar configurado a un valor más bajo. Para aumentar el límite de memoria, sigue los pasos de esta guía sobre cómo aumentar el límite de memoria WP.
Restaurar una copia de seguridad del sitio web
Si ninguna de las soluciones ayudó a resolver el problema o si la implementación es difícil, puedes considerar restaurar el sitio web desde una copia de seguridad. Restaurar el sitio web revertirá todos los cambios que causaron el error en primer lugar.
Los usuarios de SiteGround pueden consultar este tutorial detallado sobre la herramienta de copia de seguridad del sitio web.
Comprueba si tu sitio web contiene archivos grandes
Otra razón común para este error es tener un archivo muy grande como parte de tu sitio web. En los servidores de hosting compartido de SiteGround hay un límite de tamaño para los archivos que se pueden abrir a través de la web. El límite es de 8GB, y si tu sitio web incluye un archivo más grande, esto resultará en el error anterior.
Comprueba los archivos de tu sitio web a través de SSH, FTP o el Gestor de archivos para localizar el que está causando el problema. Muy a menudo, estos son registros con errores de PHP.
En los servidores de SiteGround, un archivo de registro se crea automáticamente si los scripts PHP de tu sitio producen errores o advertencias no críticos durante su ejecución. El nombre del archivo de registro es php_errorlog, y está ubicado en el mismo directorio que el script que produjo los errores. Por lo general, esta sería la carpeta raíz de tu sitio web.
Ponte en contacto con el proveedor de alojamiento web
En última instancia, el “500 Internal Server Error” puede no ser causado por la configuración de tu sitio web. El servidor MySQL puede estar caído o el servidor puede estar sobrecargado. Ponte en contacto con el equipo de soporte de tu alojamiento web para que puedan comprobar el estado del servidor y ayudarte con el problema.
Monitoriza errores 5xx para proteger tu SEO
Los errores 5xx pueden dañar el ranking orgánico de tu sitio. Para mantener un buen rendimiento de SEO, realiza comprobaciones masivas regularmente utilizando herramientas como Website Auditor. Esta herramienta identifica todas las páginas con 500 códigos de error y te permite exportar la lista para un análisis detallado y administración, asegurando que puedas resolver los problemas rápidamente y mantener tu sitio optimizado.
Para comenzar el escaneo, abre el software, crea un nuevo proyecto y deja que rastree y analice las páginas del sitio. Una vez que se complete el escaneo, ve al módulo de Auditoría del sitio y revisa la sección Indexación y rastreabilidad para recursos con códigos de estado 5xx.
Resumen
El HTTP “500 Internal Server Error” puede ser muy frustrante de tratar debido a su naturaleza poco clara. El problema puede originarse por un problema local o un error en el sitio web o el servidor.
Esta guía puede ayudarte a reducir las causas para corregir el error de manera más eficiente.
El “HTTP 500 Error” es uno de los muchos códigos de error. Lee esta guía para obtener más información sobre los diferentes códigos de error.
Para obtener más información sobre cómo arreglar otros códigos de estado 5.X.X, lee los siguientes artículos: