Your customer types "present for my girlfriend". Your store returns: 0 results.
WooCommerce search matches words. Your shopper described what they wanted in their own words, and those words appear nowhere in your product titles — so keyword search structurally cannot find the gift box you are selling. No amount of tuning fixes that; it is the wrong instrument.
Semantic search is a different class of tool, not a faster version of the same one: a query is matched by meaning, not by string.
Free forever. No OpenAI key. No credit card.
👉 See Queryra running → — technology demos on WordPress and WooCommerce, plus real customer stores using it in production. No signup. Your store could be on this page.
Documentation · FAQ · Pricing · Blog
Default WooCommerce search only matches exact keywords. If your product is called "Maison Blanc Gift Box" but someone searches "present for my girlfriend", they get nothing.
Real searches that return 0 results in most stores:
- "my skin looks tired" → Night creams, recovery oils, eye patches
- "gift for mom who loves candles" → Scented candles, home fragrance sets
- "looking older than my age" → Anti-aging serums, firming creams
- "before wedding skincare" → Bridal kits, radiance creams, ritual sets
- "postpartum hair loss" → Hair rescue sets, growth serums
Queryra understands these searches and finds the right products. See it running on demos and live customer stores →
Indexed on YOUR Store Generic AI plugins use the same model for everyone. Queryra indexes YOUR products, YOUR descriptions, YOUR categories — your content, not generic global data.
No ChatGPT Key Required Other plugins require you to create an OpenAI account and manage API keys. Queryra includes everything – one API key, no extra accounts.
WordPress-Native Built specifically for WordPress and WooCommerce. Auto-syncs on publish, supports product variations, works with any theme. WordPress Product Search Setup Guide →
Intent-Aware Search Most AI plugins only match meaning. Queryra adds a second layer: a query like "wireless headphones under $80, not Beats" applies the price filter AND excludes the brand. Vector-only plugins ignore both constraints. Why vector search alone isn't enough for WooCommerce product search →
Keyword search matches strings, not meaning — that is a limitation of the method itself, not a fault in any particular implementation. Semantic search is a different class of tool, and today it is the best kind of search you can put on a website: it matches what the visitor meant. Queryra is the first result in that category in the WordPress plugin directory.
- #1 for "semantic search" in the WordPress plugin directory — September 2026
- Independent video review — 4.8/5
- Product Search – Search by title, description, SKU, categories, tags, and attributes
- Smart Product Ranking – AI understands which products best match the query
- Boost Control – Promote high-margin products or slow-moving inventory
- Live Search Results – Instant AJAX-powered search suggestions
- Auto-Sync – New products indexed automatically when published
- Smart Context Detection – Automatically searches only products in WooCommerce shop pages, posts elsewhere
- Search Analytics – See what customers search for, including zero-result queries. Find gaps in your inventory before customers leave
- Beauty & Skincare – "my skin looks tired" finds night creams and recovery oils — see it running →
- Fashion – Find items by style, occasion, or color family
- Electronics – Search by features, not just model numbers
- Home & Garden – "cozy living room" finds rugs, lamps, pillows
- Food & Beverage – "healthy snacks" finds protein bars, nuts
- Any catalog – Works with any product type
Queryra also works with regular WordPress content — posts, pages, and custom post types. Well-suited for knowledge bases, blogs, and FAQ sections.
👉 See it running → — technology demos on WordPress and WooCommerce, plus real customer stores in production. Search "present for my girlfriend" or "my skin looks tired" and see the difference. Your store could be on this page.
- 🤖 Semantic AI Search - Understands meaning, not just keywords
- 🎯 Intent-Aware Search - Understands price filters ("under $50"), brand exclusions ("not Beats"), and sorting ("best rated") in natural language
- 🛒 WooCommerce Integration - Indexes products with prices, stock, and featured status
- 🔄 Auto-Sync - Posts sync automatically when published or updated
- 📝 Custom Post Types - Works with posts, pages, and any custom type
- ⭐ Sticky Post Priority - Important posts and featured products rank higher
- 🎨 Theme Compatible - Works with any WordPress theme
- 📦 Bulk Operations - Send all existing posts with one click
- 📊 Search Analytics - See top searches and zero-result queries (find inventory gaps)
- 🔐 Secure - WordPress nonces, HTTPS, input sanitization
- 📊 Admin Dashboard - Monitor sync status and statistics
- 🛠️ Hooks & Filters -
queryra_result_ids(narrow results in PHP before they reach WordPress),queryra_indexable_taxonomies,queryra_indexable_meta_content,queryra_validate_api_key - ⚡ Lightweight - No bloat, follows WordPress coding standards
- 🔌 REST API Ready - Full API for headless WordPress
graph LR
A[Publish Post] --> B[WordPress Plugin]
B --> C[Queryra API]
C --> D[AI Indexing]
D --> E[Smart Search]
- Install - Add plugin to WordPress
- Connect - Paste API key from Queryra
- Sync - Auto-sync posts or bulk send existing content
- Search - AI-powered results appear instantly
How to Install AI Search on WooCommerce →
Option A: WordPress Dashboard (Recommended)
- Go to Plugins → Add New in WordPress
- Search for "Queryra"
- Click Install Now then Activate
Option B: Manual Installation
cd /wp-content/plugins/
# Upload queryra-search folder
# Activate via WordPress Admin → PluginsCreate a free account → → Copy API key from dashboard
- Go to Settings → Queryra in WordPress admin
- Paste your API Key
- Select which Post Types to sync (posts, pages, custom types)
- Enable Auto Sync (recommended)
- Click Save Changes
Option A: Bulk Sync
- Click "Send All Posts to Queryra" to sync existing content
Option B: Automatic
- New posts sync automatically when published
Your search is now powered by AI indexed on your content. WooCommerce Search Plugin Setup Guide →
| Requirement | Version |
|---|---|
| WordPress | 5.8+ |
| PHP | 7.4+ |
| MySQL | 5.6+ |
| HTTPS | Recommended |
Tested with:
- WordPress 7.1, 7.0, 6.9, 6.7.2, 6.6, 6.5
- PHP 8.2, 8.1, 8.0, 7.4
- Popular themes: Twenty Twenty-Four, Astra, Kadence, GeneratePress
Free forever on the Community plan — it does not expire. No credit card required. No ChatGPT API key costs. No hidden fees.
See pricing & plans → · Partner Program →
Yes! The showcase has technology demos on WordPress and WooCommerce — one with 220+ products across 10 brands — alongside real customer stores running Queryra in production. Our blog and FAQ page are also powered by Queryra.
The Community plan is free forever and does not expire — no credit card required. See current pricing and plans →
Queryra indexes YOUR content, and no OpenAI account is needed. It also reads constraints written into the query in plain language — a price range, a brand to leave out — not only meaning. Why vector search alone isn't enough for WooCommerce product search →
Enterprise search platforms are powerful but typically aimed at developers and require integration work. Queryra is built specifically for WordPress and WooCommerce — install via WordPress admin, connect with an API key, and you're ready. See pricing →
Yes! Works with any WordPress theme. Hooks into standard WordPress search functionality.
No. Search runs on Queryra's servers, not on your hosting, so the work never lands on the machine serving your shop. Results are cached, so a repeated search costs nothing at all.
The Community plan does not expire, so there is nothing to run out of by waiting. If your catalogue or traffic grows past its limits, you can move to a paid plan, or apply to the Partner Program, which is open to qualifying sites that display a footer credit. See pricing →
Search returns to WordPress default. Your data stays in Queryra until you delete it from the dashboard.
For more questions, visit our FAQ page →
The roadmap is actively being shaped by user feedback:
- Custom hooks and filters for developers
- Multilingual support (WPML/Polylang)
- Advanced analytics dashboard
- Search widget for Gutenberg
- REST API expansion
Your input matters! Contact us or open an issue to share your ideas.
- WooCommerce Product Search Setup — Step-by-step WordPress setup
- AI Search Documentation — All documentation
- FAQ — Common questions answered
- Email: [email protected]
- GitHub Issues — Bug reports, questions and ideas
- WordPress.org support forum — Help from us and other users
We welcome contributions!
Report Bugs — Open an issue with WordPress version, PHP version, steps to reproduce, and expected vs actual behavior.
Suggest Features — Email us or open an issue.
Submit Code:
- Fork the repo
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
# Clone repo
git clone https://github.com/GronRafal/queryra-wordpress-plugin.git
cd wordpress-plugin
# Install dev dependencies (optional)
composer install --dev
# Run WordPress coding standards check
phpcs --standard=WordPressAbilities API fix, agent-facing description, hardening
- Fixed (important): the
queryra/semantic-searchability was never registered with the WordPress Abilities API, on any version, so AI agents and MCP clients could not discover it. Its category used a slug WordPress rejects, and both refusals were reported through a debug-only notice, so the feature looked absent rather than broken. The ability name is unchanged, so anything written againstqueryra/semantic-searchworks as published. Reported by Enkhbat. - Changed: the description an AI agent reads for that ability now says when to use Queryra and when the built-in WordPress search is the better choice, and states that only indexed content is searchable — so an agent reports what it could not find instead of concluding the content does not exist.
- Security: outbound API requests now use WordPress's validated HTTP functions (hardening).
- Privacy: diagnostic error reports no longer include host names, IP addresses or port numbers.
Retry backoff and a longer search timeout
- Fixed: a site that used up its monthly search allowance was treated as a service outage and retried once a minute for the rest of the billing period. Search itself kept working — WordPress search takes over whenever the AI service cannot answer — but the site made tens of thousands of pointless requests a month. The pause between retries now grows with each failure (one minute, five, thirty, then six hours) and resets as soon as a request succeeds.
- Changed: the search request now waits up to 8 seconds instead of 5, so slower ranking models are not cut off mid-answer and dropped to keyword search. Only the first search for a phrase waits; results are cached after that.
Documentation links in Settings
- New: the filters reference on the Support tab links to the full guide with worked examples.
- New: a site running courses or memberships sees a note explaining why its lessons cannot be narrowed to a single course yet, with a link to the fix. It appears only where it applies and disappears once course tagging is in place. Shops and blogs never see it.
- Changed: declared compatible with WordPress 7.1.
Structured-data credit opt-in, filters reference
- Changed: the "Powered by Queryra" reference in your site's structured data is now opt-in and off by default, per WordPress.org plugin guideline 10. The structured data describing your search stays; only the outbound link is removed unless you enable it under Settings → AI Discoverability.
- New: a filters reference in the plugin settings lists the filter parameters that work on your site, with ready-to-copy examples built from your own taxonomies and terms.
- Fixed: the filter syntax described in 1.5.2 was wrong. Values are the term NAME, not the slug. Written the wrong way a filter was silently ignored and every result came back, so it looked like it worked.
- Fixed: the setup wizard now counts every content type in its site summary, and content types with nothing published are selectable instead of ticked and locked.
Developer search filters
- New: scope filters via URL — a search request may carry
filter_<dimension>=<value>parameters (for example/?s=shoes&filter_category=boots), applied before ranking so the returned set is already narrowed. Nothing changes for searches without them. - New:
queryra_result_idsfilter, applied to the ranked post IDs before they reach WordPress. Lets a site narrow results by rules only it can know — membership access, B2B groups. If a callback removes every result the search returns nothing, rather than falling back to the whole site. Filter name suggested by @jonnwalker on the WordPress.org support forum.
Setup survey, deactivation feedback rework, cache fix
- New: optional setup question shown when the wizard opens — what kind of site this is, and what you want better search to do for it. One click, fully optional, visible Skip. Asked before setup so it still reaches people who hit trouble during installation.
- Privacy: the answer is not stored on the site — it is sent to Queryra once and only a small flag stays locally so the question is not asked twice. Answerable and updatable in Settings → Site Profile.
- New: deactivation and survey events record interaction state (submitted / skipped / never shown), so a decline can be told apart from a WP-CLI or bulk deactivation. No answer content is ever sent for a skip.
- Fixed (important): the search cache was silently switched to "Disabled" whenever any other settings tab was saved — all tabs share one settings group and the cache duration only existed on the Cache tab, so saving elsewhere wrote an empty value over it. Many sites were sending an API call for every single search without knowing.
- Fixed: deactivation feedback now uses one comment box whose prompt changes with the selected reason. Previously each reason had its own box, so text typed under one reason was silently dropped after picking another — and two reasons had no box at all.
- Improved: deactivation feedback adds a "trial limits were too small" reason, an optional reply-to email address, and is recorded as an analytics event (source of truth) alongside the email notification.
- Fixed: the activation event was missing on some hosts, and reported zero posts/pages/products when it did arrive. It is now sent after WordPress has registered all post types.
- New: usage analytics include whether AI search is switched on — the feature ships disabled, so "indexed content but no searches" was previously ambiguous.
Critical admin fix — Connectors polling removed
- Fixed (critical): the WordPress 7.0 Connectors status notice ran on every wp-admin page and injected a script that repeatedly polled a REST endpoint. On rate-limited or managed hosts (nginx limits, Cloudflare, mod_security) this could trigger an HTTP 429 cascade that broke admin assets (jQuery, the block editor) and produced a blank admin screen. The notice now renders only on the Connectors screen and reads status server-side.
- Removed: the
/wp-json/queryra/v1/key-statusREST endpoint and all client-side polling. Key status is a single server-side read — zero background requests from the admin. - Improved: admin JavaScript debug logging is silent unless
WP_DEBUGis enabled, matching the PHP logger.
Custom Post Type support
- New: AI search indexes any public custom post type (recipes, vehicles, portfolios, listings, courses), not just posts, pages and WooCommerce products. Enable each type in Settings → Content or during the setup wizard.
- New: ACF / Meta Box custom fields and custom taxonomies on those types are indexed automatically — the extraction engine is post-type agnostic.
- Improved: Records tab counts and lists enabled custom post types; trashing or unpublishing a CPT entry removes it from the index.
- Improved: anonymous analytics report a breakdown of public custom post types and their published-post counts.
Error visibility, security and resilience
- New: "Recent issues" panel on the Settings tab — import, search, API key and integration problems are visible in wp-admin instead of hidden in
debug.log. - New: error reporting for previously silent failure paths — auto-sync on save/delete, search fallback, B2BKing integration, key validation, and client-side import errors. Anonymous and bounded; honours
QUERYRA_DISABLE_ANALYTICS. - Security: fixed an XSS in the setup wizard test-search results — record names returned from the API are escaped before rendering in admin.
- Fixed: trashed or unpublished posts are removed from the index (previously only permanent deletion was synced, so trashed products kept consuming record quota).
- Fixed: the setup wizard validates the API key before saving it, so a mistyped key no longer overwrites a working one.
- Fixed: "Clear All Search Cache" works on hosts with Redis or Memcached object caching; bulk import pagination is stable when many posts share a publish date.
- Improved: visitor-facing search uses a 5-second timeout with a 60-second back-off after failure, so a slow API cannot pile up hung requests.
Maintenance — UTM tracking, claim audit, Plugin Check compliance
- New: AI search admin links carry tracking parameters (UTM) for support-side referral attribution. Sentinel
pre-initflags fresh installs in logs. - Improved: AI search documentation accuracy — refined Partner Program copy, broadened audience wording (sites, blogs, catalogues), and corrected technical phrasing (semantic AI search is indexed on content, not "trained").
- Improved: Replaced
rel="noreferrer"withrel="noopener"on admin links to enable server-side referrer attribution. - Fixed: Plugin Check warnings cleared — plugin name match between header and readme; inline JS values encoded via
wp_json_encode().
B2BKing integration — semantic AI search for bulk order forms
- New: B2BKing (B2B for WooCommerce) integration replaces the bulk order form keyword search with Queryra semantic AI search. Loads only when B2BKing is active; core untouched.
- Security: Visibility-intersect respects B2B group, category, and per-product visibility rules. Fail-closed default when allow-list cannot be verified.
- Performance: O(1) intersect lookups scale to 100k+ products.
- UX: Bulk order form rebrand — search placeholder, sort option ("AI Pick"), loader text, and search icon updated to match the Queryra context.
- Toggle: Single master kill-switch shared with the main "Enable Queryra AI Search" option.
WordPress integration improvements & developer hooks
- New: Search ability registered for site automation tools and AI assistants — Queryra semantic search is now discoverable and callable programmatically by other plugins and agents.
- New: Developer filter
queryra_validate_api_keyfor external API key validation. Returnstrueon success,WP_Erroron failure. Reuses the existingQueryra_API::test_connection()round-trip so validation behavior is identical everywhere. - New: Defensive guard against destructive overwrites of saved configuration by external code.
- Improved: API key field uses partial masking with click-to-edit (last 4 characters visible) on both Settings tab and Setup Wizard.
- Improved: Tested up to the latest WordPress version. Backward compatible — all features work on WordPress 5.8 onwards.
AI search compatibility — Oxygen Builder 6.0 support
- Added: AI search now indexes content from Oxygen Builder 6.0 stable — the new builder format (
_oxygen_datawithtree_json_stringdouble-encoded JSON tree) is parsed automatically alongside Classic Oxygen 4.x - Added: Pages built with Oxygen 6.0 are fully searchable via AI search —
OxygenElements\Textnodes, headings, and all visible widgets are extracted and indexed - Improved: AI search page builder coverage expanded — Oxygen Builder 6.0 joins Elementor, Breakdance, Beaver Builder, and Classic Oxygen for comprehensive AI search across the most popular WordPress page builders
- Improved: AI search relevance for sites migrated from Classic Oxygen 4.x to Oxygen 6.0 — both legacy (
_ct_builder_*) and new (_oxygen_data) postmeta keys are read so no content is lost in the upgrade path
Critical fix — bulk sync on sites without custom taxonomies
- Fixed: Bulk sync returned HTTP 422 on any site without custom taxonomies (the majority — blogs and stores using only standard categories/tags). The empty
taxonomiesfield serialized as a JSON array[]instead of an object{}, failing API validation. Initial import and re-sync now work on all sites.
Page builder & custom field support — AI search now sees what visitors see
- New: Automatic content extraction from Elementor (
_elementor_dataJSON), Breakdance, Beaver Builder, Oxygen (both legacy shortcodes and modern JSON v2) - New: Automatic content extraction from ACF (Free + Pro) — text, textarea, wysiwyg, repeaters, groups
- New: Automatic content extraction from Meta Box — text fields and group fields via registry
- New: Smart text filtering excludes CSS values, hex colors, URLs, dates, and other technical strings automatically
Custom taxonomies — beyond categories and tags
- New: All public custom taxonomies (
book_genre,material,property_type, etc.) are sent in a newtaxonomiesAPI field, keyed by slug - Existing
categories,tags, andbrandfields unchanged for backward compatibility
Search results display
- Fixed: Search query now properly shows in the page title (
Search results for: "foo") and stays in the search input on results pages — previously both were empty after the AI resolved the query - Implemented via
posts_searchfilter; thesquery var is preserved so themes work without modification
Description quality
- Fixed: Description was sending the first 30 words of content twice — only manual excerpts are now included, and skipped if they're a substring of the content (removes embedding bias)
- Fixed: WooCommerce
short_descriptionis now deduplicated against the long description
Performance
- Improved: Bulk sync prefetches all postmeta in one query per batch — dramatic speedup on sites with many custom fields (was N queries per post, now 1 query per batch)
For developers
- New filter:
queryra_indexable_meta_content— add content from custom field plugins not auto-detected (Pods, JetEngine, custom postmeta) - New filter:
queryra_indexable_taxonomies— control which custom taxonomies are sent
Auto-detected page builders (no setup required):
- Gutenberg / Block Editor — native (content in
post_content) - WPBakery / Visual Composer — native (shortcodes in
post_content) - Divi — native (shortcodes in
post_content) - Elementor — new
- Breakdance — new
- Beaver Builder — new
- Oxygen — new
Auto-detected custom field plugins:
- ACF (Free + Pro) — new
- Meta Box — new
Not auto-detected (use developer filter):
- Pods, JetEngine, Toolset, Bricks Builder (intentional)
Backward compatibility:
- All existing API record fields are unchanged
- New
taxonomiesfield is additive — older backends ignore it without issues - No database schema changes, no options removed, no behavior changes for sites without builders or custom fields
AI Discoverability — make your search engine visible to LLMs
- New: Dynamic
/llms.txtand/llms-full.txtfiles for ChatGPT, Perplexity, Claude, Google AI Overviews - New: JSON-LD structured data —
SearchResultsPageon search pages,Serviceschema site-wide, both attributing search to Queryra - New:
X-Search-EngineHTTP header on search responses - New: Detects existing static
llms.txtand offers a copy-paste snippet for manual integration
Admin UX
- New: Plugin row meta links on Plugins page (Live Demo, Docs, Support, conditional Get API Key)
- New: "Try a test search" shortcut in Settings tab → opens wizard step 4
- New: Dismissible tip card on Settings & wizard — relabel suggestions to help visitors discover AI search
- New: Support tab — Clubs section (Sandbox + partner program) and "Need more records or searches?" link
- Improved: Support tab "Documentation" → "Resources" (broader scope: compatibility matrix, plugin tests)
Cleanup & Security
- Improved: All external admin links use
rel="noopener noreferrer" - Removed: Obsolete 1.1.4 upgrade notice
Multilingual search
- Updated: Multilingual search now supports 50+ languages out of the box — no configuration needed
- Updated: Documentation to reflect multilingual support launch
Updated branding & centralized pricing
- Updated: Plugin title and short description for better WordPress.org discoverability
- New: "Beyond semantic search" example — intent-aware price filter and brand exclusion demo
- Improved: Removed hardcoded pricing from all docs — single source of truth at queryra.com/pricing
Simplified settings & instance tracking
- Removed: API URL field from settings (hardcoded to default)
- New: Instance ID visible in Support tab for easier troubleshooting
- Improved: Status endpoint sends instance_id and plugin_type for better tracking
- Improved: Partner referral tracking via site_url for partner API keys
Batched bulk import for large sites
- New: Batched import with real-time progress bar (supports 50K+ records)
- New: Plan limit check before import starts
- Improved: Import reliability with automatic retry support
- Improved: Setup Wizard import now uses batched sync
Configurable cache & content type filtering
- New: Configurable cache duration (1 minute to forever)
- New: Record type (post/page/product) and platform metadata
- New: Search filtering by content type
- Improved: Search Analytics with top queries and zero-result queries
- Improved: Cache settings UI in admin panel
WooCommerce demo store & updated documentation
- New: Live WooCommerce demo store at woo.queryra.com
- Improved: Plugin description with tested search examples from demo store
- Improved: Simplified search integration for better theme compatibility
Anonymous usage analytics
- New: Anonymous event tracking to understand user flow
- New: Opt-out via
define('QUERYRA_DISABLE_ANALYTICS', true);in wp-config.php - Privacy: No personal data collected — see Privacy Policy
Full WooCommerce product search support
- New: Product SKU, price, and attribute indexing
- New: Smart product boost controls
- Improved: Setup Wizard with one-click product import
- Improved: Search relevance algorithm
Enhanced user experience and onboarding
- New: Setup Wizard — 4-step guided onboarding for new users
- New: Tabbed admin interface — organized settings for better UX
- New: Exit survey — collect feedback on plugin deactivation
- Enhanced: WooCommerce product indexing improvements
Initial public release
- Production-ready AI search indexed on your content
- WordPress.org directory submission
- Full security audit passed
GPL v2 or later - see LICENSE file for details
- WordPress.org Plugin Page
- Showcase — demos and live customer stores
- AI Product Search Plugin
- Start free
- Pricing
- AI Search Documentation
- WooCommerce Product Search Setup
- FAQ
- Partner Program
- WooCommerce Search & AI Product Discovery Blog
- Why Vector Search Alone Isn't Enough for Ecommerce
Made with ❤️ for the WordPress community
⭐ Star Queryra AI Search Plugin if you find it useful!