¿Cómo eliminar errores 404 extraños en wp-admin?
Administro un sitio WordPress con aproximadamente 70 plugins activos.
De vez en cuando, obtengo una página de error aleatoria ("No encontrado", aunque no he verificado los encabezados para ver si es un 404) en una página de /wp-admin/
que aparece de la nada.
Simplemente intentarlo de nuevo resuelve el error, sin embargo, es bastante inconveniente si el error ocurre durante una actualización de plugin (porque la reactivación automática falla). Creo que este mismo problema es responsable de que ciertos módulos en mi Panel de Control fallen al cargar algunas veces.
Dada la lista de plugins que tengo instalados, ¿alguien conoce problemas con o entre alguno de ellos que puedan causar este problema?
Edición:
Información del hosting: DreamHost; creo que el servidor está ejecutando una compilación personalizada de Debian con Apache httpd

Estuve teniendo problemas todo el día con lo que parecían ser errores 404 mal activados.
En fin, acabo de terminar una conversación con un técnico de soporte de Dreamhost quien me informó que una cuenta de usuario que tengo con ellos estaba alcanzando los límites de recursos de memoria de procesos (todos los procesos) y eso era lo que estaba causando problemas extraños, aparentemente relacionados con htaccess. ¡Estaba recibiendo errores 404 intermitentes de un archivo htaccess que ni siquiera debería haber sido llamado! Era Dreamhost con un servidor de casa embrujada.
Al parecer, el robot terminador de procesos que usa Dreamhost mata un proceso web a la mitad y luego, por alguna razón, el Apache (ahora convertido en zombie) intenta terminar su trabajo (mi mejor suposición es que hace lo posible por salir limpiamente de un subrequest con un final poco glamoroso). Registra un error 500 en el log HTTP principal, pero después de hacerlo, ¡ejecuta la condición de reescritura y la regla que nunca deberían haberse activado (usando los estándares -f para archivos y -d para directorios en el htaccess previo) - y no registra una nueva entrada en el log! Una nueva solicitud (del hombre invisible) luego activa el archivo índice en la última línea del htaccess.
¡Cuidado con los límites de recursos en las cuentas básicas de Dreamhost! Si excedes sus límites y tienes un htaccess con reglas de mod_rewrite, verás cosas extrañas que solo son aptas para la noche de Halloween - ¡hombres invisibles, errores 404 fantasmales! ¡Procesos no muertos! ¡Apache zombie! ¡Htaccess que se mueve solo! ¡Qué miedo!
Espero que esto te ayude a evitar algunas horas de sufrimiento.

Definitivamente tengo muchas reglas de mod_rewrite
en mis archivos .htaccess
. Parece que esto es lo que me está pasando. Sabía que alcanzaba los límites de memoria con mis trabajos de respaldo, pero no para peticiones "reales". Gracias por compartir tu experiencia; espero que tu respuesta le ahorre tiempo a mucha gente.

La única forma de depurar esto es desactivar un plugin a la vez, intentando reproducir el problema cada vez antes de desactivar otro plugin. Comienza con los plugins que tengan algo que ver con la administración de WP, luego pasa a los plugins del tema habitual, widgets y similares.
Inspecciona mejor la página "No encontrado" que te aparece (navega con Opera y abre el panel de Info que te mostrará las cabeceras, o alternativamente navega con Firefox y habilita el panel "Red" en Firebug) y busca en todos tus plugins para ver si alguno podría estar sirviéndola directamente. Si no, revisa el registro del servidor web para averiguar qué recurso exacto no puede servir; un plugin podría estar haciendo algún tipo de redirección o reescritura sofisticada, por lo que no necesariamente es la URL que ves en tu navegador la que está causando el error 404.

Con 70 plugins, sería realmente útil encontrar una forma de hacerlo muy rápido sin tener que desactivar y probar cada uno manualmente, como con un archivo probador de plugins.

Veo que has editado tu respuesta original con un gran consejo para encontrar la respuesta más rápido.

Gracias, asbjornu. Investigaré cómo hacer esto después de regresar de vacaciones con mi familia.

Esta es solo una idea aproximada: Si obtienes un error 404 "real" (con cabeceras establecidas), podrías buscar entre tus plugins y buscar la función PHP header()
junto con el número 404. Esto podría reducir el número de plugins de 70 a solo algunos. Luego solo necesitarías revisar esos.
Esto puede hacerse fácilmente con un IDE como Eclipse PDT que ofrece búsqueda de llamadas específicas a funciones PHP.
Además de eso, pero sin garantía de que funcione con éxito, está escribir un plugin que se enganche al establecimiento de cabeceras y luego te dé un rastro de qué código está estableciendo un potencial 404 (backtrace). Esto solo funcionaría si el plugin está usando la función API de WordPress. El primer método de buscar la función PHP funcionará independientemente de la API de WP.

