WP Super Cache

Descripción

Este plugin crea archivos html estáticos de tu sitio WordPress dinámico. Una vez se haya creado el archivo html tu servidor servirá ese archivo en vez de procesar los scripts PHP de WordPress, en comparación mucho más pesados y consumidores de recursos.

Los archivos estáticos html se servirán a la gran mayoría de sus usuarios:

  • Usuarios que no están conectados.
  • Usuarios que no han comentado en tu sitio.
  • O usuarios que no han visto una entrada protegida por contraseña.

El 99% de tus visitantes recibirán archivos html estáticos. Un archivo en caché se puede servir miles de veces. Otros visitantes recibirán archivos en caché personalizados a la medida de su visita. Si están conectados, o han dejado comentarios, esa información se mostrará y almacenará en caché para ellos.

El plugin sirve los archivos en caché en 3 maneras (ordenados por velocidad):

  1. Experto. El modo más rápido es usar el módulo de Apache mod_rewrite (o cualquier módulo similar que tenga tu servidor web) para servir archivos html estáticos “supercacheados”. Esto omite completamente PHP y es extremadamente rápido. Si tu servidor recibe un aluvión de tráfico le será más fácil afrontarlo ya que las peticiones son más “livianas”. Esto requiere el módulo de Apache mod_rewrite (que seguramente esté instalado si tienes enlaces permanentes personalizados) y una modificaci´n de tu archivo .htaccess. Las visitas a los usuarios anónimos o desconocidos se sirven de este modo.
  2. Fácil. Los archivos estáticos supercacheados pueden servirse por PHP y esta es la forma recomendada de usar el plugin. El plugin servirá un archivo “supercacheado” si existe y es casi tan rápido como el método mod_rewrite. Es más fácil de configurar ya que no necesita cambiar el archivo .htaccess. Sin embargo necesita un enlace permanente personalizado. Puedes mantener partes de tu página dinámica en este modo de almacenamiento en caché.
  3. Caché de WP-Cache. Esto se usa principalmente para almacenar en caché las páginas para usuarios conocidos, URL con parámetros y feeds. Los usuarios conocidos son usuarios registrados, visitantes que dejan comentarios o aquellos a quienes deben mostrarse datos personalizados por usuario. Es el método de almacenamiento en caché más flexible y un poco más lento. El almacenamiento en memoria caché de WP-Cache también almacenará en caché las visitas de usuarios desconocidos si supercache está desactivado. Puedes tener partes dinámicas en tu página en este modo también. Este modo siempre está activado pero puedes desactivar el almacenamiento en caché para usuarios conocidos, URL con parámetros o feeds por separado. Establece la constante “DISABLE_SUPERCACHE” en 1 en tu wp-config.php si solo deseas usar el almacenamiento en caché de WP-Cache.

Si no te sientes cómodo editando archivos PHP, utiliza el modo fácil. Es fácil y muy rápido de configurar.

Ajustes recomendados

  1. Almacenamiento en caché fácil.
  2. Comprimir páginas.
  3. No cachear páginas a los usuarios conocidos.
  4. Reconstrucción de caché.
  5. Compatibilidad con CDN.
  6. Comprobaciones adicionales de portada.

La recogida de basura es el acto de limpiar los archivos de caché que están desactualizados y obsoletos. No hay un valor correcto para el tiempo de caducidad, pero un buen punto de inicio es 1800 segundos.

Considera eliminar el contenido de la caja de texto “Agentes de usuario rechazados” y permite que los motores de búsqueda guarden los archivos en caché para tí.

A ser posible precarga tantas entradas como puedas y activa el “Modo de precarga”. La recogida de residuos todavía funcionará pero no afectará a los archivos precargados. Si no te importa que los widgets de barra lateral no se actualicen muy a menudo pon el intervalo de precarga a 2880 minutos (2 días) para que tus entradas no se vuelvan a cachear muy a menudo. Cuando se realiza la precarga los archivos en caché de la entrada se actualizan y se borran, y luego se regeneran. Después se realiza una recogida de residuos de todos los archivos antiguos para limpiar los archivos en caché anticuados.
Con la precarga de archivos de caché se siguen borrando cuando creas o editas entradas o cuando se hacen comentarios.

Desarrollo

Documentación

Si necesitas más información que la actual, puedes visitar la documentación del desarrollador.

Precarga

