Security and speed are the same job. The same layers that keep attackers, bots and malware off your site are the ones that decide how fast it loads, and I run both of them for clients under real audits and real traffic.
Cloudflare as the front door. DNS, WAF, bot protection, rate limiting and edge caching, configured together so tightening security never quietly breaks a form, a payment frame or an ad script.
Findings turn into code. Monthly audits, penetration tests, scorecard tools and CISA scans produce lists. I work through those lists in the codebase and report back what changed, rather than filing the PDF.
Speed fixed at the source. Core Web Vitals problems get profiled and solved where they originate: the theme, the queries, the images, the third-party scripts. Not hidden behind another caching plugin.
Watched between emergencies. Daily vulnerability scans, uptime monitoring, error log review and update cycles, so problems surface as a notification instead of a phone call from your CEO.
Security & Performance Services
Hardening, monitoring, Cloudflare configuration and speed work for WordPress sites that are audited, regulated or simply too important to go down, delivered as ongoing engineering rather than a one-time cleanup.
-
Cloudflare Configuration DNS migrations and record management, WAF rules tuned against real firewall events, Turnstile in place of reCAPTCHA, bot and DDoS mitigation, leaked-credential protection, and origin certificate and SSL troubleshooting.
-
Security Headers at the Edge Content Security Policy rolled out report-only then enforced, HSTS, referrer-policy and permissions-policy delivered through a Cloudflare worker rather than PHP, so they are centrally managed and cannot be bypassed.
-
Daily Vulnerability Scanning Automated scans against MITRE CVE data and wpscan.io with alerts routed to a real person, every alert manually verified, and patches applied on a schedule instead of when something breaks.
-
Audit & Penetration Test Remediation Working through monthly security audits, web application penetration tests, security scorecard findings and third-party scan reports, item by item, including XSS, injection, tab-nabbing and header findings.
-
Government & Program Scanning Enrollment in CISA's federal scanning program for public-facing domains, with the resulting monthly reports triaged and remediated alongside your compliance team.
-
Login & Access Hardening Rate limiting on wp-login and wp-admin, brute-force mitigation, MFA rollout, author and REST API user enumeration blocking, credential and role review, and VPN or Cloudflare Access restrictions on admin.
-
Malware & Intrusion Response Access and error log review for malicious activity, blocked write attempts to uploads directories, cleanup of abandoned backup and plugin directories left writable by previous developers, and post-incident hardening.
-
Core Web Vitals LCP, CLS and INP fixed in the theme and template layer: hero image handling, layout shift, render-blocking CSS and JavaScript, and third-party script deferral, verified against field data rather than a single lab run.
-
Image, Font & Asset Delivery Images resized to the dimensions they actually render at and served as WebP through a CDN, fonts loaded conditionally by breakpoint, CSS split into modular files loaded on demand, and HTML minified to cut TTFB.
-
Video & Embed Optimization YouTube and Wistia embeds replaced with preview images and click-to-load players, so heavy third-party video scripts never touch first paint.
-
Caching Architecture Full-page, object and edge caching configured to work together: Cloudflare cache and page rules, s-maxage headers that separate browser from edge cache, Redis and host object caching, transient caching for expensive queries, and automatic purges when content changes.
-
Database & Query Optimization Diagnosing memory exhaustion and slow admin screens, purging table bloat such as duplicate postmeta and orphaned rows, repairing and optimizing tables, reviewing slow queries and indexes, and cutting query counts in hot templates.
-
Uptime & Change Monitoring Uptime and downtime alerting, error log monitoring, redirect loop and layout shift detection, plus monitoring for new or changed third-party scripts loading on the site.
-
Platform & PHP Upgrades PHP version upgrades tested locally and on staging first, plugin and core update cycles, and host coordination with WP Engine, Kinsta, Pantheon and WordPress VIP on server-level limits and firewall behavior.
Let's Chat
If you're looking for expert consulting from a seasoned specialist schedule a consultation on Google Meet, or contact me by email.
Security & Performance Work in Production
Coastal1 Credit Union: Audited Every Month, Hardened Every Month
Rhode Island's largest credit union, with over $2B in managed assets and a monthly external security audit. Daily CVE and wpscan.io scanning, Content Security Policy and HTTP security headers moved into a Cloudflare worker, WAF rules tuned against live firewall events, Turnstile on forms, rate limiting on login, and penetration test findings remediated in code.
Bastille: A PageSpeed Rebuild, Not a Plugin
Sitewide speed work for a cybersecurity company whose previous agency left 9,000+ lines of boilerplate CSS behind. Images resized to their rendered dimensions and converted to WebP, CSS split into on-demand modules, custom fonts loaded only above 500px, video embeds converted to click-to-load previews, and HTML minified to cut TTFB.
Puck News: Performance Under Publishing Traffic
A subscription publication where traffic arrives in spikes. Navigation APIs and menu structures moved behind transient caching, hero queries cached to avoid repeated ACF lookups, Cloudflare cache rules tuned through the month, CLS fixed on hero imagery, and Cloudflare mitigation deployed against wp-login brute force attempts.
Harvard Law Review: Traffic Surges and Account Security
Investigating a WP Engine account flag and out-of-date resources, then hardening: Cloudflare reinstalled and configured for automatic optimization, cross-site scripting protection added through security response headers, the bot challenge switched to a managed challenge so authors stop hitting CAPTCHAs, MFA added, and performance investigated during traffic surges.
Boston Review: 90% of Requests Answered at the Edge
Cloudflare cache rules rewritten until better than 90% of page requests were served at the edge instead of the WP Engine origin, non-200 responses at edge and origin diagnosed and corrected, and zero-downtime git deployment configured so releases stopped disturbing the cache.
Paperless Parts: Security Findings on an ITAR Clock
Manufacturing software with ITAR obligations and a numbered flaw list from their security team. Content Security Policy configured to their audit's grading requirements, SSL and Cloudflare DNS findings resolved with their IT team, Wordfence rules tightened against a surge of brute force attempts, and a vulnerability disclosure policy published and linked.
Cloudflare, Configured Properly
Most Cloudflare accounts are switched on and never touched again. I treat it as an active layer: rules reviewed against real firewall events, caching tuned month to month, and every tightening tested against the flows it could break.
-
DNS migrations and full record management
-
WAF rules written from live firewall event data
-
Turnstile bot protection replacing reCAPTCHA
-
Rate limiting on login, admin and sensitive URLs
-
Edge cache rules, page rules and automatic purging
-
Security headers delivered by a Cloudflare worker
-
Origin certificate and SSL error troubleshooting
Scanning, Alerting and Actual Patching
Vulnerability scanning is only useful if someone reads the alerts. Scans run daily against reputable databases, alerts route to a person, and every one gets verified by hand before it is dismissed or fixed.
-
Daily scans against MITRE CVE data and wpscan.io
-
Alerts routed to real recipients, not a dashboard
-
Manual verification of every reported issue
-
Plugin, theme and core patching on a schedule
-
Uptime, downtime and error log monitoring
-
Monitoring for new third-party scripts on the site
Audits, Pen Tests and Compliance Programs
Banking, defense manufacturing and fintech clients get scanned by people who are paid to find problems. I sit on the other side of that report and work through it, in the codebase, until the findings close.
-
Monthly external security audit remediation
-
Web application penetration test findings
-
Security scorecard and third-party scan results
-
CISA federal scanning program enrollment
-
XSS, injection and header findings fixed in code
-
Vendor security questionnaires answered
Login, Access and Intrusion Defense
The overwhelming majority of attacks on a WordPress site are automated attempts at the login screen and the REST API. Those are cheap to shut down, and shutting them down removes most of the noise from your logs.
-
wp-login rate limiting and brute-force mitigation
-
Author and REST API user enumeration blocking
-
MFA rollout and credential review
-
Cloudflare Access or VPN restrictions on wp-admin
-
Blocked write attempts to uploads directories
-
Abandoned backup and plugin directories removed
Core Web Vitals, Fixed at the Source
Speed problems live in the theme, the queries and the third-party scripts, so that is where I fix them. Caching goes on top of a fast site, not in front of a slow one.
-
LCP, CLS and INP fixed in the template layer
-
Render-blocking CSS and JavaScript eliminated
-
Images resized to rendered dimensions, served as WebP
-
Fonts loaded conditionally, HTML minified for TTFB
-
Video embeds converted to click-to-load previews
-
PageSpeed and Lighthouse tracked over time
Caching That Layers Correctly
Edge, page, object and browser caches all interact, and misconfigured they fight each other: stale prices, logged-in users seeing cached pages, or a cart cookie bypassing the edge on every request. Configured together they carry real traffic.
-
Cloudflare edge cache and page rules
-
s-maxage headers separating browser and edge cache
-
Redis and host-level object caching
-
Transient caching for expensive queries and menus
-
Automatic purges when content is published
-
Cache bypass diagnosis for carts and sessions
Database & Infrastructure Remediation
When a site hits memory limits, saves take thirty seconds, or the admin crawls, the cause is usually in the database or the host configuration. This is the work hosting support escalates rather than solves.
-
Memory exhaustion and fatal error diagnosis
-
Table bloat cleanup, including a 600k duplicate postmeta purge that was 63% of one database
-
Revision, transient and orphaned meta clearing
-
Table repair, optimization and index review
-
Slow query tracing and query count reduction
-
PHP upgrades and host escalation on server limits
What Teams Worry About
Before Hardening a Live Site
Security and performance work happens on a site that is already serving customers, and that makes people nervous. These are the concerns that come up before the work starts.
| Concern | Solution |
|---|---|
|
Breaking the Site While Securing It Tightening security usually breaks something. What happens when the firewall blocks our own payment page? |
It is the expected outcome, which is why I plan for it. Content Security Policy goes out in report-only mode and gets whitelisted from real traffic before it is enforced, WAF rules are reviewed against actual firewall events, and payment frames, e-signature flows and embeds get tested page by page rather than assumed. |
|
Another Caching Plugin We have installed three caching plugins over the years and the site is still slow. Why would this time be different? |
Because caching is the last step, not the first. I profile what is actually slow, which is usually queries, images and third-party scripts, and fix that in the code. Then caching multiplies a fast site instead of hiding a slow one. |
|
Security Reports Nobody Acts On We get a scan report every month and it just sits there. How do we know anything is actually fixed? |
Every finding gets triaged, fixed or explicitly deferred with a reason, and reported back in the monthly summary. Where a finding is a false positive, I say so and show why, rather than leaving it open forever. |
|
Our Host Says It Is Handled We are on managed WordPress hosting. Is that not what we are paying them for? |
Managed hosts protect their platform: the server, the network, and their own patching. They do not audit your plugins, your theme code, your tag manager or your Cloudflare rules, and they will not remediate a penetration test finding for you. That gap is where this work lives. |
|
Downtime During the Work Can this be done without taking the site down or freezing our publishing schedule? |
Yes. Changes are built locally, verified on staging, and deployed through git with zero-downtime releases. Cloudflare and header changes are staged in report-only or test mode first, and anything risky goes out in a scheduled window. |
|
It Degrades Again in Six Months We did a performance project two years ago and the gains are gone. How does this stay fixed? |
It does not stay fixed on its own. New plugins, new marketing tags and new imagery all erode it, which is why this work usually runs on a retainer: scans and vitals tracked monthly, new third-party scripts reviewed before they ship, and regressions caught while they are small. |
Common Tasks & Requests
A sample of the security and performance requests I handle for clients every month:
- Reviewing Cloudflare firewall events and tuning WAF rules
- Rate limiting wp-login after a brute-force surge
- Rolling out a Content Security Policy without breaking pages
- Working through a monthly security audit report
- Remediating penetration test and scorecard findings
- Blocking author and REST API user enumeration
- Fixing LCP and layout shift on a slow template
- Resizing and converting images to WebP sitewide
- Diagnosing why the edge cache is being bypassed
- Cleaning up database bloat and memory limit errors
- Testing and shipping a PHP version upgrade
- Investigating uptime alerts and error log spikes
Common Questions About Security & Performance
What business and marketing leaders ask most often when a scan report lands, a site slows down, or an auditor starts asking questions.
- Is WordPress secure enough for a bank or a regulated business?
Yes, and I maintain WordPress sites for a credit union with over $2B under management, a fintech, and a defense-adjacent manufacturer, all under recurring external audit. Core WordPress is not the weak point. Poorly written plugins, abandoned code from previous developers, unpatched dependencies and wide-open login endpoints are.\n\nWhat regulated clients need is not a different CMS. It is scanning, patching, hardening at the edge, and someone who works through audit findings on a schedule.
- What does Cloudflare actually do for us?
It sits between your visitors and your server, which means it can do three things no plugin can:
- Block traffic before it reaches you, WAF rules, bot and DDoS mitigation, rate limiting and country or ASN restrictions, all applied before a request costs your host anything.
- Serve pages from the edge, so most visitors never touch your origin server. On one publishing client that is better than 90% of page requests.
- Control headers centrally, security headers delivered by a worker rather than PHP, so they apply to every response and cannot be bypassed by a plugin.
The catch is that none of it configures itself, and the default settings are deliberately conservative.
- How does ongoing security scanning work?
Scans run daily against reputable vulnerability databases, checking your specific plugin, theme and core versions against known CVEs and wpscan.io reports. Alerts go to real recipients rather than a dashboard nobody opens.\n\nThe part that matters is what happens next: I verify each alert by hand, because scanners produce false positives, then patch, mitigate or document why it does not apply. For clients enrolled in CISA's federal scanning program, those monthly reports get the same treatment.
- What is a Content Security Policy and do we need one?
A CSP tells the browser which scripts, styles, frames and images are allowed to load at all. It is the control that stops an injected or compromised third-party script from running, and security audits increasingly require one.\n\nIt is also the single most likely thing to break your site if deployed carelessly. My approach is report-only mode first, collecting violations from real traffic, whitelisting asset by asset, then enforcing, with payment frames, e-signature flows and video embeds tested individually.
- Why is our site slow even though we have caching?
Caching only helps requests it can serve. Common causes I find behind a cache that is not helping:
- A cart, session or tracking cookie causing the edge to bypass cache on every single request.
- Expensive queries and ACF lookups running on uncached routes or logged-in views.
- Render-blocking CSS and JavaScript, which caching does not touch at all.
- Full-size images served at thumbnail dimensions.
- Third-party scripts, chat widgets and video embeds loading before first paint.
None of those are fixed by adding another plugin.
- How do you actually improve Core Web Vitals?
By profiling the specific page, not by chasing a score. LCP usually comes down to hero imagery and render-blocking assets, CLS to images and embeds without reserved space and to fonts swapping late, INP to heavy JavaScript on interaction.\n\nThe fixes go into the theme: correctly sized WebP images through a CDN, CSS split into modules loaded on demand, fonts loaded conditionally, video embeds replaced with click-to-load previews, and HTML minified to bring TTFB down. Then I verify against field data rather than a single lab run.
- Our site keeps hitting memory limits. Is that a hosting problem?
Usually not. Raising the memory limit hides it for a while, but the cause is normally in the database or in code: duplicated postmeta rows, orphaned revisions and transients, an abandoned plugin leaving a drop-in behind, or a template running thousands of queries.\n\nOn one client the database was 63% duplicate postmeta, roughly 600,000 rows. Removing them, repairing the tables and enabling object caching solved memory errors that had been attributed to hosting for months.
- Can you help if we have already been compromised?
Yes, within limits. I review access and error logs to establish what happened, remove injected code and abandoned writable directories left by previous developers, patch the entry point, rotate credentials and lock down the paths that were used.\n\nWhat I do not do is forensic incident response for a breach involving customer data. That needs a specialist firm and, usually, your counsel. I will tell you plainly when you are past the line.
- How do you make these changes without breaking the site?
Everything is built locally, verified on staging, and deployed through git with zero-downtime releases. Security rules go out in report-only or test mode where the platform supports it. Cloudflare changes are made with the firewall event log open, so a rule that starts blocking legitimate traffic is caught in minutes rather than reported by a customer next week.
- Is this a one-time project or ongoing work?
Both exist, but the ongoing version is what actually holds. A hardening and speed project fixes today's state; new plugins, new marketing tags and a redesign in eight months erode it.\n\nMost of my clients run this inside a monthly retainer: scans and alerts triaged, audit findings worked through, vitals tracked, updates tested and deployed, and new third-party scripts reviewed before they ship.
Benefits of working together
One Person on Both Sides
Security teams tighten, performance teams loosen, and the site sits in the middle. Running both means the CSP that blocks a script and the cache rule that speeds up a page are decided by the same person, on purpose.
Proven Under Real Audits
This work has been examined by external security auditors, penetration testers, security scorecard tools and CISA scans, for clients in banking, fintech, defense manufacturing and publishing.
Watched, Not Just Launched
Daily scanning, uptime alerts, error log review and monthly reporting mean issues arrive as a notification with a fix attached, rather than a call about the site being down.
Let's Chat
If you're looking for expert consulting from a seasoned specialist schedule a consultation on Google Meet, or contact me by email.