When we audit feeds for Greek e-shops, the same problems come up over and over, regardless of platform or shop size. Most of them aren't hard; it's just that nobody looks at the feed until sales drop. Here's the list, grouped by type, with a diagnosis and fix for each.
Group A: technical errors in the file itself
1. Invalid XML
Symptom: the platform can't read the feed at all, or stops halfway. Cause: an unescaped "&", invisible characters pasted from Word, HTML inside descriptions, wrong encoding. Fix: wrap text in CDATA, strip HTML from feed descriptions, use UTF-8, and run the feed through an XML validator regularly.
2. Slow feed or timeouts
Symptom: patchy updates, "we couldn't download the file". Cause: the feed is built dynamically on every request across thousands of products. Fix: generate a static file via cron, every few minutes or hours depending on how fast stock moves.
3. The server blocks the feed
Symptom: it opens fine in your browser, but the platform gets a 403 or a challenge page. Cause: firewall, "bot protection" or rate limiting at your host or CDN. Fix: exempt the feed URL from protection rules. Test it with a tool that fetches the URL without a browser.
4. Wrong URL after a change
Symptom: all your products suddenly disappear. Cause: a plugin change, site migration or domain change, and the old feed URL now returns a 404. Fix: after any such change, update the URL on every platform or keep a redirect in place.
Group B: price and availability
5. Price doesn't match the site
The most common problem of all. Causes:
- Caching on the feed or the page.
- Price without VAT in the feed.
- A discount that only applies in the cart or with a coupon.
- The parent product's price instead of the variation's.
- Wholesale customer prices leaking into the feed.
Fix: the feed must show what an anonymous visitor sees on the product page, for that specific variation.
6. "In stock" when it isn't
Products sold out on the site show as available in the feed. Usually the feed refreshes too rarely, or availability is read from the parent rather than the variation.
Fix: refresh more often, use per-variation availability, and set a clear rule for what happens to sold-out items.
7. Overly optimistic availability
You declare "in stock" for items you order from a supplier. Not a technical bug, but it costs you in cancellations and ratings. Map each real stock source to the correct availability value.
Group C: product identity
8. Unstable ids
Ids change after an import, plugin switch or migration. To the platform, every id change is a new product: you lose history, matches and reviews.
Fix: use a stable code (e.g. the SKU) as the id and never change it.
9. Duplicate products
The same product appears twice under different ids. Common when products were "re-uploaded", or when variations are sent both as a parent and as children.
10. Missing EAN, MPN or brand
Without them, platforms struggle to match your product to the right page, and you get less visibility.
Fix: export every product missing these fields and fill them in batches, starting with best-sellers. Don't invent barcodes.
11. Variations handled wrongly
Sizes as separate products, colours lumped into one, sold-out sizes visible. Each platform has its own expectations: Skroutz, BestPrice and Google don't want exactly the same structure. See the Skroutz XML feed guide for the Skroutz specifics.
Group D: content
12. Noisy titles
"OFFER!!! FREE SHIPPING" helps neither matching nor the shopper. Brand, model, key attribute.
13. Meaningless categories
"Offers", "New", "Misc". Send the real hierarchical category.
14. Bad images
"No image" placeholders, watermarks, logos, low resolution, or images that won't load (e.g. blocked by hotlink protection).
15. Broken links
Links leading to a 404, the homepage or the wrong variation. A periodic crawl of every feed link catches these before the platform does.
Stopping them from coming back
Feeds almost always break after a change somewhere else. Build a routine:
After every change (plugin, theme, product import, migration):
- Does the feed open?
- Does it pass a validator?
- Is the product count what you expect?
- Do three random products have the right price and availability?
Every month:
- List products missing EAN or brand.
- Check for broken links.
- Review rejections on each platform.
- Find products with clicks but no sales.
If a tool alerts you automatically when the product count in your feed drops or the URL returns an error, even better. These problems cost sales every hour they stay open.
Who owns the feed?
One of the most common non-technical problems is that nobody owns it. The developer installed the plugin, the catalogue manager uploads products, the owner watches sales, and the feed falls through the gaps. Name one specific person who receives platform notifications and runs the monthly check. They don't need to be technical; they need to know who to call when something looks wrong.
Bottom line
A good feed isn't something you set up once. It's a small, regular checking habit. The payoff is immediate: more approved products, better matches and fewer cancellations.
If you'd like a full audit of your feeds, or a setup that watches for problems automatically, see our product feeds service or talk to us.