WP Inventory

Why Your WordPress Inventory Keeps Going Out of Sync (And How to Fix It)

Wrong stock numbers are one of the most damaging problems a product-based business can have. You sell something you no longer have. A customer buys the last unit twice. Your purchase orders are based on counts that are days old. By the time you catch it, you’re already dealing with the fallout.

If your WordPress inventory keeps showing numbers that don’t match reality, the problem is almost always one of five things. Here is what each one looks like and how to fix it.

1. Stock Management Is Not Actually Turned On

This sounds obvious, but it’s the most common cause of inventory not tracking at all.

WordPress inventory plugins need stock management enabled at two levels: the global plugin setting, and the individual item level. If you turned it on globally but forgot to enable it on specific products, those products will never track quantity changes.

Fix: Go through your product list and confirm that stock management is active on each item. In WP Inventory Manager, this is a per-item setting in the inventory record. In WooCommerce, it’s under each product’s Inventory tab. A single unchecked box silently breaks tracking for that entire SKU.

2. Caching Is Showing Old Numbers

Your website uses caching to serve pages faster. That is normally good. But caching can hold onto old stock counts and show visitors a number that is hours out of date.

A customer sees “3 in stock.” They buy one. Your cache still shows “3 in stock.” Another customer buys one. You now have oversold.

Fix: Exclude product pages, cart, and checkout from your caching plugin’s rules. Most caching plugins (WP Rocket, W3 Total Cache, LiteSpeed) have an option to exclude specific page types or URLs. Set that up, then clear your cache manually any time you do a bulk stock update.

3. WP-Cron Is Stalling

WordPress uses a background task system called WP-Cron to run scheduled updates, including inventory syncs with third-party tools or automatic stock recalculations. The problem: WP-Cron only fires when someone visits your site. On a low-traffic site, those scheduled tasks can sit in a queue for hours before they run.

If your inventory numbers lag by one to four hours after a sale or stock update, this is almost certainly the cause.

Fix: Replace WP-Cron with a real server cron job. Your hosting provider can usually set this up in a few minutes. You schedule wp-cron.php to run every 5 minutes via your server’s task scheduler instead of relying on site traffic to trigger it. This alone eliminates the lag for most stores.

4. Two Plugins Are Updating the Same Field

This one is harder to spot because it does not fail loudly. Instead, stock counts drift in unpredictable directions.

When two plugins both write to the same inventory field, they overwrite each other. One plugin sets a product to 5 units. Another runs a sync and sets it to 12. The first one runs again and sets it back to 5. Your actual stock count becomes whatever ran last, not what is accurate.

This is common for stores that use a WooCommerce-centric inventory plugin alongside a separate inventory management plugin, or when a point-of-sale sync and an order management tool both update stock simultaneously.

Fix: Decide which plugin owns inventory data and disable stock management in the others. You should have exactly one source of truth for stock counts. If you are using WP Inventory Manager for physical stock tracking, turn off WooCommerce’s stock management so the two systems are not fighting each other.

5. Multi-Location Stock Is Tracked in One Bucket

If you sell from more than one location, warehouse, or channel and you are tracking all stock in a single field, your numbers will always be wrong.

Consider a retailer with a physical store and an online shop. A sale happens in the store. Nobody updates the WordPress inventory. The online store still shows the old count. The item gets sold online too. Now you have an angry customer and a hole in your inventory records.

Fix: Use a plugin that supports location-level stock tracking natively. WP Inventory Manager’s Locations Manager add-on lets you assign stock to specific locations so each site or warehouse has its own count. Fulfillment then pulls from the right bucket, not a shared pool that nobody fully controls.

How to Run a Quick Inventory Audit

Before you troubleshoot, you need a baseline. Here is a simple process:

  1. Export your current stock counts from WordPress to a spreadsheet
  2. Do a physical count (or pull counts from your POS or warehouse system)
  3. Compare the two side by side
  4. Identify which items are off and by how much
  5. Check each discrepancy against the five causes above

Once you have found the pattern, you can fix the root cause instead of chasing individual wrong numbers.

When the Problem Is the Plugin Itself

Sometimes the issue is not configuration. Some plugins are simply not built to handle inventory accurately at scale. Signs you have outgrown your current setup:

  • Stock counts change for no apparent reason
  • Bulk updates do not save consistently
  • The plugin has no audit log so you cannot trace when a count changed
  • You are manually correcting numbers more than once a week

WP Inventory Manager is built specifically for this. It works without WooCommerce, supports multi-location tracking, keeps a record of stock changes, and does not fight with your other plugins over the same database fields. You can start with the free version and add capabilities as your business grows.

Frequently Asked Questions

Why is my WordPress inventory showing the wrong stock count?

The most common causes are caching serving stale numbers, two plugins writing to the same field, or stock management not being enabled at the product level. Start by checking each of those in order.

Why does my inventory update slowly after a sale?

If there is a delay of one to several hours, the likely cause is WP-Cron stalling. WP-Cron depends on site traffic to run. Replace it with a real server cron job and the lag disappears.

Can I track inventory across multiple locations in WordPress?

Yes, but you need a plugin that supports it natively. WP Inventory Manager’s Locations Manager add-on assigns stock to individual locations so each has its own accurate count.

What happens when two inventory plugins conflict?

They overwrite each other’s data unpredictably. The result is stock counts that drift in random directions. Pick one plugin to own inventory data and disable stock management in the others.

Do I need WooCommerce to manage inventory in WordPress?

No. WP Inventory Manager works independently of WooCommerce. If you are not running an online store or want cleaner inventory tracking without WooCommerce’s overhead, it is a direct alternative.

Reviews on WordPress.org

Trusted by thousands of businesses

★★★★★

"Created an online museum for my club. Really impressive plugin. Support was responsive and helpful."

@hackrepair

★★★★★

"Excellent, clean, simple inventory management. Well structured code — use it right away or customize it to your liking."

@techlocally

★★★★★

"We purchased the entire suite. Installation was easy, small issues were fixed immediately, and the guidance during setup was invaluable."

@design4dotcom

★★★★★

"Plugin support was helpful and rapid. Highest mark."

@drgar

★★★★★

"Great support. Very thorough when looking for a solution, and upfront with exactly how to fix it or institute a workaround."

@shoidahl

★★★★★

"I used this plugin and eventually hired the developers for all my WordPress work. Responsive, competent, and clean code. Would recommend to anyone."

@justenhong