← Volver al blog

Cloudflare gratis: cómo darle de alta y 5 reglas anti-bots para tu WordPress

Por qué Cloudflare free es brutal, cómo darle de alta paso a paso y 5 reglas WAF que bloquean el 60-70% de los bots maliciosos sin pagar nada.

Por SeoNova · Publicado · 9 min de lectura
Panel de Cloudflare mostrando las estadísticas de Security Events con miles de bots bloqueados al día.
Panel de Cloudflare mostrando las estadísticas de Security Events con miles de bots bloqueados al día.

Si tienes una web sin Cloudflare delante, estás dejando dinero sobre la mesa. Y no me refiero solo a velocidad — me refiero a que el 49,6 % de tu tráfico mundial es bot (Imperva Bad Bot Report 2025) y tu hosting lo está sirviendo TODO.

Cloudflare gratis te lo filtra antes de que toque tu PHP. Hoy te enseño cómo darle de alta + 5 reglas concretas que cualquiera puede activar sin pagar un duro.

Qué es Cloudflare (en una frase)

Es un proxy global entre internet y tu servidor: cuando alguien visita tu web, primero pasa por Cloudflare. Cloudflare decide qué dejar pasar a tu hosting y qué bloquear.

Como bonus añade CDN (cache global), SSL automático, DNS gestionado y protección DDoS. Todo eso, gratis.

Por qué el plan gratis es brutal

Comparemos lo que recibes contra lo que recibirías sin Cloudflare:

CaracterísticaSin CloudflareCloudflare Free
CDN edge POPs0300+ ciudades
SSL certificatetienes que renovar (Let’s Encrypt)automático + universal
DNSel de tu registrador (lento, ~50-200ms)Cloudflare DNS (1-10ms)
DDoS protectionla que ponga tu hostingilimitada L3/L4
WAF rules05 custom rules gratis
Bot Fight Modeno existesí, gratis
Cachetienes que configurar túedge cache automático
HTTPS upgrademanualAlways Use HTTPS toggle
Analyticsla que mida tu pluginWeb Analytics + Edge Analytics
Requests/meslimitado por hosting10 millones (free)

10 millones de requests al mes en el plan gratis. Para hacerte una idea, una web con 100k visitas/mes (cifra ya alta) consume típicamente 1-3 millones de requests. Vas sobrado.

Cómo dar de alta tu web en Cloudflare (paso a paso)

Paso 1: Crear cuenta gratis

Vete a cloudflare.com/sign-up. Email + password fuerte. 2FA obligatorio el día 1 (esto es serio porque controlará tu DNS).

Paso 2: Añadir tu dominio

