8,000+
April 10, 2025
October 20, 2014
ElasticPress, a fast and flexible search and query engine for WordPress, enables WordPress to find or “query” relevant content extremely fast through a variety of highly customizable features. WordPress out-of-the-box struggles to analyze content relevancy and can be very slow. ElasticPress supercharges your WordPress website making for happier users and administrators. The plugin even contains features for popular plugins.
Here is a list of the amazing ElasticPress features included in the plugin:
Search: Instantly find the content you’re looking for. The first time.
Instant Results: A built for WordPress search experience that bypasses WordPress for optimal performance. Instant Results routes search queries through a dedicated API, separate from WordPress, returning results up to 10x faster than previous versions of ElasticPress.
WooCommerce: With ElasticPress, filtering WooCommerce product results is fast and easy. Your customers can find and buy exactly what they’re looking for, even if you have a large or complex product catalog.
Related Posts: ElasticPress understands data in real time, so it can instantly deliver engaging and precise related content with no impact on site performance.
Protected Content: Optionally index all of your content, including private and unpublished content, to speed up searches and queries in places like the administrative dashboard.
Documents: Indexes text inside of popular file types, and adds those files types to search results.
Autosuggest: Suggest relevant content as text is entered into the search field.
Filters: Add controls to your website to filter content by one or more taxonomies.
Comments: Indexes your comments and provides a widget with type-ahead search functionality. It works with WooCommerce product reviews out-of-the-box.
The ElasticPress plugin enables you to connect your WordPress site to the ElasticPress.io service, a SaaS solution that provides an enhanced search experience while reducing load on your WordPress site. For advanced users familiar with both WordPress and Elasticsearch hosting and management, ElasticPress also offers support for plugin functionality using an Elasticsearch instance. Please keep in mind that there are multiple security, performance, and configuration considerations to take into account if you take this approach.
If circumstances prevent the use of a SaaS solution like ElasticPress.io, we can also provide consulting around installation and configuration of custom Elasticsearch instances.
Please refer to GitHub for detailed usage instructions and documentation. FAQs and tutorials can be also found on our support site.
If you have identified a bug or would like to suggest an enhancement, please refer to our GitHub repo. We do not provide support here at WordPress.org forums.
If you are an ElasticPress.io customer, please open a ticket in your account dashboard. If you need a custom solution, we also offer consulting.
You can report any security bugs found in the source code of ElasticPress through the Patchstack Vulnerability Disclosure Program. The Patchstack team will assist you with verification, CVE assignment and take care of notifying the developers of this plugin.
ElasticPress requirements can be found in the Requirements section of our GitHub repository. If your solution relies on a different server or version, you may find additional information on our Compatibility documentation page.
For sure! Feel free to submit ideas or feedback in general to our GitHub repo. If you can, also consider sending us a review.
This version bumps the minimum WordPress version to 6.2+.
Added:
ep.InstantResults.filter.taxonomy.terms
. Props @burhandodhy and @syedc.include
, exclude
, upper-limit-object-id
, and lower-limit-object-id
support for the term and comment indexable. Props @burhandodhy.Changed:
ElasticPress\Feature\RelatedPosts::get_related_query()
, ElasticPress\Feature\RelatedPosts::find_related()
parameter name change to $post_return
. Props @oscarssanchez and @felipeelia.ep_remote_request
action to also run on non-blocking requests. Props @felipeelia.Fixed:
36px default size is deprecated
warnings. Props @burhandodhy.Security:
serialize-javascript
from 6.0.1 to 6.0.2, jsdoc
from 3.6.11 to 4.0.4, and taffydb
. Props @dependabot.tar-fs
from from 3.0.6 to 3.0.8. Props @dependabot.Developer:
build-with-vendor-prefixed.yml
and standardize the use of Node Version. Props @burhandodhy.Added:
ep_facet_selected_filters
. Props @burhandodhy.ep_disable_query_logging
to disable query logging. Props @davidsword and @rebeccahum.Changed:
Fixed:
tmp
path replaced with a dynamic value. Props @burhandodhy.ep_formatted_args
and ep_post_formatted_args
. Props @barryceelen.strtotime()
call. Props @felipeelia and @barryceelen.\
in search terms for both Autosuggest and Instant Results. Props @felipeelia and @burhandodhy.load_plugin_textdomain
to init
and set a Domain Path. Props @felipeelia.custom-fields
. Props @felipeelia and @maartenhunink.Security:
composer/composer
from 2.7.0 to 2.7.8. Props @dependabot.symfony/process
from 6.4.8 to 6.4.14. Props @dependabot.Developer:
Fixed:
This is a security release affecting all previous versions of ElasticPress.
Security:
Changed:
Fixed:
Added:
ep_facet_enabled_in_editor
filter to enabled facet blocks in the post editor. Props @JiveDig and @felipeelia.get_capability()
function. Props @felipeelia and @selim13.ep_weighting_options
filter to modify the weighting dashboard options. Props @burhandodhy.ep_post_test_meta_value
filter. Props @felipeelia.Changed:
$query->query_vars['ep_aggregations']
. Props @felipeelia.Term::format_args()
method and conditionally set search fields for term queries in REST API requests. Props @felipeelia and @mgurtzweiler.lee-dohm/no-response
with actions/stale
to help with closing no-response/stale issues. Props @jeffpaul.Fixed:
Elasticsearch::index_document
and related methods. Props @ictbeheer.<pre>
tag on the status report page. Props @burhandodhy via #3894.Security:
composer/composer
from 2.6.5 to 2.7.0. Props @dependabot.Changed:
wp_count_terms()
in query_db
. Props @rebeccahum.Fixed:
-autosuggest-allowed
endpoint to build the REST API schema. Props @felipeelia.Security:
follow-redirects
from 1.15.3 to 1.15.4. Props @dependabot.Added:
Fixed:
ElasticPress 5.0.0 contains some important changes. Make sure to read these highlights before upgrading:
ep_prepare_meta_allowed_keys
filter allows to add meta keys programmatically.set_settings_schema()
method to work.Users
feature was moved to the ElasticPress Labs plugin and is no longer available in this plugin. If you use this feature, make sure to install and configure EP Labs before upgrading.Terms
and Comments
features are now hidden by default for sites that do not have them active yet. Check our blog post for more info.Added:
elasticpress/v1/features
for updating feature settings. Props @JakePT.ElasticsearchErrorInterpreter
class. Props @felipeelia.default_search
analyzer to differentiate what is applied during sync and search time. Props @felipeelia and @MARQAS.Changed:
admin-ajax.php
callback to a custom REST API endpoint with support for additional arguments. Props @JakePT.ep_last_index
to ep_sync_history
. Props @felipeelia and @JakePT.Deprecated:
IndexHelper::get_last_index
method was replaced by IndexHelper::get_last_sync
.FailedQueries::maybe_suggest_solution_for_es
method was replaced by ElasticsearchErrorInterpreter::maybe_suggest_solution_for_es
.Weighting::render_settings_section
, Weighting::handle_save
, Weighting::redirect
, and Weighting::save_weighting_configuration
were deprecated in favor of React components.Removed:
Fixed:
ep_facet_renderer_class
filter. Props @misfist.Added:
ep_highlight_number_of_fragments
filter. Props @dgnorrod and @felipeelia.Removed:
Fixed:
ep_woocommerce_default_supported_post_types
were ignored. Props @felipeelia and @MARQAS.post__not_in
and post_status
are translated into arrays, not objects. Props @felipeelia.Utils\get_option
return type. Props @felipeelia.ep_capability
and ep_network_capability
filters. Props @burhandodhy.add_attachment
and edit_attachment
. Props @burhandodhy.composer install
on PHP 8. Props @burhandodhy.Security:
composer/composer
from 2.5.8 to 2.6.4. Props @dependabot.Note that starting from the ElasticPress 5.0.0 release the Users
feature will be moved to the ElasticPress Labs plugin. The Terms
and Comments
features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.
Added:
Changed:
Fixed:
Note that starting from the ElasticPress 5.0.0 release the Users
feature will be moved to the ElasticPress Labs plugin. The Terms
and Comments
features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.
Added:
Default to Site Language
option in the language dropdown in ElasticPress’ settings page. Props @felipeelia.ep_stop
filter, that changes the stop words used according to the language set. Props @felipeelia.get-index-settings
WP-CLI command. Props @felipeelia.ep_facet_tax_special_slug_taxonomies
filter. Props @oscarssanchez.--stop-on-error
flag to the sync
command. Props @oscarssanchez.get
WP-CLI command. Props @felipeelia.$only_indexable
parameter to the Utils\get_sites()
function. Props @felipeelia.Changed:
get_settings()
usage inside ElasticPress features. Props @oscarssanchez and @felipeelia.createRoot
instead of render
to render elements. Props @oscarssanchez, @burhandodhy, @JakePT, and @felipeelia.Deprecated:
Autosuggest::delete_cached_query()
was deprecated without a replacement. See #3566.EP_Uninstaller::delete_related_posts_transients()
and EP_Uninstaller::delete_total_fields_limit_transients()
was merged into EP_Uninstaller::delete_transients_by_name
. See #3548.ep_woocommerce_default_supported_post_types
filter was split into ep_woocommerce_orders_supported_post_types
and ep_woocommerce_products_supported_post_types
. See #3502.ep_woocommerce_supported_taxonomies
filter is now ep_woocommerce_products_supported_taxonomies
. See #3502.WooCommerce\Orders
methods were migrated to the new WooCommerce\OrdersAutosuggest
class. See #3502.Elasticsearch::clear_total_fields_limit_cache()
method was replaced by Elasticsearch::clear_index_settings_cache()
. See #3552.WooCommerce\WooCommerce
class were moved to the new WooCommerce\Product
class. See #3502.Block
and Renderer
abstract classes. See #3499.Fixed:
"Creation of dynamic property $search_template is deprecated"
. Props @burhandodhy.Deprecated: version_compare(): Passing null to parameter #1 ($version1) of type string is deprecated
. Props @felipeelia and @burhandodhy.Undefined array key "is_preview"
. Props @felipeelia and @burhandodhy.Security:
word-wrap
from 1.2.3 to 1.2.4. Props @dependabot.tough-cookie
from 4.1.2 to 4.1.3 and @cypress/request
from 2.88.10 to 2.88.12. Props @dependabot.Note that starting from the ElasticPress 5.0.0 release the Users
feature will be moved to the ElasticPress Labs plugin. The Terms
and Comments
features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.
Added:
Changed:
wp_cache_supports
over wp_cache_supports_group_flush
. Props @spacedmonkey.ep_exclude_from_search
post meta only if it is set or has some value. Props @MARQAS and @columbian-chris.Fixed:
ElasticPress\Feature\WooCommerce\Orders
. Props @mwidmann.ep_facet_search_get_terms_args
filter. Props @burhandodhy.Note that starting from the ElasticPress 5.0.0 release the Users
feature will be moved to the ElasticPress Labs plugin. The Terms
and Comments
features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.
Added:
--force
flag in the sync WP-CLI command, to stop any other ongoing syncs. Props @felipeelia and @tomjn.installer-paths
works without any additional requirement. Props @felipeelia and @tomjn.Changed:
Fixed:
maybe_process_error_limit
function. Props @burhandodhy.menu_order
values being transformed into positive numbers. Props @felipeelia and @navidabdi.Note that starting from the ElasticPress 5.0.0 release the Users
feature will be moved to the ElasticPress Labs plugin. The Terms
and Comments
features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.
Added:
ep_enable_query_integration_during_indexing
filter. Props @rebeccahum.Changed:
Fixed:
Note that starting from the ElasticPress 5.0.0 release the Users
feature will be moved to the ElasticPress Labs plugin. The Terms
and Comments
features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.
Added:
ep_instant_results_args_schema
filter for filtering Instant Results arguments schema. Props @JakePT.ep.Autosuggest.navigateCallback
JS filter for changing the behavior of a clicked element on Autosuggest. Props @oscarssanchez, @felipeelia, and @JakePT.ep.Autosuggest.fetchOptions
JS filter for filtering Elasticsearch fetch configuration of Autosuggest. Props @tlovett1, @MARQAS, and @felipeelia.Changed:
ep_facet_should_check_if_allowed
filter reverts this behavior. Props @felipeelia and @burhandodhy.Fixed:
ep_index_meta
option blowing up on an indexing process with many errors. Props @rebeccahum and @felipeelia.index_output
WP-CLI command help text. Props @bratvanov.action_edited_term
to call kill_sync
in SyncManager for post Indexable. Props @rebeccahum.'index'
during sync. Props @felipeelia and @burhandodhy.Security:
webpack
from 5.75.0 to 5.76.3. Props @dependabot.Note that starting from the ElasticPress 5.0.0 release the Users
feature will be moved to the ElasticPress Labs plugin. The Terms
and Comments
features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.
ElasticPress 4.5.0 release highlights:
Added:
get-search-template
, put-search-template
, and delete-search-template
. Props @oscarssanchez.--status
parameter to the get-indices
WP-CLI command. Props @felipeelia.ep_instant_results_per_page
filter for changing the number of results per page in Instant Results. Props @JakePT.post_parent__in
and post_parent__not_in
. Props @MARQAS.ep_sync_args
filter. Props @felipeelia and @nickchomey.ep_user_register_feature
and ep_feature_is_visible
filters. Props @felipeelia.X-ElasticPress-Request-ID
to help with debugging. Props @felipeelia.'orderby' => 'none'
in WP_Query. Props @felipeelia.ep_weighting_configuration_for_search
filter. Props @felipeelia.--network-wide
flag in WP-CLI commands. Props @MARQAS.is_available()
helper method in the Feature class. Props @burhandodhy.Changed:
get_flag_value()
. Props @oscarssanchez and @felipeelia.Removed:
woocommerce_layered_nav_query_post_ids
, woocommerce_unfiltered_product_ids
, and ep_wp_query_search_cached_posts
. Props @burhandodhy.Fixed:
Version | Download | Type |
---|---|---|
5.2.0 | Download | Stable |
5.1.4 | Download | Stable |
5.1.3 | Download | Stable |
5.1.2 | Download | Stable |
5.1.1 | Download | Stable |
5.1.0 | Download | Stable |
5.0.2 | Download | Stable |
5.0.1 | Download | Stable |
5.0.0 | Download | Stable |
4.7.2 | Download | Stable |
4.7.1 | Download | Stable |
4.7.0 | Download | Stable |
4.6.1 | Download | Stable |
4.6.0 | Download | Stable |
4.5.2 | Download | Stable |
4.5.1 | Download | Stable |
4.5.0 | Download | Stable |
4.4.1 | Download | Stable |
4.4.0 | Download | Stable |
4.3.1 | Download | Stable |
4.3.0 | Download | Stable |
4.2.2 | Download | Stable |
4.2.1 | Download | Stable |
4.2.0 | Download | Stable |
4.1.0 | Download | Stable |
4.0.1 | Download | Stable |
4.0.0 | Download | Stable |
3.6.6 | Download | Stable |
3.6.5 | Download | Stable |
3.6.4 | Download | Stable |
3.6.3 | Download | Stable |
3.6.2 | Download | Stable |
3.6.1 | Download | Stable |
3.6.0 | Download | Stable |
3.5.6 | Download | Stable |
3.5.5 | Download | Stable |
3.5.4 | Download | Stable |
3.5.3 | Download | Stable |
3.5.2 | Download | Stable |
3.5.1 | Download | Stable |
3.5 | Download | Stable |
3.4.3 | Download | Stable |
3.4.2 | Download | Stable |
3.4.1 | Download | Stable |
3.4 | Download | Stable |
3.3 | Download | Stable |
3.2.6 | Download | Stable |
3.2.5 | Download | Stable |
3.2.4 | Download | Stable |
3.2.3 | Download | Stable |
3.2.2 | Download | Stable |
3.2.1 | Download | Stable |
3.2 | Download | Stable |
3.1.4 | Download | Stable |
3.1.3 | Download | Stable |
3.1.2 | Download | Stable |
3.1.1 | Download | Stable |
3.1 | Download | Stable |
3.0.3 | Download | Stable |
3.0.2 | Download | Stable |
3.0.1 | Download | Stable |
3.0 | Download | Stable |
2.8.2 | Download | Stable |
2.8.1 | Download | Stable |
2.8 | Download | Stable |
2.7 | Download | Stable |
2.6.1 | Download | Stable |
2.6 | Download | Stable |
2.5.2 | Download | Stable |
2.5.1 | Download | Stable |
2.5 | Download | Stable |
2.4.2 | Download | Stable |
2.4.1 | Download | Stable |
2.4 | Download | Stable |
2.3.2 | Download | Stable |
2.3.1 | Download | Stable |
2.3 | Download | Stable |
2.2.1 | Download | Stable |
2.2 | Download | Stable |
2.1.2 | Download | Stable |
2.1.1 | Download | Stable |
2.1 | Download | Stable |
2.0.1 | Download | Stable |
2.0 | Download | Stable |
1.9.1 | Download | Stable |
1.9 | Download | Stable |
1.8 | Download | Stable |
1.7 | Download | Stable |
1.6.2 | Download | Stable |
1.6.1 | Download | Stable |
1.6 | Download | Stable |
1.5.1 | Download | Stable |
1.5 | Download | Stable |
1.4 | Download | Stable |
1.3.1 | Download | Stable |
1.3 | Download | Stable |
1.2 | Download | Stable |
1.1 | Download | Stable |
1.0 | Download | Stable |
Development | Download | Trunk |