| 开发者 | avakodeforge |
|---|---|
| 更新时间 | 2026年10月3日 02:21 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
fetchpriority="high" and <link rel="preload"> on the detected hero, decoding="async" everywhere, loading="lazy" below the foldvelocityforge folder to /wp-content/plugins/, or install through Plugins → Add New.No. Measuring and diagnosing happen entirely on your own server, and no field reading ever leaves the site. See "External services" above for exactly what this download does and does not contact.
Pro features ship in a separate "VelocityForge Pro" add-on. Install this free plugin first, then add Pro from https://avakode.com.
All mutations are opt-in and every change has a rollback path. Safe Mode (one click) disables all output mutations instantly without deactivating the plugin, and it sits in the admin bar on the front end as well as in wp-admin — the front end being where you usually notice. Below that there are two hatches that do not need the admin at all: a secret URL that flips Safe Mode, whose secret is also written to wp-content/.velocityforge-panic so you can read it over SFTP, and define('VELOCITYFORGE_PANIC', true); in wp-config.php, which is checked before any database read, because the day you need it the database is often the problem.
Run the recovery drill on the Rollback screen. It presses the real ones — including a genuine loopback request to your secret panic route with your real secret, since a wrong token would only prove the 403 branch works — and restores the safe-mode option, the stored secret and its on-disk copy exactly as it found them. A drill that left the file disagreeing with the database would break the one escape hatch it exists to verify.
Only with the Pro add-on, only for a rule you have just created, and only after refusing six ways: no licence, the beacon switched off, fewer measurements than your sample floor, Safe Mode on, a hard-railed handle, or a rule you pinned. When it does act it reverts that one rule through the ordinary revert path, writes the reason auto-watch onto the rollback event, and e-mails you the numbers and how to put it back. Nothing is reverted on thin evidence: below the sample floor the verdict is "inconclusive" and the rule stays exactly as it was.
Which assets changed. Before an update replaces any file, the plugin fetches your real front page and reads its script and stylesheet queue out of the served HTML; afterwards the regression row reads the difference and names what was added, what disappeared and what grew. The snapshot refuses any non-2xx response before parsing it, because during a bulk update WordPress serves a 503 maintenance page that parses perfectly into an empty list — which would have made your entire real asset queue look like an addition.
Because the owner resolver only claims what it can support: a prefix it knows, a handle this site enqueues, or the velocityforge/interaction_owner filter. Where none of those answer it says "theme", or nothing. A confident wrong name is worse than an honest gap.
Yes — that is the assumption, not the exception. VelocityForge is not a page cache and does not want to be one. Seventeen caching and optimisation plugins are recognised and our overlapping work stands down while one of them is active, and the notice names every feature that stepped back rather than only the obvious overlap.
On field data it cannot. TBT needs a long-tasks trace, which the real-user beacon does not capture, so that budget is read only by the Pro scheduled lab audits' own comparison. It lives in the same budget map as the other four so there is one place to set them, and the Settings screen says what it does and does not measure.
max_execution_time from inside the installer. Both the page fetch and the size probes go through the SSRF guard, because the URLs come out of somebody else's HTML.auto-watch is written onto the rollback event, and you get an e-mail with the numbers and how to put it back. It refuses on no licence, no beacon, too few measurements, Safe Mode, a hard-railed handle and a pinned rule; one watch is open per rule and one verdict is taken per watch, so a retried job cannot revert twice or send a second e-mail. The free plugin carries the table and announces that a rule was created or enabled; every decision is in the add-on.add-to-cart= are excluded and cannot be switched on. Cart and checkout paths are read from the site — a shop whose cart lives at /basket/ is excluded at /basket — rather than guessed from slugs. Prefetch is railed as tightly as prerender, because a prefetch reaches the server too, and a speculated add-to-cart link puts a product in a real basket.fetchpriority="high" on the hero image and the matching <link rel="preload">. WordPress core has set fetchpriority on its own LCP guess since 6.3, so this was a charge for the platform.CREATE TABLE IF NOT EXISTS, and dbDelta reads the table name straight after CREATE TABLE — so it believed the table was called IF, found none, and compared no columns, while the stored version number recorded a migration that had not happened. Corrected, and a test now fails on any migration written that way.