Ayuda WordPress: qué hacer antes de reportar una incidencia

Ayuda WordPress: qué hacer antes de reportar una incidencia

5.00/5 - (17 votes)
17 min de lectura
Guía
500+ proyectos WP

Si la web acaba de dejar de funcionar, no empieces escribiendo a nadie. Empieza por diez minutos que convierten un aviso de «la web no funciona» en un reporte al que se puede responder con algo concreto. Este centro te guía por ese triaje, te enseña dónde están los logs y qué buscar en ellos, dice exactamente qué enviar y describe qué ocurre por nuestra parte al recibir el mensaje. Si tienes más prisa que ganas de leer, baja a la sección «Qué enviar en el reporte» y copia la lista.

#Antes de escribir: diez minutos de triaje

Cuatro preguntas, en este orden. Sus respuestas suelen señalar la causa más rápido que cualquier herramienta.

Qué es exactamente lo que falla. ¿Toda la web, una sola página o solo el panel de administración? Abre la dirección en una ventana privada y desde otra conexión, por ejemplo en el móvil con datos móviles. Si en la ventana privada la web funciona, el problema está en la caché del navegador o en tu sesión, no en el servidor. Si funciona en el móvil pero no en la oficina, revisa el DNS y el firewall de tu lado antes de que nadie empiece a hurgar en WordPress.

Cuál es el mensaje exacto. «No funciona» son cinco fallos distintos. La pantalla en blanco suele ser un error de PHP con la visualización de errores desactivada. El error 500 es un error del servidor, casi siempre un plugin, el tema o el límite de memoria. «Error establishing a database connection» es la base de datos, o sea un camino completamente distinto. Un error 403 al iniciar sesión suele ser una regla de seguridad, no una avería. Anota el código y el texto completo, incluido el número de línea si aparece.

Qué cambió justo antes. Los fallos rara vez llegan solos. Actualización de un plugin, actualización del núcleo, cambio de versión de PHP por parte del alojamiento, caducidad de un certificado, cambio de un registro DNS, fin de la vigencia del dominio, límite del alojamiento superado. La fecha y la hora del último cambio suelen ser el dato más valioso de todo el reporte.

Si tienes copia de seguridad. No la restaures por reflejo, pero confirma que existe y de cuándo es. Si el alojamiento hace copias nocturnas, mira en el panel cuándo fue la última. Ese dato decide si la reparación es arriesgada o reversible.

#Mensaje de error, capa, primera acción

Esta tabla acorta la etapa más larga de cualquier incidencia, que es adivinar dónde hay que mirar siquiera.

Qué vesCapa más probablePrimera acción
Pantalla completamente en blancoPHP, error crítico con el mensaje ocultoActiva el registro de errores en un archivo y recarga la web
HTTP 500Servidor web o PHPLee el error_log del directorio de la web
HTTP 502 o 504PHP-FPM, timeout, API externaRevisa el tiempo de respuesta y los límites del proceso
Error establishing a database connectionBase de datosRevisa las credenciales en wp-config.php y el estado del servicio MySQL
HTTP 403 en /wp-adminRegla de seguridad, firewall de aplicaciónRevisa los logs del firewall y la lista de IP bloqueadas
La web tarda muchísimo en cargarBase de datos, API externa, falta de cachéMide el TTFB y compara el front con el panel
Redirección a un dominio ajenoInfección o plugin sustituidoNo borres archivos, asegura una copia como prueba
«Tu conexión no es privada»Certificado TLSComprueba la fecha de validez del certificado
La web muestra la oferta del registradorDominio caducadoComprueba la fecha de caducidad en la base whois

La columna central importa más que la derecha. La mayor parte del tiempo perdido en una incidencia viene de reparar la capa equivocada: alguien desactiva plugins cuando el problema está en el DNS, o migra el alojamiento cuando la culpa es de un único plugin que consulta una API externa.

#Dónde están los logs y qué buscar en ellos

Sin log, el diagnóstico es adivinar. Hay tres sitios, en este orden de utilidad.

Log de errores de PHP. En la mayoría de alojamientos compartidos está como error_log en el directorio de la web o en el panel, en la sección de logs. Buscas las últimas entradas PHP Fatal error de la hora del fallo. Una entrada así contiene el archivo y el número de línea, y eso suele señalar el plugin culpable en el primer segundo.

Log de WordPress. Si el alojamiento no da log de PHP, activa el tuyo. En wp-config.php, por encima de la línea con el comentario «That’s all, stop editing»:

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

