PRACTICAL GUIDE · REVIEWED 21 OCT 2026

Find why WooCommerce failed, skipped, or changed the row.

Start with the import log and mapping screen. Then separate CSV structure from product rules, extensions, and server limits before retrying the full catalog.

Read the import logUse the first failed or skipped row as evidence.
Back up firstKeep a product export and use staging when possible.
Check locallyYour CSV stays in your browser during the free scan.
Test a small batchConfirm products, variations, stock, and images by hand.

FAST TRIAGE

Import complete, but products are not showing?

WooCommerce can finish an import while skipping individual rows. A duplicate identifier, unmatched update, unexpected status, or variation relationship may be the real problem even when the CSV opens normally in a spreadsheet.

Start with the failed or skipped-row report. Preserve the source, identify whether the job creates or updates products, and correct one class of failure before testing a small copy.

Check the Products list as well as the storefront. If the products exist in the admin but are not visible to shoppers, inspect their Published status: the CSV can set products to private, draft, or pending review. If the products are absent from the admin too, compare the skipped-row log with the import mode, IDs, SKUs, and column mapping. A local file scan cannot confirm either store-side outcome.

If the report names an existing SKU or skipped product, use the focused duplicate-SKU decision guide to separate file duplicates from store matches.

REPRODUCIBLE EXAMPLE · CHECKED 21 OCT 2026

Two rows: duplicate SKU and private products.

Synthetic demonstration data, not a customer case. Download both files, choose WooCommerce in the free local scanner, and compare the results. These files were checked with Data Preflight’s byte decoder, CSV parser, and platform rules. They have not been imported into a live store.

Before: reproduce the failure

Both rows use DP-DEMO-CUP. Expected local result: two rows, six columns, review, one DUPLICATE_SKU warning.

Both also have Published=0. That is a valid private status, so it is not flagged as an invalid value. A successful import can still leave these products hidden from shoppers.

Download before CSV

After: check the intended correction

The two distinct demo products now have different SKUs. Published=1 expresses the intended published status.

Expected local result: two rows, six columns, clear, zero findings. Changing SKUs is appropriate here only because these are two different new demo products; it is not a safe default for an update.

Download corrected CSV

Before trying this in WooCommerce

Use a staging store and its current product export. Confirm whether each row creates or updates a product; review ID/SKU matches and column mapping. Test a few representative rows, then inspect the import report, Products list, and storefront status. A local clear result cannot confirm existing store matches or storefront visibility. The demo files omit images and variations and do not test those workflows.

SYMPTOM → CAUSE → ACTION

Eight WooCommerce import problems to check first.

01
Encoding

Garbled text or rejected file

The file is not a valid UTF-8 CSV, or a spreadsheet editor changed its encoding while saving.

Do this: Export a fresh CSV in UTF-8. Compare multilingual product names with the source instead of repairing corrupted characters by guesswork.

02
CSV structure

Columns shift after a comma or line break

A value containing a comma, quote, or line break was not encoded as one CSV field, so later values land under the wrong headings.

Do this: Inspect the first failing row and re-export from the source editor. Values that contain commas need correct CSV quoting.

03
Column mapping

A column is ignored or mapped incorrectly

The heading does not match the core schema, was mapped to the wrong product field, or belongs to an extension.

Do this: Review every field on the Column mapping screen. WooCommerce ignores unrecognized columns by default; custom metadata normally uses a meta: prefix.

04
ID and SKU

Product already exists—or update row is skipped

The import mode does not match the intent. Existing IDs or SKUs can collide on a create import, while unmatched identifiers are skipped during an update.

Do this: Decide create versus update first. Use stable IDs or SKUs, remove duplicates, and select Update existing products only after making a backup.

05
Published

Product appears with the wrong status

The Published value maps to a different status than expected, or contains an unsupported label such as “publish”.

Do this: Use 1 or true for published, 0 for private, -1 or false for draft, and 2 for pending review.

06
Numeric fields

Price or stock is missing or malformed

A number contains currency text, unexpected formatting, or a sale price conflicts with the intended regular price. Variation stock may need to inherit from its parent.

Do this: Use plain numbers, review sale and regular prices together, and use parent only for a variation that should inherit stock settings.

07
Image source

Image was not imported

The URL is incomplete, requires authentication, returns a redirect page, or is not directly reachable by the store server.

Do this: Use a direct public HTTP(S) image URL or an existing Media Library filename. Test the URL without a signed-in session.

08
Parent and attributes

Variation is skipped or detached

The variation has no matching Parent, lacks a unique identifier, or uses attribute names or values that do not agree with the variable product.

Do this: Give each variation a unique SKU, match Parent to the parent SKU or id:123, and keep attribute spelling consistent. Follow the version-appropriate parent-first workflow.

TOOL BOUNDARY

What the free check can—and cannot—confirm.

Checked locally
  • UTF-8, delimiter, quotes, and row width
  • Missing, empty, or duplicate headings
  • ID, SKU, or Name presence and duplicate SKUs
  • Common Type, Published, price, stock, image URL, and variation-parent risks
Still verify in WooCommerce
  • Final column mapping and extension-specific fields
  • Existing products, IDs, SKUs, taxonomies, and attributes in this store
  • Whether the server can retrieve a remote image
  • Plugin or theme conflicts, upload limits, memory, and processing time

A clear preflight result reduces common file risks; it cannot reproduce the state, extensions, permissions, or resource limits of a particular WordPress site.

SAFE IMPORT WORKFLOW

Five steps before a production retry.

  1. 01
    Back up and export

    Keep the database backup and current product export outside the working folder.

  2. 02
    Capture the failure

    Save the import log, skipped rows, mode, and first failing record before editing.

  3. 03
    Preflight the file

    Fix encoding and structural blockers before field values.

  4. 04
    Review mapping and mode

    Confirm every imported column and whether the run creates or updates products.

  5. 05
    Test on staging

    Use a parent, a few variations, and images; inspect the result before scaling up.

中文速查

导入“完成”,也可能有商品被跳过。

先保存数据库备份、当前商品导出和失败日志,再确认这次操作是新建还是更新。 优先检查 UTF-8、分隔符、引号、列数、字段映射,以及 ID / SKU 是否重复或无法匹配。

变体要有唯一 SKU,并通过 Parent 对应父商品;图片必须能被服务器直接访问。 Data Preflight 的免费检查在浏览器本地运行,不上传 CSV,但它无法判断站点里的 插件冲突、已有商品状态、服务器限制或最终字段映射。

PRIMARY SOURCES

Verify the workflow against current WooCommerce sources.

Product CSV Importer and Exporter documentationWooCommerce product CSV import schemaHow to test for plugin and theme conflicts

STILL BLOCKED?

Turn the failing batch into a bounded repair.

One CSV/XLSX, up to 1,000 rows, and one agreed repair rule may fit the $19 Quick Fix. If the cause is unclear or several risks are involved, start with the $49 review instead. Send a non-sensitive description first; no file or payment is needed to ask.