Description
Take Full Control of Your WooCommerce Product Sort-Order
Do you want to decide which products appear first in your WooCommerce shop?
Rearrange Products for WooCommerce gives you full control over product ordering so you can highlight your best-selling, featured, or new products exactly where you want them.
This plugin is built specifically for WooCommerce stores and helps improve both customer experience and store performance.
With an easy-to-use drag-and-drop interface, you can:
- Reorder/Rearrange products on your main Shop page.
- Set custom product order for specific categories and sub-categories.
- Select multiple products at once and move them together.
- Manage product display without touching any code.
Why Choose Rearrange Products for WooCommerce?
1. 🛒 Better Shopping Experience
Help customers find the right products faster by displaying them in a logical and attractive order.
2. 👀 More Visibility for Key Products
Promote best-selling, featured, or seasonal products by placing them at the top.
3. 📈 Higher Conversions
Showing the right products first can lead to more clicks and increased sales.
4. ⚡ Bulk Sort in One Click (Pro)
Sort all your products at once by best-selling, ratings, price, stock status, and more — no need to drag them one by one.
5. 💾 Never Lose Your Work (Pro)
Save your product arrangements as reusable presets. Switch between different layouts instantly — perfect for seasonal promotions and A/B testing.
Free Features
- Fully compatible with WooCommerce.
- Simple drag-and-drop product sorting.
- Multi-select products and move them together.
- Custom sorting for categories and sub-categories.
- Works with WooCommerce shortcodes.
- Lightweight plugin with fast performance.
- No coding knowledge required.
Pro Features
Unlock the full power of product management with Rearrange Products for WooCommerce Pro:
⚡ Smart Sort — Bulk Sort Products in One Click
Stop dragging products one by one. Smart Sort lets you reorder your entire catalog or a specific category in one shot based on:
- Best Selling — Put your top sellers front and center.
- Most Rated — Showcase products with the best reviews.
- Price (Low to High / High to Low) — Organize by price for easy browsing.
- In Stock First — Always show available products at the top.
- Latest / Oldest — Highlight new arrivals or evergreen products.
- On Sale — Push sale items to the top to drive conversions.
- Shuffle — Randomize your product display for a fresh look.
💾 Sort Presets — Save and Reuse Arrangements
Create, save, and switch between different product arrangements effortlessly:
- Save your current product order as a named preset with a description.
- Apply any saved preset with a single click to instantly rearrange products.
- Duplicate presets to create variations without starting from scratch.
- Search and filter through your presets for quick access.
- Works with both global and category-specific arrangements.
- Perfect for seasonal layouts, holiday promotions, flash sales, and A/B testing different product orders.
🔄 Import / Export — Portable Product Arrangements
Move your product arrangements between sites or share them with your team:
- Export global, category-specific, or preset arrangements as JSON files.
- Import arrangements on any site — products are matched by SKU for cross-site compatibility.
- Migrate your product order when moving to a new domain or staging environment.
- Detailed import reports showing matched, skipped, and total products.
- Supports files up to 10MB for large catalogs.
🚀 Get Rearrange Products for WooCommerce Pro
Make your WooCommerce store easier to browse and more effective at selling. Start organizing your products the way you want and give your customers a better shopping experience.
Note: WooCommerce must be installed and activated before using this plugin.
Important Notes
- If you deactivate this plugin, any product rearrangements you’ve made will be turned off. You can restore them at any time by reactivating the plugin.
- If you delete or uninstall this plugin, all product rearrangements will be permanently removed and cannot be recovered.
Troubleshooting
If your custom product order is not showing on the Shop page:
- Go to Admin Appearance Customize
- Select WooCommerce Product Catalogue
- Find Default Product Sorting
- Set it to “Default sorting (custom ordering + name)”
If you have a large number of products and changes are not saving
This may be due to server limits.
Ask your hosting provider to increase:
- memory_limit
- max_execution_time
After updating these settings, try saving the product order again.
If you are using a page builder plugin (Elementor, Divi, WPBakery, etc.)
Page builder plugins often have their own product query settings that work independently of WooCommerce’s default sorting.
To use custom sort order with page builders:
- Check your page builder’s product widget/module for sorting options
- Look for a “custom order” or “menu order” option in the product display settings
- If you need help, contact your page builder’s support team for guidance on their specific settings
Note: This plugin works seamlessly with standard WooCommerce shop pages, category pages, and WooCommerce shortcodes.
Filing a support request?
Go to Admin Rearrange Products Troubleshooting and open the “System Status / Diagnostic Info” section. Click “Copy to Clipboard” and paste the information into your support ticket. This helps us diagnose issues much faster.
Plugin Demo
Screenshots

