WP SPA Navigator
Makes your WordPress site load pages without full page reload — like a Single Page App. Works with WooCommerce cart, checkout, add to cart, remove item, and all navigation links. Zero page reloads across entire site.
by Jatin Parmar · github.com/jatinparmar3/wp-spa-navigator · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/jatinparmar3/wp-spa-navigator/archive/refs/heads/main.zipReadme
=== WP SPA Navigator === Contributors: jatinparmar Tags: spa, ajax, page load, no reload, woocommerce, performance, single page app Requires at least: 5.6 Tested up to: 6.7 Requires PHP: 7.4 Stable tag: 3.0.0 License: GPL-2.0+ License URI: https://www.gnu.org/licenses/gpl-2.0.html
Makes your WordPress site navigate pages without any full page reload — like a native app. Zero reloads across your entire site.
== Description ==
WP SPA Navigator intercepts every internal link click and form submit on your site and loads the target page dynamically, swapping only the content area. The result: instant page transitions, no white flash, no full reload — your entire WordPress site feels like a native mobile app.
Everything works without page reload:
- All internal navigation links (Home, About, Blog, Shop, etc.)
- WooCommerce Add to Cart (simple, variable, and grouped products)
- WooCommerce Remove item from cart
- WooCommerce Update cart quantities
- WooCommerce Apply / Remove coupons
- WooCommerce Mini-cart widget auto-refresh
- Contact form submissions
- Search results
- All WordPress pages and custom post types
Features:
- Zero configuration — just activate and it works
- Configurable content selector — works with any theme
- Fade, Slide, or instant (None) transitions
- Top progress bar while loading (color customisable)
- Scroll-to-top on page change
- Smart page cache — instant back/forward navigation
- Prefetch on hover — pages start loading before you click
- Beautiful toast notifications for cart actions
- Excluded URLs list — force full reload on specific pages
- Full browser Back / Forward button support
- WooCommerce mini-cart fragment refresh
- Auto re-initializes JavaScript after navigation
- Loading spinner on buttons during AJAX actions
- Mobile responsive toast notifications
== Installation ==
- Upload the
wp-spa-navigatorfolder to/wp-content/plugins/ - Activate the plugin through the Plugins menu
- Go to Settings → SPA Navigator
- Set the Content Selector to match your theme (default
#main) - Save and test — click any link on your site
== Frequently Asked Questions ==
= How do I find the correct Content Selector? =
Open your site in Chrome, right-click the main content area, choose "Inspect".
Look for the wrapper div with an id or class — typically #main, #content, .site-content, or main.
= Does it work with WooCommerce? = Yes! Add to cart, remove from cart, update quantities, apply coupons — everything works without any page reload.
= Does it work with WooCommerce checkout? = Checkout and payment forms are automatically handled by WooCommerce's own AJAX system. The plugin does not interfere with payment processing.
= A plugin breaks after SPA navigation — what do I do? = Add that page's URL to the Excluded URLs list in Settings. It will then load normally with a full page reload.
= Does Back/Forward still work? = Yes. The plugin uses the browser's History API so Back and Forward buttons work correctly. With page cache enabled, back/forward is instant.
= What is Prefetch on Hover? = When you hover over a link, the plugin begins loading that page in the background. By the time you click, the page is already loaded — making navigation feel instant.
== Changelog ==
= 3.0.0 =
- Complete rewrite for maximum reliability
- Added AJAX remove from cart (no reload)
- Added AJAX update cart quantities (no reload)
- Added AJAX apply/remove coupons (no reload)
- Added smart page cache for instant back/forward
- Added prefetch on hover for near-instant navigation
- Added beautiful toast notifications with animations
- Added loading spinner on buttons during actions
- Fixed popstate infinite loop bug
- Fixed missing toast notification styles
- Fixed inline script execution errors
- Improved WooCommerce fragment refresh
- Improved CSS transitions (fade/slide using CSS classes)
- Added meta description update on navigation
- Added cart cache invalidation on cart changes
- Mobile responsive improvements
= 2.0.0 =
- Added direct browser fetch navigation
- Added WooCommerce integration
- Added form submission handling
= 1.0.0 =
- Initial release