El sitio corre hoy sin ningún sistema de caché. Esta es la causa de la pantalla en blanco al reactivar el plugin — y también la razón de que el rendimiento medido externamente (sección 02) sea tan bajo.
La carpeta fue renombrada de wp-rocket a wp-rocket_old en algún apagado de emergencia previo. El plugin está completo e intacto (v3.19.1.2, PHP 7.3+ requerido, cumplido). El problema es lo que quedó atrás: WP_CACHE sigue en true en wp-config.php, el drop-in advanced-cache.php apunta a la ruta antigua (por eso hoy no hace nada), y persisten wp-rocket-config/ y la opción wp_rocket_settings del último uso. Al reactivar, esa mezcla de estado nuevo y residuos viejos es la causa de la pantalla en blanco.
Banahosting corre sobre LiteSpeed Web Server (LSWS), no Apache/Nginx genérico. Eso cambia cuál es el plugin correcto:
Caché a nivel de servidor, no de PHP. LiteSpeed Cache (LSCache) es un módulo integrado al propio servidor web: una página cacheada se sirve directo desde LSWS, sin que WordPress ni PHP lleguen a ejecutarse. WP Rocket es un plugin PHP — incluso una página "cacheada" suya obliga a inicializar WordPress primero. Con el TTFB medido en 4.4s en móvil (sección 02), ese arranque de PHP es exactamente el cuello de botella, y es el que LSCache elimina de raíz.
Funciones premium de WP Rocket, gratis aquí. El plugin oficial "LiteSpeed Cache" no tiene costo y ya incluye lo que en WP Rocket es de pago: ESI (Edge Side Includes) para que el carrito/mini-cart de WooCommerce siga siendo dinámico dentro de una página cacheada sin invalidar todo el caché, CDN + optimización de imágenes vía QUIC.cloud, combinación/minificación de CSS y JS, precalentamiento de caché por crawler, e integración nativa con Redis/Memcached (sección 02) desde el mismo plugin.
Plan: limpiar igualmente los residuos de WP Rocket (drop-in viejo, wp-rocket-config/, WP_CACHE en false temporalmente) — pero en vez de reactivar WP Rocket, instalar y configurar el plugin oficial LiteSpeed Cache, que es la opción diseñada específicamente para este hosting.
Medido con PageSpeed Insights sobre datos reales de usuarios (últimos 28 días) — el sitio reprueba la evaluación de Core Web Vitals en ambos dispositivos.
El TTFB (4.4s en móvil, 1.2s en escritorio) es el dato más revelador: es tiempo puro de servidor, antes de que llegue una sola línea de HTML al navegador. Coincide exactamente con lo diagnosticado en la sección 01 — sin caché de página ni de objetos, cada visita ejecuta PHP y consultas a la base de datos desde cero. Es la métrica que un caché a nivel de servidor como LiteSpeed Cache ataca directamente.
No existe object-cache.php, ni constantes WP_REDIS_*, ni plugin de Redis/Memcached. Cada carga vuelve a consultar la base de datos completa. Junto con WP Rocket apagado, hoy no hay ningún tipo de caché corriendo en el sitio.
Con memoria libre en cero, el servidor recompila scripts PHP constantemente en vez de servirlos desde caché. Un hit rate saludable debería superar 99%. Requiere que el hosting suba opcache.memory_consumption.
PHP permite 512 MB, pero WordPress se autolimita a 40 MB internamente. Con Elementor, WooCommerce, Automator y Woodmart activos a la vez, es un candidato a errores de memoria agotada en admin y checkout — otra causa posible de pantallas en blanco.
Saludable para el tamaño del sitio. Los 2,657 transients y 1,559 revisiones de posts acumuladas sí aportan al peso de la base de datos y valen limpieza de rutina.
774.6 MB en 8,085 archivos. En general bien gestionado — no es un problema estructural.
| Métrica | Valor | Lectura |
|---|---|---|
| Tamaño promedio (muestra de 300) | 163 KB | Razonable |
| En formato WebP | 192 / 300 | WebP Express activo, conversión parcial |
| Aún en JPG/PNG | 108 / 300 | Confirmar que WebP Express cubra el histórico |
| Mayores a 500 KB | 23 | Puntual, no masivo |
| Mayores a 1 MB | 7 | Banners de home y una landing — comprimir manualmente |
Los pedidos siguen en wp_posts en vez de tablas dedicadas — el modelo legado. Activar HPOS acelera notablemente listados de pedidos y reportes. Antes de activarlo: actualizar WooCommerce Mercado Pago (versión pendiente) y activar primero en modo sincronización.
De 40 plugins activos, uno concentra el mayor sobrecosto de rendimiento sin necesidad: Slider Revolution ya se puede reemplazar con una herramienta que el sitio ya tiene licenciada.
Está activo y en uso real: versión 7.1.7, con 3 sliders configurados que aparecen en 4 páginas publicadas del sitio (probablemente home y algunas categorías).
Por qué pesa donde más duele. Slider Revolution es históricamente uno de los plugins más pesados del ecosistema WordPress: carga su propio motor de animación (basado en GreenSock/TweenMax) más su CSS y JS del editor de capas, con frecuencia en el sitio completo y no solo en la página donde vive el slider. Eso añade peso justo al inicio de la carga — la sección 02 ya mostró un LCP de 8.1s en móvil y un TTFB de 4.4s; un slider pesado en el hero es, casi siempre, literalmente el elemento LCP que el navegador está esperando pintar.
Y no aporta conversión a cambio. Los sliders de banners rotativos son un patrón con desempeño débil en ecommerce: la gran mayoría de clics caen sobre la primera diapositiva (los usuarios no esperan a que rote), y al tener varias imágenes candidatas a "elemento más grande visible", el navegador tarda más en decidir cuál precargar — el slider termina perjudicando la métrica de carga sin compensarlo en clics reales.
Superficie de mantenimiento extra. Es un plugin premium de terceros con historial de vulnerabilidades críticas reportadas por su gran base de instalación — un plugin activo menos es un parche menos que vigilar.
El sitio ya tiene Elementor Pro activo y licenciado (v4.1.2) — no hace falta comprar ni instalar nada nuevo. Su widget nativo de Carrusel de imágenes (y el carrusel de productos, pensado para WooCommerce) cubre el mismo caso de uso de banners rotativos, pero reutiliza los assets de Elementor que el sitio ya carga en cada página en vez de sumar una segunda librería de animación.
Alternativa aún más liviana: para un hero de home, muchas veces un banner estático con imagen de fondo + botón CTA dentro de una sección de Elementor rinde mejor que cualquier slider — sin JavaScript de rotación, sin ambigüedad de qué imagen es el LCP, y con el control creativo completo que ya conocen del builder.
Migración sugerida: recrear los 3 sliders actuales como secciones o carruseles de Elementor Pro en las 4 páginas donde se usan, confirmar visualmente, y desactivar/eliminar Slider Revolution.
Mailchimp for WooCommerce (sincroniza pedidos y clientes) y MC4WP: Mailchimp for WordPress (formularios de suscripción) hacen trabajos distintos y pueden coexistir de forma legítima, pero vale la pena confirmar que no haya dos integraciones apuntando a la misma audiencia de Mailchimp — el riesgo típico es doble registro o eventos duplicados hacia la misma lista.
Escaneo externo confirma la falta total de headers de seguridad HTTP: Strict-Transport-Security, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy y Permissions-Policy — los 6 marcados en rojo. Nota F, la más baja de la escala.
Cero coincidencias con Wordfence, Sucuri, iThemes, Loginizer o cualquier solución de 2FA. Las 3 cuentas de administrador no tienen segundo factor. Positivo: no existe el usuario admin y las 3 cuentas admin son identificables (David.Admin.Soul, JNeisa.Cocoon.Admin, Soult Agency).
Combinado con el patrón de cuentas spam de la sección 6, esto deja la puerta abierta a bots de card testing (prueba de tarjetas robadas con montos pequeños en checkout). El volumen actual es bajo, pero nada lo está frenando.
El sitio está detrás de Cloudflare — se resuelve con una Transform Rule ahí, sin tocar WordPress ni arriesgar el sitio en producción.
/wp-json/wp/v2/users responde 200 públicamente, exponiendo IDs y páginas de autor de cuentas de clientes que no deberían tenerlas. XML-RPC también sigue habilitado, vector clásico de fuerza bruta amplificada.
DISALLOW_FILE_EDIT en false — si una sesión admin se compromete, se puede inyectar código PHP directo desde el panel. Cambio de una línea, sin impacto funcional.
De 841 usuarios totales, 78 (9.3%) coinciden con patrones típicos de registro por bots. Solo 2 generaron un pedido real — se recomienda conservarlos. Los 76 restantes nunca compraron y se acumulan desde junio de 2023 hasta hoy, sin interrupción, confirmando que el registro nunca tuvo protección anti-bot.
| Patrón | Cuentas | Ejemplo |
|---|---|---|
| Truco de puntos en Gmail | ~45 | [email protected] |
| Dominios desechables / temporales | ~18 | [email protected] |
| Login aleatorio sin vocales | ~19 | [email protected] |
| Cuenta de prueba | 1 | [email protected] |
Cuentas con pedido real — mantener (probablemente falsos positivos: clientes reales con hábitos de email inusuales):
| ID | Usuario | Registrado | Pedidos | |
|---|---|---|---|---|
| 44 | yaylyn2014 | [email protected] | 2023-06-06 | 1 |
| 558 | gloria.ortiz | [email protected] | 2025-01-05 | 1 |
76 cuentas sin ningún pedido — candidatas a limpieza:
| ID | Usuario | Registrado | Motivo | |
|---|---|---|---|---|
| 33 | gfhfdgfjfh | [email protected] | 2023-05-20 | login aleatorio |
| 50 | levte.re.nt.ev3 | [email protected] | 2023-06-10 | truco gmail |
| 51 | l.evtere.n.tev3 | [email protected] | 2023-06-10 | truco gmail |
| 63 | ma.k.s.yatin.ae4 | [email protected] | 2023-06-23 | truco gmail |
| 64 | op.a.ry.s.h.e.va4 | [email protected] | 2023-06-23 | truco gmail |
| 65 | opa.ry.she.va4 | [email protected] | 2023-06-23 | truco gmail |
| 66 | s.e.r.go.v.al.ili.y.a5 | [email protected] | 2023-06-23 | truco gmail |
| 67 | ma.k.s.ya.ti.na.e.4 | [email protected] | 2023-06-23 | truco gmail |
| 68 | ser.g.o.va.li.l.iy.a.5 | [email protected] | 2023-06-23 | truco gmail |
| 70 | m.o.no.ru.m.a.to.k.uro | [email protected] | 2023-06-24 | truco gmail |
| 71 | w.hi.s.ki.nm.tjdxa | [email protected] | 2023-06-24 | truco gmail |
| 72 | in.nar.z.ha.vs.kay.a1 | [email protected] | 2023-06-24 | truco gmail |
| 73 | ko.za.rino.vv.i.taliy2 | [email protected] | 2023-06-24 | truco gmail |
| 74 | mon.or.umat.ok.u.r.o | [email protected] | 2023-06-24 | truco gmail |
| 75 | w.h.iskin.m.t.j.d.xa | [email protected] | 2023-06-24 | truco gmail |
| 76 | k.ozarin.o.vvi.t.a.l.iy2 | [email protected] | 2023-06-25 | truco gmail |
| 77 | innar.zhav.s.kaya1 | [email protected] | 2023-06-25 | truco gmail |
| 142 | aqu.a.b.u.r.se.rv.i.ce2.0.21 | [email protected] | 2023-09-28 | truco gmail |
| 193 | luz191217 | [email protected] | 2023-11-13 | login aleatorio |
| 267 | genevapatterson | [email protected] | 2023-12-23 | dominio desechable |
| 286 | hwdnggdg5ci | [email protected] | 2024-01-15 | login aleatorio |
| 307 | dl.g.k.i.h.m.zo.s.b | [email protected] | 2024-01-30 | truco gmail |
| 365 | t.e.e.t.e.r.2.9t.ra.v | [email protected] | 2024-03-30 | truco gmail |
| 381 | gorse.c19.8.0.r.u.s.e.r.v | [email protected] | 2024-04-23 | truco gmail |
| 387 | l.i.d.e.r.pro.m.o2.0.1.5.su.p.e.r | [email protected] | 2024-05-01 | truco gmail |
| 389 | l.id.e.rp.romo2015su.per | [email protected] | 2024-05-01 | truco gmail |
| 390 | fdjfwxltpmt | [email protected] | 2024-05-01 | login aleatorio |
| 392 | sdvvvalccpt | [email protected] | 2024-05-05 | login aleatorio |
| 409 | ed.a.n.po.rt | [email protected] | 2024-06-08 | truco gmail |
| 503 | adriana.marinera.1.5 | [email protected] | 2024-10-13 | truco gmail |
| 526 | plmd201222 | [email protected] | 2024-11-16 | login aleatorio |
| 582 | info103 | [email protected] | 2025-02-20 | dominio desechable |
| 639 | hfhfhfsdffg656 | [email protected] | 2025-08-10 | login aleatorio |
| 642 | frxvpdhgnkn | [email protected] | 2025-08-15 | login aleatorio |
| 643 | vdcdprkwopr | [email protected] | 2025-08-15 | login aleatorio |
| 645 | launaamaya8522 | [email protected] | 2025-08-17 | dominio desechable |
| 652 | ma.t.themas.t.e.r.ss.un.n.y | [email protected] | 2025-08-22 | truco gmail |
| 657 | fag.i.hun.7.07 | [email protected] | 2025-08-27 | truco gmail |
| 658 | mat.tt.e.n.ly.s.h.l.u.b.el.y. | [email protected] | 2025-08-30 | truco gmail |
| 659 | mat.them.as.te.r.ssu.nn.y. | [email protected] | 2025-08-30 | truco gmail |
| 662 | cbpkqbcuqst | [email protected] | 2025-09-01 | login aleatorio |
| 671 | vffbixkyqpl | [email protected] | 2025-09-27 | login aleatorio |
| 673 | umqfmzcgp | [email protected] | 2025-10-01 | login aleatorio |
| 676 | danielaalvarado4857 | [email protected] | 2025-10-15 | dominio desechable |
| 699 | ladyc8973 | [email protected] | 2025-11-25 | login aleatorio |
| 729 | fa.g.ihun70.7 | [email protected] | 2026-01-30 | truco gmail |
| 762 | b.8.5.2.4.758. | [email protected] | 2026-03-19 | truco gmail |
| 782 | ho.k.in.a.seani.ka. | [email protected] | 2026-04-08 | truco gmail |
| 787 | m.axd.l.ugy | [email protected] | 2026-04-16 | truco gmail |
| 791 | vtrosqbdcpl | [email protected] | 2026-04-26 | login aleatorio |
| 795 | f.a.gih.u.n.707 | [email protected] | 2026-05-01 | truco gmail |
| 798 | jlrmqnnmpsi | [email protected] | 2026-05-03 | login aleatorio |
| 800 | fndfjljycsa | [email protected] | 2026-05-04 | login aleatorio |
| 802 | il26p8bdfsq9 | [email protected] | 2026-05-07 | login aleatorio |
| 813 | mn4c3s2wzboj | [email protected] | 2026-05-16 | login aleatorio |
| 817 | glsi3jbb5vpv | [email protected] | 2026-05-17 | login aleatorio |
| 818 | hum.mer.t.o.ly.mpi.a | [email protected] | 2026-05-17 | truco gmail |
| 820 | ypzer0c00yk5 | [email protected] | 2026-05-18 | login aleatorio |
| 822 | ma.rt.a.sp.e.llo.w.d.a. | [email protected] | 2026-05-19 | truco gmail |
| 831 | bblqkzrsmkr | [email protected] | 2026-06-01 | login aleatorio |
| 835 | hu.mme.r.toly.mpia | [email protected] | 2026-06-06 | truco gmail |
| 837 | h.u.m.me.r.t.o.l.y.m.p.ia | [email protected] | 2026-06-07 | truco gmail |
| 843 | rpqfqnrj | [email protected] | 2026-06-18 | dominio desechable |
| 844 | test | [email protected] | 2026-06-18 | cuenta de prueba |
| 845 | romanboss8408 | [email protected] | 2026-06-22 | dominio desechable |
| 846 | h.otu.z.ap.oxih.e06. | [email protected] | 2026-06-22 | truco gmail |
| 847 | h.um.m.e.r.tol.y.m.pia | [email protected] | 2026-06-24 | truco gmail |
| 850 | katherinev8786 | [email protected] | 2026-07-09 | dominio desechable |
| 853 | ireneh6977 | [email protected] | 2026-07-11 | dominio desechable |
| 855 | teodoro_teodoro66 | [email protected] | 2026-07-16 | dominio desechable |
| 857 | qdmmlathkkr | [email protected] | 2026-07-20 | desechable + aleatorio |
| 858 | corneliaw3883 | [email protected] | 2026-07-22 | dominio desechable |
| 859 | avery-badillo | [email protected] | 2026-07-24 | dominio desechable |
| 860 | dyywfnlever | [email protected] | 2026-07-25 | dominio desechable |
| 862 | gb_carrolflannagan7395 | [email protected] | 2026-08-02 | dominio desechable |
| 863 | info239 | [email protected] | 2026-08-03 | dominio desechable |
| # | Acción | Impacto | Riesgo |
|---|---|---|---|
| 1 | Limpiar residuos de WP Rocket e instalar LiteSpeed Cache en su lugar (aprovecha el servidor LiteSpeed de Banahosting) | Alto | Bajo |
| 2 | CAPTCHA en registro, login y checkout | Alto | Bajo |
| 3 | Plugin de login + 2FA para las 3 cuentas admin | Alto | Bajo |
| 4 | Activar Redis object cache | Alto | Medio — depende del hosting |
| 5 | Subir WP_MEMORY_LIMIT a 256M | Medio-alto | Muy bajo |
| 6 | Pedir al hosting subir memoria de OPcache | Medio-alto | Ninguno |
| 7 | Headers de seguridad vía Cloudflare | Medio | Muy bajo |
| 8 | Actualizar Elementor, WooCommerce Mercado Pago y Google Site Kit | Medio | Bajo |
| 9 | Migrar los 3 sliders de Slider Revolution a Elementor Pro y desactivar el plugin | Medio | Bajo |
| 10 | Desactivar XML-RPC y restringir /wp/v2/users | Medio | Bajo |
| 11 | Activar HPOS en WooCommerce (tras actualizar Mercado Pago) | Medio | Medio |
| 12 | Eliminar las 76 cuentas spam sin pedidos; comprimir imágenes >1MB; limpiar transients/revisiones; confirmar solapamiento de los dos plugins de Mailchimp | Bajo | Muy bajo |
Después de la entrega de este diagnóstico se ejecutaron, en producción y vía el MCP de Novamira, los siguientes ajustes. Esta sección actualiza el estado del plan de acción de la sección 08.
Se convirtieron las 72 tablas que quedaban en MyISAM a InnoDB. Verificado: 145 tablas InnoDB, 0 en MyISAM.
Se activó almacenamiento de alto rendimiento (HPOS), caché de datos HPOS, límite de frecuencia en el pago e índices de búsqueda de texto (FTS) — se confirmó que la combinación es coherente y no genera conflictos entre sí.
Se reemplazó el WP-Cron basado en visitas (que se estaba atrasando) por un cron real instalado en el servidor.
Tras la desinstalación manual del plugin, se limpió la configuración y las opciones residuales que quedaron en la base de datos.
Se activó "Cargar CSS de forma asíncrona" (Critical CSS) y CSS no usado (UCSS) para reducir las solicitudes que bloquean el renderizado. Un primer intento rompió el carrusel de portada (Swiper detectaba 0 slides); se corrigió excluyendo la home de UCSS y se confirmó el carrusel funcionando con sus 4 slides.
El formulario de Elementor en /ventas-al-por-mayor/ no tenía configurada la acción de envío de correo (submit_actions) pese a tener destinatarios definidos. Se corrigió y se verificó con un envío de prueba real.
La verificación de certificado SSL fallaba por una cadena de certificados incompleta en el servidor de correo, agravado por un cruce de cifrado/puerto (TLS sobre el puerto 465, exclusivo de SSL implícito). Se corrigió el cifrado a SSL y se confirmó el envío en 417 ms.
Se rediseñaron los indicadores de paginación (fondo en píldora, punto activo más grande en el morado de marca) y se corrigió un desfase de índice en modo loop con solo 2 slides.
Se cruzaron los 847 adjuntos de la biblioteca contra su uso real en contenido, Elementor, galerías, imágenes de categoría, logo/ícono del sitio y widgets. Resultado: 367 en uso confirmado, 480 huérfanos movidos a la papelera (reversible) y 1.064 archivos sin registro en WordPress movidos a una carpeta de cuarentena. El vaciado definitivo de la papelera y de la cuarentena queda pendiente de confirmación del cliente.
El OPcache está al 100% de su capacidad (192/192 MB, cache_full: true) con una tasa de aciertos de apenas 45%. El límite está fijado en un archivo de servidor (zzz-opcache.ini) que no se puede modificar desde cPanel ni desde el php.ini de la cuenta. Se preparó el ticket con estos datos para que Banahosting suba el límite a 256–512 MB.
Ya no es la página de inicio (el home real es la página "Cocoon"), pero sigue publicada y era el origen de la mayoría de los banners huérfanos "por revisar". Queda pendiente decidir si se archiva.