Si te dedicas a implementar, programar, diseñar o mantener webs WordPress seguro que una de tus mayores pesadillas son la enorme cantidad de sistemas de caché con los que convivimos, y que hacen casi siempre prácticamente imposible saber si has roto algo, si se ha aplicado correctamente un cambio que has hecho, o incluso si la última actualización de un plugin pedorro que no hace casi nada, ha provocado un error horrible en la web.
Y es que entre las cachés del servidor, de WordPress, de los plugins de caché, de las CDN y de los navegadores, ni siquiera en modo incógnito de los navegadores es posible ver los fallos cuando pasan hasta que no te avisa algún visitante o, peor, el cliente, que de repente ven la web rota o totalmente horrible.
Así que la pregunta es…
¿Hay algún modo realmente efectivo de ver totalmente sin caché una web hecha con WordPress tras un cambio de diseño o un error por alguna actualización?
Y la respuesta rápida es…
NO
Pero se puede intentar, y eso es lo que vamos a ver hoy, porque lo que quiero compartir contigo son distintos métodos, trucos, incluso alguna virguería, que suelo utilizar para ayudarme con esta pesadilla de no ver las webs en tiempo real, sino una versión antigua, en caché, de las mismas, y luego vienen los disgustos.
Cómo ver una web WordPress sin caché
Lo primero que debes saber, y aceptar, es que lamentablemente no hay un «truco» único y rápido que garantice ver una web de WordPress completamente sin caché, ya que las múltiples capas de caché (navegador, plugins, servidor, CDN) están diseñadas para optimizar el rendimiento y no siempre son fáciles de sortear con un solo paso.
Dicho esto, y atendiendo a todas esas capas de caché que debemos evitar, saltarnos, debemos abordar la tarea de ver una web sin que las cachés nos oculten fallos o errores también por capas.
Empezamos…
¿De cuántas capas de caché estamos hablando?
Primero, vamos a ver todas las capas de caché que pueden estar actuando en una web WordPress, casi siempre varias a la vez:
- Caché del navegador (del usuario)
- Caché de plugins (WP Rocket, W3 Total Cache, Speed Optimizer, LiteSpeed, etc.)
- Caché de servidor (Varnish, NGINX FastCGI, SiteGround, etc.)
- CDN (Cloudflare, Akamai, etc.)
- Object Cache (Redis, Memcached)
- Caché de DNS
- Caché del router/operador (sí, también los router de tu proveedor de Internet tienen caché, más veces de lo que piensas)
- Opcache de PHP (poco probable que afecte a nivel visual, pero también está ahí)
Así que, atendiendo a todas estas capas, nos tocará atacar todas ellas.
Forzar recarga total del navegador
En la mayoría de navegadores: Ctrl + F5 o May + F5, salvo en Mac: Cmd + May + R
Pero NO basta: si hay caché en servidor o CDN, esto solo limpia la del navegador.
A veces, aunque desactives o fuerces la recarga sin caché, el navegador se adelanta y carga recursos en segundo plano (por ejemplo con la carga especulativa).
Modo incógnito/privado del navegador
Útil solo para descartar problemas de cookies o sesiones, pero tampoco limpia caché externa (servidor/CDN). No dejes de probarlo, al menos como primera opción.
Inspección con las herramientas para desarrolladores del navegador
- Abre las herramientas para desarrolladores de Chrome/Firefox/Safari (normalmente con F12 o, siempre, con clic derecho).
- Ve a la pestaña Red (Network si lo tienes en inglés)
- Marca la opción «Inhabilitar caché» (solo mientras esté la ventana abierta).
- Recarga la página (F5 o Cmd + R).
Esto fuerza al navegador a no usar su propia caché, pero si hay aún caché del servidor o la CDN la seguirás recibiendo.
Query string única (truco rápido)
Añade un parámetro aleatorio a la URL, cambiando los números a cada recarga de página:
https://tudominio.com/?nocache=1
o
https://tudominio.com/?v=123456
- Muchos sistemas de caché aceptan la URL diferente y entregan la página como si fuese la primera vez que se visita, sin caché.
- No es infalible: algunos CDNs y plugins ignoran parámetros no reconocidos.
- Hay plugins que, aunque pulses «Vaciar caché», no la vacían toda si tienes modos avanzados o integraciones activas (por ejemplo, WP Rocket con Cloudflare o LiteSpeed si tienes caché de navegador forzada).
Este truco del parámetro aleatorio (?nocache=loquesea o ?v=cosas) antes era mano de santo, pero ahora muchos CDNs y plugins ignoran esos parámetros para evitar que les llenes la caché de basura (y para ahorrar recursos). Por eso, al final, hay que recurrir a la «paranoia profesional» y tirar de varios métodos a la vez, con resignación torera.
Seguimos…
Desactiva los plugins de caché en WordPress:
Accede al escritorio de administración de WordPress y desactiva temporalmente plugins como WP Rocket, Speed Optimizer, W3 Total Cache, WP Super Cache o similares. Ve a Plugins > Plugins instalados, desactiva los plugins de caché que estén activos.
Previamente, por probar, puedes borrar la caché desde la configuración del plugin sin desactivarlo. Busca opciones como «Purgar caché» o «Vaciar caché».
Vacía FÍSICAMENTE las cachés de los plugins y temas WordPress
Accediendo por FPT o el administrador de archivos de tu hosting, borra manualmente las carpetas de caché de plugins como W3 Total Cache, WP Rocket, etc., que suelen estar siempre dentro de la carpeta wp-content de tu instalación de WordPress, casi siempre dentro de la carpeta /wp-content/cache/…/.
Borra sin piedad esa carpeta cache dentro de wp-content, y cualquier otra, como et-cache, que usan los temas de Elegant Themes como Divi.
Purga las cachés de servidor
- Purga la caché de tu hosting (NGINX, caché estática, etc.)
- Vacía su caché o reinicia servicios como Redis, Memcached si los usa tu hosting.
- Algunos hosting tienen botones de «Purgar caché» en su panel de control, otros como SiteGround lo tienen en Site Tools en cada sistema de caché y además con su plugin Speed Optimizer, dentro de la administración de WordPress.
Caché de la CDN
Los servicios de CDN también usa caché, y es fácil purgarla o incluso saltársela temporalmente.
Por ejemplo, en Cloudflare, tienes un enlace para purgar la caché de su CDN, y el modo de desarrollador, que muestra la web real, sin caché de la CDN.
Saltarse la CDN conectando directamente con el servidor
- Averigua la IP real del servidor:
nslookup tudominio.com - Edita el archivo hosts de tu ordenador. P.ej.:
123.456.789.123 tudominio.com
Esto te conecta directamente al servidor saltándote la CDN y sus cachés.
Las cabeceras nunca mienten
Revisa siempre las cabeceras HTTP para ver de dónde sale la caché.
Abre las herramientas para desarrolladores del navegador y ve a la pestaña de Red (Network) y…
- Recarga la página.
- Haz clic en el recurso principal (tu dominio)
- Clic en la pestaña Encabezados (Headers)
- Busca cosas como:
x-cache: HIT(de servidor/CDN)
cf-cache-status: HIT(Cloudflare)
x-litespeed-cache: HIT(LiteSpeed)
Si pone MISS o no aparece, estás viendo versión «real», sin caché.
Curl o wget
Abre el terminal de tu ordenador y teclea un comando como el siguiente:
curl -I "https://tudominio.com/?aleatorio=123"
Te devuelve las cabeceras, y puedes ver si hay indicios de caché (cabeceras como X-Cache: HIT o similares).
Caché del router/operador
Esto, a pesar de ser de lo más raro que sueles imaginar, es más común de lo que imaginas, pero hay maneras de saltarse estas cachés.
- Reinicia el router – Al resetear el router, desenchufándolo de la corriente completamente, te desconecta del operador, vacía la posible caché del dispositivo y, si no tienes contratado el servicio, te cambia la IP asignada.
- Visita la página desde el móvil, con datos móviles, no WiFi – Así te saltas cualquier caché o problema con el operador de Internet, especialmente si tu operador móvil no es el mismo que el de Internet residencial, pero en cualquier caso te saltas la posible caché del router.
Diferentes navegadores / dispositivos / servicios sin caché
Hay trucos que pueden ayudarte, y más de lo que imaginas, así que no los descartes, prueba, prueba, prueba:
- Usa navegadores que no hayas usado antes – Siempre hay que tener varios navegadores instalados si eres desarrollador o diseñador, pero además instala otros menos útiles – a priori – como Edge o Brave, y úsalos únicamente para hacer pruebas sin caché.
- Usa navegadores especializados en la privacidad, como Tor , Opera (con VPN propia) o Vivaldi, especialmente el primero, pues en cada sesión usa una ubicación, servidor, incluso VPN diferente.
- Herramientas de análisis WPO como GTmetrix, WebPageTest o PageSpeed muestran la versión sin caché de la web.
- Visita la página en web.archive.org, pues a veces te muestra la versión actual del sitio, si se actualiza mucho.
- Visita la página usando la URL de Google Translate, siempre sin caché, por ejemplo:
translate.google.com/translate?sl=es&tl=en&u=tudominio.com - Usa una VPN, gratuitas como Proton VPN o Windscribe, o de pago si ya la tienes, para conectarte de manera totalmente anónima, incluso como si te conectases desde otro país.
- Usa un servicio de proxy gratuito como HIDE me.
Scripts y códigos para ver la web sin cachés
Hay scripts y fragmentos de código (snippets) que te pueden ayudar a comprobar si realmente estás viendo la versión «sin caché» o incluso para forzar saltarse algunas capas de caché desde tu lado.
No hay un script milagroso, pero aquí tienes algunos útiles, con ejemplos.
Script para comprobar cabeceras de caché
Un pequeño bash con curl o un PHP sencillo que te devuelva las cabeceras HTTP relevantes para saber de dónde viene la caché y si realmente ves la versión limpia.
Ejemplo en Bash (terminal):
curl -I https://tusitio.com/ | grep -iE 'cache|cf-|varnish|litespeed'
¿Qué hace?
- Lanza una petición a tu web
- Muestra solo las cabeceras relacionadas con caché
- Te dice si la respuesta viene de Cloudflare, Varnish, LiteSpeed, etc., y si es
HIT(cacheada) oMISS(limpia).
Script PHP para desactivar toda caché desde WordPress
Podemos poner – temporalmente – en el functions.php algo como:
add_action('send_headers', function() {
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Pragma: no-cache');
header('Expires: 0');
});
¿Qué hace?
- Intenta impedir la caché a nivel de navegador y proxy/intermediarios.
Nota: No afecta a la caché de CDN/servidor si ya está almacenada ahí, pero ayuda a pruebas puntuales.
Script para cambiar automáticamente los versiones de CSS/JS
Cuando hay muchos problemas de caché de CSS/JS, puedes añadir a tus encolados (enqueue) de scripts y estilos una versión aleatoria, solo para tu usuario o en modo depuración. Por ejemplo:
if (current_user_can('manage_options')) {
wp_enqueue_style('mi-estilo', get_template_directory_uri() . '/style.css', array(), time());
}
¿Qué hace?
- Solo para administradores, cada vez que cargas la página, fuerza a WordPress a añadir un versionado distinto al CSS (o JS), así se salta la caché de recursos.
- Para usuarios normales sigue igual, no hace nada.
Script para saber quién o qué está cacheando
Algo muy básico, pero efectivo, es añadir esto en el header.php de tu tema SOLO para ti o en staging:
<?php
if (current_user_can('manage_options')) {
foreach (headers_list() as $header) {
if (stripos($header, 'cache') !== false) {
echo "<!-- $header -->\n";
}
}
}
?>
¿Qué hace?
- Muestra en el HTML visible solo para administradores las cabeceras de caché.
Solución cuasi definitiva: Subdominios sin caché
Muchos hosting permiten crear subdominios que apunten a la misma carpeta de tu web, tipo dev.midominio.com o similar. Verás exactamente la misma web pero sin ninguna caché. También puedes hacer lo mismo si tienes algún dominio sin uso, apuntándolo a la carpeta de tu web en el servidor.
El método del subdominio o dominio alternativo es el más rápido y efectivo al 100%.
Solución cuasi definitiva: Staging
Para evitar este problema en el futuro:
- Configura un subdominio de staging SIN caché
- Haz siempre los cambios ahí primero
- Solo pasa a producción cuando esté perfecto
Cambiar la IP en el archivo hosts
- Localiza en el panel de tu hosting la IP del servidor y anótala
- Edita el archivo
hostsde tu ordenador:
Windows:C:\Windows\System32\drivers\etc\hosts
Mac/Linux:/etc/hosts - Añade una línea como esta:
123.456.789.123 tudominio.com - Guarda y reinicia el navegador
Esto te conecta directamente al servidor saltándote toda caché existente, incluso de la CDN si la tuvieses activa
Otras posibles soluciones, o apaños
- Amigos/cuñados/primos: Pide a alguien externo, con otro operador y en otro país, que revise la web. Si hay cambios, te enteras.
- Espera unos minutos: Hay cachés que sí o sí necesitan propagarse/caducar.
- Registros y monitorización: Usa plugins tipo Query Monitor o Health Check para ver exactamente qué está entregando tu WordPress.
Consejos extra
- Informa a tu equipo o colegas cuándo hagas cambios y vaciados, para no pisaros y volveros locos todos.
- Si usas plugins que gestionan caché de navegador como los que hemos comentado antes, ojo con las reglas de caducidad que generan. Conócelas y cámbialas según tus prioridades.
- Añade registros de errores (con plugins como Query Monitor o el modo DEBUG guardado en archivo del mismo WordPress) para tener registrado lo que solo aparece en condiciones sin caché.
Kit de emergencia anti-caché para WordPress
Si después de haber probado todos los trucos y técnicas anteriores para saltarte la caché, o si simplemente quieres ir a lo rápido y efectivo, he preparado este kit de emergencia anti-caché en forma de plugin (o códigos si lo prefieres), que consta de una serie de códigos útiles para esos momentos en los que necesitas ver los cambios YA, comprobar errores, o asegurarte de que tu cliente ve justo lo que tú ves.
Plugin: Ayuda WordPress – Kit de emergencia Anti-Caché (gratuito)
No hace magia, pero te ahorra un montón de tiempo y dolores de cabeza cuando toca revisar cambios críticos o detectar fallos que se esconden entre las distintas capas de caché.
<?php
/*
Plugin Name: AyudaWP Kit Anti-Caché PRO
Plugin URI: https://servicios.ayudawp.com
Description: Vacía y desactiva automáticamente los principales plugins de caché, activa el modo debug, deshabilita cualquier caché de navegador y proxy para administradores, y fuerza versiones aleatorias en los recursos. Pensado para solucionar errores tras cambios o actualizaciones. Revierte todo al desactivar el plugin. ¡No lo dejes activo tras revisar!
Version: 2.4
Author: Fernando Tellado
Author URI: https://ayudawp.com
License: GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Requires at least: 5.0
Tested up to: 6.9
Requires PHP: 7.0
Text Domain: ayudawp-anticache
Domain Path: /languages
*/
if ( ! defined( 'ABSPATH' ) ) exit;
register_activation_hook( __FILE__, 'ayudawp_anticache_activate' );
register_deactivation_hook( __FILE__, 'ayudawp_anticache_deactivate' );
function ayudawp_anticache_activate() {
if ( ! function_exists( 'get_plugins' ) ) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
if ( ! function_exists( 'is_plugin_active' ) ) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
$flushed = array();
$deactivated = array();
$acciones = array();
$errores = array();
$debug_ok = false;
$found_cache = false;
$cache_plugins = array(
'sg-cachepress/sg-cachepress.php' => 'SiteGround Optimizer',
'wp-rocket/wp-rocket.php' => 'WP Rocket',
'w3-total-cache/w3-total-cache.php' => 'W3 Total Cache',
'wp-super-cache/wp-cache.php' => 'WP Super Cache',
'wp-fastest-cache/wpFastestCache.php' => 'WP Fastest Cache',
'litespeed-cache/litespeed-cache.php' => 'LiteSpeed Cache',
'surge/surge.php' => 'Surge',
'cache-enabler/cache-enabler.php' => 'Cache Enabler',
);
$all_plugins = get_plugins();
foreach ( $cache_plugins as $plugin_file => $plugin_name ) {
if ( function_exists( 'is_plugin_active' ) && is_plugin_active( $plugin_file ) ) {
$found_cache = true;
// Vaciar caché según el plugin
switch ( $plugin_file ) {
case 'sg-cachepress/sg-cachepress.php':
if ( class_exists( 'SG_CachePress_Supercacher' ) ) {
@SG_CachePress_Supercacher::purge_cache();
$flushed[] = $plugin_name;
}
break;
case 'wp-rocket/wp-rocket.php':
if ( function_exists( 'rocket_clean_domain' ) ) {
@rocket_clean_domain();
$flushed[] = $plugin_name;
}
break;
case 'w3-total-cache/w3-total-cache.php':
if ( function_exists( 'w3tc_flush_all' ) ) {
@w3tc_flush_all();
$flushed[] = $plugin_name;
}
break;
case 'wp-super-cache/wp-cache.php':
if ( function_exists( 'wp_cache_clean_cache' ) ) {
global $file_prefix;
@wp_cache_clean_cache( $file_prefix, true );
$flushed[] = $plugin_name;
}
break;
case 'wp-fastest-cache/wpFastestCache.php':
if ( class_exists( 'WpFastestCache' ) ) {
$wfc = new WpFastestCache();
@$wfc->deleteCache();
$flushed[] = $plugin_name;
}
break;
case 'litespeed-cache/litespeed-cache.php':
if ( class_exists( 'LiteSpeed_Cache_API' ) ) {
@LiteSpeed_Cache_API::purge_all();
$flushed[] = $plugin_name;
}
break;
case 'surge/surge.php':
if ( function_exists( 'surge_purge_cache' ) ) {
@surge_purge_cache();
$flushed[] = $plugin_name;
}
break;
case 'cache-enabler/cache-enabler.php':
if ( class_exists('Cache_Enabler') && method_exists('Cache_Enabler','clear_site_cache') ) {
@Cache_Enabler::clear_site_cache();
$flushed[] = $plugin_name;
} elseif ( function_exists('ce_cache_enabler_clear_site_cache') ) {
@ce_cache_enabler_clear_site_cache();
$flushed[] = $plugin_name;
}
break;
}
// Desactivar plugins
if ( array_key_exists( $plugin_file, $all_plugins ) ) {
deactivate_plugins( $plugin_file, false, false );
if ( !is_plugin_active($plugin_file) ) {
$deactivated[] = $plugin_name;
} else {
$errores[] = sprintf( __( 'No se pudo desactivar %s, hazlo manualmente.', 'ayudawp-anticache' ), $plugin_name );
}
}
}
}
// Activar modo debug en wp-config.php
$wp_config = ABSPATH . 'wp-config.php';
if ( is_writable( $wp_config ) ) {
$content = file_get_contents( $wp_config );
$content = preg_replace( "/^\s*define\s*\(\s*'WP_DEBUG([A-Z_]*)?'\s*,.*\);.*$/mi", '', $content );
$content = preg_replace( "/^\s*define\s*\(\s*'WP_DEBUG_LOG'\s*,.*\);.*$/mi", '', $content );
$content = preg_replace( "/^\s*define\s*\(\s*'WP_DEBUG_DISPLAY'\s*,.*\);.*$/mi", '', $content );
$defines = array(
"/* Modo debug activado por AyudaWP Kit Anti-Caché PRO */",
"define('WP_DEBUG', true);",
"define('WP_DEBUG_LOG', true);",
"define('WP_DEBUG_DISPLAY', true);"
);
$content = preg_replace( '/(\/\*\s*That[^\n]+stop editing![^\n]*\*\/)/i', implode( "\n", $defines ) . "\n$1", $content );
if ( file_put_contents( $wp_config, $content ) ) {
$debug_ok = true;
} else {
$errores[] = __( 'No se pudo editar wp-config.php para activar el modo debug.', 'ayudawp-anticache' );
}
} else {
$errores[] = __( 'wp-config.php no es escribible (no se ha podido activar el modo debug).', 'ayudawp-anticache' );
}
// Aviso en escritorio (todo lo hecho)
$acciones[] = 'Se han realizado todas las acciones posibles para evitar cualquier caché y mostrar errores solo a administradores:';
$acciones[] = '– Plugins de caché detectados, vaciados y desactivados: ' . ($flushed ? implode(', ', $flushed) : 'Ninguno.');
$acciones[] = '– Activado modo debug (WP_DEBUG, WP_DEBUG_LOG, WP_DEBUG_DISPLAY) en wp-config.php.';
$acciones[] = '– Enviadas todas las cabeceras HTTP anti-caché posibles para administradores (Cache-Control: no-store, etc).';
$acciones[] = '– Forzadas versiones aleatorias en todos los scripts y estilos para administradores (evita caché del navegador).';
$acciones[] = '– Insertado comentario HTML visible en el <head> para administradores como aviso visual.';
$acciones[] = '– Todos estos cambios solo los perciben usuarios administradores logueados.';
$notice = '<h2 style="margin-top:0">' . esc_html__( '⚠︎ AyudaWP Kit Anti-Caché PRO ACTIVADO', 'ayudawp-anticache' ) . '</h2>';
$notice .= '<ul style="margin: 8px 0 12px 18px;">';
foreach ( $acciones as $item ) {
$notice .= '<li style="color:#0073aa">' . esc_html( $item ) . '</li>';
}
$notice .= '</ul>';
if ( $deactivated ) {
$notice .= '<ul style="margin: 8px 0 12px 18px;">';
foreach ( $deactivated as $item ) {
$notice .= '<li style="color:#d35400">' . sprintf( __( 'Plugin desactivado: <b>%s</b>', 'ayudawp-anticache' ), esc_html( $item ) ) . '</li>';
}
$notice .= '</ul>';
}
if ( ! $found_cache ) {
$notice .= '<div style="color:orange; font-weight:bold;">' . __( 'No se ha detectado ningún plugin de caché activo.', 'ayudawp-anticache' ) . '</div>';
}
if ( $debug_ok ) {
$notice .= '<div style="color:blue;margin-bottom:10px;">' . __( 'Modo debug activado en wp-config.php.', 'ayudawp-anticache' ) . '</div>';
}
if ( $errores ) {
foreach ( $errores as $err ) {
$notice .= '<div style="color:red"><b>' . esc_html( $err ) . '</b></div>';
}
}
$notice .= '<div style="color:#c00;font-weight:bold;margin-top:12px;font-size:1.1em;">' . __( '¡NO dejes activo este plugin! Desactívalo cuando termines de revisar la web.', 'ayudawp-anticache' ) . '</div>';
$notice .= '<div style="color:#888;margin-top:8px;">' . __( 'Todos los cambios se revertirán al desactivar el plugin.', 'ayudawp-anticache' ) . '</div>';
update_option( 'ayudawp_anticache_admin_notice', $notice );
}
function ayudawp_anticache_deactivate() {
$wp_config = ABSPATH . 'wp-config.php';
if ( is_writable( $wp_config ) ) {
$content = file_get_contents( $wp_config );
$content = preg_replace( "/^\s*\/\*\s*Modo debug activado por AyudaWP Kit Anti-Caché PRO\s*\*\/\s*$/mi", '', $content );
$content = preg_replace( "/^\s*define\s*\(\s*'WP_DEBUG([A-Z_]*)?'\s*,.*\);.*$/mi", '', $content );
$content = preg_replace( "/^\s*define\s*\(\s*'WP_DEBUG_LOG'\s*,.*\);.*$/mi", '', $content );
$content = preg_replace( "/^\s*define\s*\(\s*'WP_DEBUG_DISPLAY'\s*,.*\);.*$/mi", '', $content );
file_put_contents( $wp_config, $content );
}
delete_option( 'ayudawp_anticache_admin_notice' );
}
// Aviso informativo en escritorio de WP
add_action( 'admin_notices', function() {
if ( $aviso = get_option( 'ayudawp_anticache_admin_notice' ) ) {
echo '<div class="notice notice-warning" style="border-left: 5px solid #0073aa;background:#fff;padding:18px 22px;font-size:16px;">' . $aviso . '</div>';
}
} );
// Cabeceras proxy/caché solo para administradores
function ayudawp_anticache_headers_for_admins() {
if ( ! is_user_logged_in() ) return;
if ( ! current_user_can('manage_options') ) return;
@header( 'Expires: Wed, 11 Jan 1984 05:00:00 GMT' );
@header( 'Cache-Control: no-store, no-cache, must-revalidate, max-age=0, s-maxage=0' );
@header( 'Cache-Control: post-check=0, pre-check=0', false );
@header( 'Pragma: no-cache' );
@header( 'X-Cache-By: AyudaWP Kit Anti-Caché PRO' );
}
add_action( 'send_headers', 'ayudawp_anticache_headers_for_admins', 99 );
// Versiones aleatorias en scripts y estilos para administradores
function ayudawp_anticache_randomize_assets( $src ) {
if ( ! is_user_logged_in() || ! current_user_can('manage_options') ) return $src;
$random = 'nocache=' . mt_rand( 100000, 999999 );
$src .= ( strpos( $src, '?' ) === false ? '?' : '&' ) . $random;
return $src;
}
add_filter( 'script_loader_src', 'ayudawp_anticache_randomize_assets', 99 );
add_filter( 'style_loader_src', 'ayudawp_anticache_randomize_assets', 99 );
// Comentario HTML en head para admins
function ayudawp_anticache_html_comment_admin() {
if ( ! is_user_logged_in() || ! current_user_can('manage_options') ) return;
echo "\n<!-- AyudaWP Kit Anti-Caché PRO: Todas las cachés deshabilitadas en esta sesión (usuario admin). -->\n";
}
add_action( 'wp_head', 'ayudawp_anticache_html_comment_admin', 1 );
add_action( 'admin_head', 'ayudawp_anticache_html_comment_admin', 1 );
¿Cómo sé que está funcionando el plugin?
Cuando instales y actives el plugin verás un mensaje en la administración, que solo desaparece al desactivarlo, y que te indica qué ha hecho y qué no.
Resumen de funcionalidades y cómo comprobarlas
Al activar el plugin pasa todo esto:
- Vacía y desactiva todos los plugins de caché populares – Puedes verlo en el aviso de activación y la página de plugins.
- Activa el modo DEBUG de WordPress –
WP_DEBUG,WP_DEBUG_LOG,WP_DEBUG_DISPLAY) – Si los hay, verás errores y avisos en pantalla y en el archivowp-content/debug.log. - Envía todas las cabeceras HTTP anti-caché posibles (navegador/proxy).
→ Para comprobarlo: Abre las herramientas de desarrollador (F12), pestaña «Red», recarga la página y revisa las «Cabeceras de respuesta». Busca:Cache-Control: no-store,no-cache,must-revalidate, etc. - Fuerza versiones aleatorias en todos los JS y CSS para administradores.
→ Para comprobarlo: Conectado como administrador, visualiza el código fuente y busca?nocache=xxxxxxal final de las URLs de los archivos.jsy.css. Recarga la pantalla con el código fuente y verás que el número cambia. - Inserta un comentario HTML en
<head>solo visible si estás conectado como administrador.
→ Para comprobarlo: Visualiza el código fuente y busca:
<!-- AyudaWP Kit Anti-Caché PRO: Todas las cachés deshabilitadas en esta sesión (usuario admin). -->
Todo esto solo lo ven los administradores conectados a la web, los visitantes normales no ven ni sufren ningún cambio.
- Al desactivar el plugin, todo vuelve a la normalidad automáticamente.
¿Cómo se instala manualmente el Kit Anti-Caché?
Si te animas, solo tienes que usar uno de estos 2 posibles métodos:
Sin comprimir:
- Crea con tu editor de texto código favorito un archivo llamado
ayudawp-anticache.php. - Copia el código del plugin y pégalo en el archivo PHP creado.
- Sube el archivo PHP a la carpeta /wp-content/plugins/ de tu web, por FTP o con el administrador de archivos del hosting.
- Ve a la pantalla de plugins de tu web, verás el plugin inactivo – ¡Actívalo!
Comprimido:
- Crea con tu editor de texto código favorito un archivo llamado
ayudawp-anticache.phpdentro de una carpeta llamada ayudawp-anticache. - Copia el código del plugin y pégalo en el archivo PHP creado.
- Comprime la carpeta con el archivo PHP.
- Instala el plugin desde el instalador de plugins del escritorio de WordPress, subiéndolo como harías con cualquier otro plugin.
¿No tienes una versión ya preparada para instalar y listo?