Los errores irán a wp-content/debug.log y los visitantes no verán nada. Después del diagnóstico desactívalo y borra el archivo; un log dejado un mes en producción puede crecer hasta varios gigabytes y convertirse él mismo en la avería.

Log del servidor web. Nginx y Apache registran el acceso y los errores por separado. Te interesa el segundo, en la hora del suceso. En un alojamiento con acceso a la shell basta con tail -n 100 /ruta/a/logs/error.log. Si solo tienes panel, descarga el archivo y ábrelo en un editor de texto, no en una hoja de cálculo, porque las líneas largas quedarán cortadas.

Qué buscar en los tres: una marca de tiempo que coincida con el momento del fallo, la misma línea repetida (eso suele ser un bucle, no una casualidad) y el nombre de la carpeta de un plugin dentro de la ruta del archivo. Qué no hacer: no pegues en el reporte un archivo entero de diez mil líneas. Veinte líneas alrededor de la primera aparición del error valen más que el conjunto completo.

#Los cuatro fallos más comunes y sus primeros auxilios

Los pasos siguientes son seguros, reversibles y no requieren un programador. Si alguno se sale de tu zona de comodidad, párate y escribe; una reparación interrumpida es más fácil de terminar que una reparación agravada.

Pantalla en blanco o error 500 tras una actualización. Primero desactiva el plugin actualizado en último lugar. Si no tienes acceso al panel, cambia el nombre de su carpeta en wp-content/plugins/ desde el gestor de archivos del alojamiento o por FTP; WordPress lo desactivará. Si eso no ayuda, cambia el nombre de toda la carpeta plugins por plugins-off, comprueba la web y restaura el nombre. Eso resuelve en un minuto si la culpa es de un plugin o del tema. Cuando tienes acceso a la línea de comandos, wp plugin deactivate --all hace lo mismo de forma más limpia y permite reactivar los plugins de uno en uno.

Web de repente lenta. Comprueba si lo lento es la carga de la web o el panel. Un panel lento con un front rápido suele ser la base de datos o una API externa, por ejemplo un plugin que consulta el servidor de licencias en cada visita. Un front lento con un panel rápido suele ser la caché, las imágenes o el alojamiento. Mide antes de optimizar: PageSpeed Insights muestra a la vez el resultado de laboratorio y los datos de usuarios reales de CrUX, y estos últimos importan más, porque describen lo que experimentan las personas y no una simulación. Aparte, comprueba el tiempo de respuesta del propio servidor, por ejemplo curl -o /dev/null -s -w "%{time_starttransfer}\n" https://tudominio.es/. Un resultado por encima de un segundo indica un problema del lado del servidor, no en las imágenes ni en los scripts.

No puedo iniciar sesión. Antes de considerarlo una avería, comprueba tres cosas: si un plugin de seguridad ha cambiado la dirección de acceso, si tu IP ha quedado bloqueada tras intentos fallidos y si el reloj del servidor se ha desajustado, porque eso rompe las sesiones. El restablecimiento de contraseña por formulario necesita que el correo funcione, así que si los mensajes no salen, no servirá. Salida de emergencia: wp user update admin --user_pass=NuevaClave desde la línea de comandos, o cambiar la contraseña directamente en la base de datos con la función MD5, que WordPress acepta en el primer inicio de sesión y sustituye de inmediato por su propio hash.

Sospecha de infección. Síntomas: redirecciones a un dominio ajeno solo desde los resultados de búsqueda, administradores nuevos que tú no creaste, un aviso en Search Console, spam en el contenido visible únicamente para Googlebot. Revisa la lista de usuarios con rol de administrador y las fechas de modificación de los archivos, por ejemplo find . -type f -mtime -7 -name "*.php", para ver qué ha cambiado en la última semana. No borres archivos ni restaures copias hasta determinar la fecha de la primera entrada; una copia de hace una semana suele contener ya el mismo agujero. Cambia las contraseñas, incluidas las de la base de datos y el FTP, y escríbenos indicando la infección.

#Una incidencia en una tienda WooCommerce lleva otro orden

En una tienda, el reflejo de «desactiva todos los plugins» sale caro, porque junto con el diagnóstico desactiva los pagos, los envíos y las integraciones de almacén. El orden es el inverso al de una web de presentación.

Primero determina si entran pedidos. La lista de pedidos de la última hora responde a eso más rápido que cualquier log. Si entran y los clientes reportan problemas, el fallo está en las notificaciones o en el pago, no en la tienda en sí. Si no entra ninguno, revisa la página del carrito y la de finalización de compra en una ventana privada, porque ambas quedan fuera de la caché y se rompen de forma distinta al resto de la web.