Puedes generar archivos almacenados en caché para las publicaciones, categorías y etiquetas de tu sitio mediante precarga. La precarga visitará cada página de tu sitio y generará una página en caché a medida que avance, al igual que cualquier otro visitante del sitio. Debido a la naturaleza secuencial de esta función, precargar un sitio completo puede llevar algún tiempo si hay muchas publicaciones.
Para que la precarga sea más efectiva, puede ser útil desactivar la recogida de basura para que no se eliminen los archivos de caché más antiguos. Esto se hace activando el “Modo de precarga” en los ajustes. Ten en cuenta, sin embargo, que las páginas quedarán desactualizadas eventualmente, pero que las actualizaciones al enviar comentarios o editar publicaciones borrarán partes de la caché.

Recogida de basura

El directorio de caché se llena con el tiempo, y eso ocupa espacio en el servidor. Si el espacio es limitado o te pasa factura o si te preocupa que las páginas en caché se vuelvan obsoletas, entonces debes realizarse la recogida de basura. La recolección de basura se hace regularmente y borra archivos viejos en el directorio de caché. En la página de ajustes avanzados puedes especificar:
1. Tiempo de caducidad. Cuánto tiempo se consideran válidos los archivos de caché. Después de este tiempo, están obsoletos y se pueden eliminar.
2. Programador. Configura la frecuencia con la que se debe realizar la recogida de basura.
3. Mensajes de notificación por correo electrónico. Puedes recibir información sobre la evolución del proceso de recogida de basura. No hay configuraciones correctas o incorrectas para la recolección de basura. Depende de tu propio sitio.
Si tu sitio recibe actualizaciones periódicas o comentarios, establece el tiempo de caducidad en 1800 segundos y configura el temporizador en 600 segundos.
Si tu sitio es principalmente estático, puedes desactivar la recogida de basura escribiendo 0 como tiempo de caducidad o usando un valor de tiempo de caducidad francamente grande.

El directorio de caché, generalmente wp-content/cache/ es solo para archivos temporales. Nunca coloques en ese directorio archivos importantes o enlaces simbólicos a archivos o directorios importantes. Se eliminarán si el plugin tiene acceso de escritura a ellos.

CDN

Una red de distribución de contenido (CDN) generalmente es una red de computadoras ubicadas en todo el mundo que sirven el contenido del sitio web más rápidamente mediante el uso de servidores cercanos a tí. Los archivos estáticos como imágenes, Javascript y CSS se pueden servir a través de estas redes para acelerar la carga del sitio. También puedes crear una “CDN de pobre” utilizando un subdominio de tu dominio para servir archivos estáticos.

OSSDL CDN off-linker se ha integrado en WP Super Cache para proporcionar compatibilidad básica con CDN. Funciona reescribiendo las URLs de los archivos (excepto los archivos.php) en wp-content y wp-includes de tu servidor, por lo que apuntan a un hostname diferente. Muchos CDN admiten extracción de origen. Esto significa que el CDN descargará el archivo automáticamente de tu servidor cuando se le solicite por primera vez, y lo continuará sirviendo durante un período de tiempo configurable antes de volver a descargarlo de tu servidor.

Configura esto en la pestaña “CDN” de la página de ajustes del plugin. Esta es una técnica avanzada y requiere una comprensión básica de cómo funciona tu servidor web o CDN. Asegúrate de borrar los archivos en caché después de configurar el CDN.

REST API

Ahora hay endpoints en la REST API para acceder a la configuración de este plugin. Deberá ser autenticado como usuario administrador con permiso para ver la página de configuración y poder usarla. Esto aún no se ha documentado, pero puede encontrar todo el código de esto en el directorio “rest”.

Caché personalizada

Ahora es posible conectar el proceso de almacenamiento en caché utilizando la función add_cacheaction().

Hay tres ganchos disponibles:

  1. ‘wp_cache_get_cookies_values’ – modifica la clave utilizada por WP Cache.
  2. ‘add_cacheaction’ – se ejecuta en fase2. Permite que un plugin agregue ganchos de WordPress.
  3. ‘cache_admin_page’ – se ejecuta en la página de administración. Úsalo para modificar esa página, quizás agregando nuevas opciones de configuración.

Hay un filtro regular de WordPress también. Usa el filtro the “do_createsupercache”
para personalizar los controles realizados antes del almacenamiento en caché. El filtro acepta un parámetro.
La función de salida de WP-Cache wp_cache_get_cookies_values().

WP Super Cache tiene su propio sistema de plugins. Este código se carga cuando se carga WP Super Cache y se puede usar para cambiar la forma en que se realiza el almacenamiento en caché. Esto es antes de que se cargue la mayoría de WordPress, por lo que algunas funciones no estarán disponibles. Los plugins se pueden ubicar en cualquier lugar donde PHP pueda cargarlos. Añade tu propio plugin:

  • colocando tu plugin en el directorio “wp-content/plugins/wp-super-cache-plugins”, o
  • llamando a `wpsc_add_plugin( $name )` donde `$name` es el nombre de archivo completo y la ruta al plugin. Solo necesitas llamar a esa función una vez para añadirla. Utiliza `wpsc_delete_plugin( $name )` para eliminarlo de la lista de plugins subidos.

