Skip to main content

Out of stock: remove the row, mark it unavailable, or backorder it

M
Muhammad Norafif
Aug 23, 2026 8 min read

Every product in a shopping feed eventually goes out of stock. What happens next usually gets treated as data hygiene: someone updates the feed, the disapprovals clear, the week moves on. That framing hides the decision you actually made.

What you'll take away

  • The item id is the asset — clicks, conversions and auction confidence accumulate against it, and a removed row stops accruing anything.
  • out_of_stock keeps the id warm — ads stop serving, budget stops leaking, the listing keeps its history.
  • backorder is the only value that keeps selling — it needs an availability_date and a landing page that says the same thing.
  • At catalogue scale it becomes a rule — restock window in, known date to backorder, everything else out.

Why this is a merchandising decision, not a schema question

Shopping channels tie everything they know about a product to its item id. Clicks, conversions, and the confidence the auction places in a listing all accumulate against that identifier, which is why Google's product data specification asks you to keep ids stable over time. An id with history is worth more than an identical product introduced as a stranger.

So the out-of-stock question is really this: when inventory pauses, does the item's memory pause with it? Remove the row and the id goes quiet. Delete it, then re-add it later under a new id, and you have introduced a product with no track record into an auction that rewards track records. Keep the row and flag it, and the id stays warm for the day stock returns.

None of this appears in a feed validation report. That is exactly why it tends to get decided by accident.

The three options, side by side

StrategyWhat it costs youWhen it's right
Remove the rowReporting stops, and the product returns as a stranger if the id changesDiscontinued lines, seasonal one-offs, no resupply planned
availability: out_of_stockEvery dark row still has to be generated, fetched and kept honestCore catalogue items on a regular restock cadence
availability: backorderNeeds a date, a matching landing page, and a supply chain that deliversKnown resupply dates and buyers willing to wait

Removing the item

Removal is clean on paper. The feed shrinks, the item cannot accrue disapprovals, no shopper is misled. The cost is the part you cannot see: the item stops reporting, so any before-and-after comparison around the restock is gone, and when the product comes back the channel processes it as new.

The remove-and-re-add path is where the money goes

If your feed source regenerates ids from row order, an export timestamp, or a re-imported catalogue, the returning product arrives under a fresh identifier and the old history is orphaned. The listing restarts cold. For a product that sold well before the gap, that is an expensive way to handle two quiet weeks.

Removal fits items that are not coming back: discontinued lines, seasonal one-offs, long-tail SKUs with no planned resupply. If you do remove, remove under a rule, and make sure the id scheme hands back the same id if the product ever returns.

Keeping it listed, marked unavailable

Feeds have a dedicated value for this. Google's specification accepts four availability values, and the difference between them is the entire strategy:

in_stock | out_of_stock | preorder | backorder

Setting availability to out_of_stock tells the channel the offer exists but cannot convert right now. Shopping ads for that item stop serving, so budget stops leaking into clicks on a product nobody can buy, while the listing can still appear in free results for people searching by name. Meta and TikTok carry equivalent values under slightly different names, so the approach ports across channels.

The trade-off is carrying weight. Every unavailable row still has to be generated, fetched, validated, and kept honest against a landing page that agrees with it. On catalogues where a large share of SKUs sits dark at any moment, that is real overhead, and it only works while the flag is accurate.

The flag has to be right in both directions

A feed that says in_stock while the page says sold out invites a disapproval under Google's misrepresentation policy. A feed that says out_of_stock while the page quietly sells burns selling days nobody is counting. Both failures come from the same missing sync.

This is the default answer for core catalogue items on a regular restock cadence. When a product returns within days or weeks, keeping the row warm costs less than rebuilding the listing's standing from zero.

Keeping it listed with a backorder signal

Backorder and preorder are the values most merchants never touch, and they are the only ones that let an out-of-stock item keep selling. Marking a product backorder tells the channel it can be ordered now and shipped later, which keeps the listing serving through the gap instead of handing the query to whoever else ranks for it.

