TechEarl

Do I Need ElasticPress? An Honest Decision Checklist

ElasticPress is powerful and, for most WordPress sites, unnecessary. Here is a straight checklist: the signals that mean you genuinely need it, the hidden costs, and the cheaper options to try first.

Ishan KarunaratneIshan Karunaratne⏱️ 7 min readUpdated
An honest decision checklist for whether a WordPress or WooCommerce site needs ElasticPress and Elasticsearch: the signals that justify it, the hidden operational costs, and the cheaper search options to try first.

ElasticPress is the plugin that connects WordPress to Elasticsearch, and it is genuinely excellent. It is also, for most WordPress sites, a solution to a problem they do not have. The product's own documentation will not tell you that, because it is the product's documentation. This is the honest version: the specific signals that mean you need ElasticPress, the costs nobody mentions up front, and the cheaper things to try first.

The short answer

Most WordPress sites do not need ElasticPress. If you run a blog, a small content site, or a store with a few thousand products and search that mostly works, adding Elasticsearch is infrastructure and operational burden with little payoff. You need ElasticPress when search or filtering has become a measurable problem: large catalog, slow filtered pages, search that returns poor results, and revenue or engagement that depends on getting it right. The decision is about evidence, not ambition.

The signals that mean yes

Treat these as a checklist. The more that are true, the stronger the case for ElasticPress.

  • Large catalog or content base. Somewhere past roughly 10,000 posts or products, MySQL-backed search and filtering start to strain. The exact number depends on your data and hosting, but the trend is real.
  • Faceted or layered filtering. If users filter by attribute, price range, category, and stock status together, that is a multi-condition query against wp_postmeta, and on a large catalog those JOINs are slow. Elasticsearch aggregations are built for it.
  • Search-driven revenue. On a store, if a meaningful share of buyers find products through search, poor relevance costs sales directly. Good ranking, typo tolerance, and synonyms become a business requirement.
  • Search across metadata. If you need to search custom fields, attributes, or taxonomies, not just titles and content, MySQL makes that expensive. ElasticPress indexes it all.
  • Measured slowness. The clearest signal: product search and filtered category pages are slow while simple product pages stay fast. That gap is MySQL struggling with exactly the work Elasticsearch does well. Confirm it with Query Monitor before deciding.
  • WooCommerce at scale. A large WooCommerce store with heavy product filtering is the textbook ElasticPress case. How to Optimize WooCommerce places search within the full set of performance layers a big store needs.

If none of these are true, you do not need ElasticPress yet. If three or more are true, you probably do.

When ElasticPress is overkill

A blog, a brochure site, a small store, or any site where search is a minor feature does not need a search cluster. Default WordPress search is weak, but the fix at that size is a lightweight search plugin, not a new piece of infrastructure. Adding Elasticsearch to a small site means you now host, monitor, secure, and resync a service to make a feature slightly better that few visitors heavily use. That is effort spent in the wrong place.

The hidden costs nobody mentions

ElasticPress itself is free and open source. Elasticsearch is where the cost lives, and it is easy to underestimate.

  • Hosting the cluster. You either self-host Elasticsearch (RAM, CPU, and the operational work of running a stateful service) or pay a managed provider. Either way it is a real, recurring line item.
  • Keeping the index in sync. WordPress is the source of truth; Elasticsearch holds a copy. Content edits sync automatically through hooks, but bulk imports can outrun those hooks and leave the index stale, and mapping changes require a full reindex. That is ongoing maintenance.
  • Another thing that can break. A new service is a new failure mode: the cluster going down, running out of disk, or drifting out of sync. ElasticPress falls back to MySQL when the cluster is unreachable, which is good, but it means a silent failure can quietly undo the benefit you are paying for.
  • Operational attention. Monitoring, version upgrades, and reindexing are work that a pure-MySQL site simply does not have.

None of this is a reason to avoid ElasticPress when you need it. It is a reason not to adopt it when you do not.

Cheaper things to try first

Before reaching for Elasticsearch, exhaust the simpler options:

  • MySQL FULLTEXT. A real search index inside the database you already run, no new infrastructure. Good enough for many small and mid-size sites. ElasticPress vs MySQL FULLTEXT compares the two engines directly.
  • Relevanssi or SearchWP. Both build their own search index inside MySQL and deliver far better relevance than default WordPress search, with no separate service to host. This is the right step for most sites that have outgrown default search but are not at Elasticsearch scale.
  • Database and caching basics. Sometimes "search is slow" is really "the whole site is slow." Object caching, a tuned database, and HPOS on WooCommerce can make MySQL-backed search acceptable again. Fix the foundation before adding a search cluster.

The verdict

Work up the ladder. Default search is not enough for most sites; a search plugin like Relevanssi or SearchWP fixes the majority of them. Move to ElasticPress and Elasticsearch when you have a large catalog, faceted filtering, search-driven revenue, and measured slowness that points specifically at search and filtering. At that point the operational cost is clearly worth it, and How to Use ElasticPress with WP_Query is the setup guide. Below that point, ElasticPress is a powerful tool solving a problem you do not have.

FAQ

TagsElasticPressElasticsearchWordPressWooCommerceSearchPerformanceMySQL
Share
Ishan Karunaratne

Ishan Karunaratne

Tech Architect · Software Engineer · AI/DevOps

Tech architect and software engineer with 20+ years building software, Linux systems, and DevOps infrastructure, and lately working AI into the stack. Currently Chief Technology Officer at a healthcare tech startup, which is where most of these field notes come from.

Keep reading

Related posts

Rank the biggest files on a full disk with find -printf '%s %p' piped to sort -rn. The GNU one-liner, the BSD stat variant for macOS, why -xdev matters, human-readable sizes, and when du or ncdu beats find.

How to Find the Largest Files on Disk (find, sort, du)

find / -xdev -type f -printf '%s %p\n' | sort -rn | head -20 gives you a ranked list of the biggest files on a full disk. The GNU one-liner, the BSD/macOS stat variant, why -xdev matters, human-readable output with numfmt, when to switch to du or ncdu for per-directory totals, and the mistakes that send a scan into /proc.

Wire ElasticPress to WP_Query so WordPress queries hit Elasticsearch instead of MySQL. Install, indexable post types, ep_integrate, wp-cli index, faceted aggregations, and when ES actually beats MySQL FULLTEXT.

How to Use ElasticPress with WP_Query

Wire ElasticPress to WP_Query so WordPress queries hit Elasticsearch instead of MySQL. Covers installation, indexable post types, ep_integrate, the wp-cli index command, faceted search with aggregations, and when ES actually beats MySQL FULLTEXT.

Use find -type d -empty to list empty directories and find -type f -empty for empty files. The -depth trap for deleting nested empty trees, the hidden-file gotcha, the safe two-pass cleanup, and BSD vs GNU find notes.

How to Find (and Delete) Empty Directories and Files

find . -type d -empty lists every empty directory; find . -type f -empty lists every empty file. The catch is what 'empty' means (a hidden file makes a directory not empty) and the -depth trap that lets find -delete collapse whole nested empty trees in one pass. The flag reference, the safe two-pass cleanup, the BSD vs GNU notes, and the mistakes that bite.