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):
- 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.
- 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é.
- 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
- Almacenamiento en caché fácil.
- Comprimir páginas.
- No cachear páginas a los usuarios conocidos.
- Reconstrucción de caché.
- Compatibilidad con CDN.
- 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
- El desarrollo activo de este plugin se realiza en GitHub.
- Las traducciones del plugin en otros idiomas puedes encontrarlas en la página de traducción.
Documentación
Si necesitas más información que la siguiente, puedes echar un vistazo a la wiki o a documentación para desarrolladores.
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 computadors 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.
API REST
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:
- ‘wp_cache_get_cookies_values’ – modifica la clave utilizada por WP Cache.
- ‘add_cacheaction’ – se ejecuta en fase2. Permite que un plugin agregue ganchos de WordPress.
- ‘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 has its own plugin system, loaded before most of WordPress. Add your own plugin either by putting it in the wp-content/plugins/wp-super-cache-plugins directory, or by calling wpsc_add_plugin( $name ) with the full path to the plugin.
The cookies used to identify “known users” can be modified with wpsc_add_cookie( $name ) and wpsc_delete_cookie( $name ). See plugins/searchengine.php as an example.
Solución de problemas
Si algunas cosas no funcionan desde que instalaste el plugin, hay algunas cosas que debes comprobar:
- ¿Tiene wp-content permisos de escritura para el servidor?
- ¿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.
- ¿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.
- Si no hay páginas en la memoria caché, elimina wp-content/advanced-cache.php y vuelve a crearlo, siguiendo los consejos anteriores.
-
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 ); - Prueba de nuevo en página Ajustes->WP Super Cache y activa la caché.
- Pasa a ver wp-content/cache/supercache/. ¿Hay directorios y archivos allí?
- ¿Hay algo en el error_log de php?
- 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í.
- 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.
- Asegúrate de que el servidor web pueda escribir en la memoria cache/wp_cache_mutex.lock si utilizas el bloqueo basto de archivos.
- 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.
- Garbage collection of old cache files won’t work if WordPress can’t find wp-cron.php. Check your access_logs for wp-cron.php entries and that your hostname resolves to the external IP address other servers on the network/Internet use.
- 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.
- 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á.
- 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é.
-
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 ); -
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 offSi eso no funciona, agrega esta línea a tu wp-config.php:
ini_set('zlib.output_compression', 0); - 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.
- 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?
- Your front page is ok but posts and pages give a 404? Go to Settings->permalinks and click “Save” once you’ve selected a custom permalink structure. You may need to manually update your .htaccess file.
-
If certain characters do not appear correctly on your website your server may not be configured correctly. You need to tell visitors what character set is used. Go to Settings->Reading and copy the ‘Encoding for pages and feeds’ value. Edit the .htaccess file with all your Supercache and WordPress rewrite rules and add this at the top, replacing CHARSET with the copied value. (for example, ‘UTF-8’)
AddDefaultCharset CHARSET - The error message, “WP Super Cache is installed but broken. The constant WPCACHEHOME must be set in the file wp-config.php and point at the WP Super Cache plugin directory.” appears at the end of every page. You can delete wp-content/advanced-cache.php and reload the plugin settings page or edit wp-config.php and look for WPCACHEHOME and make sure it points at the wp-super-cache folder. This will normally be wp-content/plugins/wp-super-cache/ but you’ll likely need the full path to that file (so it’s easier to let the settings page fix it). If it is not correct the caching engine will not load.
- If your server is running into trouble because of the number of semaphores used by the plugin it’s because your users are using file locking which is not recommended (but is needed by a small number of users). You can globally disable file locking by defining the constant WPSC_DISABLE_LOCKING, or defining the constant WPSC_REMOVE_SEMAPHORE so that sem_remove() is called after every page is cached but that seems to cause problems for other processes requesting the same semaphore. Best to disable it.
- Set the variable $htaccess_path in wp-config.php or wp-cache-config.php to the path of your global .htaccess if the plugin is looking for that file in the wrong directory. This might happen if you have WordPress installed in an unusual way.