What backorder requires beyond the flag

Google requires an availability_date on preorder and backorder items, and recommends a date no more than a year out. The landing page has to state the ship expectation as plainly as the feed does. And the promise has to be one your supply chain actually keeps, because the complaint lands on your brand rather than on the feed.

Use it for products with known resupply dates and buyers who will wait: high-consideration goods, proven sellers on a reliable cycle, launches where preorder is the natural posture. For commodity items where the next tab sells the same thing today, backorder mostly adds friction.

A dashboard showing automated inventory rules
Past a few hundred SKUs the strategy stops being a choice per product and becomes a rule per category.

Choosing by catalogue size and restock cadence

Two variables decide most of it. How fast items come back, and how many items you are deciding for.

Cadence sets the strategy per item. Products that return within days should never leave the feed, which is what out_of_stock is for. Products with a known return date and patient buyers are backorder candidates. Products with no resupply planned should go, under a rule that preserves their ids against the unlikely return.

Size decides whether any of that can be manual. A store with two hundred SKUs can go item by item. At catalogue scale the choice has to be a rule the feed applies on its own, and the strategy moves up a level into the restock window you set and the categories you decide can tolerate waiting. What it cannot depend on is a human noticing.

What to check before committing

Four checks that decide whether your strategy survives contact with the feed

1
Does your export include out-of-stock items at all? Some storefronts and feed plugins drop them by default, which quietly turns a mark-unavailable strategy into a removal strategy.
2
Where do item ids come from? Ids derived from the SKU survive a removal. Ids derived from row position or export runs do not.
3
Does every backorder row carry a future availability_date? A missing or past date turns the offer into an error.
4
Do availability and price match the landing page? At all times, in both directions.

Most out-of-stock mistakes trace back to the first two. A strategy chosen at the merchandising level, undone by a feed that was never configured to carry it out.

The short version
A stockout is a gap in inventory. A lost item id is a gap in everything the channel ever learned about the product.
Handle the first without causing the second and the stockout costs you the quiet weeks, not the listing's history.

Common questions

Should I remove out-of-stock products from my Google Shopping feed?

Only when they are not coming back. Removing a row stops the item reporting and risks a new item id on return, which restarts the listing's history. For anything on a normal restock cadence, keep the row and set availability to out_of_stock instead.

What does availability out_of_stock do to my ads?

Shopping ads for that item stop serving, so you stop paying for clicks on something nobody can buy. The listing keeps its item id and its accumulated history, and it can return to serving as soon as your inventory system flips the value back to in_stock.

When should I use backorder instead of out_of_stock?

Use backorder when the product can still be ordered and shipped later, you know the date, and the landing page says so. It keeps the listing serving through the gap. Use out_of_stock when the item cannot be bought at all right now.

Does an out-of-stock product still show in free listings?

It can. Shopping ads stop for an out_of_stock item, while the product may still appear in free product listings for shoppers searching it by name. That is one more reason to flag the row rather than delete it.

Free tool

Not sure if your feed has errors?

Run your Google Shopping, Meta, or TikTok product feed through our free validator and get a prioritized error report before channels reject your products.

Check my feed for errors

Editorial note

Written by Muhammad Norafif

This article was published on August 23, 2026 and last updated on August 23, 2026. NextFeed builds product feed management software for Shopify, Google Shopping, Meta, and other commerce channels.

Share this insight

Comments (0)

Please login to leave a comment.

No comments yet. Be the first to comment!

Never miss a feed update

Join merchants who receive our weekly insights on ecommerce data automation and strategy.

Get in touch

Get answers before feed issues cost you revenue.

Reach out for onboarding help, channel setup questions, custom workflow advice, or partnership conversations.

Typical reply

1 business day

Best for

Setup & fixes

Coverage

100+ channels

We'll never share your info with third parties.