Dashboard → Add a site → escribe tudominio.com (sin www, sin https://).

Cloudflare escanea los DNS records actuales (los lee de tu zona pública). Verás algo como:

A     @       1.2.3.4         Proxied (nube naranja)
A     www     1.2.3.4         Proxied
MX    @       mail.servidor   DNS only (nube gris)
TXT   @       v=spf1 ...      DNS only

⚠️ Importante: verifica que el escaneo capturó TODOS tus DNS records antes de continuar. Especialmente:

  • MX de tu correo (Google Workspace, ProtonMail, etc.)
  • TXT SPF/DKIM/DMARC (si no, el correo se rompe)
  • Records de Google Search Console / Bing Webmaster
  • Subdominios (cms., admin., staging., etc.)

Si falta alguno → añádelo manualmente AHORA, antes del switch.

Paso 3: Elegir plan

Free. No tienes ninguna razón para pagar el día 1.

Paso 4: Cambiar nameservers en tu registrador

Cloudflare te muestra 2 nameservers únicos de tu cuenta (algo tipo alex.ns.cloudflare.com + kate.ns.cloudflare.com).

Ve a tu registrador (Namecheap, GoDaddy, Hover, Cloudflare Registrar, etc.) → busca DNS Management o Nameservers → cambia los actuales por los de Cloudflare.

⚠️ Apunta los nameservers anteriores en un sitio seguro. Por si tienes que revertir.

Paso 5: Esperar propagación (1-24h)

DNS tarda en propagarse globalmente entre 1 hora y 24 horas. Mientras tanto, tu web sigue funcionando — solo cambia quién resuelve el DNS.

Cuando Cloudflare detecta el switch, te avisa por email “Your site is active on Cloudflare”.

Paso 6: Configurar SSL/TLS

En Cloudflare dashboard → SSL/TLSOverview → modo Full (strict).

Full = tráfico encriptado de visitante a Cloudflare Y de Cloudflare a tu servidor. Full (strict) = lo mismo + verifica que el certificado de tu servidor sea válido (no autofirmado).

Si tu hosting ya tiene SSL Let’s Encrypt: usa Full (strict). Si no tiene SSL: usa Full (Cloudflare hace de pasarela). Nunca uses Flexible — encripta entre visitante y Cloudflare, pero el tramo Cloudflare → tu servidor va en HTTP claro. Inseguro.

Paso 7: Activar Always Use HTTPS

Mismo menú SSL/TLSEdge Certificates → toggle Always Use HTTPS = ON.

Esto fuerza redirect 301 de http:// a https:// a nivel edge. No tienes que tocar nada en WordPress.

Paso 8: TLS 1.2 mínimo

SSL/TLSEdge CertificatesMinimum TLS VersionTLS 1.2 (o 1.3 si tu audiencia es 100 % browsers modernos).

Esto bloquea conexiones de bots viejos que aún usan TLS 1.0/1.1 (90 % son escáneres).

Las 5 reglas anti-bots free

Cloudflare Free te deja 5 Custom WAF Rules + funciones built-in. Las uso así:

Regla 1: Bot Fight Mode + Browser Integrity Check (built-in, gratis)

No usa cuota de las 5 custom rules. Es un toggle.

Cloudflare dashboard → SecurityBots → activar Bot Fight Mode.

Mismo dashboard → SecuritySettings → activar Browser Integrity Check + Challenge Passage = 30 minutos.

Qué hace: Bot Fight Mode bloquea bots conocidos (lista mantenida por Cloudflare con miles de patrones). Browser Integrity Check hace un challenge invisible a cada visitante para verificar que es un browser real.

Bloqueo típico: 30-40 % del tráfico bot malicioso obvio.

Regla 2: Bloquear endpoints sensibles típicos

WordPress + Laravel + Git exponen rutas que NUNCA debe ver el público. Los bots las prueban a saco.

Dashboard → SecurityWAFCustom rulesCreate rule:

  • Rule name: Block sensitive paths
  • Field: URI PathOperator: containsValue: /xmlrpc.php
  • Click Or y añade más:
    • URI Path contains /wp-config.php
    • URI Path contains /.env
    • URI Path contains /.git/
    • URI Path contains /wp-config.php.bak
    • URI Path contains /.htaccess
    • URI Path contains /phpunit
  • Action: Block

Bloqueo típico: 10-15 % adicional (todos los scanners de vulnerabilidades pegan a estas rutas).

Regla 3: Bloquear user-agents de scrapers conocidos

Los user-agents legítimos de Googlebot, Bingbot, etc. tienen formato bien conocido. Scrapers automatizados suelen llevar etiqueta tipo python-requests/2.28, Scrapy/2.5, selenium, headless, puppeteer, etc.

Dashboard → WAFCustom rulesCreate rule:

  • Rule name: Block scraper user-agents
  • Field: User AgentOperator: containsValue: scrapy
  • OrUser Agent contains selenium
  • OrUser Agent contains headlesschrome
  • OrUser Agent contains puppeteer
  • OrUser Agent contains phantomjs
  • OrUser Agent contains python-requests
  • OrUser Agent contains httpclient
  • OrUser Agent contains bot AND User Agent does not contain googlebot AND User Agent does not contain bingbot AND User Agent does not contain duckduckbot
  • Action: Block

⚠️ Importante: la última cláusula con User Agent contains bot es agresiva. Excluye los bots legítimos (Google, Bing, DuckDuckGo). Si tienes otros bots que SÍ quieres dejar pasar (ej. Slackbot, Twitterbot, Facebookbot para previews), añádelos a la lista de excepciones.

Bloqueo típico: 15-25 % adicional (ya estamos en 55-80 %).

Regla 4: Rate-limit en /wp-json/wp/v2/users (anti-enumeración)

WordPress expone por defecto /wp-json/wp/v2/users que devuelve la lista de usernames. Es la primera fase de cualquier ataque de fuerza bruta.

Dashboard → WAFCustom rulesCreate rule:

  • Rule name: Block /wp-json/users enumeration
  • Field: URI PathOperator: containsValue: /wp-json/wp/v2/users
  • Action: Block

Si necesitas que algún tool tuyo consuma /wp-json/wp/v2/users con auth → permite por IP:

  • Añade otra cláusula: AND IP Source Address is not in [tu_IP]

Por qué Block y no Challenge: ningún visitante humano hace request a ese endpoint. Si llega, es bot o scanner. Block directo.

Regla 5: Bloquear países sin clientela real

Si tu negocio es España + Latam, el tráfico desde Rusia, China, Vietnam, Bangladesh, etc. es 99 % bot.

Dashboard → WAFCustom rulesCreate rule:

  • Rule name: Block countries with no audience
  • Field: CountryOperator: is inValue: lista de países según tu caso
  • Action: Block (o Managed Challenge si quieres ser más conservador)

Países típicamente recomendados para bloquear si NO operas allí:

  • Rusia (RU), Bielorrusia (BY), China (CN), Corea del Norte (KP)
  • Vietnam (VN), Bangladesh (BD), Pakistán (PK)
  • Nigeria (NG), Indonesia (ID)
  • Filipinas (PH) — origen masivo de click farms

⚠️ No bloquees por bloquear. Verifica primero en Analytics qué países te envían tráfico real. Si Indonesia te trae 10 ventas/mes, NO la bloquees.

Bloqueo típico: 10-20 % adicional. Y los falsos positivos son mínimos si validas con Analytics.

Bonus: configuraciones que te ahorran problemas

Auto Minify (HTML/CSS/JS)

SpeedOptimizationAuto Minify → activar HTML + CSS + JS.

Reduce 5-15 % del peso de los assets sin tocar nada en WordPress.

Brotli compression

SpeedOptimizationBrotli → ON.

Mejor compresión que gzip. Cada response sale 20 % más pequeña a usuarios con browsers modernos (todos).

Caching: edge cache TTL

CachingConfigurationBrowser Cache TTL = Respect Existing Headers.

Si WordPress envía Cache-Control correctos, Cloudflare los respeta. Si no, configura Edge Cache TTL manual a 4 horas para estáticos.

Page Rules (3 gratis)

RulesPage Rules. Tienes 3. Una útil:

  • URL: *tudominio.com/wp-admin/*
  • Setting: Cache Level: Bypass + Security Level: High

Esto evita cachear el admin y endurece seguridad solo ahí (no en el frontend público).

Limitaciones del plan free

Justo para que sepas qué pierdes:

Lo que NO te da el freeLo que tienes que hacer si quieres eso
Super Bot Fight Mode (Cloudflare bot intelligence avanzado)Pro $20/mes
Managed WAF rules (OWASP + Cloudflare Managed)Pro $20/mes
Page Rules > 3Pro $20/mes (20 rules)
Image Resizing / PolishPro $20/mes
WAF rules > 5Pro $20/mes
Logs detallados (Logpush)Enterprise
Reglas de filtrado de tráficoPro $20/mes
Analytics avanzadosPro $20/mes

Si tu web genera dinero serio → los $20/mes de Pro son una ganga. Para pre-launch / proyectos personales, free vale de sobra.

Cuándo Cloudflare NO es suficiente

Aun con las 5 reglas + bonus, hay 2 escenarios donde necesitas más:

  1. Ataques targeted a tu negocio: competencia haciendo bot spam, reservaciones fake en restaurantes, etc. → necesitas behavior-based WAF (Pro/Business) o solución dedicada
  2. Sitios con /wp-admin/ muy expuesto: aunque Cloudflare filtre, hay tráfico bot que pasa el challenge. Aquí entra protección a nivel PHP con plugins serios o el módulo de seguridad de WPO Toolkit de SeoNova que actúa como portero antes de cargar WordPress

Cierre

Cloudflare Free no es “una solución mediocre”. Es la línea de defensa más rentable que puedes tener en internet hoy. 15 minutos de alta + 5 reglas WAF + 3 toggles built-in = 60-80 % del tráfico bot malicioso bloqueado, mejor SEO (más crawl budget para Google y Bing), menos carga en tu hosting, SSL gratis, CDN global.

Si tienes una web en WordPress y no usas Cloudflare, es la mejora más obvia que puedes hacer este fin de semana.


Si tu hosting sigue saturado tras meter Cloudflare (porque los bots más sofisticados pasan el challenge), el módulo de seguridad de WPO Toolkit de SeoNova actúa como segunda capa: bloquea bots a nivel PHP antes de cargar nada de WordPress. Cloudflare + WPO Toolkit = 95 %+ del tráfico bot fuera.

¿Dudas? [email protected]. Si tu pregunta es buena, acaba en el blog (sin tu nombre).

— El equipo de SeoNova

Sigue leyendo

Más posts del blog que te pueden interesar