Features Pricing Docs Download
Support
Log in Sign up
WordPress · security

Every site is under fire.Make sure nothing lands.

Guard Forge hardens WordPress, locks out password guessers and gives every account a second factor — then checks your files against the build wordpress.org actually published and chains the audit log so a line cannot be edited quietly. The Avakode build also names the advisories that hit your plugins. All free; Pro adds the firewall, the scanner, alerts with quiet hours and the update that closes them.

Official hashescore checked against the published build, not against yesterday’s snapshot — and wordpress.org plugins too, once you tick “Also monitor plugins & themes”
7days the Avakode build’s free advisory feed runs behind the licensed one — same advisories, and the screen says which you are reading
Chainedevery audit row carries the hash of the row before it, so an edited or deleted line is detectable
The gate

Every site is under fire. The difference is whether a shot lands.

10 rules, running inside your WordPress. In this run they stopped 10 attacks and let all 3 ordinary requests through — the login redirect, the search for "union jack", the checkout note. A firewall that blocks your customers is not protection.

10 of 10 attacks stopped at the gate

0 false positives · 10 rules · 5 tries then locked

Every block is written to the audit log with the rule that fired and the part of the request that tripped it — so a false positive is something you can read, not a mystery 403.

Checksums · chain · advisories (Avakode build)

It checks your files against the build wordpress.org published, not against yesterday.

Official hashes with a verdict for the file nobody published, an audit log chained row to row — and, in the Avakode build, the advisories that name your plugins and, on Pro, the update that closes them.

Not “changed” — not in the official build

Every core file is compared with the checksums published for that exact release, and so is every plugin wordpress.org hosts once you tick “Also monitor plugins & themes” in Settings. Five verdicts: official, modified, missing, no reference — and the one a snapshot diff can never reach, a file that is in no published build at all. In the Avakode build a modified core file has a one-click restore, checked against the official hash before it is written, with the old file kept where the web cannot fetch it. The wordpress.org package gives the same verdict and sends you to Dashboard → Updates to put core files back.

An audit log that cannot be quietly edited

Each row is hashed together with the hash of the row before it, and “Verify chain” walks the lot. Change one field on one line and the line reports itself; delete a line and the gap shows, because the next row points at a hash nothing in the table produces.

The advisories, without paying for them (Avakode build)

In the Avakode build (the free zip), once you switch the feed on in Settings, the published advisories for WordPress, your plugins and your themes are matched daily against what is actually installed and at which version. The Avakode build’s feed is served seven days behind and the screen says so; Pro reads the same advisories in real time. The download is one public document, identical for every site, and carries nothing about yours. The wordpress.org package has no feed.

Patch by update (Pro)

Off until you switch it on. It installs the update only when the advisory names a fixed version, WordPress is offering one that reaches it, and that offered version is outside the advisory’s own affected range — “merely newer” is refused. One plugin per cron run, an allow list and a deny list, never on a copy of the site, never on a directory that is a symlink, and an e-mail plus an audit row for each one.

Alerts you can silence at night (Pro)

A card per channel — Telegram, Slack, a signed webhook — with a minimum severity each, a “Send test” that really sends, and a digest you can set to immediate, hourly or daily. Quiet hours hold the ordinary traffic until morning; a lockdown or a malware finding goes straight through them. Tokens and secrets are encrypted on your site and the form never prints them back.

A lockdown that throws itself (Pro)

Off until you switch it on. Then twenty different addresses locked out inside ten minutes — or, if you ask for that one too, a single finding from the malware scanner — shuts registration, comments, XML-RPC and anonymous REST writes without waiting for you. It lifts itself an hour later, writes both ends to the audit log, and never fires on a staging copy.

The lockout

Guessing costs them. Not you.

5 wrong passwords and the address is locked for 30 minutes, with every attempt written to a log you keep for 30 days. Connect Cloudflare (Pro) and the block goes to the edge, so the next request never reaches your server — and behind a proxy the address comes from the trusted chain, so nobody can spoof somebody else into a lockout.

login log kept 30 days
  1. attempt 1 user admin · wrong password
  2. attempt 2 user admin · wrong password
  3. attempt 3 user admin · wrong password
  4. attempt 4 user admin · wrong password
  5. attempt 5 user admin · wrong password
  6. lockout address locked for 30 minutes