Las cookies que WP Super Cache utiliza para identificar «usuarios conocidos» pueden modificarse añadiendo los nombres de esas cookies a una lista en los ajustes del plugin. Usa wpsc_add_cookie( $name ) para añadir una nueva cookie, y wpsc_delete_cookie( $name ) para eliminarla. Los nombres de las cookies también modifican las reglas mod_rewrite usadas por el plugin, pero recomiendo usar el método de cacheo simple para evitar problemas al actualizar el archivo .htaccess.
El nombre y el valor de la cookie se usan para diferenciar a los usuarios, de modo que por ejemplo puedes tener una cookie, pero valores diferentes para cada tipo de usuario de tu sitio. Se les servirán diferentes archivos de caché.

Mira como ejemplo plugins/searchengine.php, que es lo que uso en mi plugin No Adverts for Friends.

Solución de problemas

Si algunas cosas no funcionan desde que instalaste el plugin, hay algunas cosas que debes comprobar:

  1. ¿Tiene wp-content permisos de escritura para el servidor?
  2. ¿Existe un wp-content/wp-cache-config.php? Si no existe, debes copiar el archivo wp-super-cache/wp-cache-config-sample.php en wp-content/wp-cache-config.php y asegurarte de que WPCACHEHOME apunte al lugar correcto.
  3. ¿Existe un wp-content/advanced-cache.php? Si no existe, debes copiar wp-super-cache/advanced-cache.php en wp-content/. Debes editar el archivo y cambiar la ruta para que apunte a la carpeta wp-super-cache.
  4. Si no hay páginas en la memoria caché, elimina wp-content/advanced-cache.php y vuelve a crearlo, siguiendo los consejos anteriores.
  5. Asegúrate de que la siguiente línea esté en wp-config.php y esté ENCIMA de la línea “require_once(ABSPATH.’wp-settings.php’);”:

    define( 'WP_CACHE', true );
    
  6. Prueba de nuevo en página Ajustes->WP Super Cache y activa la caché.
  7. Pasa a ver wp-content/cache/supercache/. ¿Hay directorios y archivos allí?
  8. ¿Hay algo en el error_log de php?
  9. Si el navegador sigue pidiéndote que guardes el archivo después de instalar supercaché, debes desactivar la compresión de Super Cache. Ve a la página Ajustes->WP Super Cache y desactívala ahí.
  10. El plugin no funciona muy bien con el modo seguro de PHP activo. Debe ser desactivado por tu administrador.
  11. Si las páginas se supercachean aleatoriamente y a veces no, probablemente tu blog se puede ver con y sin el prefijo “www” en la URL. Debes elegir una forma e instalar el plugin Enforce www preference si estás usando una instalación antigua de WordPress. Las últimas versiones se redireccionan (de todos modos ¡siempre deberías usar la última versión de WordPress!)
  12. Los usuarios de servidores privados en Dreamhost deberían editar wp-content/wp-cache-config.php y apuntar el directorio de caché a “/tmp/” si reciben errores sobre el aumento del uso de la CPU. Consulta este debate para saber más.
  13. Errores de bloqueo de archivos como “no se pudo obtener la clave 0x152b: Permiso denegado en …” o “Página no almacenada en caché por WP Super Cache. No se pudo obtener el bloqueo de exclusión mutua.” son una señal de que debes usar el bloqueo de archivos. Edita wp-content/wp-cache-config.php y descomenta “$use_flock = true” o define un valor diferente para $sem_id. También puedes desactivar el bloqueo de archivos desde la pantalla de administración como último recurso.
  14. Asegúrate de que el servidor web pueda escribir en la memoria cache/wp_cache_mutex.lock si utilizas el bloqueo basto de archivos.
  15. La carpeta de caché no se puede colocar en un compartimiento NFS o Samba o NAS. Tiene que estar en un disco local. El bloqueo de archivos y la eliminación de archivos caducados no funcionarán correctamente a menos que la carpeta de caché esté en la máquina local.
  16. La recogida de basura de archivos antiguos de caché no funcionará si WordPress no puede encontrar wp-cron.php. Si stu hostname se resuelve en 127.0.0.1, podría estar impidiendo que funcione la recogida de elementos no utilizados. Verifica los access_logs de las entradas de wp-cron.php. ¿Devuelven un código 404 (archivo no encontrado) o 200? Si es 404 o no ves wp-cron.php en cualquier lugar, WordPress puede estar buscando esa secuencia de comandos en el lugar equivocado. Debes hablar con el administrador de tu servidor para corregir esto o editar /etc/hosts en servidores Unix y eliminar la siguiente línea. Tu hostname debe resolverse en la dirección IP externa de otros servidores en el uso de la red/Internet. Ver http://yoast.com/wp-cron-issues/ para más info. Una línea como “127.0.0.1 localhost localhost.localdomain” está bien.

    127.0.0.1 example.com
    
  17. Si se están sirviendo páginas anticuadas a tus visitantes a través de la supercaché, es posible que te falten módulos Apache (o sus equivalentes si no usas Apache). Se requieren 3 módulos: mod_mime, mod_headers y mod_expires. Los dos últimos son especialmente importantes para garantizar que los navegadores carguen las nuevas versiones de páginas existentes en tu sitio.
  18. El mensaje de error “WP Super Cache está instalado pero roto. La ruta a wp-cache-phase1.php in wp-content/advanced-cache.php debe corregirse!” aparece al final de cada página. Abre el archivo wp-content/advanced-cache.php en su editor favorito. ¿Es correcta la ruta a wp-cache-phase1.php? Este archivo estará normalmente en wp-content/plugins/wp-super-cache/. Si no es correcto, el motor de almacenamiento en caché no se cargará.
  19. El almacenamiento en caché no funciona. La marca de tiempo en mi blog cambia constantemente cuando recargo. Comprueba en las reglas .htaccess que la ruta coincide con el lugar donde está el directorio supercache. Puede que tengas que codificarlo. Intenta desactivar el modo supercaché.
  20. Si se generan archivos de caché de supercaché pero no se sirven, comprueba los permisos en todas las carpetas de wp-content/cache/supercache (y en cada una de las carpetas de memoria caché y supercaché de wp-content) y wp-content/cache/.htaccess. Si tu PHP se ejecuta como un usuario diferente a Apache y los permisos son estrictos, es posible que Apache no pueda leer los archivos de caché generados por PHP. Para solucionarlo, debes agregar la siguiente línea a tu wp-config.php (agrégala encima de WP_CACHE define). Después borra la caché.

    umask( 0022 );
    
  21. Si ves basura en tu navegador después de activar la compresión en el plugin, es posible que la compresión ya esté activada en el servidor web. En Apache debes desactivar mod_deflate, o en PHP la compresión zlib puede estar activada. Puedes desactivarla de tres maneras. Si tienes acceso de administrador, edita el php.ini y encuentra la configuración de zlib.output_compression y asegúrate de que esté “Desactivada” o agrega esta línea al .htaccess:

    php_flag zlib.output_compression off
    

    Si eso no funciona, añade esta línea a tu wp-config.php:

    ini_set('zlib.output_compression', 0);
    
  22. La “pantalla blanca de la muerte” o una página en blanco cuando visitas tu sitio casi siempre es causada por un error de PHP, pero también puede ser causado por APC. Desactiva esa extensión de PHP si tienes problemas y reemplázala con eAccelerator o Xcache.
  23. Después de desinstalar, los enlaces permanentes pueden romperse si eliminas también las reglas de mod_rewrite de WordPress. Vuelve a generar esas reglas visitando la página Ajustes->Enlaces permanentes y guarda ese formulario de nuevo.
  24. Si tu blog se niega a cargar, asegúrate de que tu wp-config.php sea correcto. ¿Has perdido una etiqueta PHP de apertura o cierre?
  25. ¿Tu página principal está bien, pero las entradas y las páginas dan un 404? Ve a Ajustes-> enlaces permanentes y haz clic en “Guardar” una vez hayas seleccionado una estructura personalizada de enlaces permanentes. Es posible que debas actualizar manualmente el archivo .htaccess.
  26. Si algunos caracteres no aparecen correctamente en tu sitio web, es posible que tu servidor no esté configurado correctamente. Debes decirle a los visitantes qué conjunto de caracteres usas. Ve a Ajustes->Lectura y copia el valor ‘Codificación de páginas y feeds’. Edita el archivo .htaccess con todas las reglas de reescritura de Supercache y WordPress y añade esto en la parte superior, reemplazando CHARSET con el valor copiado. (por ejemplo, ‘UTF-8’)

    AddDefaultCharset CHARSET
    
  27. Usa Cron View para ayudar a diagnosticar problemas de recogida de basura y precarga. Usa el plugin para asegurarte de que las tareas estén programadas y para qué hora. Busca las tareas wp_cache_gc y wp_cache_full_preload_hook.
  28. El mensaje de error “WP Super Cache está instalado pero roto. La constante WPCACHEHOME se debe establecer en el archivo wp-config.php y apuntar al directorio del plugin WP Super Cache.” aparece al final de cada página. Puedes eliminar wp-content/advanced-cache.php y recargar la página de configuración del plugin o editar wp-config.php y buscar WPCACHEHOME y asegurarte de que apunte a la carpeta wp-super-cache. Normalmente será wp-content/plugins/wp-super-cache/ pero es probable que necesites la ruta completa a ese archivo (por lo que es más fácil dejar que la página de ajustes lo solucione). Si no es correcto, el motor de almacenamiento en caché no se cargará.
  29. Si tu servidor está teniendo problemas debido a la cantidad de semáforos que utiliza el plugin, es porque tus usuarios están utilizando el bloqueo de archivos, que no es recomendable (pero lo necesitan un reducido número de usuarios). Puedes desactivar globalmente el bloqueo de archivos definiendo la constante WPSC_DISABLE_LOCKING, o definiendo la constante WPSC_REMOVE_SEMAPHORE para que llame a sem_remove() después de almacenar cada página en caché, pero eso parece causar problemas en otros procesos que solicitan el mismo semáforo. Lo mejor es desactivarlo.
  30. Establece la variable $htaccess_path en wp-config.php o wp-cache-config.php a la ruta de tu .htaccess global si el plugin está buscando ese archivo en el directorio equivocado. Esto puede suceder si tienes instalado WordPress de una manera inusual.

