Nginx FastCGI Cache WordPress: Acelera tu sitio web

Nginx FastCGI Cache WordPress

📅 Publicado el 12 de septiembre, 2026 · Por Equipo RedServicio

La velocidad de carga de tu web. Hoy, no es un capricho. Es una obligación. Afecta directamente cómo navegan tus usuarios, lo que Google piensa de ti y, claro, cuántas visitas se convierten en algo más. WordPress, un CMS popularísimo, te da mucha libertad, pero por su naturaleza dinámica, pide muchos recursos. Ahí es justo donde Nginx FastCGI Cache WordPress se vuelve imprescindible.

Nginx, que ya conocemos por lo rápido y eficiente que es, trae una solución de caché a nivel de servidor. Puede bajar a lo bestia los tiempos de respuesta de tu WordPress. Si configuras bien FastCGI Cache, Nginx entrega páginas HTML estáticas a tus visitas. ¿Lo mejor? No tiene que procesar PHP ni consultar la base de datos cada vez. Esto libera una cantidad brutal de recursos del servidor. Y sí, tu web podrá soportar mucho más tráfico con la misma infraestructura.

¿Por qué Nginx FastCGI Cache para WordPress?

A ver, hay muchos plugins de caché para WordPress, sí. Piensa en WP Rocket o W3 Total Cache. Funcionan genial, pero a nivel de aplicación. ¿Qué significa? Que PHP y WordPress tienen que arrancar igual, solo para ver si la página ya está cacheada. La cosa cambia con Nginx FastCGI Cache WordPress. Esto trabaja a nivel de servidor web, como un proxy inverso. Intercepta las peticiones *antes* de que lleguen a PHP-FPM (el que procesa PHP). Si la página ya está en caché, Nginx la sirve al momento. WordPress ni se entera. Ni falta que hace.

¿Ventajas? Unas cuantas, y muy potentes:

  • Carga rapidísima: El contenido sale directo de la memoria o el disco del servidor. No hay esperas.
  • El servidor respira: Menos CPU, menos RAM. Tu máquina aguanta mucho más tráfico a la vez.
  • Aguanta picos: Da igual cuánto suba la afluencia, tu web sigue rindiendo.
  • Google te quiere: Los buscadores adoran las webs ágiles. Tu SEO, por tanto, mejora.
  • Usuarios contentos: Una navegación fluida, sin esos segundos que parecen horas.

Aquí en RedServicio.net, créeme, sabemos que cada milisegundo cuenta. Por eso, nuestros planes de hosting ya vienen optimizados para sacar todo el jugo a tecnologías como Nginx. Y nuestro soporte, 24/7, está siempre listo para ayudarte con cualquier ajuste avanzado.

Prerrequisitos y Consideraciones Iniciales

Antes de meterte de lleno en esto, necesitas tener a mano un par de cosas:

  • Un servidor con Nginx y PHP-FPM instalados y funcionando (lo típico en Ubuntu/Debian o CentOS/RHEL).
  • Acceso SSH, con permisos de root o sudo.
  • Saber un poco cómo va la estructura de Nginx (normalmente, `/etc/nginx/nginx.conf` y los archivos de configuración en `/etc/nginx/sites-available/`).
  • ¡Y, por favor, una copia de seguridad completa de tu web y de los archivos de configuración de Nginx! Un error tonto aquí y tu sitio puede quedar inaccesible.
¡Importante! Haz siempre una copia de seguridad antes de tocar archivos de configuración críticos del servidor. Un pequeño resbalón puede salir muy caro.

Paso 1: Configuración del FastCGI Cache Zone en Nginx

Lo primero es decirle a Nginx dónde guardará el contenido de la caché. Normalmente, esto lo haces en el archivo de configuración principal de Nginx (`/etc/nginx/nginx.conf`), o si eres más ordenado, en un archivo aparte dentro de `/etc/nginx/conf.d/`. Abre tu configuración (algo como `sudo nano /etc/nginx/conf.d/fastcgi_cache.conf`) y mete esto dentro del bloque `http`:


fastcgi_cache_path /var/cache/nginx/wordpress_cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m max_size=1G;

fastcgi_cache_key "$scheme$request_method$host$request_uri";

Vamos a desgranar cada parámetro:

  • /var/cache/nginx/wordpress_cache: La ruta completa donde Nginx va a guardar tus archivos de caché. Ojo: Nginx necesita permisos de escritura aquí. Puedes crearlo y darle permisos con `sudo mkdir -p /var/cache/nginx/wordpress_cache && sudo chown -R www-data:www-data /var/cache/nginx/wordpress_cache` (si usas Debian/Ubuntu, en CentOS, por ejemplo, sería `nginx:nginx` para el usuario/grupo).
  • levels=1:2: Así Nginx organiza la caché en una estructura de dos niveles de directorios. Imagina un archivo de caché en `/var/cache/nginx/wordpress_cache/c/29/tu_clave_de_cache`. Esto es clave para que Nginx gestione un montón de archivos de forma eficiente.
  • keys_zone=WORDPRESS:100m: Monta una zona de memoria compartida, le llamamos `WORDPRESS`, de 100 megabytes. Ahí se guardan los metadatos de la caché (claves, temporizadores), para que Nginx encuentre rapidísimo si algo ya está cacheado.
  • inactive=60m: Si un elemento de la caché no se toca en 60 minutos, se va. Da igual si su tiempo de vida no ha terminado.
  • max_size=1G: El tope de disco para toda la caché es 1 gigabyte. Cuando se llega al límite, Nginx se carga los elementos menos usados para hacer sitio.
  • fastcgi_cache_key "$scheme$request_method$host$request_uri";: Esto define la clave única para cada elemento. Asegura que Nginx cachee por separado páginas HTTP y HTTPS, distintos métodos (GET, POST), dominios y URLs. Indispensable para que el caché funcione bien.