Closing the gate

Activate, read what the scan found, then add the add-on.

01

Activate

Sensible defaults are on from the first request, and the hardening score names what is still open, what each row is worth and the screen that fixes it.

02

Read what it found

Switch the file check on in Settings, or press Run scan now, and the first scan names the files that are not part of the official build. The audit log already shows who changed what, on a chain you can verify. In the Avakode build, with the feed switched on, you also see which of your plugins have a published advisory against them.

03

Add the add-on

The firewall, the malware scanner, real-time advisories, the update that closes them, alerts with quiet hours, and the lockdown that throws itself.

Fire at it

Send anything you like at the gate. Including the harmless things.

These are the engine’s own 10 rules and its own request corpus. Send an injection and read the rule that caught it. Then send the 3 ordinary requests — a login redirect, a shopper searching for a “union jack” flag poster, a note on a checkout — and watch them go through.

request your site, behind the gate 10 rules armed

10stopped at the gate

3ordinary requests let through

0false positives

Every block is written to the audit log with the rule that fired and the part of the request that tripped it. That is what makes a false positive something you can read, instead of a mystery 403 your customer reports as “the site is broken”.

10 stopped, 3 let through, nothing ordinary refused.
Stands with

Works with your stack

Cloudflare
wordpress.org checksums
MaxMind GeoLite2
Telegram
Slack
Signed webhooks
Apache & nginx
WooCommerce
Comparison

Guard Forge vs what your host already gives you

What you are comparing Guard Forge a host’s WAF
Where a bad request dies Early in the request, before WordPress builds the page; a locked-out address stops at Cloudflare’s edge once connected At the host’s edge, if the plan includes one
Login lockout Five tries, then the address is locked and the attempt is written down Rarely offered, and rarely visible to you
File integrity Against the hashes wordpress.org published for that exact release, with a verdict for a file that is in no build at all Not covered
Vulnerability advisories Matched to the versions you actually run — in the Avakode build, free and seven days behind; real time with the add-on Generic advisories, if any
Closing the advisory With Pro: installs the update that leaves the affected range, on cron, under an allow list and a deny list Tells you about it, at best
Evidence afterwards A hash-chained audit log on your own site: an edited or deleted line is detectable Their dashboard, their retention, their export
Size of the managed ruleset Ten rules, chosen and explained A commercial WAF ships thousands and updates them hourly their win
Cleaning up a site that is already compromised Not its job — it tells you what changed and hands you the evidence Many hosts will do the cleanup, or sell you one their win

Guard Forge is prevention, not incident response. If the site is already compromised, buy a cleanup first and install this afterwards.

Pricing

The scan and the chain are free, and so is the Avakode build’s feed. The licence buys the add-on.

No upsells, no surprises.

Personal
$59 /year
1 site
Get it on avakode.com
Professional
$129 /year
5 sites
Get it on avakode.com
Agency
$219 /year
unlimited
Get it on avakode.com

Free plugin — get it on WordPress.org · or download the zip

Before you buy

What runs where in Guard Forge

Which work happens inside your own install, what leaves it, what needs a paid plan, and what a lapsed licence leaves behind.

What the free tier does inside your own install

  • Files judged against the official wordpress.org build
  • An audit log chained row to row, and verifiable
  • Core checked against the published build, not against yesterday’s snapshot — and wordpress.org plugins too, once you tick “Also monitor plugins & themes”

