PerfLocale for WordPress Agencies
Ship multilingual client sites without a license fee per project, a performance regression at launch, or technical debt that bites you at handoff.
What multilingual usually costs a dev shop
You win a project. The brief says "site needs to be in four languages". You pick a multilingual plugin, and three things happen: the client gets a renewal bill every year, Lighthouse scores drop ten points the moment you turn translation on, and you end up writing glue code around a plugin that fights your theme. By launch day, the multilingual layer is the most fragile part of the build.
PerfLocale was built to stop being that part. Each feature below comes from a real complaint agency developers make about multilingual plugins.
What you get
Free on every client site - forever
GPL-2.0+. No per-site license, no agency tier, no "pro unlocks". Install it on every retainer client, every new build, every multisite subsite. Your per-project margin stops getting eaten by renewal fees, and your client doesn't have a yearly surprise invoice for a plugin you recommended.
Performance that doesn't hurt your Lighthouse score
Under 5 ms per page in independent benchmarks - less than the jitter between two reloads. 3-layer caching (per-request, object cache, transients) means most translation lookups never touch the database on a warm cache. Your Core Web Vitals don't regress when you turn multilingual on. Benchmark scripts are public so you can verify on the client's actual stack.
Plays nicely with the plugins clients already run
Works out of the box with WooCommerce, Yoast, Rank Math, AIOSEO, SEOPress, ACF, Meta Box, Pods, Elementor, Beaver Builder, Bricks, Kadence, Blocksy, Gravity Forms, Contact Form 7, WPForms - and a growing list of others. If the client's stack already works, translation is layered on top without rewriting how their existing plugins store data.
Extension points you won't have to monkey-patch
120+ WordPress hooks and filters, a full REST API, WP-CLI commands, and a documented addon system. When a client wants a custom language switcher in their theme header, a specific integration with their headless frontend, or custom SEO behavior, you have clean extension points. No forked plugin files, no "please don't auto-update".
An addon system for your reusable integrations
If you build custom integrations for multiple clients - a specific CRM, a proprietary CMS, an internal DAM - you can publish them as PerfLocale addons with their own database tables, settings, and uninstall contracts. Ship the same addon across every client that needs it; it won't collide with other addons or core tables.
Clean handoff: the client can run it themselves
The admin UI follows native WordPress patterns - WP_List_Table layouts, Screen Options, Settings API forms - so when you hand the site over, the client's internal editor already knows how to use it. No agency-dependency through obscure interfaces. Translator role keeps non-technical staff away from settings they shouldn't touch.
Predictable, auditable uninstall
If a future agency swaps out your work, PerfLocale removes its tables and options cleanly (or preserves them, if the client chooses). No abandoned `wp_translations` rows eating database space for five years. Multisite networks are handled correctly too - each subsite's preference is respected on network uninstall.
WP-CLI for deploy scripts and provisioning
Every significant action has a CLI equivalent: create languages, import translations from WPML / Polylang / TranslatePress during migrations, trigger machine translation in bulk, export XLIFF for your translators, flush caches. Plugs into your existing deploy pipeline without GUI clicking.
Full multisite support
If your agency runs client work on a WordPress multisite network - a subsite per client, a subsite per brand, or a subsite per region - PerfLocale is fully compatible end to end. Activate network-wide or site-by-site; each subsite keeps its own languages, translations, glossary, and workflow state. New subsites auto-provision on creation; removed subsites clean up their data (respecting each subsite's own data-retention preference) on deletion. WP-CLI commands run cleanly in --url mode for per-site scripting. Multilingual network operations scale to thousands of subsites without loading every row into memory at once.
Migrating existing client sites
If the client is already on WPML, Polylang, or TranslatePress and you want to move them to PerfLocale, there are built-in importers that read their existing data and populate PerfLocale's translation groups. No manual copy-paste. Migration guides for each: WPML, Polylang, TranslatePress.
Support model
If your agency needs a paid support channel with response-time commitments - for launches, for retainer clients with SLAs, or for bulk-install rollouts across many sites - get in touch.