Las notificaciones por correo son un fallo aparte, muy frecuente, que parece un fallo de la tienda. Comprueba si el correo sale siquiera y si no acaba en el spam del destinatario. Tres registros DNS lo deciden casi por completo: SPF, DKIM y DMARC. Si la tienda envía correo directamente desde el servidor del alojamiento sin esos registros, parte de los mensajes no llegará y ningún cambio en el plugin lo arreglará.

Si el fallo afecta a un solo método de pago, comprueba en el panel del proveedor si no ha caducado la clave de API o el certificado de la integración. Es la situación en la que la web funciona bien, los logs están limpios y las ventas están paradas, así que sin comprobarlo del lado del proveedor se pueden pasar horas buscando en el código propio.

#Cuándo no se trata siquiera de un fallo de la web

Cuatro casos en los que WordPress es inocente y diagnosticar de su lado solo hace perder tiempo.

Dominio caducado. Síntoma: en lugar de la web se ve la oferta del registrador o una página vacía. Lo compruebas en la base whois, con una sola consulta, y ves la fecha de caducidad. La renovación suele funcionar en unos minutos, aunque en casos extremos el dominio entra en periodo de rescate y cuesta bastante más que una prórroga normal.

Un cambio de DNS que todavía no se ha propagado. Síntoma: parte de la gente ve la web nueva y parte la antigua. dig tudominio.es +short muestra a qué dirección apunta el dominio desde tu perspectiva. Los cambios se propagan según el valor del TTL, así que si alguien lo puso en un día, eso es lo que durará y no se puede acelerar desde la web.

Certificado caducado. Síntoma: aviso del navegador sobre una conexión no confiable. La fecha de validez la lees con openssl s_client -connect tudominio.es:443 2>/dev/null | openssl x509 -noout -dates. La renovación automática puede fallar cuando entretanto ha cambiado el DNS o se ha añadido una redirección que bloquea la verificación.

El alojamiento ha suspendido la cuenta. Síntoma: un mensaje del alojamiento en lugar de la web, a veces tras superar el límite de transferencia o tras una factura impagada. Aquí no hay nada que reparar en el código, solo una conversación con el alojamiento, pero después conviene revisar qué generó ese tráfico, porque con la misma frecuencia se trata de un bot y no de clientes.

#Qué enviar en el reporte

Cuanto más de esta lista aportes desde el principio, menos rondas de preguntas y antes recibirás una respuesta de fondo en lugar de una petición de datos.

DatoPor qué hace falta
Dirección de la web y de la página concreta con el errorReproducimos el problema en nuestro entorno antes de cambiar nada
Nombre del alojamiento y tipo de cuentaLos límites, la versión de PHP y el acceso a los logs varían entre alojamientos
Fecha y hora del falloPermite localizar el evento en los logs del servidor
Texto exacto del errorEl código y el mensaje indican la capa: PHP, base de datos, servidor web, red
Veinte líneas de log alrededor del errorAcorta el diagnóstico más que cualquier descripción escrita
Último cambio antes del falloLa causa más frecuente y la vía más rápida para revertir
Quién más tiene accesoDescarta que dos personas trabajen a la vez sobre la misma web
Si existe copia y de cuándoDecide si la reparación es reversible
Si las ventas están paradasFija el orden de los trabajos antes de empezar

Lo que no hay que enviar en el primer mensaje: contraseñas. Los accesos se acuerdan después del alcance y preferiblemente como una cuenta de administrador aparte que borras al terminar los trabajos. Si el asunto es urgente, dilo con claridad e indica qué significa urgente en tu caso: que la tienda no acepte pedidos no es lo mismo que un formulario de contacto que envía dos veces.

#Qué ocurre por nuestra parte

El reporte llega a una sola persona, no a una cola de primera línea, así que no explicas el caso dos veces. La primera respuesta contiene lo que hemos podido deducir de tu descripción y una pregunta solo por lo que realmente falta.

Después viene el diagnóstico. Es una etapa aparte y cerrada, con su propio precio, así que sabes a qué accedes antes de que nadie toque la web. Su resultado es la causa, el alcance de la reparación y el coste, por escrito. Los trabajos arrancan tras la confirmación del alcance, no tras un «adelante» de palabra. Si por el camino aparece algo fuera del alcance, nos paramos y lo presupuestamos aparte, en lugar de añadirlo a la factura a posteriori.

