What Is ElasticPress? Features, Setup, and Troubleshooting for WordPress Sites

performance

If you've ever watched WordPress return irrelevant search results on a site with thousands of posts, you've already seen the problem that elasticpress was built to fix. The plugin, developed by WordPress agency 10up, connects your WordPress site to Elasticsearch so search queries stop running against MySQL and start running against a purpose-built search engine. What follows covers how the plugin works, how to get it running, and how to fix the issues that come up most often.

What Is ElasticPress? Features, Setup, and Troubleshooting for WordPress Sites

Key Takeaways

Key Takeaways
Photo by Zulfugar Karimov on Pexels

What ElasticPress Does and How It Improves WordPress Search

WordPress search has a well-known limitation: it runs against MySQL, and MySQL was not built for relevance ranking. ( [URL TO BE SUPPLIED BY EDITOR]) When a visitor searches your site, WordPress fires a WP_Query database call that matches exact strings. It can't weigh one result as more relevant than another, it struggles with typos, and it slows down as your content library grows.

The ElasticPress plugin solves this by acting as a bridge between WordPress and Elasticsearch. Elasticsearch is a search engine built to handle relevance scoring, fuzzy matching, and high-volume queries at speed. The plugin is not the search engine itself; it's the layer that tells WordPress to send queries to Elasticsearch instead of MySQL.

10up released the plugin as open-source software. You can install it from the WordPress plugin repository at no cost, though you'll still need a running Elasticsearch or OpenSearch instance to connect it to.

How Does ElasticPress Handle Multisite Networks?

ElasticPress supports WordPress multisite by indexing content across the entire network. Each site gets its own index, so a search on one subsite won't pull results from another.

Once the connection is in place, the plugin replaces WP_Query in a way that's mostly invisible to your theme and other plugins. Queries that used to hit your database now route to Elasticsearch, which returns results ranked by relevance rather than string matching.

The feature set is worth knowing in detail. Search relevance tuning lets you set how much weight fields like post title, body content, and custom fields carry in a result. Autosuggest surfaces matching posts as a visitor types in the search box. Faceted search lets users filter by category, tag, or custom taxonomy without a page reload. Instant search updates results in real time.

None of these are available in WordPress's default search. For sites with thousands of posts or products, the difference is noticeable. The plugin also offloads WP_Query calls from your database entirely, which reduces WordPress database load and frees up server resources for other requests.

ElasticPress Setup, Hosting Options, and Indexing Your Content

ElasticPress setup starts with a decision that shapes everything else: where will your Elasticsearch instance live? ( [URL TO BE SUPPLIED BY EDITOR]) The plugin is free, but it needs an external Elasticsearch or OpenSearch server to work. That server is not part of the plugin.

You have three options. You can self-host Elasticsearch on your own server or virtual machine. You can use a managed Elasticsearch provider like Elastic Cloud or AWS's managed service. Or you can use ElasticPress.io, the service 10up runs specifically for this plugin.

Self-Hosted vs. Managed Elasticsearch: Which Should You Choose?

A managed provider removes the hardest part of setup for most teams. Self-hosting makes sense if you have server experience and want to keep recurring costs low.

After your Elasticsearch instance is running, plugin installation follows the standard WordPress process. Search for "ElasticPress" in the plugin repository, install it, and activate it. From the dashboard, enter your Elasticsearch host URL and run through the setup wizard to choose which features to turn on.

The feature modules are worth reviewing one by one. You can enable or disable WooCommerce product indexing, autosuggest, and protected content indexing. Turning on only what you need keeps your index smaller and faster.

OpenSearch compatibility matters if your host runs on AWS. Elasticsearch changed its license in 2021, and many providers moved to OpenSearch, the AWS-maintained fork, in response. ElasticPress works with both, so you're not forced to pick one at setup.

With the plugin connected, you need to index your existing content. The command wp elasticpress index handles this from the command line through WP-CLI. On large sites, running it in batches or in the background avoids timeout errors. The plugin dashboard has a sync button if you prefer a manual approach.

After the first index, the plugin keeps things current on its own. Publishing, updating, or deleting a post triggers a background update to the Elasticsearch index. You only need to run a manual reindex after configuration changes or when the index falls out of sync.