Paso 2: Implementación del Cache en el Bloque `server` de Nginx

Ahora toca decirle a Nginx: «Oye, usa esta zona de caché que acabamos de montar para mi WordPress». Así que edita el archivo de configuración de tu dominio (por ejemplo, `sudo nano /etc/nginx/sites-available/tudominio.com`). Dentro del bloque `server`, y más concretamente en el bloque `location ~ \.php$` (o el que uses para las peticiones PHP), añade estas directivas:


server {

listen 80;

listen [::]:80;

server_name tudominio.com www.tudominio.com;

root /var/www/html/tudominio.com; # Asegúrate de que esta sea tu ruta de WordPress

index index.php index.html index.htm;

location / {

try_files $uri $uri/ /index.php?$args;

}

include snippets/fastcgi-php.conf; # O tu configuración PHP-FPM

fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # Ajusta a tu versión de PHP-FPM

# Configuración de FastCGI Cache

fastcgi_cache WORDPRESS;

fastcgi_cache_valid 200 301 302 60m; # Cachear respuestas 200, 301, 302 por 60 minutos

fastcgi_cache_valid 404 1m; # Cachear respuestas 404 por 1 minuto

fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;

fastcgi_cache_min_uses 1; # Cachear después de la primera solicitud

fastcgi_cache_lock on; # Previene múltiples solicitudes al backend para un mismo recurso

fastcgi_cache_revalidate on; # Revalida la caché en lugar de purgarla inmediatamente

add_header X-Cache $upstream_cache_status; # Añade un encabezado para depuración

}

# Bloquear acceso a archivos sensibles de WordPress

location ~ /\.ht {

deny all;

}

location ~ /(wp-config\.php|wp-cron\.php|readme\.html|license\.txt) {

deny all;

}

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {

expires max;

log_not_found off;

}

}

Vamos con la explicación de cada directiva nueva:

  • fastcgi_cache WORDPRESS;: Activa la caché. Usará esa zona que definimos en el Paso 1.
  • fastcgi_cache_valid 200 301 302 60m;: Nginx guardará en caché las respuestas con códigos de estado 200 (OK), 301 (Movido Permanente) y 302 (Movido Temporal) durante 60 minutos. Puedes cambiar este tiempo, claro, si tu contenido se actualiza más o menos a menudo.
  • fastcgi_cache_valid 404 1m;: También es buena idea cachear las páginas 404 un minuto. Así reducimos la carga de peticiones a cosas que no existen.
  • fastcgi_cache_use_stale ...;: Si el backend (PHP-FPM) se cae o da errores (500, 503, etc.), Nginx puede servir contenido viejo de la caché. Es un salvavidas para la resiliencia de tu web.
  • fastcgi_cache_min_uses 1;: Para que un recurso se cachee, debe pedirse al menos una vez. Si tu web tiene mucho tráfico, quizá te interese subir este número para no cachear contenido que nadie mira.
  • fastcgi_cache_lock on;: Si activas esto, solo una petición a la vez irá a PHP-FPM si el recurso no está cacheado. Las demás esperarán a que la primera termine y guarde el resultado en caché. Esto es vital para evitar el famoso «thundering herd problem».
  • fastcgi_cache_revalidate on;: Nginx puede revalidar elementos de la caché con la cabecera `If-Modified-Since` o `If-None-Match`, en vez de simplemente borrar y recargar todo.
  • add_header X-Cache $upstream_cache_status;: Añade una cabecera HTTP `X-Cache` a la respuesta. Te dirá el estado de la caché para cada petición (HIT, MISS, BYPASS, EXPIRED, UPDATING, STALE). Para depurar, es una maravilla.

Paso 3: Excluyendo Contenido Dinámico de la Caché

WordPress es dinámico, sí. Y, claro, no todo el contenido debería acabar en la caché. Piensa en el panel de administración, las páginas de carrito, los comentarios o los usuarios logueados. Esas cosas no deben servirse desde caché, necesitan funcionar al momento y con personalización. Para esto, usaremos dos directivas: `fastcgi_no_cache` y `fastcgi_cache_bypass`.

Añade el siguiente bloque antes de tu bloque `server` o en un archivo de configuración separado (por ejemplo, `/etc/nginx/conf.d/wordpress_cache_exclusions.conf`):


map $request_method $no_cache_methods {

POST 1;

default 0;

}

map $http_cookie $no_cache_cookies {

"~wordpress_logged_in_" 1;

"~comment_author_" 1;

"~wp-postpass_" 1;

default 0;

}

map $request_uri $no_cache_uri {

"~*/(wp-admin|wp-login.php|wp-cron.php|wp-json/|xmlrpc.php|sitemap(_index)?\.xml|sitemap\.xsl)$" 1;

"~/(cart|checkout|my-account|wishlist|compare)/" 1; # WooCommerce, si aplica

default 0;

}

Uniendo las condiciones de no-cache

set $skip_cache 0;

if ($no_cache_methods = 1) {

set $skip_cache 1;

}

if ($no_cache_cookies = 1) {

set $skip_cache 1;

}

if ($no_cache_uri = 1) {

set $skip_cache 1;

}

Luego, dentro de tu bloque `location ~ \.php$` (donde configuraste la caché en el Paso 2), añade estas líneas:

# ... otras configuraciones ...

📝

Equipo RedServicio

Artículos escritos y revisados por nuestro equipo técnico especializado en hosting e infraestructura web en España.

¿Listo para un hosting de verdad?

Servidores en España · Soporte 24/7 en español · Migración gratuita

Ver Planes desde 3,95€/mes →

Te puede interesar:

Página GratisCrea tu web gratis

ClisecSeguridad informática

Scroll al inicio