Instalación

Instalar como cualquier otro plugin, directamente desde tu página de plugins, pero asegúrate de tener activos los enlaces permanentes personalizados. Ve a la página de ajustes del plugin en Ajustes->WP Super Cache y activa el almacenamiento en caché.

Cómo desinstalar WP Super Cache

Prácticamente todo lo que tienes que hacer es desactivar el plugin en la página de plugins. El plugin debería limpiar la mayoría de archivos creados y modificados, pero aún no borra las reglas de mod_rewrite del archivo .htaccess. Busca la sección de ese archivo marcada con las etiquetas SuperCache BEGIN y END. El plugin no borra eso debido a que algunas personas añaden también reglas de WordPress en ese bloque.

Para desinstalarlo manualmente:

  1. Desactiva la caché en la página de ajustes del plugin y vacía la caché.
  2. Desactiva el plugin en la página de plugins.
  3. Borra la variable WP_CACHE de tu wp-config.php. Será algo como define( 'WP_CACHE', true );
  4. Borra las reglas mod_rewrite de Super Cache de tu archivo .htaccess.
  5. Borra los archivos wp-content/advanced-cache.php y wp-content/wp-cache-config.php
  6. Borra el directorio wp-content/cache/
  7. Borra el directorio wp-super-cache de tu directorio de plugins.