La reparación la hacemos sobre una copia o en un entorno de pruebas siempre que es posible, y los cambios en producción entran en un único despliegue con opción de revertir. Al terminar recibes una explicación de cuál fue la causa y de qué hacer para que no vuelva. Esto último suele importar más que la reparación en sí, porque un fallo que regresa dentro de tres meses cuesta una segunda vez.

#Qué no hacemos

No hacemos diseño gráfico. El layout y la colocación de los elementos en cada vista, es decir el wireframe, los aporta el cliente; nosotros implementamos a partir de ahí la interfaz responsive, las integraciones y la capa de rendimiento. Para recoger la estructura tenemos una plantilla de hoja de cálculo que enviamos al inicio.

No tenemos guardia nocturna ni de fin de semana y no vendemos tiempos de respuesta que no podamos cumplir. Si tu tienda necesita una ventana de respuesta garantizada, eso es un contrato de mantenimiento aparte, no una nota al pie de un reporte de incidencia.

No hacemos cosas «de paso». Cada asunto nuevo que aparezca durante el trabajo recibe su propio presupuesto. Suena rígido y en la práctica evita a ambas partes una factura que nadie esperaba.

Tampoco vendemos una reconstrucción como respuesta a una incidencia. Si la web se puede reparar en unas horas, lo decimos, aunque una propuesta de migración nos resultara más rentable. La migración tiene sentido cuando el coste de mantener la solución actual supera el coste del cambio, y eso se puede calcular, no intuir.

#Si la web ha vuelto sola, el caso no está cerrado

Un fallo que ha pasado sin intervención es peor que uno que sigue activo, porque desaparece junto con las pruebas y vuelve en el peor momento. Las tres causas más frecuentes de fallos intermitentes se ven idénticas desde fuera.

La primera es el límite de recursos. El alojamiento compartido asigna a la web un número determinado de procesos PHP simultáneos y, superado ese número, rechaza las peticiones siguientes, normalmente con un error 503 o 508. Basta con que un bot recorra la tienda con los filtros para que durante tres minutos la web no responda a nadie. En el log de acceso verás entonces una serie de peticiones desde una misma dirección en el mismo segundo.

La segunda es una tarea programada. WordPress ejecuta su propio planificador aprovechando las visitas, así que una tarea pesada, por ejemplo generar un informe o sincronizar con el almacén, le toca a un usuario cualquiera y le bloquea la web. Síntoma: fallos a horas regulares o siempre después de la misma acción en el panel.

La tercera es una API externa sin límite de tiempo. Un plugin consulta el servidor del proveedor, el proveedor tiene una avería y tu web espera la respuesta tanto tiempo como permita la configuración de PHP. Entonces la web no está rota, solo esperando, y vuelve sola cuando aquel servidor se recupera.

Qué hacer para capturarlo la próxima vez: activa el registro de errores en un archivo antes de que vuelva, anota las horas exactas de los últimos días y comprueba si forman un patrón. Tres marcas de tiempo y un log son el conjunto con el que se puede trabajar. Sin ellos solo queda esperar a la siguiente vez.

#Adónde ir después

Si ya sabes qué necesitas, ve directamente a la página adecuada en lugar de escribir un reporte genérico.

#Dos cosas que conviene hacer hoy, antes de que algo se rompa

Comprueba si tu copia de seguridad se puede restaurar. No si existe, sino si funciona. Una copia que nadie ha restaurado nunca es una suposición, no una protección, y el momento del fallo es el peor para descubrirlo. El procedimiento lleva media hora: monta un entorno de pruebas en el mismo proveedor de alojamiento, restaura allí la última copia, entra en el panel, abre tres páginas al azar y comprueba si el número de entradas y de pedidos coincide con producción. Apunta cuánto ha tardado, porque ese es tu tiempo real de recuperación tras un fallo y es mejor conocerlo por un ensayo que por una avería.

La segunda cosa lleva un minuto: apunta dónde está el dominio, dónde el alojamiento, quién tiene acceso a ellos y cuándo caducan. Sorprendentemente a menudo la avería no es una avería, sino un dominio o un certificado caducado, y responder a «¿dónde está contratado esto?» lleva medio día porque la persona que lo dio de alta hace tiempo que no trabaja en la empresa. En ese mismo papel anota quién es administrador en WordPress y si cada una de esas cuentas sigue siendo necesaria. Las cuentas de antiguos colaboradores son la entrada más habitual que nadie vigila.

Recomendaciones de LinkedIn

Recomendaciones y opiniones sobre el trabajo con WPPoland

Recomendaciones seleccionadas de líderes de las comunidades WordPress, WordCamp y e-commerce - con énfasis en la entrega puntual, profundidad técnica y enfoque orientado al negocio en el desarrollo WordPress.

