
There are four ways to scrape WooCommerce products, and which one works depends on whether you have access to the store's WordPress admin. This guide compares every method — WooCommerce's built-in export, the REST API, generic scraping tools, and dedicated WooCommerce scrapers — with the trade-offs of each, how variable products behave, and how to get the data into another store cleanly.
📥 Quick answer: To scrape WooCommerce products from any public store, paste the store URL into a dedicated WooCommerce scraper like ProdSift. It extracts every product and variation with prices, SKUs, images, and categories, and exports a CSV formatted for WooCommerce or Shopify. If it's your own store, use WooCommerce → Products → Export instead — no scraper needed.
Key Takeaways
- WooCommerce's built-in export and REST API both require admin access, so they only work on stores you manage
- To scrape a store you don't own, your options are custom code, a generic scraping tool, or a dedicated WooCommerce scraper
- Variable products are where most methods fail — each variation has its own price, SKU, and stock, and generic tools usually capture only the default
- A WooCommerce CSV won't import into Shopify without remapping, because the platforms structure variants differently
- ProdSift extracts any public WooCommerce or Shopify store by URL, with no API keys or credentials
Every product on a WooCommerce storefront is public — customers need to see it to buy it. The hard part is collecting hundreds or thousands of products with every variation intact, in a format another store will accept. That's what separates the four methods below.
What does it mean to scrape WooCommerce products?
Scraping WooCommerce products means extracting a store's public catalog — product names, descriptions, prices, variations, SKUs, images, categories, and stock status — into a structured file, usually a CSV. That file can then be imported into another store, opened in a spreadsheet, or used for analysis.
Common reasons to scrape WooCommerce products
- Store migration — moving a catalog from WooCommerce to Shopify, or between two WooCommerce stores, without re-entering every product.
- Stocking a new store — pulling a supplier's or wholesaler's catalog to build your own listings faster.
- Competitor research — tracking a competitor's range, pricing, and new products across the whole catalog.
- Client work — agencies and developers often need a client's catalog before they've been given admin access.
- Catalog backup — keeping an offline copy of listings before a redesign, host move, or plugin change.
Method 1: WooCommerce's built-in product export
If you manage the store, this is the method to use. WooCommerce has a native product exporter under WooCommerce → Products → Export that produces a CSV in WooCommerce's own import format, with variable products and their variations included.
Best for: backing up or moving your own store.
The limitation: it requires a WordPress account with Shop Manager or Administrator access, so it does nothing for a store you don't control. For the full walkthrough, see how to export WooCommerce products to CSV.
Method 2: The WooCommerce REST API
WooCommerce includes an official REST API for reading and managing store data programmatically. Developers use it to pull products into scripts, dashboards, or other systems.
- Create API keys — in the store's admin, go to WooCommerce → Settings → Advanced → REST API and add a key with Read access.
- Request the products endpoint — authenticate with the consumer key and secret and request the products endpoint, paging through results up to 100 products at a time.
- Request variations separately — each variable product's variations come from their own endpoint, one request per product.
- Write the results to a file — flatten the JSON responses into CSV rows yourself.
WooCommerce API scraping is precise and fast once it's built. But it has the same hard requirement as the built-in export: API keys can only be created by someone with admin access to the store. It's a developer tool for your own stores or clients' stores, not a way to reach anyone else's.
Best for: developers building recurring syncs or integrations on stores they manage.
Method 3: Generic scrapers — custom code or visual tools
For stores you don't own, the do-it-yourself route is a general-purpose scraper: a Python script with a library like BeautifulSoup, or a point-and-click tool like Octoparse, ParseHub, or the Web Scraper browser extension.
Both work on almost any website, but neither knows anything about WooCommerce specifically:
- Themes vary. WooCommerce product pages look different on every theme, so selectors or templates built for one store usually fail on the next.
- Variation data is hard to reach. Sizes, colours, and per-variation prices often only appear when a shopper selects an option, so page scrapers typically capture just the default.
- Pagination and blocking. Large catalogs span many shop pages, and too many requests too quickly gets your IP throttled.
- Raw output. You get a spreadsheet, not a file WooCommerce or Shopify will import without remapping.
Best for: one-off jobs on non-WooCommerce sites, or developers who want a custom dataset and have time to maintain it.
Method 4: A dedicated WooCommerce scraper
A dedicated tool handles the parts that break generic scrapers — variations, pagination, and output format — automatically. With ProdSift:
- Paste the store URL — any public WooCommerce or Shopify store. ProdSift detects the platform automatically.
- ProdSift extracts the full catalog — every product and variation, with prices, SKUs, images, categories, tags, and stock status.
- Choose your export format — WooCommerce CSV, Shopify CSV, or a simple CSV, already mapped for the platform you're importing into.
There's no setup, no template, and no code. If you'd rather work from the store page itself, the free WooCommerce Scraper Chrome extension by ProdSift detects the store as you browse, counts its products and categories live, and exports through ProdSift in one click.
On the free plan you can view a store's entire catalog and export 5 products — enough to test the import before committing.
Best for: migrations, stocking a new store, client work, and competitor research.
The limitation: it only covers WooCommerce and Shopify. Stores behind aggressive bot protection can block automated access, and no scraper gets past that reliably.
Comparison: which method should you use?
| Built-in export | REST API | Generic scraper | Dedicated WooCommerce scraper | |
|---|---|---|---|---|
| Works on stores you don't own | No | No | Yes | Yes |
| Keeps all variations | Yes | Yes, with extra requests | Rarely | Yes |
| Import-ready CSV | WooCommerce only | You build it | No | WooCommerce and Shopify |
| Setup time | Minutes | Hours | 30 minutes to days | Seconds |
| Coding required | No | Yes | Sometimes | No |
Pro tip: Not sure the store actually runs WooCommerce? Run it through the free store checker first — it identifies WooCommerce and Shopify stores from the URL in seconds.
Scraping WooCommerce products for a Shopify migration
Migration is the most common reason people scrape WooCommerce products, and it's where format mistakes cost the most. WooCommerce stores a variable product as a parent row followed by separate variation rows. Shopify instead groups every variant under a shared Handle, with the product details on the first row only:
| Handle | Title | Option1 Name | Option1 Value | Variant SKU | Variant Price |
|---|---|---|---|---|---|
| classic-tee | Classic Tee | Size | Small | TEE-SM | 25.00 |
| classic-tee | Medium | TEE-MD | 25.00 | ||
| classic-tee | Large | TEE-LG | 27.00 |
The columns differ too — WooCommerce's Name becomes Title, Description becomes Body (HTML), and Regular price becomes Variant Price.
⚠️ Critical: Never import a WooCommerce CSV into Shopify as-is. Shopify doesn't recognise the parent and variation rows, so variable products arrive broken or as duplicate listings. Always export in the format of the platform you're importing into.
For the full process, see the WooCommerce to Shopify migration guide.
Scrape any WooCommerce store with ProdSift
Paste a store URL and get every product and variation in a WooCommerce or Shopify CSV — no API keys, no code. First 5 products free.
Try it freeIs it legal to scrape WooCommerce stores?
Collecting publicly visible product information is generally lawful in most places, but rules vary by country and depend on how the data is used. The larger risk is usually republishing, not collecting: product descriptions and photos are typically copyrighted by the store that created them, so copying them wholesale onto your own store can cause problems even when gathering them didn't.
Scraping your own store, a client's store, or a supplier's catalog you have permission to use is the safe case. If you're unsure about a specific situation, check with a lawyer where you operate.
Common WooCommerce scraping issues and fixes
🔧 Variable products come through as a single row
The scraper isn't reading variations. Page-based scrapers usually capture only the default price shown before a shopper selects an option. A product in several sizes or colours should produce a parent row plus one row per variation — switch to a tool that extracts variations natively.
🔧 Prices show as a range instead of individual prices
WooCommerce displays variable products with a price range like $20–$27 on shop pages. That's the storefront summary, not the variation data. Each variation's own price is only available once variations are extracted individually.
🔧 Access denied or blocked requests
Some WooCommerce stores use security plugins or bot protection that block automated requests while still loading for regular visitors. Retrying repeatedly can extend the block. If a store is protected this way, ask the owner for an export instead.
🔧 Images are missing after import
A CSV contains image URLs, not the image files. The platform you import into downloads each image from its URL during import. If the source store deletes those images or goes offline, the images fail to import — so import soon after scraping when a store is closing.
🔧 The REST API returns 401 errors
The API keys are missing, wrong, or don't have Read permission. Regenerate them under WooCommerce → Settings → Advanced → REST API, and confirm the site is served over HTTPS, which the API's standard authentication expects.
Frequently asked questions
How do I scrape WooCommerce products from a store I don't own?
Use a scraper. WooCommerce's built-in export and REST API both require admin access, so for any other store you need custom code, a generic scraping tool, or a dedicated WooCommerce scraper like ProdSift, which extracts the full catalog from the store URL alone.
Can I use the WooCommerce API to scrape another store?
No. The WooCommerce REST API requires API keys, and only someone with admin access to the store can create them. It's the right tool for stores you manage, not for extracting data from other stores.
Is there a free WooCommerce scraper?
Free options include WooCommerce's built-in export for your own store, general-purpose browser extensions for small jobs, and free tiers of dedicated tools. ProdSift's free plan shows a store's full catalog and exports 5 products, and its Chrome extension is free to install.
Does scraping WooCommerce products include variations?
It depends on the method. The built-in export, the REST API, and dedicated WooCommerce scrapers include every variation with its own price, SKU, and stock. Generic page scrapers usually capture only the default price and miss the variations.
Can I scrape WooCommerce products and import them into Shopify?
Yes, as long as the file is formatted for Shopify. A WooCommerce-format CSV won't import correctly because Shopify groups variants under a shared Handle. ProdSift exports a Shopify CSV directly from a WooCommerce store.
How do I know if a store runs WooCommerce?
Run the URL through a store checker, or view the page source and search for wp-content and woocommerce. Adding /wp-admin to the domain usually leads to a WordPress login page on WooCommerce stores.
Does the scraped CSV include product images?
Yes, as image URLs. The CSV contains the full URL of each product image, and the platform you import into downloads the images from those URLs during import.
How long does it take to scrape a WooCommerce store?
With a dedicated scraper, seconds to a couple of minutes depending on catalog size. Building a custom scraper takes hours to days, and generic visual tools take 30 minutes or more to set up for each store.
Get any WooCommerce catalog into a clean CSV
ProdSift extracts every product and variation from any public WooCommerce or Shopify store and exports it import-ready for either platform. First 5 products free — no credit card.
Start extracting free