Si todo falla y tu sitio está roto

  1. Borra la variable WP_CACHE de tu wp-config.php. Será algo como define( 'WP_CACHE', true );
  2. Borra las reglas (ver arriba) que el plugin escribió en el archivo .htaccess de tu directorio raíz.
  3. Borra la carpeta wp-super-cache de la carpeta de plugins.
  4. Opcionalmente borra advanced-cache.php, wp-cache-config.php la la carpeta de caché en wp-content/.

Preguntas frecuentes

¿Cómo sé que mi blog se está cacheando?

Ve a Ajustes->WP Super Cache y busca el formulario “Probar caché” en la página de ajustes fáciles. Haz clic en “Probar Cache” y el plugin solicitará la página principal del sitio dos veces, comparando una marca de tiempo en cada una para asegurarse de que coincidan.

Si deseas hacerlo manualmente, activa la depuración en la página de ajustes del plugin y carga el archivo de registro en una nueva pestaña del navegador. Luego, mira tu blog mientras estás conectado y tras haber cerrado sesión. Deberías ver actividad en el registro. Mira el código fuente de cualquier página de tu sitio. Cuando se crea una página por primera vez, verás el texto “Página dinámica generada en XXXX segundos”. y “Página en caché generada por WP-Super-Cache en YYYY-MM-DD HH: MM: SS” al final del código fuente. Al volver a cargar, una página almacenada en caché mostrará la misma marca de tiempo, así que espera unos segundos antes de verificar.
Si el Supercaching está desactivado y tienes activada la compresión, se agregará el texto “Compression = gzip”. Si la compresión está desactivada y la página se sirve como un archivo html estático, se agregará el texto “super cache”. La única forma de comprobar si el archivo en caché es servido por el script PHP o desde la caché estática es mirando los encabezados HTTP. Las páginas en caché de PHP tendrán el encabezado “WP-Super-Cache: archivo de super cache servido desde PHP”. Los archivos en caché de WPCache tendrán el encabezado, “WP-Super-Cache: servido archivo de caché WPCache”. También debes verificar el directorio de caché en wp-content/cache/supercache/hostname/ para archivos de caché estáticos.
Si las reglas del plugin no aparecen en tu archivo .htaccess, el plugin intentará mostrar la página super cache si la encuentra. Si esto sucede el encabezado será “WP-Super-Cache: archivo de supercache servido desde PHP”.

