Plugins FAQ Docs Blog Support Contact See the plugins

How to import products from Excel to WordPress without errors

Product ViewerUpdated 30 September 20266 min read

Product Viewer

To import products from Excel to WordPress, you save the sheet as a CSV file (in Excel: File > Save As, then CSV UTF-8 (Comma delimited)) and load it with an importer: WooCommerce's own for a shop, a general import plugin for other content types, or the importer of your catalogue plugin. Most failed imports are caused by the file, not the importer: the wrong separator, broken accents, lost leading zeros or missing product codes.

This guide shows how to prepare the spreadsheet, save it correctly, import it, and fix the errors people hit most often.

Why WordPress needs an importer (and which one)

WordPress itself cannot read a spreadsheet. The importers under Tools > Import handle other blogging platforms, RSS and WordPress export files, but not CSV or Excel. What you use depends on where the products live:

Your products are inImporterFile
WooCommerceThe built-in product importer (Products > All Products, then Import)CSV in UTF-8
A custom product type or custom fieldsA general import plugin that maps columns to fieldsCSV, and some also read Excel files
A catalogue pluginThe plugin's own import screen, if it has oneUsually CSV

WooCommerce's product CSV importer guide asks for UTF-8 encoding and can match existing products by SKU. General importers are the most flexible and need the most setup, because you map every column by hand. A catalogue plugin's importer knows its own fields, so there is little to map.

Prepare the Excel sheet: one row per product

Whatever the importer, a clean sheet follows the same rules. Fix these in your working copy before saving anything.

  1. One header row with the column names the importer expects, and nothing above it: no logo, no title, no date.
  2. One row per product. No subtotal rows, no blank separator rows, no merged cells.
  3. A unique product code in every row. The code is how an importer recognises a product the second time, so it decides between "update" and "create a duplicate".
  4. Plain values. Numbers without units (600, not 600 l), and one piece of information per cell.
  5. Multiple values with the separator your importer expects, for example a vertical bar: Restaurants|Hotels.
  6. Images as full web addresses starting with https://, if the importer downloads photos.
  7. One sheet. Excel saves only the active sheet to CSV, so put everything to import on the same sheet.

Protect codes from Excel's automatic formatting

Excel treats anything that looks like a number as a number. Microsoft's own page on leading zeros and large numbers confirms that it removes leading zeros, shows long numbers in scientific notation (1.23E+15) and keeps only 15 significant digits. For product codes and EAN barcodes that is data loss. Format the code column as Text before you type or paste the codes, or type an apostrophe before each one.

Save as CSV: encoding, separator and decimals

Encoding

In Excel, use File > Save As and choose CSV UTF-8 (Comma delimited). UTF-8 keeps accented letters and symbols intact. Some older Excel versions do not offer this option; check whether your importer accepts the plain CSV format instead. In Google Sheets, use File > Download > Comma-separated values (.csv).

If accented letters turn into pairs of odd characters after import (for example "è" instead of "è"), the file and the importer disagree about the encoding. Save again as CSV UTF-8.

Separator

Despite the name, Excel does not always use commas. It uses the list separator from your computer's regional settings, and where the comma is the decimal mark, as in Italy, Germany or France, that separator is usually a semicolon. Microsoft explains this on its import and export text files page. Open the CSV in a plain text editor (Notepad or TextEdit) to see which character your file really uses, then check that your importer accepts it.

Decimals and thousands

Decide on one decimal mark and use it everywhere. Remove thousands separators from numbers: 1.200 can be read as one thousand two hundred or as one point two, depending on the software. Do not reopen the CSV in Excel and save it again: Excel may reformat codes and numbers again as it opens the file.

Importing into a catalogue plugin, step by step

Here is the complete flow with Product Viewer, our WordPress catalogue plugin, following its CSV import guide. CSV import is part of the full version (a one-off payment) and of the 7-day trial; in the free version you add products by hand.

1. Create the filters first

The importer recognises one column per filter, so the filters must exist before you import. Create them in Product Viewer > Filters, as described in Create filters and entries.