What leaves your site when a feature is on, and where it goes

  • The file check asks api.wordpress.org for the published checksums of your WordPress release, and only while the check runs. What goes out is a WordPress version and a locale, not the site address.
  • With “Also monitor plugins & themes” ticked, the file check also asks downloads.wordpress.org for the checksums of each plugin wordpress.org hosts, by plugin name and version. With it off, no plugin is looked up.
  • Those checksum lookups are the only requests the wordpress.org package makes. Every request below this one is in the Avakode build or in the Pro add-on.
  • In the Avakode build, once you switch the vulnerability feed on in Settings, a daily request downloads the public advisory document from https://api.avakode.com/security/vulndb-public. It carries no licence key and no site address; the matching against your plugins happens on your own server.
  • In the Avakode build, pressing “Explain this event” sends that one event to https://api.avakode.com/ai/process, with the site address in a header and a few facts about the site: WordPress version, number of active plugins, theme name and whether it is a multisite. Nothing is sent until you press.
  • The first “Explain this event” press on a site with no licence and no trial yet starts the free trial first: https://api.avakode.com/public/trial/activate receives the product name, the site address and the administrator e-mail address.
  • In the Avakode build, pressing Restore on a modified or missing core file fetches that one file from core.svn.wordpress.org for your WordPress version. Nothing is fetched until you press.
  • In the Avakode build, pressing “Connect Avakode account” on the Settings screen posts the product name, the site address and the return address to https://api.avakode.com/auth/connect/init, then sends you to avakode.com to approve; on the way back the one-time token and the site address go to https://api.avakode.com/auth/exchange. Nothing is sent until you press.
  • With an account connected, the Settings screen reads your remaining credits from https://api.avakode.com/ai/usage, with the connection token and the site address in request headers; Disconnect posts to https://api.avakode.com/auth/credits-connection/revoke.
  • In the Avakode build, the feedback card POSTs your score, your comment and the plugin and WordPress version numbers to https://api.avakode.com/feedback, and only when you press Send feedback. No e-mail address travels with it.
  • In the Avakode build, the Forge Suite screen sends a GET to https://api.avakode.com/health, with no body and no licence key, only when you press Run diagnostics or the repair button beside it; each of those runs the list of checks again. Opening the screen sends nothing.
  • The Pro add-on asks https://api.avakode.com/updates/guardforge whenever WordPress checks for plugin updates; the site address, and the licence key if you have one, travel in request headers.
  • Pressing Connect in the Pro add-on posts the product name, the site address and the return address to https://api.avakode.com/auth/connect/init, then sends you to avakode.com to approve. Nothing is sent until you press.
  • Usage telemetry is off until you switch it on: every send reads the site option `forge_telemetry_consent` first, and stops when it is not "1".
  • With telemetry on, batches of events POST to https://api.avakode.com/telemetry/batch.

What needs Pro, credits or an outside service

  • Pro is a separate plugin. With no Pro add-on loaded the plan is free, whatever is stored in the database.
  • Licence activation and every AI request go to https://api.avakode.com.
  • AI actions spend credits from your Avakode balance; the price is decided on the server: “Explain this event” and the hourly AI batch cost 1 credit each.
  • A request over 10,000 tokens costs a multiple of the base action price.

What happens when the licence lapses

  • Free features keep working. The wp.org base ships no licensing SDK: without the Pro add-on answering "pro" through the `forge_pro_plan` filter the plan reads free.
  • When the paid ladder answers "free" in so many words, the stored grace marker `forge_license_last_pro_at` is cleared and Pro gates close on the next admin request.
  • Pro keeps working for 6 hours of silence from the licence server — that window covers an outage, not a revoked licence.
  • A lapse removes no data. Tables and options go away only when you uninstall the plugin.

How long data is kept, and how you take it out

  • Brute-force log rows are kept 30 days by default, the audit log 60; both are settings, 1–365 days.
  • The audit-log retention setting is the second of the two, with the same 1–365 bounds.
  • A report downloads as a file from the plugin screen; the Pro audit export is a separate download.
  • Pro audit export.

The same five questions for every tool →

Switching

Nothing to import, and nothing you cannot undo.

Nothing to migrate

No account to open and no DNS to move. Activate it and the lockout and the log are already running; the file check and, in the Avakode build, the advisory feed start when you switch them on.

It runs alongside a host WAF

Two layers do not conflict: theirs refuses the obvious, this one knows what WordPress is and what your plugins are.

Leaving takes your secrets with it

Deleting the plugin always removes your two-factor enrolments — those are shared secrets and recovery codes, and a database outlives a plugin. Everything else — the login log, the integrity snapshots, the audit trail — is kept unless you tick the box that says otherwise.

FAQ

What people ask before they trust a security plugin