¿Cómo desactivo Supercache?

Si solo quieres usar el motor WP-Cache, entonces edita tu wp-config.php o crea un mu-plugin que establezca la constante ‘DISABLE_SUPERCACHE’ en 1.

WP-Cache vs archivos Supercache

Todos los archivos de caché se almacenan en wp-content/cache/supercache/HOSTNAME/ donde HOSTNANE es tu nombre de dominio. Los archivos se almacenan en directorios que coinciden con la estructura de enlaces permanentes de tu sitio. Los archivos de Supercache son index.html o alguna variante de eso, dependiendo del tipo de visitante que llegue al blog. Otros archivos se llaman wp-cache-XXXXXXXXXXXXXXXXX.php. Los metaarchivos asociados comienzan con “meta”. Esos archivos contienen información sobre el archivo en caché. Estos archivos son generados por el motor “WPCache caching” del plugin.

¿Se actualizarán de inmediato los comentarios y otras partes dinámicas de mi blog?

Los comentarios se mostrarán tan pronto como se moderen, según la política de comentarios del propietario del blog. Es posible que otros elementos dinámicos de una página no se actualicen a menos que estén escritos en JavaScript, Flash, Java u otro lenguaje de navegador del lado del cliente. El plugin realmente produce páginas html estáticas. Cuando esas páginas se sirven no se ejecuta PHP. “Popularity Contest” es uno de esos plugins que no funcionarán.

¿Reducirá la velocidad de mi servidor la compresión de Super Cache?

No, hará lo contrario. Los archivos de Super Cache se comprimen y almacenan de esa forma, por lo que la compresión intensa se realiza solo una vez. Generalmente estos archivos son mucho más pequeños y se envían al navegador de un visitante mucho más rápido que los html sin comprimir. Como resultado, el servidor pasa menos tiempo hablando por la red, lo que ahorra tiempo de CPU y ancho de banda, y también puede atender la próxima solicitud mucho más rápidamente.

¿Cómo hago para que ciertas partes de la página se mantengan dinámicas?

Nota: esta funcionalidad está desactivada por defecto. Deberás activarla en la página de ajustes avanzados.

Hay 2 formas de hacer esto. Puedes usar Javascript para dibujar la parte de la página que deseas mantener dinámica. Eso es lo que Google Adsense y muchos widgets de sitios externos hacen y es la forma recomendada. O puedes usar un filtro de WP Super Cache para hacer el trabajo pero no puedes usar el caché de modo mod_rewrite. Has de usar el método de entrega “fácil” o desactivar supercache.

WP Super Cache 1.4 introdujo un filtro de caché llamado wpsc_cachedata. La página en caché a mostrar pasa por este filtro y permite la modificación de la página. Si la página contiene una etiqueta de marcador de posición, el filtro se puede usar para reemplazar esa etiqueta con tu html generado dinámicamente.
La función que se engancha al filtro wpsc_cachedata debe colocarse en un archivo en la carpeta de plugins de WP Super Cache si no usas la función late_init feature. Hay un plugin de ejemplo incluido. Edita dynamic-cache-test.php para ver el código de ejemplo.
Hay dos ejemplos de funciones allí. Hay una función simple que reemplaza una cadena (o etiqueta) que define cuando se sirve la página en caché. La otra función de ejemplo usa un buffer de salida para generar el contenido dinámico. Debido a una limitación en la forma en que PHP funciona, el código del buffer de salida DEBE ejecutarse antes que el filtro wpsc_cachedata, al menos para cuando se almacena en la memoria caché de una página. No importa cuando se publican páginas en caché. Consulta esta entrada para obtener una explicación más técnica y extensa.
Para ejecutar funciones de WordPress debes activar la característica ‘Late init’ en la página de ajustes avanzados.

¿Cómo puedo retrasar la entrega de caché hasta que se active la acción “init”?

Los archivos cacheados se sirven antes de que cargue casi todo WordPress. Si bien es genial para el rendimiento, es un dolor cuando quieres ampliar el plugin usando una parte del core de WordPress. Activa el modo ‘Retrasar init’ en la página de ajustes avanzados y los archivos en caché se servirán cuando se active “init”. WordPress y sus plugins se cargarán ahora.

¿Por qué ahora no funcionan o no se actualizan en mi blog WP UserOnline, Popularity Contest, WP Postratings o el plugin X?