2. Copy the header row

Open Product Viewer > Import. The box How the file has to look shows the exact first row your file needs, for example sku,title,excerpt,image,range,function,capacity. Copy it into the first row of your sheet.

ColumnWhat goes in it
skuThe product code. It decides whether a row creates a product or updates the one with the same code.
titleThe product name. New products without one get the code as their name.
excerptThe short description on the card.
contentOptional: the full description for the product detail page.
imageThe full address of the photo, starting with https://.
one column per filterNamed as on the Import screen: the filter name in lower case, spaces turned into underscores (Field of use becomes field_of_use). For a list filter write the entry, with several separated by a vertical bar; for a number filter write just the number.

The file needs at least sku or title. Entries that do not exist yet are created automatically, and number values can use a comma or a point (600,5 or 600.5). There is no dedicated price column: if you want buyers to see or filter by price, create a number filter for it.

3. Save and upload

Save as CSV UTF-8 (Comma delimited); the plain CSV option works too. You do not need to change the separator: the plugin recognises commas, semicolons and tabs, and reads accented letters from both UTF-8 files and Excel's default Windows encoding.

4. Dry run, then import

  1. In Upload the file, choose your CSV.
  2. Leave Dry run first ticked.
  3. Tick Download the images if the file has image addresses: the photos are copied into your media library.
  4. Click Import and read the result: Dry run finished, nothing was written. To create: X, to update: Y, skipped: Z.
  5. If the numbers match what you expect, untick the dry run and click Import again.

Updating the price list later

A good importer lets you keep working in Excel and simply import again. In Product Viewer, products with the same code are updated, new codes are created and nothing is duplicated. Products missing from the file are left as they are, not deleted.

Only the columns present in the file are written. A file with just sku and one filter column updates that filter and touches nothing else, which is handy for a quick change across the whole range. Be careful the other way round: an empty cell in a column that is present empties that field on the product (an empty title is the exception and keeps the current name).

Common import errors and how to fix them

What you seeLikely causeFix
Everything lands in one column or fieldThe importer expects a different separatorCheck the file in a text editor; change the separator or pick it in the importer
Garbled accented lettersEncoding mismatchSave again as CSV UTF-8
Codes lost their leading zeros or became 1.23E+15Excel converted them to numbersFormat the column as Text and enter the codes again
Duplicates after a second importMissing or changed product codesFill in the code on every row and never change it
Two entries for the same thing ("Hotel", "Hotels")Inconsistent spelling in the sheetUse a drop-down list (Data Validation) in Excel for those columns
Photos missingAddresses incomplete, or image download not enabledUse full https:// addresses and tick the image option
Some rows missingThey were on another sheetPut all products on the sheet you save

Summary: which route fits you

  • WooCommerce shop: its built-in CSV importer, with a clean UTF-8 file and SKUs on every row.
  • Custom product type or unusual fields: a general import plugin, accepting the time it takes to map columns.
  • A catalogue with filters and no shop: a catalogue plugin with its own importer, such as Product Viewer, where filter columns, separators and updates are handled for you.

In every case the same habits save the day: one row per product, a code that never changes, and a dry run before the real import. If you are still choosing how to present the range, read about building a product catalogue without WooCommerce and designing product filters buyers can use.

Frequently asked questions

Can I upload an .xlsx file directly to WordPress?

Only if your importer reads Excel files, as some general import plugins do. WooCommerce's product importer and Product Viewer expect a CSV file, which you create from Excel with Save As.

Why does Excel save my CSV with semicolons instead of commas?

Excel uses the list separator from your regional settings, and in countries where the comma is the decimal mark that is usually a semicolon. It is not an error, but your importer has to accept it; Product Viewer recognises semicolons on its own.

Will importing the same file again create duplicate products?

Not if every row has a product code and the importer matches on it. In Product Viewer, rows with an existing code update that product; only new codes, or rows with no code, create new products.

Can I import products with the free version of Product Viewer?

No. CSV import is part of the full version and of the free 7-day trial. In the free version you add products one by one from the New product screen.