In the Avakode build (the free zip), yes, and it is the same advisories. The feed is off until you switch it on in Settings, and the wordpress.org package has no feed at all: its only request goes to wordpress.org, for the checksums. What Pro sells is time: the Avakode build’s feed is served seven days behind the licensed one, and the screen says which of the two you are reading rather than implying they are the same. The download is a public document identical for every site — no licence key, no site address, no list of your plugins. The matching against what you have installed happens on your own server, after the download.
A PHP file sitting in a core directory that the release wordpress.org published does not contain — and, once you tick “Also monitor plugins & themes” in Settings, one sitting in a plugin directory that the plugin’s published release does not contain. That is the shape a backdoor has, and no scan-to-scan comparison can see it: a shell that was already on disk when the baseline was taken looks exactly like an unchanged file. Once “Also monitor plugins & themes” is on, anything with no published hashes — a premium plugin, any theme — is marked “no reference” and stays on the snapshot comparison; until then the file check covers core only. It is never counted as clean, because a tick beside something nothing checked is worse than no tick.
Not the free plugin: the Pro add-on does this, and only if you switch it on, and then only when it can prove the point. The advisory has to name the version that fixes it, WordPress has to be offering an update that reaches it, and that version has to fall outside the advisory’s own affected range — an update that is merely newer is refused, and so is one it cannot check. It runs on cron, one plugin per run, obeys your allow and deny lists, skips a staging copy and a plugin directory that is a symlink, waits a day after any failure, and tells you by e-mail and in the audit log.
Press “Verify chain”. Every row carries the hash of the row before it, so an edited field breaks its own row and a deleted row leaves the next one pointing at a hash the table cannot produce. On a very large log the check covers the oldest fifty thousand rows and says plainly that it was truncated, rather than dying half-way and showing you an empty screen.
No. You create a token scoped to one zone and one permission; it is encrypted and stored on your own site, and your site calls Cloudflare directly. Avakode never sees it. With the add-on on, the site also refreshes Cloudflare’s own published list of edge addresses once a day — a public document — so a site behind a newer edge does not quietly start logging every visitor as the edge itself.
In the Avakode build, “Explain this event” spends one Forge credit; the button says so before you press it, and the answer is stored with the event so reading it again is free. The wordpress.org package has no such button. What reaches the network depends on the build. From the wordpress.org package it is one request: the checksum lookup at wordpress.org, and only when the file check runs. The Avakode build adds six more, and each waits for you: the daily advisory download, once you switch the feed on in Settings; the “Explain this event” press, which sends that one event together with your site’s address and a few facts about it (the first press on a site with no licence and no trial yet starts the free trial, which sends your administrator e-mail address); the Restore press, which fetches that one core file from core.svn.wordpress.org; the “Connect Avakode account” press on the Settings screen, which sends the product name, your site’s address and the return address, then takes you to avakode.com to approve (once you are connected, Settings reads your remaining credits, and Disconnect revokes the connection); the feedback card, only when you press “Send feedback”, with your score, your comment and version numbers; and the health check at api.avakode.com/health, only when you press Run diagnostics on the Forge Suite screen (or a repair button beside it). In the Avakode build, the advisory download and the health check say nothing about your site. The hourly AI batch is Pro and off until you enable it.
In Guard Forge → Cases the free plugin turns findings into cases: a file the integrity scan cannot explain, a series of login attempts and, in the Avakode build, an advisory that matches an installed plugin or theme version. In the free plugin you can acknowledge a case, assign it, ask for verification, explain a changed file, and block the IP behind a series of login attempts (that marks the case mitigated). Lockdown and “Apply fix” (the update that closes an advisory) come with Pro, and only the recheck built into the plugin can set Fixed: when it cannot decide, a case nobody has acted on yet reads Unverified, and a case you have already decided on stays as you left it. A monthly report shows four counts (detected, checked, fixed, unknown) and downloads as a CSV file. It does not investigate or clean a compromised site: “fixed” means the recheck found the condition gone.
Bar the door

Close the gate before someone tries it.

The free core hardens the site, watches the files against the official hashes and chains the log; the Avakode build also reads the advisories. Pro adds the firewall, the scanner, the alerts, the patch and priority email support.

Forge AI Assistant Online

Hi! I'm the Guard Forge AI assistant. Ask me anything about the plugin — setup, features, troubleshooting, or development.

Just now
Powered by Forge AI · Browse docs