The plugin at work reordering all products 
Ability to select multiple products and sort 
Products sorted by Categories for reordering 
Shortcut link under Categories section to sort by categories 
Settings to Apply sorting on Main loop or All loops 
Smart Sort — Automatically sort products by various criteria (Pro) 
Sort Presets — Save and manage product arrangements (Pro) 
Import / Export — Transfer product arrangements between sites (Pro)
Installation
- Go to your WordPress Admin Dashboard.
- Navigate to Plugins Add New.
- Search for “Rearrange Products for WooCommerce.”
- Click Install, then Activate. If WooCommerce is not installed or activated, this plugin will not activate.
- Go to Admin Rearrange Products and reorder products using drag and drop.
- Use the “Sort by Categories” tab to arrange products by category.
FAQ
-
How do I use this plugin?
-
Go to Admin Rearrange Products and drag and drop products into your preferred order.
To sort by category, open the “Sort by Categories” tab. -
Can I recover my product order after deactivating or deleting the plugin?
-
- Deactivating the plugin will temporarily disable your custom product order.
- Deleting or uninstalling the plugin will permanently remove all product rearrangements, and they cannot be restored.
-
Does this plugin work with WooCommerce shortcodes?
-
Yes. You can override the default sorting of products added via shortcodes such as:
[product_category category=”my-category-slug”]To enable this:
1. Go to Admin Rearrange Products Settings
2. Enable ”All Loops (including shortcodes)” -
What does the Pro version include?
-
The Pro version adds three powerful features:
- Smart Sort — Sort all your products in bulk by best-selling, ratings, price, stock status, sale status, and more with a single click.
- Sort Presets — Save your product arrangements and switch between them instantly. Great for seasonal promotions and A/B testing.
- Import / Export — Export your product arrangements as JSON files and import them on another site. Products are matched by SKU for cross-site compatibility.
-
Can I try the free version first?
-
Absolutely! The free version includes drag-and-drop sorting for all products and categories. You can upgrade to Pro at any time to unlock Smart Sort, Presets, and Import/Export.
-
Will I lose my product order if I downgrade from Pro to Free?
-
No. Your manually arranged product order (global and category-specific) is preserved. However, Pro features like presets and Smart Sort will no longer be accessible until you upgrade again.
-
Can I use Import/Export to migrate product order to a new site?
-
Yes. The Import/Export feature (Pro) exports your product arrangements as a JSON file. When importing on a different site, products are matched by SKU, so your arrangements transfer even if product IDs differ between sites.
Reviews
Contributors & Developers
“Rearrange Products for WooCommerce” is open source software. The following people have contributed to this plugin.
Contributors“Rearrange Products for WooCommerce” has been translated into 6 locales. Thank you to the translators for their contributions.
Translate “Rearrange Products for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
Version 6.0.0
New Features
* Added: Show private products in admin rearrange UI
* Added: System status / diagnostic info section on Troubleshooting page for easier support requests
* Added: Custom admin menu icon
* Added: Page navigation controls for large product catalogs
* Added: Auto-scroll when moving products to top or bottom of the list
* Added: Smooth FLIP animations for product move buttons
* Added: Empty state UI with guidance for Sort by Products tab
* Added: Product selection counter showing how many products are selected
* Added: Automatic cleanup of sort order data when products are deleted
* Added: Freemius SDK integration for licensing and premium feature management
Enhancements
* Improved: Refactored JavaScript into modular ES6 architecture for better maintainability
* Improved: Custom RWPP Modal component replacing third-party MicroModal library
* Improved: Updated branding and plugin display name to “Rearrange Products for WooCommerce”
* Improved: UI redesign with modern styling, CSS variables, and semantic color system
* Improved: Button consistency and visual hierarchy across all admin pages
* Improved: Reorder buttons now disabled based on product position (first/last)
* Improved: Page builder compatibility notes added to Troubleshooting page
Bug Fixes
* Fixed: Conflict with Post Types Order plugin by bumping filter priority
* Fixed: Postmeta fallback for category sorting and re-migration support
* Fixed: Filter bleed-through between multiple WooCommerce shortcodes on the same page
* Fixed: WooCommerce shortcode caching returning stale results for custom sorting
* Fixed: Sorting no longer affects secondary queries (widgets, shortcodes, custom blocks) on category pages
* Fixed: Category-specific sort order on category pages when “All Loops” is enabled
* Fixed: Nested category dropdown overflow in admin UI
* Fixed: Layout shift when modals open and close
* Fixed: Label hyphenation in Safari admin sidebar
* Fixed: Unbalanced left/right spacing in admin UI
* Fixed: Modal accessibility issues including aria-hidden warnings
Compatibility
* Tested with WordPress 6.9.1 and WooCommerce 10.6.1
Version 5.0.11
- Exclude docs folder from plugin distribution
Version 5.0.10
- Fixed: Product sort order resetting to last position when editing/saving a product at the first position in a category
- Fixed:
Database::get_sort_order()now correctly distinguishes between “no entry” (null) and “sort_order = 0” (first position) - Fixed: Category-specific sort orders broken for users who upgraded from v4.x due to silent migration failures
- Fixed: Migration error handling in
Database.php—create_table(),migrate_data(), and individual migration methods now properly detect and report failures - Added: Postmeta fallback in frontend sorting — category pages now automatically fall back to legacy
rwpp_sortorder_{id}postmeta data if the custom table is empty - Added: “Re-run Migration” button on Troubleshooting page to manually re-populate the custom table from legacy data
Version 5.0.9
- Fixed: Product category shortcode sorting issues when “Apply Sorting To” is set to “All Loops”
- Added: WPML support – Sync product order across language translations for Global sorting
Version 5.0.8
- Fixed: Plugin sorting no longer affects secondary product queries (widgets, shortcodes, custom blocks) on category pages
- Fixed: Footer product blocks now display correctly with their configured sorting on category archives
- Improved: Sorting filters are now properly removed after main query execution
Version 5.0.7
- Fixed: Products moving to top of list after editing/updating
- Improved: Product updates now preserve existing sort order in custom table
- Tested with WooCommerce 10.4.3
Version 5.0.6
- Fixed: Category sorting page not loading due to URL routing mismatch
- Fixed: Critical data loss bug where unloaded products lost sort orders during pagination
- Improved: Removed automatic orphan cleanup that was causing data loss in category-specific sorting
Version 5.0.5
- Improved: Troubleshooting page with more customer-friendly language and clearer explanations
- Improved: Updated troubleshooting titles to be more relatable for end users
- Improved: Added helpful context and guidance for common issues
- Improved: Simplified technical language in server configuration section
Version 5.0.4
- Fixed: Missing vendor and build files
Version 5.0.2
- Major Release: Complete architectural refactor with unified database storage
- Added: Custom database table
wp_rwpp_product_orderfor centralized sort order storage - Added: Support for both global and category-specific product sorting
- Added: Automatic data migration from legacy storage systems (menu_order and postmeta)
- Added: Confirmation modal for product order changes with undo functionality
- Added: Load More button for pagination (replaced infinite scroll with manual control)
- Added: AJAX load more functionality to load products in chunks of 100
- Added: CSS variables and design tokens for better maintainability and theming
- Added: New SCSS buttons component file for consistent styling
- Added: Comprehensive debug logging for troubleshooting load more issues
- Improved: Database query optimization with indexed JOINs instead of meta_query
- Improved: COALESCE fallback logic for graceful degradation
- Improved: Chunked processing for large product datasets
- Improved: UI redesign with custom category dropdown
- Improved: Removed inline styles from templates (all styles now in SCSS)
- Improved: Cleaner HTML markup without redundant success messages
- Improved: Better separation of concerns between structure and styling
- Improved: Performance by loading initial products in chunks
- Enhanced: Performance with production-ready asset optimization
- Enhanced: User feedback with loading states on Load More button
- Enhanced: Better UX with explicit load more control instead of auto-scroll
- Fixed: Category view now includes subcategory products (matching frontend behavior)
- Fixed: WP_DEBUG reference error in JavaScript by localizing debug flag
- Fixed: WP_Query namespace issue in AJAX handler
- Fixed: AJAX action registrations to execute properly
- Updated: Build system to @wordpress/scripts with modern Sass implementation
- Refactored: Complete SASS file structure with variables for colors, typography, spacing
- Tested with WordPress 6.9 and WooCommerce 10.4.2
Version 4.3.3
- fixed: Attempt to read property “term_id” on null
- tested with wordpress version 6.8.1
- tested with woocommerce version 9.8.3
Version 4.3.2
- fixed: is_tax was called incorrectly
- fixed: settings for effected loops was not working properly
- tested with wordpress version 6.8
- tested with woocommerce version 9.8.2
Version 4.3.1
- tested with wordpress version 6.7.1
- tested with woocommerce version 9.5.2
Version 4.3.0
- Added settings to enable/disable override main loop or all loops
- tested with wordpress version 6.5.3
- tested with woocommerce version 8.9.1
Version 4.2.0
- Make plugin compatible with HPOS ( High-Performance Order Storage )
- tested with wordpress version 6.4
- tested with woocommerce version 8.2.1
Version 4.1.7
- Fix – under admin, some products not visible while sorting by category
- tested with wordpress version 6.3
- tested with woocommerce version 8.0.1
Version 4.1.6
- Fix enqueue_assets hook not checking hook name properly when site is using different language.
Ref: https://wordpress.org/support/topic/products-are-no-longer-displayed-in-categories/#post-16934448
Version 4.1.5
- Fix sort by “Latest” option not working
Version 4.1.4
- tested with wordpress version 6.2.2
- tested with woocommerce version 7.9.0
- Added fix where products were missing on categories pages
- Added fix where is_product_category() was not working
- other minor bug fixes & cleanup
Version 4.1.3
- tested with wordpress version 6.2.0
- tested with woocommerce version 7.7.0
- moved the plugin pages to top level of admin menu
- bug fixes
Version 4.1.2
- tested with wordpress version 6.1.1
- tested with woocommerce version 7.2.0
- added page for troubleshooting guidelines
Version 4.1.1
- Added translations for:
- English (Canada)
- English (UK)
- French (France)
- Spanish (Colombia)
- Spanish (Venezuela)
- Russian
- Hindi
- Spanish (Ecuador)
- Chinese (China)
- Spanish (Spain)
Version 4.0.9
- added Troubleshooting steps for fix missing products issue
- tested with woocommerce version 6.5.1
Version 4.0.8
- updated all node/npm packages to latest stable version
- tested with wordpress version 5.9.3
- tested with woocommerce version 6.4.1
- added notes for developers for contributing to plugin
Version 4.0.5
- added global translation support
Version 4.0.4
- added plugin translation support
Version 4.0.3
- minor security patch to escape sql query
Version 4.0.2
- minor security patch
- tested with woocommerce version 6.3.1
Version 4.0.1
- delete entries from postmeta table when plugin uninstalled/deleted from admin
- fixed the issue that was making navigation menus unordered
Version 4.0.0
- Fixes made for user roles and permissions checking
Version 3.0.9
- Do not escape post title
Version 3.0.8
- Updated code to follow WPCS Protocol
- Check for plugin authorization properly
- Add CSRF security on Ajax requests
Version 3.0.7
- Security fixes: disable direct code file access from browser
Version 3.0.6
- Minor security fixes
Version 3.0.5
- Security Fixes: Removed nonpriv handlers
- Security Fixes: Added security to remove all SQL injections added as input
- Minor fix for checking product loop inside pre_get_posts hook
Version 3.0.4
- Fixed: While sorting by categories, some products that are added recently were not visible.
- Code re-factoring and cleanup.
Version 3.0.3
- Fixed: Keep default sort order on frontend if it was not updated for Categories.
Version 3.0.2
- Fixed: Category orders not showing any products due to meta_query not found.
Version 3.0.1
- Re-published the files as in v3.0.0, the files were not published properly
Version 3.0.0
- Ability to sort products by any product category
- Ability to select multiple products by single click and sort them at once
- Removed feature to sort by Tags as it was not being used and also had unresolvable bug due to WC limitations
- Tested for Woocommerce Version 5.7.1 and WordPress Version 5.8.1
- Code cleanup
Version 2.3.6
- Tested for Woocommerce Version 4.8.0 and WordPress Version 5.6
- Code cleanup
Version 2.3.5
- Tested for Woocommerce Version 4.7.0 and WordPress Version 5.5.3
- Tested with Storefront Theme Version 2.9.0
- Minor bug fixes with Group by Categories & Tags sorting.
- In group by categories parent category was also including products from child categories. So they were repeated to 2 places. This has been updated to show products exactly below their parent categories only. (changed ‘include_children’ to “false” in tax_query)
- Styling issue fixed for long product names
- Added button to expand/collapse all categories & tags
Version 2.3.1
- Tested for Woocommerce Version 4.3.1 and WordPress Version 5.4.2
- Added important notices for sorting by categories and tags
Version 2.3.0
- Added feature to group and sort by Product Tags
- Added feature to move products up, down, top, bottom of the list using arrow buttons
- Added serial numbers(not ID) to each products so it can give us idea on which product’s sort order we changed
- Added current user check for “manage_woocommerce” capability
- Plugin information updated to properly show “tested upto” version of Woocommerce
- Added security to disable direct access to the plugin PHP files
Version 2.2.0
- Added expand/collapse feature on categories to clear the clutter
- Fixed a minor bug that was happening while activating the plugin
- Tested for Woocommerce Version 4.0.0 and WordPress Version 5.3.2
Version 2.1.2
- Hide Products from list that are set as “private”
- Added a fix for bug that was checking the user role
- Tested for Woocommerce Version 3.7.1 and WordPress Version 5.2.4
Version 2.1.1
- Added shortcut button to edit products
- Tested for Woocommerce Version 3.7.0 and WordPress Version 5.2.3
Version 2.0.0
- Added feature to group products by categories
- Added feature to preview product info from same page
- Added some minor bug fixes
- Tested for latest Woocommerce version 3.6.3
Version 1.1.1
- Added fix as the plugin was not working for some people. As it was using static table prefix “wp_”. So changed it to dynamic table prefix to work will all kind of WP Databases.
- Tested for latest Woocommerce version 3.5.3
Version 1.1.0
- Added capability to handle huge amount of products.
- Combined multiple sql update queries into one query.
Version 1.0.0
- Initial release.
