PerfLocale vs WPML

A detailed, honest comparison to help you choose the right multilingual plugin for your site.

WPML is the most established multilingual plugin for WordPress, trusted by hundreds of thousands of sites worldwide. PerfLocale is a newer, performance-first alternative that includes many features WPML charges extra for. Both are excellent choices - here's how they differ.

Feature Comparison

FeaturePerfLocaleWPML
General
PriceFree, open source (GPL-2.0+)From €39/year (Multilingual Blog); CMS €99, Agency €199
Translation approachSeparate posts per languageSeparate posts per language
Open source✗ (commercial, code is GPL-2.0+)
Auto-detected plugin & theme addons✓ (20+)✓ (via wpml-config.xml)
Multisite support
Performance
Caching architecture3-layer cache (static, object cache, transients)No dedicated caching layer
Batch preloading
Smart query optimization
Conditional hook registration✓ (front-end hooks skipped in admin, and vice versa)
Translation Tools
String translation✓ (scanner + file/database modes)✓ (bundled in CMS+ tier)
Machine translation providersDeepL, Google, Microsoft, LibreTranslate, External Agency, WordPress AI Client (WP 7.0+)DeepL, Google, Microsoft (credits-based)
Translation memory✓ (in Advanced Translation Editor)
Translation glossary✓ (in ATE; works with PTC and DeepL)
Translation workflow (assignments, statuses, deadlines)✗ (a Translator role ships, but there is no assignment or status pipeline)✓ (bundled in CMS+ tier)
Content sync (images, meta)
Content change detection✓ (marks translations as “Needs update”)
Language fallback chains✗ (default-language fallback only)
XLIFF export/import✓ (XLIFF 2.0)
Block editor integration✓ (Gutenberg + custom blocks via wpml-config.xml)
URL and Routing
URL modesSubdirectory, subdomain, per-domain, query-parameterSubdirectory, subdomain, per-domain
Self-healing URL rules
GeoIP redirect✓ (no lookup service bundled — wire your own via perflocale/geo/lookup_country)
Automatic hreflang tags✓ (cached)
SEO & Modern Web Features
hreflang in HTML head, XML sitemap, AND HTTP Link header✓ (all three)✓ (HTML head + sitemap)
JSON-LD inLanguage + workTranslation schema enrichment✓ (integrates with your SEO plugin's schema)
Content-Language HTTP response header
Fallback-content data-nosnippet guard
Speculation Rules prerender on language-switcher hover✓ (integrates with WP 6.8+ Core API)
View Transitions API smooth switching✓ (Chrome 126+, Safari 18.2+)
Integrations
SEO pluginsYoast, Rank Math, SEOPress, AIOSEO, TSF, Slim SEOYoast, Rank Math, SEOPress, AIOSEO, TSF
Page buildersElementor, Beaver Builder, Bricks, Oxygen, Oxygen 6 (Breakdance)Elementor, Beaver Builder, WPBakery, Divi, Oxygen
Custom fieldsACF, MetaBox, PodsACF, Toolset, Meta Box
WooCommerce
WooCommerce support✓ (bundled in CMS+ tier)
Product translation
Variation translation
Attribute translation
Category translation
Inventory sync (SKU, stock, weight)✓ (automatic)✓ (automatic)
Multi-currency with scheduled rate sync✓ (no rate provider bundled — supply rates via perflocale/woocommerce/exchange_rates_fetched)✓ (auto + manual rates)
Order emails in customer's language
Cart fragment isolation per language
Developer Tools
REST API✓ (full CRUD)✓ (limited)
Stateless machine-translation endpoint✓ (POST /block-translate)
WP-CLI✓ (full command set)✓ (limited)
Helper API (template functions)Fluent PHP API (perflocale())icl functions
Hooks and filters200+Extensive
WordPress Abilities API (WP 6.9+)✓ (opt-in via perflocale/abilities/enabled)
WordPress 7.0+ Native Integration
WordPress AI Client provider (translate via host's configured AI — no second API key)
WordPress Connectors API key sharing (env > constant > Connectors > DB)
JS Abilities API shim (perflocale/*)✓ (ships ready; inert until core lands the JS side of the API)
Block Hooks auto-insert of language switcher in FSE headers
Modern admin theme palette (uses --wp-admin-theme-color tokens)

Key Differences

Pricing and licensing

WPML requires an annual subscription starting at €39/year (Multilingual Blog), with WooCommerce, Translation Management, and String Translation bundled into the CMS (€99) and Agency (€199) tiers. PerfLocale is completely free and open source - all features, including WooCommerce integration, machine translation, and string translation, are included at no cost. It does not try to match WPML feature for feature: there is no translation memory, no glossary, and no assignment/deadline workflow. If those are central to how your team translates, WPML is the better fit.

Performance approach

PerfLocale was designed from the ground up with performance as a core principle. Its 3-layer caching architecture (static memory, object cache, transients), batch preloading, and conditional hook registration keep the plugin’s own code to a small fraction of total page time. Real-world numbers depend on theme + other plugins. WPML is a mature, feature-rich plugin that has evolved over many years and handles performance differently.

Developer experience

PerfLocale provides a full REST API, comprehensive WP-CLI commands, 200+ hooks and filters, and an addon architecture for extending functionality. The entire codebase is open source and available for inspection. WPML offers its own API and hooks, backed by extensive documentation and a large community.

Migration from WPML

PerfLocale’s bundled WPML importer reads your existing wp_icl_translations and wp_icl_strings tables and reconstructs equivalent translation groups as native PerfLocale rows. Your WPML data is read-only during the import - the tool writes new rows without modifying or deleting anything WPML owns, so you can re-run the import, abandon it, or roll back by restoring a database backup without risk to your source data. Re-running is also idempotent: existing translation groups are reused, so partial runs fill in the gaps instead of creating duplicates. The importer batches its SELECTs so peak memory stays bounded on very large sites - regression-tested at 5,000 translation groups × 3 languages (15,000 link writes) under 32 MB peak delta. See the step-by-step WPML migration guide for pre-flight checks, verification, and troubleshooting.

Frequently Asked Questions

Can I migrate from WPML to PerfLocale?

Yes. PerfLocale includes a built-in WPML importer that covers post translations, term translations, and string translations. Deactivate WPML first — PerfLocale will not start while it is active, and the importer reads WPML’s database tables rather than its runtime, so nothing is lost. Then activate PerfLocale, add your languages under PerfLocale → Languages, and trigger the import from PerfLocale → Settings → Export & Import or from the CLI with wp perflocale migrate wpml. See the WPML migration guide for the full walk-through.

Does PerfLocale support all the same languages as WPML?

PerfLocale supports any language - there's no predefined limit. You can add any language with a custom slug, locale, name, flag, and text direction. If a language exists in WordPress, PerfLocale can use it.

Is PerfLocale really free?

Yes. PerfLocale is free and open source under GPL-2.0+. There are no premium tiers, no paid addons, and no feature restrictions. Every feature - including WooCommerce support, machine translation, string translation, and all integrations - is included. Some things simply aren't in the plugin at all: there is no translation memory, no glossary, and no assignment/deadline workflow.

← Back to comparisons