ElasticPress Troubleshooting, WooCommerce, and Performance Considerations

ElasticPress troubleshooting almost always starts in the same place: the connection between WordPress and your Elasticsearch host. ( [URL TO BE SUPPLIED BY EDITOR]) If the plugin can't reach the server, results either come back empty or fall back to default WordPress behavior. Check the host URL in the plugin settings first, then confirm your server can reach that URL over the network.

Most connection errors come from firewall rules, wrong credentials, or a URL format problem. Some managed providers require HTTPS; others expect a specific port. Getting these details from your provider directly clears most issues.

Version compatibility causes the second most common set of problems. ElasticPress versions are matched to specific Elasticsearch and OpenSearch versions. Running a mismatched pair can cause indexing to fail or produce unexpected results. Check the plugin's documentation for supported version ranges before upgrading either component.

Why Are Some Posts Not Appearing in ElasticPress Search Results?

Missing posts usually mean those posts weren't indexed, or the index is stale. Running wp elasticpress index --setup rebuilds the index from scratch and resolves most cases within a few minutes.

For ongoing issues, wp elasticpress get-indexing-status shows whether an index job is active and how far along it is. Indexing errors in the dashboard often point to a specific post or content type. Common causes include malformed metadata, large custom field values, or content types left out of the original configuration. Fixing the configuration and reindexing clears most of these.

WooCommerce product search is where many store owners first notice how much MySQL-based search holds them back. Product names, SKUs, descriptions, and attributes all need to be searchable, and the default WordPress search handles this poorly at scale. ElasticPress indexes WooCommerce products as a separate content type and adds faceted filtering by attribute, category, and price range. Shoppers can filter results in real time without a page reload.

For high-traffic sites, offloading search to Elasticsearch produces real gains. MySQL query times increase as your database grows. Elasticsearch returns results at consistent speed regardless of index size. Sites with large content libraries see the most benefit. Smaller sites with a few hundred posts may not see a meaningful difference, and a lighter plugin may serve them better.

The Bottom Line

ElasticPress does one thing well: it replaces WordPress's limited, database-driven search with a system built to handle relevance, scale, and features like faceted filtering and autosuggest. The tradeoff is infrastructure. You need an external Elasticsearch or OpenSearch server, and that adds cost and maintenance that smaller sites may not be able to justify. If your site has a large content library, a WooCommerce catalog, or search that visibly struggles under load, the plugin is worth the setup work. If you're still building out your WordPress stack and want to read more about performance tools that fit different site sizes,.

Related reading

FAQs

Is ElasticPress free to use?

The plugin itself is free and available in the WordPress plugin repository. You'll need a separate Elasticsearch or OpenSearch instance to connect it to. ElasticPress.io, the managed service from 10up, is a paid option that simplifies setup considerably.

Do I need a separate Elasticsearch server to use ElasticPress?

Yes. The plugin connects WordPress to Elasticsearch but doesn't include a search engine. You can self-host Elasticsearch, use a managed cloud provider like Elastic Cloud, or sign up for ElasticPress.io.

Does ElasticPress work with WooCommerce?

Yes. ElasticPress indexes WooCommerce products as a distinct content type. It supports faceted filtering by attribute, category, and price range, and it allows real-time result updates as shoppers type, which standard WooCommerce search doesn't support.

How do I reindex content in ElasticPress?

Run wp elasticpress index to index content from the command line. To fully rebuild the index after a configuration change, run wp elasticpress index --setup. This drops the existing index and recreates it. The plugin dashboard also has a sync button for smaller sites.

What is the difference between ElasticPress and Relevanssi?

Relevanssi improves WordPress search using your existing MySQL database without requiring external infrastructure. ElasticPress replaces MySQL search with an external Elasticsearch engine. Relevanssi is simpler to set up; ElasticPress handles larger scale but requires a separate server.

See What's Included With Nova Managed Hosting

Nova runs every managed WordPress tenant in an isolated Kubernetes namespace with daily automated backups and managed core/plugin updates. If you're troubleshooting a specific issue on your own site, our team can help.