Pues sí, la tengo. Si eres de los que no te apañas con el código y prefieres asegurar, he preparado un plugin de instalar y listo, totalmente gratuito, y que iré actualizando para incorporar compatibilidad con otros plugins de caché o lo que necesites.
Esta joyita la tienes haciendo clic en este enlace, o en el instalador de plugins de tu WordPress.
¿Hace lo mismo que el código de antes?
Pues no, hace más cosas, porque le he ido añadiendo cositas…
Completa gestión de caché
- Detecta y vacía automáticamente la caché de los principales plugins
- Desactiva temporalmente plugins de caché durante el desarrollo (el usuario puede reactivarlos fácilmente)
- Vacía la caché de objetos (Redis, Memcached)
- Vacía la OPcache y cachés específicas de los alojamientos
- Impide la caché del navegador para administradores
Activación del modo de depuración
- Modifica de manera segura wp-config.php usando la API WordPress Filesystem
- Activa automáticamente WP_DEBUG, WP_DEBUG_LOG, WP_DEBUG_DISPLAY
- Muestra errores y advertencias PHP para diagnóstico
- Revierte todos los cambios en el wp-config.php al desactivarlo
️ Modo de mantenimiento
- Opcional sencilla pantalla de mantenimiento para usuarios no conectados
- Evita que los visitantes vean los errores de desarrollo
- Conmutador rápido desde la barra de administración
- Mensaje de mantenimiento personalizable
Afecta solo para administradores
- Todas las medidas anti-caché únicamente afectan a administradores conectados
- Los visitantes normales ven el sitio con la caché habitual (a menos que esté activo el modo de mantenimiento)
- Perfecto para desarrollo en sitios en activo
Panel de gestión inteligente
- Ve el estado actual y las características activas
- Sencilla activación a un clic de plugins de caché
- Opciones de vaciado manual de caché
- Resumen claro de lo que ha cambiado
Plugins de caché compatibles
- WP Rocket
- W3 Total Cache
- WP Super Cache
- WP Fastest Cache
- LiteSpeed Cache
- SiteGround Optimizer
- WP Optimize
- Hummingbird (WPMU DEV)
- Breeze (Cloudways)
- Autoptimize
- Cache Enabler
- Surge
- Caché de objetos Redis
Cachés de alojamiento compatibles
- Caché del alojamiento SiteGround
- Cloudflare (cuando está activo el plugin)
- Sistemas de caché genérica de alojamientos
Cómo funciona
- Activación: vacía y desactiva automáticamente todos los plugins de caché detectados
- Modo de depuración: activa el modo de depuración de WordPress en wp-config.php
- Cabeceras anti-caché: envía cabeceras no-cache a usuarios administradores
- Versionado de recursos: añade versiones aleatorias a archivos CSS/JS para los administradores
- Modo de mantenimiento: opcional sencilla pantalla para usuarios no conectados
- Desactivación: revierte todos los cambios y desactiva el modo de depuración
Casos de uso
- Probar actualizaciones de temas o plugins
- Diagnosticar pantallas en blanco o errores
- Desarrollo de nuevas características sin interferencias de caché
- Revisión de cambios de diseño en tiempo real
- Depuración de errores y advertencias de PHP
- Desarrollo seguro en sitios activos
Seguridad y protección
- Todos los cambios afectan únicamente a los usuarios administradores
- Reversión automática de cambios al desactivarlo
- Verificación segura de nonces en todas las acciones
- Ninguna modificación de la base de datos salvo las opciones
- Compatible con WordPress multisitio
Como verás, UNA BESTIA. Pruébalo y me cuentas 😉
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!








Que maravilla de artículo. Con un plugin encima
Gracias, no sabes como te agradezco el comentario, que me he tirado varios días preparando la guía 🙂