Este plugin almacena en caché páginas enteras, pero algunos plugins piensan que pueden ejecutar código PHP cada vez que se carga una página. Para solucionarlo, el plugin necesita usar los métodos de Javascript/AJAX o el filtro wpsc_cachedata descrito en la respuesta anterior para actualizar o mostrar información dinámica.

¿Por qué desaparecen mis plugins de WP Super Cache cuando actualizo el plugin?

WordPress borra la carpeta del plugin cuando actualiza un plugin. Esto es lo mismo con WP Super Cache, por lo que se eliminarán todos los archivos modificados en “wp-super-cache/plugins/”. Puedes colocar tus plugins personalizados en un directorio diferente de varias maneras. Puedes definir la variable `$wp_cache_plugins_dir` en el archivo “wp-config.php” o “wp-content/wp-cache-config.php” y apuntar a un directorio fuera de la carpeta “wp-super-cache”. El plugin buscará allí tus plugins. O si distribuyes un plugin que necesita cargarse antes, puede usar la función wpsc_add_plugin( $filename ) para añadir un nuevo plugin donde sea que esté. Utiliza wpsc_delete_plugin( $filename ) para eliminar el archivo del plugin. Consulta #574 o esta entrada sobre la escritura de plugins WP Super Cache.

¿Qué hace la característica reconstruir caché?

Cuando una visita deja un comentario, el archivo en caché de esa página se elimina y la siguiente visita vuelve a crear la página en caché. Una página emplea tiempo en cargarse, entonces ¿qué sucede si recibes 100 visitantes en ese momento? No habrá una página almacenada en caché para que WordPress sirva una página actualizada para cada usuario y el plugin intentará crear una página en caché para cada uno de esos 100 visitantes, causando una gran carga en el servidor. Esta característica evita que esto ocurra. La página almacenada en caché no se borra cuando dejan un comentario. Está marcada para que en lugar de eso se reconstruya. La siguiente visita dentro de los siguientes 10 segundos regenerará la página en caché mientras se sirve la página antigua a las otras 99 visitas. La página es eventualmente cargada por la primera visita y la página en caché se actualiza. Consulta esta entrada para saber más.

¿Por qué el plugin no cachea por defecto las solicitudes de los robots del motor de búsqueda?

Esos bots normalmente solo visitan cada página una vez y si la página no es popular no tiene sentido crear un archivo de caché que permanezca inactivo en el servidor. Sin embargo, puedes permitir que estas visitas se almacenen en caché eliminando la lista de bots de “Agentes de usuario rechazados” en la página de configuración avanzada.

Se está mostrando una página de categoría en lugar de mi página de inicio

Una pequeña proporción de sitios web tendrán problemas con la siguiente configuración:

  1. Utiliza una página estática para la página principal.
  2. Usa la estructura de enlaces permanentes /%category%/%postname%/.

A veces, una página de categoría se almacena en caché como la página de inicio del sitio en lugar de la página estática. No puedo replicar el problema pero una solución simple es usar el modo “Fácil”. También puedes habilitar los “Comprobaciones adicionales de página de inicio” en la página de ajustes avanzados.

¿Por qué recibo advertencias sobre el almacenamiento en caché desde http://ismyblogworking.com/?

“Tu blog no admite el almacenamiento en memoria caché del cliente (no hay respuesta 304 a If-modified-since).”
“Tu feed no admite cacheo (no hay respuesta 304 a If-modified-since)”

Supercache no es compatible con control de encabezado 304 en el modo Avanzado, pero sí lo es en modo Fácil. Esto es el almacenamiento en caché realizado por el navegador, no el servidor. Es un control que hace el navegador para preguntarle al servidor si hay disponible una versión actualizada de la página actual. Si no, no descarga la versión anterior de nuevo. El servidor aún almacena la página en caché, pero no en los navegadores de los visitantes.
Prueba el motor de Cacheability en http://www.ircache.net/cgi-bin/cacheability.py o https://redbot.org/ para un análisis más detallado.

¿Cómo debo usar las herramientas de seguimiento utm_source en Google Analytics con este plugin?

Ese seguimiento agrega una cadena de consulta a cada URL vinculada desde varias fuentes como Twitter y lectores de noticias. Desafortunadamente, evita que las páginas se supercacheen. Consulta el comentario de Joost aquí sobre cómo convertirlo en una etiqueta de anclaje que pueda supercachearse.

¡El plugin se queja de que wp-content tiene permisos de escritura! ¡htdocs tiene permisos de escritura!

