Why export WooCommerce products to CSV
CSV (comma-separated values) is the format every tool in the e-commerce stack understands. It is plain text, it is portable, and it opens in Excel, Google Sheets, Numbers, and almost any database or import wizard you can name. When your catalog lives in a CSV file, it stops being locked inside one store and becomes data you can move, edit, analyze, and feed anywhere. There are five reasons people reach for a CSV export, and most stores eventually need all of them.
- Migration. Moving a catalog to a new platform (another WooCommerce site, Shopify, BigCommerce, a marketplace) almost always starts with a CSV. The importer on the destination reads your rows and recreates the products. No CSV, no clean migration.
- Backup. A plugin update, a botched theme change, or a hosting failure can damage product data. A periodic CSV snapshot is a cheap, human-readable insurance policy you can store anywhere and restore from in minutes.
- Analysis. Once products sit in a spreadsheet you can build pivot tables, spot pricing gaps, audit which items are missing images or descriptions, and chart how your assortment compares to a competitor's.
- Feeds. Google Merchant Center, Meta catalogs, and price-comparison sites all consume product feeds. A CSV is the raw material you shape into the columns each feed expects.
- Bulk editing. Changing a hundred prices, retagging a season's worth of products, or rewriting descriptions is faster in a spreadsheet than clicking through the WordPress admin one product at a time. Edit in the CSV, then re-import.
The usual ways to get a CSV out of WooCommerce all carry friction. The native exporter under Products > Export needs admin access to the WordPress dashboard, which you may not have if the store is a client's or a competitor's. Export plugins add weight to a site and another thing to maintain. And copy-pasting products by hand is slow and error-prone the moment a catalog grows past a few dozen items. Our WooCommerce scraper sidesteps all of that: it reads a store's public product data directly and assembles a tidy CSV for you, with no dashboard login and nothing installed on the target site. Point, scrape, download. That is the entire workflow.
What fields the CSV export includes
A useful export is more than a list of product names. The scraper captures the full set of fields you need to rebuild, analyze, or feed a catalog, decoded and cleaned so the spreadsheet is ready to use rather than full of HTML noise. Each product becomes a row, and the columns cover everything below.
- Titles and descriptions. The full product name, the short description, and the long description, with HTML entities decoded so the text reads cleanly in a spreadsheet cell.
- Regular price and sale price. Both the standard price and any active sale price, along with the store's currency, so you can compute discounts or rebuild a price list.
- SKU. The inventory reference for each product, which is the key most import tools use to match and update existing items.
- Stock status. Whether each item is in stock, out of stock, or on backorder, so your spreadsheet reflects availability rather than guessing.
- Categories and tags. The full taxonomy each product belongs to, ready to map onto the categories of a destination store.
- Image URLs. Direct links to every product image, including gallery shots, so nothing is left behind when you migrate or build a feed. If you need the binary files rather than the links, you can also download full-resolution product images in one pass.
- Variations and attributes. Size, color, material, and other options are expanded so a variable product is represented faithfully rather than collapsed into a single ambiguous row.
How variable products are handled
Variable products are the part most exporters get wrong. A T-shirt sold in three sizes and two colors is not one product; it is one parent with six purchasable variations, each with its own SKU, price, and stock. The export keeps that structure intact so that when you re-import elsewhere, the variations come back as variations rather than as a flattened mess. This matters most for migration: a destination store can only recreate the buying experience if the variation data survives the round trip.
How to export a WooCommerce catalog to CSV
The whole point of using a scraper is that the export takes seconds and requires nothing from the target store. There is no plugin to install, no admin account to borrow, and no code to write. The flow has four steps.
1. Paste the store URL
Open the no-code scraper and enter the address of the WooCommerce store you want to export. The store's home page or shop page is enough; you do not need to find any special endpoint or know how the site is built.
2. Let it read the catalog page by page
The engine fetches the store's public product data one page at a time, following the catalog until it has seen every item, including variations and image links. Because it reads what the store already exposes publicly, it works whether the shop has ten products or ten thousand, and you do not have to configure pagination yourself.
3. Preview the products
Before you download anything, check the extracted titles, prices, and stock status in the preview. This is your chance to confirm the scraper read the catalog correctly and that the fields you care about are present. A thirty-second preview saves you from importing a flawed file later.
4. Download your CSV
Export a clean, structured CSV that is ready for Excel, Google Sheets, or import into another platform. That is the file you will reuse for every downstream task in the rest of this guide. If you also want customer feedback alongside the catalog, you can scrape product reviews the same way.
Opening the CSV cleanly in Excel and Google Sheets
A CSV is just text, but two things trip people up when they open one: character encoding and delimiters. Product catalogs are full of accented characters, currency symbols, and the occasional emoji, and if the file is read with the wrong encoding those characters turn into garbled sequences like é instead of e. The export is written in UTF-8, which is the correct, universal encoding, so the trick is making sure your spreadsheet program reads it as UTF-8.
Google Sheets
Google Sheets handles UTF-8 correctly by default. Use File > Import > Upload, choose the CSV, and pick "Detect automatically" for the separator. Importing through that dialog is more reliable than dragging the file onto an open sheet, and it gives Sheets a chance to map every column cleanly.
Microsoft Excel
Older versions of Excel are the usual culprit for mangled accents because double-clicking a CSV can apply a local code page instead of UTF-8. The reliable path is to open Excel first, then use Data > From Text/CSV, and in the import preview set the file origin to 65001: Unicode (UTF-8). Check that the preview shows accents correctly before you load. If columns all land in one cell, set the delimiter to comma in the same dialog. On modern Excel the From Text/CSV importer detects UTF-8 automatically, but it is worth a glance at the preview either way.
One more tip: SKUs and any leading-zero codes can be silently turned into numbers by a spreadsheet, dropping the zeros. If that matters for your data, import the SKU column as text in the same wizard rather than letting the program auto-detect the type.
Importing the CSV into another platform
A CSV export is rarely the destination; it is the starting point. Once you have the file, you can push the catalog into almost any system that accepts a product import. The three most common targets are another WooCommerce store, Shopify, and a Google Merchant feed.
- Another WooCommerce store. WooCommerce ships with a built-in CSV importer under Products > Import. Map your columns to its fields, and as long as SKUs and variation data are intact, it recreates the catalog faithfully. This is the fastest way to clone or seed a second store.
- Shopify. Shopify accepts a product CSV in its own column layout. The main work is reshaping your exported columns to match Shopify's expected headers (Handle, Title, Variant SKU, and so on) and splitting variable products into Shopify's variant rows. The full walkthrough lives in our guide on WooCommerce to Shopify migration.
- A Google Merchant feed. Merchant Center wants specific columns such as
id,title,description,price,availability, andimage_link. Your CSV already contains the underlying values; you rename and arrange the columns to match the feed specification and upload it as a scheduled or manual feed.
In every case the principle is the same: the scraper gives you a complete, accurate source of truth, and each platform's importer is a mapping exercise on top of that. The cleaner the export, the less reshaping you do. And because the same data can drive a price list, you can reuse it to run a WooCommerce price comparison against competitors instead of only migrating it.
Automating recurring exports
A one-off CSV is perfect for a migration or a backup. But some jobs need the same export on a schedule: keeping a comparison site fresh, syncing a feed every morning, or snapshotting a competitor's catalog every week to track changes. Clicking through the no-code tool by hand every day does not scale, and that is exactly what the API is for.
Instead of exporting manually, you call the WooCommerce Scraper API from your own code or from a scheduler and receive the same structured data as JSON, which you can write to a CSV, a database, or straight into a feed. For full catalogs you create an asynchronous export job, let it crawl the store in the background, and collect the results when they are ready, optionally via a webhook so you never have to poll. The complete reference for endpoints, authentication, and rate limits is in the WooCommerce Scraper API guide, and the patterns for scheduling, retries, and hands-off syncs are covered step by step in how to automate WooCommerce exports.
The rule of thumb: if you need a CSV once or occasionally, use the no-code scraper above. If you need it on a recurring basis or wired into another system, automate it through the API.
Troubleshooting common issues
Most exports run cleanly, but a handful of situations come up often enough to plan for. Here is what to do when they do.
The store blocks its REST API
Some WooCommerce sites lock down or disable the default /wp-json/ routes for security or performance reasons, which breaks naive tools that assume that path is always open. The scraper is built to degrade gracefully: it tries the modern WooCommerce Store API first, falls back to the legacy ?rest_route= path, and finally reads the store's product sitemap and parses the JSON-LD structured data embedded in each product page. That last method works even when every REST surface is closed, so a blocked API rarely means a blocked export.
Very large catalogs
A store with thousands of products takes longer to read because the scraper walks the catalog page by page. For an occasional export, just let it finish; the preview will show progress. If you are exporting large catalogs regularly, switch to an asynchronous API job, which crawls in the background and notifies you when the full dataset is ready rather than tying up a browser tab. See the API guide for the job workflow.
Variable products look incomplete
If a variable product seems to be missing its options, check the preview before downloading. Variations are expanded into their own rows, so a product with many options produces many rows; that is correct behavior, not duplication. When you re-import, make sure the destination importer is configured to read those rows as variations of a shared parent (usually matched by SKU or by a parent handle) rather than as separate standalone products.
Frequently asked questions
How do I export WooCommerce products to CSV?
Open the WooCommerce Scraper, paste the store URL, let it read the catalog page by page, preview the products, and download a clean CSV ready for Excel or Google Sheets. No plugin and no WordPress admin access are required.
Do I need a plugin or admin access to export products?
No. The scraper reads the store's public product data directly, so you do not install anything on the target site and you do not need to log into the WordPress dashboard. That is what lets you export catalogs you do not own, such as a competitor's.
What fields are included in the CSV export?
Titles, short and long descriptions, regular and sale prices, SKUs, stock status, categories, tags, image URLs, and product variations with their attributes. Each product is a row and variable products are expanded so their options are preserved.
Why does my CSV show garbled accented characters in Excel?
The file is UTF-8, but Excel may open it with a local code page. Open Excel first, use Data > From Text/CSV, and set the file origin to 65001: Unicode (UTF-8) in the import preview. Google Sheets reads UTF-8 correctly by default through File > Import.
Can I export an entire catalog on a recurring schedule?
Yes. For one-off exports use the no-code scraper. For recurring or automated exports, use the WooCommerce Scraper API to run asynchronous jobs on a schedule, optionally with a webhook so the data is delivered to you when each job finishes.
Export a WooCommerce catalog to CSV now
Paste a store URL, preview the products, and download a clean spreadsheet in under a minute. No plugin, no admin login, no code.
Start your CSV export