Block, Challenge or Skip? Choosing the Right Cloudflare Rule Action

When you create a custom rule in Cloudflare, the last thing it asks is “Then take action…”. Most people pick Block and move on. Sometimes that’s right. Often a challenge or a skip would do the job better, with far less risk of turning away real customers.

Here’s how I choose.

The actions, in plain English

Action What the visitor gets Stops other rules?
Block A Cloudflare “Sorry, you have been blocked” page (HTTP 403). No way through. Yes
Managed Challenge Cloudflare decides how hard to check. Most real people see a brief check or nothing at all. Yes
Non-Interactive (JS) Challenge A short page that runs a check in the browser, with no clicking. Yes
Interactive Challenge The visitor has to click or complete something. Yes
Skip Nothing visible. Cloudflare skips some of your other security checks for this request. No (it skips the ones you choose)
Log Nothing. The request is just recorded. Enterprise only. No
The Choose action dropdown on a Cloudflare custom rule, open, listing Managed Challenge (selected), Block, Non-Interactive Challenge, Skip and Interactive Challenge.
The choices on a Free plan. No Log: that one is Enterprise only.

The column on the right matters. Cloudflare runs your custom rules from top to bottom, and the first rule that blocks or challenges a request ends the matter. Rules further down never see it.

When to block

Block when you’re certain no legitimate visitor should ever match the rule:

  • your WordPress login page, for anyone not on your trusted IP List (see How to use Lists in Cloudflare)
  • files nobody should request, like /xmlrpc.php on a site that doesn’t use it, or /.env
  • your staging site, for everyone except you
Cloudflare block page: Sorry, you have been blocked. You are unable to access the site, with a Ray ID at the bottom.
What a blocked visitor sees: no way through.

The test is simple: if a real customer matched this rule, would I want them stopped dead with no way through? If the answer is “probably not”, don’t block.

When to challenge

Challenge when the traffic is suspicious but not certainly bad. Visitors from countries you rarely see, a burst of requests to your search page, a user agent that looks a bit off. A real person gets through; most simple bots don’t.

Use Managed Challenge rather than the others unless you have a reason. Cloudflare picks the lightest check that works for that visitor, which usually means real people barely notice. On our lab site, a normal browser hitting a Managed Challenge saw this page for about two seconds, then went straight through to the page it asked for:

Cloudflare page for a site: Performing security verification. This website uses a security service to protect against malicious bots, with a Ray ID at the bottom.
A Managed Challenge as a real visitor sees it. A normal browser was through to the page in about two seconds.

Two places a challenge doesn’t work:

  • APIs, webhooks and apps. A payment provider calling your webhook can’t solve a challenge. It’ll just fail. Exclude those paths from challenge rules, or skip them explicitly.
  • Uptime monitors. Your monitoring will think your site is down. Exclude them, ideally by IP.

When to skip

There’s no “Allow” action in custom rules any more. The old Firewall Rules had one; today it’s Skip. A Skip rule lets matching requests bypass the checks you choose: the rest of your custom rules, rate limiting, managed rules or Super Bot Fight Mode.

Use it for traffic you’ve verified, such as:

  • your payment provider’s webhook, from its published IP ranges
  • your own office, so a managed rule doesn’t trip over your admin work
  • a monitoring service you pay for

Two cautions. Skip only what you need: “skip all remaining custom rules” for a path is very different from “skip everything”. And put Skip rules at the top, because a Block above them will win first.

When to log

If you’re on Enterprise, Log is the safest way to try a new rule. Set it to Log, leave it for a week, look at what it would have caught, then switch it to Block. On other plans there’s no Log action, so you need a different approach: see How to test a new WAF rule without locking out customers.

Name the action you actually chose

Whatever you pick, put it at the front of the rule’s name, and change the name if you change the action. A rule called “block bots” that has quietly been a challenge for months will mislead the next person who reads your security events, and that person is usually you, in a hurry.

Not sure your rules are doing what you think? Get in touch and we’ll go through them with you.

Naming Conventions for Cloudflare WAF Rules (and Why Ours Needed Fixing) (Cloudflare WAF)

Naming Conventions for Cloudflare WAF Rules (and Why Ours Needed Fixing)

Is Your Host Running an End-of-Life PHP Version? (WordPress)

Is Your Host Running an End-of-Life PHP Version?

Backups That Actually Work: The 3-2-1 Rule for Small Business Websites (Backups)

Backups That Actually Work: The 3-2-1 Rule for Small Business Websites

Cloudflare Turnstile vs reCAPTCHA for Small Business Forms (Spam protection)

Cloudflare Turnstile vs reCAPTCHA for Small Business Forms

Why Your WordPress Login Page Shouldn’t Be Public (Cloudflare WAF)

Why Your WordPress Login Page Shouldn’t Be Public

Our Contact Form Was Silently Rejecting Customers (Case study)

Our Contact Form Was Silently Rejecting Customers