Karolina Czapla

Karolina Czapla

Estratega de Marketing, Performance & Digital Strategy

“Trabajar con Mariusz en el WordCamp me ha mostrado lo poco común que es combinar competencias técnicas profundas con un verdadero liderazgo. Planifica, coordina y entrega con precisión, a la vez que da al equipo espacio ...”

Co‑organizadora, WordCamp Gdynia 2024 y 2025

Argert Boja

Argert Boja

Senior Full‑Stack Developer

“Mariusz es el compañero de equipo que todos esperan tener: competencias técnicas profundas full‑stack en WordPress, explicaciones claras y una actitud positiva incluso bajo presión. Se mueve con soltura entre plugins per...”

Trabajamos juntos en proyectos WordPress

Daniel Blossfeld

Daniel Blossfeld

Consultor de Optimización de Procesos y Digitalización

“Tuve el placer de trabajar con Mariusz durante casi tres años. En ese tiempo, sus competencias técnicas profundas en desarrollo WordPress resultaron de un valor incalculable en una variedad de proyectos, desde la constru...”

Mariusz fue su cliente en proyectos WordPress

Jessica Di Pasquale

Jessica Di Pasquale

Liderando iniciativas de SEO con estrategias de crecimiento basadas en datos.

“Mariusz es una persona muy hábil, paciente y experta. Siempre dispuesto a ayudar y corregir errores, valoré mucho trabajar con él. ¡Es un compañero estupendo!”

Gestionó a Mariusz directamente

Belinda Koch

Belinda Koch

Analista de Web-Tracking en TUI

“Mariusz es una persona estupenda con quien trabajar. Está extremadamente motivado por aprender cosas nuevas y compartir su conocimiento, y domina una amplia gama de temas. Trabajamos juntos en analítica digital y trackin...”

Trabajó con Mariusz en temas de analítica digital y tracking

Paweł Lewczuk

Paweł Lewczuk

Desarrollador Front-end, Desarrollador WordPress

“Colaboré con Mariusz en varios proyectos y nuestra cooperación fue siempre ejemplar. Creo que aún tenemos por delante muchos proyectos conjuntos. ¡Muy recomendable!”

Mariusz fue cliente de Paweł

¿Con qué rapidez respondéis a un reporte?#
En días laborables, normalmente el mismo día. Respondemos con contenido, no con un acuse de recibo: te contamos qué vemos a partir de tu descripción y qué falta para empezar. No tenemos guardia nocturna y no prometemos tiempos de respuesta que no podamos cumplir.
¿Reparáis webs que no habéis construido vosotros?#
Sí, es la mayoría de los reportes. No exigimos rehacer la web ni cambiar de alojamiento. Si resulta que la causa está en una solución que hay que sustituir, lo decimos con claridad junto con el coste, en lugar de hacerlo de paso durante la reparación.
¿Y si la web está infectada?#
No borres archivos por tu cuenta ni restaures una copia antigua sin comprobar la fecha de la infección, porque una copia de hace una semana suele contener ya la misma entrada. Escribe de inmediato indicando que sospechas de una infección: aseguramos las pruebas, determinamos el vector y solo después limpiamos.
¿Cuánto cuesta?#
El presupuesto llega después de definir el alcance, no antes. El diagnóstico es la primera etapa y tiene su propio precio cerrado, para que sepas a qué accedes antes de que nadie toque la web. Los trabajos arrancan tras la confirmación por escrito del alcance.
¿Tengo que daros acceso de administrador de inmediato?#
No. Para el diagnóstico suele bastar con la dirección de la web y la descripción. Pedimos los accesos cuando ya se sabe qué vamos a hacer, y preferiblemente como una cuenta aparte que borras al terminar los trabajos.
¿Hacéis el diseño gráfico de la web?#
No. El layout y la colocación de los elementos, es decir el wireframe, los aporta el cliente; nosotros implementamos a partir de ahí la interfaz responsive, las integraciones y la capa de rendimiento. Para recoger la estructura tenemos una plantilla de hoja de cálculo lista.

¿Necesitas un FAQ adaptado a tu sector y mercado? Preparamos una versión alineada con tus objetivos de negocio.

Hablemos

Artículos Relacionados

Googlebot y JSON-LD: una sola pasada de unescape

Google cambió la extracción de JSON-LD y ahora aplica una sola pasada de unescaping de HTML. Las entidades con doble escape ya no se despliegan, el bloque deja de parsear y los datos estructurados desaparecen. Cómo medir tu propio corpus y cómo codificar bien.