Plugin de caché y optimización WPO nativo para la plataforma Transparent Edge. Diseñado para aprovechar las capacidades exclusivas de Varnish Enterprise, i3 image optimizer, y la API de invalidación de Transparent Edge.
Los plugins de caché existentes (WP Rocket, W3 Total Cache) no soportan las funcionalidades exclusivas del stack de Transparent Edge:
| Funcionalidad | WP Rocket | W3TC | TE Cache |
|---|---|---|---|
| Surrogate-Keys | ❌ | ❌ | ✅ |
| Soft Purge | ❌ | ❌ | ✅ |
| Invalidación por tags | ❌ | ❌ | ✅ |
| Warm-up tras purge | ❌ | ❌ | ✅ |
| i3 image optimizer | ❌ | ❌ | ✅ |
| Speculation Rules coordinado con CDN | ❌ | ❌ | ✅ |
| Recomendación VCL de seguridad | ❌ | ❌ | ✅ |
| Degradación elegante si cae la CDN | ❌ | ❌ | ✅ |
| API TE nativa | ❌ | Buggy | ✅ |
Además, cubre el terreno WPO común (minify, combine, defer/delay JS, lazy load, Remove Unused CSS, self-host fonts) con el mismo nivel que WP Rocket, pero con la ventaja de coordinarse con el edge.
- Descargar
transparent-edge-cache.zip - WordPress Admin → Plugins → Añadir nuevo → Subir plugin
- Activar
- Ir a TE Cache en el menú lateral
- Introducir credenciales API (Company ID, Client ID, Client Secret)
Si es la primera instalación, aparece un wizard que:
- Auto-detecta el tipo de site (blog, corporate, WooCommerce, membership)
- Detecta plugins activos (WPML, Elementor, Yoast, etc.)
- Aplica defaults óptimos para ese tipo de site
- Conecta con la API en un click
OAuth2 client_credentials. Token cacheado en WP transient (1 hora). En multisite, credenciales heredables desde la configuración de red.
| Key | Cuándo |
|---|---|
site-{blog_id} |
Siempre |
front-page |
Portada |
post-{id} |
Página/post individual |
type-{cpt} |
Archivo de post type |
author-{id} |
Página de autor |
term-{id} |
Taxonomía (categoría, tag, etc.) |
tax-{taxonomy} |
Archivo de taxonomía |
feed |
Feeds RSS |
sidebar-{id} |
Sidebar activa |
menu-{location} |
Menú por ubicación |
woo-product-{id} |
Producto WooCommerce |
woo-cat-{id} |
Categoría de producto |
woo-shop |
Página de tienda |
speculation-rules-{blog_id} |
JSON de Speculation Rules |
ucss-{blog_id} |
Used CSS (Remove Unused CSS) |
Al publicar un post, el plugin calcula el conjunto mínimo de tags afectados y envía un solo tag_invalidate. Después, hace warm-up de las URLs purgadas (categorías, tags, home, etc.) para evitar MISSes.
El plugin genera VCL para funcionalidades que requieren procesamiento en el edge:
Generado en la pestaña i3. Usa urlplus.get_extension() para detectar imágenes y aplica TCDN-i3-transform.
Generado en la pestaña Advanced. Usa el patrón óptimo de urlplus:
urlplus.parse(req.url);
urlplus.query_delete_regex("^(utm_source|utm_medium|...)$");
urlplus.query_delete("fbclid");
set req.url = urlplus.write();Generado en la pestaña Security. El plugin nunca despliega VCL automáticamente — genera un snippet recomendado que el cliente aplica desde su panel, igual que i3 y Speculation Rules. El CSP arranca en modo Report-Only por seguridad.
Minificación de CSS/JS con caché en disco. El combine concatena ficheros locales del footer. Si el directorio de caché no es escribible, el plugin sirve los originales sin combinar (degradación elegante) en lugar de romper la página.
Genera el "Used CSS" por plantilla (home, post, page, archive, etc.) de forma asíncrona vía WP Cron, sin bloquear al visitante. El CSS crítico se sirve inline y el resto se difiere. Se invalida por Surrogate-Key (ucss-{blog_id}) cuando cambian tema, plugins o contenido. Si la generación falla o el directorio no es escribible, sirve el CSS original sin modificar.
El Delay, Defer y Combine JS respetan el árbol de dependencias que WordPress declara entre scripts. Un script nunca se optimiza si otro script no optimizado depende de él (directa o transitivamente). Esto evita errores del tipo Backbone is not defined o ChildViewContainer (Marionette / Ninja Forms) sin necesidad de mantener listas de exclusión manuales. La protección se calcula leyendo wp_scripts()->registered[$handle]->deps.
Imágenes e iframes con loading="lazy". Las imágenes de fondo CSS (inline background-image) se difieren con IntersectionObserver; las dos primeras se mantienen activas para no penalizar el LCP. Opt-out por elemento con data-no-lazy.
Genera reglas de Speculation Rules (prefetch/prerender) servidas en un endpoint REST cacheable en el edge (/wp-json/te-cache/v1/speculation-rules). Tres modos: Conservative (click), Balanced (hover), Aggressive (hover + prerender). Incluye exclusiones automáticas para WP core, WooCommerce, plugins de membresía, parámetros de HubSpot y multilingüe, además de detección de conflictos con otros plugins de prefetch. Inyección por PHP (origen) o VCL (edge). El modo Aggressive requiere confirmación explícita.
El plugin detecta qué servicios de seguridad tiene contratados el cliente (WAF, Bot Mitigation, Perimetrical) vía GET /v1/companies/services/ y usa esa información para habilitar o mostrar en modo upsell las funciones que los requieren.
| Función | Requiere | Toca VCL |
|---|---|---|
| Detección de servicios | — | No |
| Security Headers (recomendador) | — | Recomienda snippet |
| Bloqueo PHP en uploads | — | No (.htaccess) |
| Desactivar XML-RPC | — | No |
| Límite de intentos de login | — | No |
Principio invariable: el plugin recomienda VCL, nunca lo despliega. Toda automatización de seguridad activa (rate limit, antibot, respuesta a anomalías) queda fuera del plugin y se gestiona desde la plataforma con Perimetrical contratado.
| Servidor | Método |
|---|---|
| Apache/LiteSpeed | .htaccess automático con mod_headers y mod_expires |
| Nginx | Snippet copiable para server {} block |
| Ambos | Invalidación automática: subida de media → purge URL; actualización tema/plugin → BAN CSS/JS |
| Evento | Acción |
|---|---|
| Guardar producto | Purge producto + categorías + shop + warm-up |
| Cambio de stock | Purge producto + categorías |
| Orden completada/cancelada | Purge productos de la orden |
| Review de producto | Purge ficha |
| Ventas programadas | Purge shop + on-sale |
| Cart/checkout/account | Excluidos de caché (configurable) |
Soporte para Redis y APCu como backends de Object Cache de WordPress. El plugin auto-detecta backends disponibles, genera el object-cache.php drop-in, y ofrece flush desde el dashboard.
- Network activation: crea tablas y defaults en cada site
- Credenciales compartidas (opcionales) desde Network Admin
- Panel con overview de todos los sites (estado, conexión)
- Purge All Network desde admin bar
- PHP 7.4+
- WordPress 5.5+
- Cuenta de Transparent Edge con API habilitada
flavor-edge-cache
flavor_edge\
Filtros:
flavor_edge_surrogate_keys— Modificar Surrogate-Keys antes de enviarflavor_edge_is_uncacheable— Marcar requests como no-cacheablesflavor_edge_vary_headers— Añadir headers Varyflavor_edge_post_purge_tags— Modificar tags de purge por postflavor_edge_post_warmup_urls— Modificar URLs de warm-up por postflavor_edge_auto_prefetch_domains— Modificar dominios auto-detectados para DNS prefetchflavor_edge_max_warmup_urls— Límite de URLs de warm-up (default: 20)flavor_edge_speculation_rules— Modificar el array completo de Speculation Rulesflavor_edge_speculation_eagerness— Modificar el nivel de eagernessflavor_edge_speculation_excluded_paths— Añadir rutas excluidas de prefetch/prerenderflavor_edge_speculation_enabled— Activar/desactivar la inyección de la cabecera
Acciones:
flavor_edge_after_purge_all— Tras purge completoflavor_edge_after_tag_purge— Tras purge por tagsflavor_edge_after_url_purge— Tras purge por URLsflavor_edge_settings_saved— Tras guardar settingsflavor_edge_speculation_invalidated— Tras invalidar el JSON de Speculation Rules
- Fork del repositorio
- Crear branch feature:
git checkout -b feature/mi-feature - Commit:
git commit -m "Add: descripción" - Push:
git push origin feature/mi-feature - Pull Request
- 1.5.0 — Remove Unused CSS, módulo de seguridad (gating de servicios, recomendador de security headers, hardening local), y seguridad del árbol de dependencias JS (Delay/Defer/Combine respetan
depsde WordPress). - 1.4.0 — Comprobación de permisos de escritura en activación; combine con degradación elegante; fixes de CSS de pestañas.
- 1.3.1 — Fix de serialización de radios y arrays de checkboxes en el formulario de admin.
- 1.3.0 — Speculation Rules coordinado con la CDN.
- 1.2.0 — Cifrado de credenciales, protección SSRF/path-traversal, y purga soft por defecto (en lugar de BAN).
- 1.1.0 — Degradación elegante: circuit breaker y health check de la API.
- 1.0.0 — Release inicial.
Apache 2.0