Logré investigar un poco mientras aún estaba fuera de la ciudad, y solo he encontrado que mi plugin de copias de seguridad parece solicitar la salida de un 404. Firebug muestra que realmente es un 404. Algún progreso... Sin embargo, ahora estoy teniendo problemas para reproducir el error, así que supongo que tomaré un descanso. ¡Odio los errores intermitentes!

Solo puedo compartir mi propia experiencia, y hasta ahora no he encontrado una regla "definitiva" para solucionar todos los problemas de una sola vez.
El principal problema con la configuración de DreamHost es que, en su lucha eterna por mantener el consumo de memoria al mínimo, significa deshacerse de tantas funciones como sea posible —es decir, todo lo que reduzca el ancho de banda (¡bueno para los visitantes!) o la CPU (bueno para el servidor, pero DreamHost no controla el consumo de CPU tan agresivamente como controla la RAM). Por ejemplo, esto significa prescindir de HTML + CSS comprimidos con gzip (que consumirá CPU + RAM) o de cualquiera de los varios plugins Minify (que también consumirán RAM). Cuanto más sofisticada sea la caché (soy fanático de usar W3 Total Cache, o al menos WP Super Cache), más RAM se consumirá.
Del mismo modo, muchos plugins que limitan el número de consultas MySQL para mejorar el rendimiento consumirán RAM en su lugar. Así que encontrar un equilibrio donde aún puedas mantener tu sitio respondiendo con buen rendimiento sin consumir la preciada RAM es una tarea difícil.
Hasta ahora, mis mejores resultados en sitios concurridos han sido desmarcar la Optimización de Velocidad de Página y la Seguridad Web Extra, que aparentemente consumen mucha RAM, y confiar en cambio en una combinación con W3 Total Cache y Cloudflare (servicio gratuito de proxy inverso). Cloudflare efectivamente hará lo mismo que el módulo "Seguridad Web Extra", pero como se ejecuta fuera de DreamHost, está bien. W3 Total Cache consume mucha memoria, pero una vez que las páginas se almacenan estáticamente de forma local, Cloudflare las cacheará muy eficientemente —así que podrías recibir errores 404/500 al editar publicaciones, pero al menos tus visitantes no los experimentarán (Cloudflare también puede servir páginas estáticas incluso si DreamHost devuelve un 404 o un 500).
Además, gracias a este artículo, descubrí que FastCGI usa más RAM que el CGI 'normal'. Y dado que PHP 5.3 es mejor gestionando la RAM (recolección de basura más agresiva, menos fugas de memoria), experimentalmente cambié a PHP 5.3 CGI (no FastCGI) sin Optimización de Velocidad de Página ni Seguridad Web Extra, confiando en W3 Total Cache + Cloudflare para acelerar el sitio. Ahora el backoffice es más lento (¡mayor consumo de CPU!), pero al menos no veo errores 404/500 (¡hasta ahora!).
Todavía no estoy satisfecho con la combinación, así que definitivamente seguiré ajustando la configuración de DreamHost con la esperanza de reducir aún más el consumo de RAM y obtener un rendimiento adecuado. Como dijo @dgw, yo también uso muchos plugins —porque requiero su funcionalidad. No todos los que alojan WP con DreamHost tienen necesidades simples de blogging; cuanto más complejo es el sitio, más funcionalidad requerirá... y esa es la belleza de WordPress, solo necesitas usar los plugins que realmente necesitas y mantener la instalación principal de WP simple si estás satisfecho con pocas necesidades. Sin embargo, los plugins no son necesariamente "malos" o tan pesados para el sitio; pero es cierto que algunos pueden consumir mucha RAM...

Se necesita más información:
1) ¿Por qué tantos plugins?
2) ¿Qué sistema operativo utiliza tu proveedor de hosting?
3) ¿Qué servidor web estás utilizando?
4) ¿Tienes acceso a los registros (logs) del servidor HTTP, específicamente los registros de errores?
5) ¿Qué dicen los registros de errores en los períodos de tiempo relacionados con estos problemas?
(Ahora bien, siendo honestos, si estamos generalizando para el "usuario promedio de WordPress que podría tener esta misma pregunta", podríamos comenzar por dirigir a dicho usuario a responder al menos estas 5 preguntas...)

Tengo todos esos plugins porque uso las funciones que ofrecen; ¿para qué más? Los registros de errores no dicen mucho en realidad. Estoy en DreamHost, así que creo que el servidor ejecuta una compilación personalizada de Debian con Apache httpd.
