Description
WordPress search matches raw substrings against post titles and content. It ignores custom fields, cannot rank by relevance, and gives up on a single typo. OZY Smart Search replaces it.
Ranked results. Okapi BM25 scoring over a purpose-built index, with per-field weights. A title match outranks a passing mention in a paragraph.
Typo tolerance. When an exact search comes up short, near-miss words are tried, scored below exact matches so a real hit always wins.
Custom fields. Advanced Custom Fields, Secure Custom Fields, Meta Box, CMB2, Carbon Fields and core meta are detected automatically, including repeaters, groups and flexible content.
WooCommerce. Products, variations, SKUs and attributes are indexed. Result cards show price, stock, rating and add-to-cart, and respect catalogue visibility.
Optional semantic search. Add a key from one of the supported AI providers and results start matching by meaning, not just wording. Several providers have a free tier. Without a provider the plugin never contacts an external service.
Design without CSS. Six presets and full control over colour, type, spacing, shape, shadow and motion, with a live preview.
Works where you build. Native widgets for the block editor, Elementor, Divi, WPBakery, Beaver Builder, Oxygen, Bricks, Avada and Brizy. A shortcode covers everything else. Leave the default-search replacement on and your theme’s existing search form starts using it with no template changes.
Analytics that suggest fixes. See what visitors search for, what found nothing, and where they click — then get concrete suggestions: a page worth writing, a synonym worth adding, a field worth weighting higher.
Everything is free
There is no pro version, no feature lock, no trial and no upsell. This plugin is how people find OZY Solutions, and that is the whole model.
Features
- Live AJAX search with debouncing and in-memory response caching
- BM25 relevance ranking with configurable per-field weights
- Fuzzy matching for typos
- Optional semantic search and AI reranking
- Multiple independent search engines per site
- Custom field indexing across six field plugins
- WooCommerce products, variations, SKUs and attributes
- Synonyms and stopwords, with CSV import
- Faceted filtering: post type, taxonomy, price, date, author, rating, stock
- Search results page with sorting, filter chips and pagination
- Search analytics with zero-result tracking and recommendations
- Voice search using the browser Speech Recognition API
- Recent and popular searches
- Full keyboard navigation and WCAG 2.1 AA support
- Dark mode, reduced motion and high contrast support
- Multisite, WPML and Polylang
- Cache plugin compatibility: WP Rocket, LiteSpeed, W3TC, WP Super Cache, WP Fastest Cache
- REST API and WP-CLI commands
- Theme-overridable templates and documented hooks
Privacy
Search analytics are stored in your own database. IP addresses are hashed with SHA-256 and never stored raw; session identifiers are random. There is no telemetry, no licence check and no phone-home of any kind. The plugin registers suggested privacy policy text and hooks into the WordPress personal data export and erase tools.
External Services
This plugin connects to third-party AI services only when the site administrator explicitly configures a provider and supplies an API key. No data is sent to any external service by default, and the plugin is fully functional without any provider.
The following services may be used based on your configuration:
OpenAI (https://openai.com)
- Purpose: generate text embeddings for semantic search, and optionally rerank results
- Data sent: the text of indexed content, and search queries entered by visitors
- When: during indexing, and when a search runs with semantic mode enabled
- Terms of service: https://openai.com/policies/terms-of-use
- Privacy policy: https://openai.com/policies/privacy-policy
Anthropic (https://anthropic.com)
- Purpose: optional AI reranking of search results and query understanding
- Data sent: the search query and the titles and excerpts of candidate results
- When: only when AI reranking or query understanding is enabled
- Terms of service: https://www.anthropic.com/legal/consumer-terms
- Privacy policy: https://www.anthropic.com/legal/privacy
Groq (https://groq.com)
- Purpose: optional AI reranking of search results and query understanding
- Data sent: the search query and the titles and excerpts of candidate results
- When: only when AI reranking or query understanding is enabled
- Terms of service: https://groq.com/terms-of-use/
- Privacy policy: https://groq.com/privacy-policy/
Google Gemini (https://ai.google.dev)
- Purpose: generate text embeddings for semantic search, and optionally rerank results
- Data sent: the text of indexed content, and search queries entered by visitors
- When: during indexing, and when a search runs with semantic mode enabled
- Terms of service: https://ai.google.dev/gemini-api/terms
- Privacy policy: https://policies.google.com/privacy
Mistral AI (https://mistral.ai)
- Purpose: generate text embeddings for semantic search, and optionally rerank results
- Data sent: the text of indexed content, and search queries entered by visitors
- When: during indexing, and when a search runs with semantic mode enabled
- Terms of service: https://mistral.ai/terms
- Privacy policy: https://mistral.ai/terms#privacy-policy
If no provider is configured, this plugin operates entirely on your own server using keyword-based search with fuzzy matching, and does not contact any external service.
Screenshots





Blocks
This plugin provides 3 blocks.
- OZY Search Results Full search results listing with sorting and pagination. Place it on the page visitors land on after pressing Enter.
- OZY Search Filters Filter controls for a search results page: types, taxonomies, price and date.
- OZY Smart Search AI powered live search with instant results.
Installation
- Upload the plugin to
/wp-content/plugins/ozy-smart-search/, or install it through Plugins > Add New. - Activate it. The setup wizard opens automatically.
- Choose which post types to index. WooCommerce products are enabled automatically when WooCommerce is active.
- Let the first index run. It processes in the background; the dashboard shows progress.
- Add search to your site with the block, your page builder’s widget, the
[ozy_smart_search]shortcode, or by leaving the default-search replacement enabled.
Semantic search is optional and can be set up later on the AI Providers screen.
FAQ
-
Is there a paid version?
-
No. There is no pro tier, no feature lock and no upsell. Every feature is in this plugin.
-
Does it require an AI provider?
-
No. Keyword ranking, fuzzy matching, synonyms, facets and analytics all work with no external service. Semantic search is opt-in.
-
Does the plugin send data anywhere?
-
Not by default. There is no telemetry and no licence check. If you configure an AI provider, content and queries are sent to that provider — see the External Services section above.
-
Will it replace my theme’s search form?
-
If you leave that setting enabled, yes. Your existing search form starts using this engine with no template changes.
-
Which custom field plugins are supported?
-
Advanced Custom Fields, Secure Custom Fields, Meta Box, OZY Custom Fields, CMB2, Carbon Fields, and core post meta. Repeaters, groups and flexible content are walked and indexed per row.
-
Does it work with WooCommerce?
-
Yes. Products, variations, SKUs and attributes are indexed, catalogue visibility is respected, and product cards show price, stock, rating and add-to-cart.
-
Does it need a vector database?
-
No. Embeddings are stored as packed float32 blobs in your own MySQL database.
-
Will it slow my site down?
-
Search runs against a purpose-built index rather than a
LIKEscan of the posts table, so it is generally faster than core search. Responses are cached, and indexing runs in the background. -
Is it accessible?
-
Yes. The widget implements the combobox pattern with full keyboard navigation, live-region announcements, focus management, and support for reduced motion and high contrast.
-
What happens when I uninstall it?
-
Everything is removed: all custom tables, options, plugin meta, scheduled actions and the custom capability. Deactivating removes nothing, so you can deactivate safely. You can also turn off data deletion in advanced settings.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“OZY Smart Search” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “OZY Smart Search” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.5
- The custom CSS field is gone. Styling is done with the typed controls in the Design Studio, and any CSS saved by an earlier version is discarded on update.
- Attribution is off by default and opt in. “Powered by OZY” only appears on the front end after an administrator turns it on under Tools.
- Autocomplete no longer suggests titles a visitor cannot already see. A site indexing private posts could surface their titles through the public suggest endpoint.
- Options, transients, tables, post meta, shortcodes and query arguments moved from the
oss_prefix toozyss_. Stored data does not carry over, so reactivate and rebuild the index after updating. - Translations load through WordPress instead of load_plugin_textdomain().
1.0.4
- Divi, Bricks and Avada modules now appear in their builders. Integrations were detected before WordPress loaded the theme, so a builder that ships as a theme always looked absent and only the shortcode worked.
- WPML and Polylang sites no longer serve one language’s results to another. The cached response was keyed without the active language, so whichever language ran a query first answered it for all of them.
- Searches are markedly faster on larger sites. Term statistics were costing one full pass over the index per search term and were cached only for the length of a single request; they now take one pass in total and persist between requests.
- Tested against WordPress 7.0. The admin screens now mount through createRoot, the React 18 API WordPress has shipped since 6.2, instead of the render() call it deprecated. WordPress 6.0 and 6.1 keep the old path.
- Filter payloads are normalised before they are sanitised, so an unexpectedly shaped request can no longer raise a PHP error.
- The search endpoint bounds query length, result count and offset.
- Every directory carries an index.php, so a server with directory listing enabled cannot enumerate the plugin.
1.0.3
- Every builder now carries the same design controls: accent, field background, text, icon and border colours, corner radius, field width and padding. Added to WPBakery, Divi, Beaver Builder, Bricks, Avada, Brizy and the block editor.
- Those controls now reach the widget. Divi, Beaver and Avada wrote them onto a wrapper element, where the widget never picked them up.
- The same values are available on the shortcode, so any builder without a native module can set them.
1.0.2
- Dark mode is opt in. A widget follows the operating system only when the Design Studio is set to Auto, so the light design previewed there is what the page shows.
- Sites updating from an earlier version have Auto moved to Off; pick Auto again in the Design Studio to keep following the system.
- Version upgrades run without needing the plugin to be reactivated.
1.0.1
- The widget stylesheet is registered on every front end request, so a page builder that declares it as a dependency always gets it. Without this a widget could render with none of its own styling.
- Page builder colour and typography controls no longer inherit the builder’s global palette; the Design Studio design is what shows until a control is set deliberately.
- Result links, titles and excerpts keep their own colours when a builder applies site wide theme styles.
- The field, its icons and the clear, voice and submit buttons outrank theme rules that style bare inputs and buttons.
- Light presets ship with dark mode off rather than following the operating system.
- Fixed radii and offsets that were dropped in the minified stylesheet.
1.0.0
- Initial release.
- BM25 relevance ranking with configurable per-field weights.
- Fuzzy matching, synonyms and stopwords.
- Optional semantic search across five AI providers, with a fallback chain.
- Optional AI reranking and query understanding.
- Custom field indexing for ACF, Secure Custom Fields, Meta Box, OZY Custom Fields, CMB2 and Carbon Fields.
- WooCommerce products, variations, SKUs, attributes and product cards.
- Multiple independent search engines.
- Faceted filtering and a full search results page.
- Design Studio with six presets and no-code styling.
- Native widgets for the block editor, Elementor, Divi, WPBakery, Beaver Builder, Oxygen, Bricks, Avada and Brizy.
- Search analytics with zero-result tracking and generated recommendations.
- Voice search, search history and full keyboard navigation.
- Multisite, WPML and Polylang support.
- Cache and SEO plugin compatibility.
- REST API and WP-CLI commands.