No es bueno que el servidor web pueda escribir en estos directorios, pero a veces las cuentas de alojamiento compartido se configuran así para facilitar la administración. Usa chmod 755 directory para corregir los permisos o busca la sección de permisos en tu cliente ftp. Este búsqueda en Google te guiará para obtener más información sobre este tema y también hay esta página del codex page. Lamentablemente, algunos servidores requieren que esos directorios tengan permisos de escritura. Si ese es el caso, simplemente ignora esta advertencia.

¿Cómo borro WP_CACHE define de wp-config.php?

Carga tu cliente ftp de escritorio y conéctate a tu sitio. Navega hasta la raíz (o el directorio debajo de ella) del sitio donde encontrarás wp-config.php. Descarga ese archivo y edítalo en un editor de texto. Borra la línea define( 'WP_CACHE', true ); y guarda el archivo. Ahora súbelo, sobrescribiendo el wp-config.php en tu servidor.

¿Cómo elimino las reglas de Super Cache del archivo .htaccess?

Carga tu cliente ftp de escritorio y conéctate a tu sitio. Es posible que debas activar “Mostrar archivos ocultos” en las preferencias de tu cliente ftp. Navegua a la raíz del sitio donde encontrarás el archivo .htaccess. Descarga ese archivo y edítalo en un editor de texto. Elimina las líneas entre “# BEGIN WPSuperCache” y “# END WPSuperCache” y guarda el archivo. Ahora cárgalo y sobrescribe el archivo .htaccess en tu servidor.

¿Cómo cambio los permisos de archivos?

Esta página del Codex de WordPress explica todo lo que necesitas saber sobre los permisos de archivos en el servidor y varias formas de cambiarlos.

¿Por qué obtengo picos de carga cuando se hacen nuevas publicaciones?

Puedes permitir la opción “borrar todos los archivos almacenados en caché cuando se realicen nuevas publicaciones”. Limpiar esos archivos puede llevar tiempo, y tus visitantes ahora visitarán las páginas que no están en caché. ¿Estás usando el seguimiento de campañas de Google Analytics con utm_source en la url? Esas páginas no están en caché. Consulta la pregunta “¿Cómo debo usar las herramientas de seguimiento de utm_source en Google Analytics con este plugin?” para saber cómo usarlas correctamente.
Las páginas en caché deben actualizarse cuando se realizan las publicaciones. Tal vez tu servidor simplemente no está a la altura de la cantidad de tráfico que recibes. Activa la función “reconstrucción de caché” ya que puede ser útil.

¿Cuántas páginas puedo cachear?

El único límite real son los límites definidos por tu servidor. Por ejemplo, EXT2 y EXT3 permiten un máximo de 31,999 subdirectorios, así que si tienes una estructura plana de enlaces permanentes (como /%POSTNAME%/) y tienes más de 32.000 entradas puede que te metas en problemas. Igualmente, si es una red multisitio y tienes más de 31.999 sitios (blogs) no podrás cachearlos todos. Siendo realistas, si tienes tantos sitios activos no deberías estar ejecutándolos en un mismo servidor.

La versión www de mi sitio es cacheada aparte. ¿Cómo puedo evitarlo?

WordPress debería redirigir a la URL canónica de tu sitio. Si no lo hace, añade esto a tu archivo .htaccess encima de las reglas de Supercache y WordPress. Cambia example.com a tu propio hostname.
RewriteCond %{HTTP_HOST} www.example.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

¿Cómo sirvo páginas móviles en caché a clientes con pantallas pequeñas como teléfonos y tabletas?

Tu tema es probablemente adaptable, lo que significa que cambia el tamaño de la página para adaptarse a cualquier dispositivo en el que se muestre. Si no es adaptable, tendrás que usar un complemento independiente para móvil para procesar una página formateada para esos visitantes. Se han probado los siguientes complementos pero YMMV depende del cliente móvil. Tendrás que habilitar el soporte para navegador móvil también en la página de ajustes avanzada.

Reseñas

17 de agosto de 2022
I have been using this plugin for many years, and it's working good without any issues. As well, the site speed has improved a lot.
22 de julio de 2022
J'installe cette extension sur tous mes sites
Leer todas las 1,298 reseñas

Colaboradores y desarrolladores

Este software es de código abierto. Las siguientes personas han contribuido a este plugin.

Colaboradores

"WP Super Cache" ha sido traducido a 30 idiomas locales. Gracias a los traductores por sus contribuciones.

Traduce "WP Super Cache" a tu idioma.

¿Interesado en el desarrollo?

Revisa el código, echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios

1.9 – 2022-09-16

Added

  • Cache deletion: add new hook to trigger actions after a successful cache deletion from the admin bar.

Fixed

  • Fixes to URL parsing to prevent cache pollution issues around URLs with double-slashes.

See the previous changelogs here