Skip to content

Cloudflare setup

Cloudflare setup for WordPress, done properly.

Pointing your DNS at Cloudflare takes ten minutes and buys you very little. Everything that makes Cloudflare worth having is in the configuration underneath, and that configuration has to be written against your specific site.

18 Discrete tasks Quoted and documented up front
~15 hrs Configuration Most of it testing
4 Rate limit rules Not one blanket limit
1-2 wks Typical delivery From approval to handover

01 · The gap

What a default Cloudflare install misses.

Out of the box, Cloudflare proxies your traffic and absorbs volumetric attacks. Here is what it does not do.

  • Apply any WordPress-specific rules. XML-RPC stays open, wp-login.php has no rate limit, and .env, .git and .sql files are still reachable if they exist.
  • Distinguish between a crawler you want and one you do not.
  • Know which of your pages must never be cached, which is how sites end up serving expired form tokens and breaking every submission.
  • Tell you whether any of it is actually working, because nobody captured a baseline.

Most sites we inherit have Cloudflare installed in exactly this state, sometimes for years, and the owner reasonably assumes they are protected. Closing that gap is the core of our WordPress security work.

02 · Foundation

The account, the DNS and the certificate.

01

Account and plan setup

Pro plan activation, billing configuration, and access set up so your team owns the account and we are invited into it rather than the other way round.

OwnershipYou keep control. If we stop working together you remove our access and nothing changes.

02

DNS migration

Every existing record is inventoried before anything moves. A records, CNAMEs, MX and TXT records all have to come across intact, and the MX and TXT records are where migrations go wrong: get those wrong and you break email and domain authentication rather than the website. We verify propagation before declaring it done.

03

SSL and TLS policy

SSL mode set to Full (Strict), minimum TLS version enforced at 1.2, HSTS enabled, automatic HTTPS redirect on.

VerifiedThe target is an A+ on an independent SSL test, and we check it rather than assume it.

03 · Filtering

Where site-specific knowledge earns its keep.

04

Managed rulesets

The Cloudflare Managed Ruleset and the OWASP Core Ruleset both activated, plus the platform-specific ruleset for WordPress.

RuleThen the part most people skip: a false positive pass, where sensitive rules start in log mode and only move to block once we have confirmed they are not catching legitimate traffic.

05

Rate limiting

Four rules, not one. A general site-wide rule, a brute force rule on the login page, a rule for API endpoints, and a rule covering the admin panel.

RuleEach one is tested individually, because a rate limit that fires on your own team is a support ticket waiting to happen.

06

Custom WAF rules

Malicious user agent blocking. Empty user agent blocking. Sensitive file extension blocking for .env, .git, .sql and .bak. XML-RPC blocking, which closes off one of the most-abused endpoints in WordPress. Suspicious URI pattern blocking for path traversal and injection attempts. IP restriction on the admin panel where the working arrangements allow it.

07

Geographic policy

Where the business only serves certain markets, restricting access to those markets removes an enormous amount of attack surface for no commercial cost.

RuleRules are tested from multiple countries via VPN before they go live, because a geo rule that is wrong is invisible until a customer in the wrong place cannot reach you.

04 · Performance

Caching is where a WordPress site most often breaks.

General caching, an aggressive rule for static assets, and explicit bypasses for login pages, checkout pages and any page with a dynamic form on it. That last item is not optional.

WordPress uses one-time tokens to secure form submissions, and a cached page serves a stale token to every subsequent visitor, which means the form fails for real users while working perfectly when you test it logged in.

The full explanation of that failure

Images

Image and mobile optimization

Polish for image compression with WebP conversion, and Mirage for mobile. Image quality is verified visually rather than trusted to the setting.

Bandwidth

Hotlink protection and email obfuscation

Small items, but they stop other sites serving images off your bandwidth and stop scrapers harvesting addresses out of your markup.

05 · Hardening and handover

Nothing is finished until it is verified in a browser.

08

Security headers

X-Frame-Options set to DENY, X-Content-Type-Options set to nosniff, a Referrer-Policy and a Permissions-Policy, all verified in a browser rather than assumed from the config screen.

09

Page and transform rules

Forced HTTPS, canonical www or non-www handling, and any custom redirects the site needs preserved.

10

Baseline analytics

A firewall analytics report pulled 24 to 48 hours after go-live, documenting what percentage of traffic is being blocked and which rules are firing.

RuleWithout this you have no way of knowing whether the work did anything.

11

Full site testing

Every page loads, every form submits, payment flows complete without false blocks, mobile renders correctly, and page speed is measured before and after.

12

Documentation

Every rule applied, written down. A dashboard guide so your team can read the analytics without us. And an emergency procedure covering what to do during an attack.

What the emergency procedure covers

06 · Scope and limits

What this takes, and what we will not do.

Around fifteen hours of configuration work, delivered inside one to two weeks. The variable is not the configuration, it is the testing: sites with payment flows, membership logins or third-party API integrations need more verification passes, because those are exactly the things a badly scoped WAF rule will break.

You will need Cloudflare Pro. The licensing sits with you, on your account, so there is no lock-in and no reseller margin.

We do not

Leave rules in log mode and call it finished

Log mode is a testing stage, not a delivery. Every rule either moves to block or gets removed with a reason.

We do not

Enable everything on the theory that more is safer

Several of those settings will break your site in ways that take weeks to surface, and you will never connect the two.

We do not

Deploy a rule we have not tested against real traffic

A rule that blocks a real customer is worse than no rule, because nobody will tell you it happened.

This is one piece of our wider WordPress security work. Once the configuration is handed over, keeping it current sits with our maintenance service.

Common questions

Do I need Cloudflare Pro or will the free plan do?+

The free plan covers DDoS mitigation and basic filtering, which is adequate for a brochure site. Pro adds the managed WAF rulesets, shapeable rate limiting, firewall analytics and the bot controls that let you block one crawler while allowing another. If your site takes applications, orders or payments, or talks to another system by API, Pro is the right plan and the annual cost is trivial next to the work of configuring it.

Will this slow my site down?+

No, it normally speeds it up. Cloudflare serves cached assets from an edge location near the visitor rather than from your origin server, and the image optimization reduces payload further. We measure page speed before and after as part of the handover so you can see the effect rather than take our word for it.

Can you configure Cloudflare on a site you did not build?+

Yes, most of this work is on sites built by someone else. We need read access to the site and admin access to the Cloudflare account. We do not need to touch your theme or your code.

Who owns the Cloudflare account?+

You do. We ask to be invited as a member on your account. If we stop working together you remove our access and everything stays exactly as configured.

What if a rule blocks a real customer?+

That is what the false positive pass and the log-first approach are for, and it is why the sensitive rules are tested before they are set to block. If something does slip through after handover, the documentation tells you which rule to look at, and any rule can be disabled from the dashboard in seconds.

Does this replace my security plugin?+

Largely, yes, and that is usually a performance win. A plugin-based firewall filters requests after WordPress and PHP have already loaded, which means the attack still costs you server resources. Cloudflare filters at the edge, before the request reaches your host at all. Some plugin functionality, like file integrity monitoring, is still worth keeping.

Keep reading

Send us the domain.

We will tell you what Cloudflare is currently doing on it, what it is not, and what the gap is worth closing.

Book a scoping call
Ali Demirci
Ali Demirci
Founder
What is configured today
Usually less than people think.
What is missing
Ranked by what it is costing you.
A fixed scope
Task by task, before anything is touched.