Deshabilitar cualquier limpieza automática de caché

Nota: Este tutorial se refiere a los action hooks WordPress. Si sabes un poco de código pero todavía no estás familiarizado con el concepto, puedes aprender más aquí.

Hay numerosas acciones que activan una limpieza parcial o total del caché

Las más comunes son:

  • Limpiar caché cada...

    Esta opción te permite cancelar automáticamente toda la caché, según el periodo de tiempo que hayas especificado en las Opciones Básicas. 
  • Nuevo contenido

    Cuando publicas nuevo contenido o modificas/pones al día contenido existente, la caché relativa a ese y al contenido relacionado (i.e. archivos de las taxonomías) se cancelará y pre-cargará. Puedes leer más sobre el tema aquí: 
    ¿Cómo se precarga la caché?

Esta es la lista completa de las acciones que activan una limpieza completa de la caché

  • cambiar tu tema
  • crear/actualizar/cancelar usuarios (si tienes un e-commerce, cuando tus clientes crean un orden, podrían crear automáticamente un nuevo usuario, causando así una cancelación frecuente del caché)
  • actualizar los menus de navegación
  • actualizar las opciones de tu tema
  • crear/actualizar/cancelar widgets de la barra lateral
  • crear/actualizar/cancelar categorías, tags, o la estructura de los permalinks
  • crear/actualizar/cancelar términos
  • crear/actualizar/cancelar enlaces (como la tipología de post “Link” que había sido suprimida del core WordPress con la versión 3.5, pero que podrías seguir usando con algún plugin)
  • cuando guardas cualquier opción en el Customizer (página Personalizar)
  • cuando el tema Avada limpia su propia caché 

Acciones que activan una  limpieza parcial de la caché : 

  • publicar/actualizar/cancelar artículos o páginas
  • crear/actualizar/cancelar comentarios a un artículo

Evitar la limpieza automática de la caché

Si quieres evitar las acciones mencionadas, puedes usar este código a través de un MU-plugin.

MU Plugin personalizado

Sigue las instrucciones generales de este articulo para:
How to Make a Custom (MU) Plugin

1
Crea una carpeta llamada  mu-plugins dentro de  wp-content.
Si ya existe una carpeta con ese nombre, no hace falta crearla otra vez, usa la existente.
2
Usando un editor de texto básico  crea un nuevo fichero y añade este código:

<?php
defined( 'ABSPATH' ) or die( 'Cheatin&#8217; uh?' );
/**
 * Plugin Name: WP Rocket | Disable Automatic Cache Purge
 * Description: Disables automatic cache purging in WP Rocket.
 * Author:      WP Rocket Support Team
 * Author URI:  http://wp-rocket.me/
 * License:     GNU General Public License v3 or later
 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
 */

// Disables the deletion of the entire cache.
add_action( 'wp_rocket_loaded', 'rocket_remove_all_purge_hooks' );

/**
 * Remove all of WP Rocket’s cache purging actions.
 * @return void
 */
function rocket_remove_all_purge_hooks() {

	// WP core action hooks rocket_clean_domain() gets hooked into.
	$clean_domain_hooks = array(
		// When user changes the theme
		'switch_theme',
		// When a user is added
		'user_register',
		// When a user is updated
		'profile_update',
		// When a user is deleted
		'deleted_user',
		// When a custom menu is updated
		'wp_update_nav_menu',
		// When any theme modifications are updated
		'update_option_theme_mods_' . get_option( 'stylesheet' ),
		// When you change the order of widgets
		'update_option_sidebars_widgets',
		// When category permalink prefix is update
		'update_option_category_base',
		// When tag permalink prefix is update
		'update_option_tag_base',
		// When permalink structure is update
		'permalink_structure_changed',
		// When a term is created
		'create_term',
		// When a term is updated
		'edited_terms',
		// When a term is deleted
		'delete_term',
		// When a link (post type) is added
		'add_link',
		// When a link (post type) is updated
		'edit_link',
		// When a link (post type) is deleted
		'delete_link',
		// When resulty are saved in the Customizer
		'customize_save',
		// When Avada theme purges its own cache
		'avada_clear_dynamic_css_cache',
	);

	// WP core action hooks rocket_clean_post() gets hooked into.
	$clean_post_hooks = array(
		// Disables the refreshing of partial cache when content is edited
		'wp_trash_post',
		'delete_post',
		'clean_post_cache',
		'wp_update_comment_count',
	);

	// Remove rocket_clean_domain() from core action hooks.
	foreach ( $clean_domain_hooks as $key => $handle ) {
		remove_action( $handle, 'rocket_clean_domain' );
	}

	// Remove rocket_clean_post() from core action hooks.
	foreach ( $clean_post_hooks as $key => $handle ) {
		remove_action( $handle, 'rocket_clean_post' );
	}
}<br>
	
3
Guarda el fichero como  wp-rocket-no-purge.php
4
Sube este fichero dentro la carpeta  mu-plugins que has creado al punto 1.
5
Finalmente, asegurate de desactivar y reactivar  WP Rocket.