Introduction
To map CSV columns to WordPress fields, install WP Ultimate CSV Importer, upload your CSV file, and use the drag-and-drop mapping interface to match each column to the correct WordPress field – for example, “Title” → Post Title, “Image URL” → Featured Image, and “Price” → _price for WooCommerce. Always preview your import before running the full dataset to avoid data landing in the wrong fields.
CSV imports in WordPress break silently, and wrong column mapping is the #1 reason. One mismatched field and your post title lands in the body, images vanish, and categories disappear across hundreds of posts. Imagine importing 500 WooCommerce products only to find all your SKUs landed in the excerpt field – that’s exactly what this guide prevents.
Whether you’re importing blog posts, WooCommerce products, featured images, or ACF custom fields, this step-by-step tutorial covers the entire WordPress CSV import process using WP Ultimate CSV Importer, WP All Import, and manual methods.
WordPress Fields Supported in CSV Import
WordPress stores content in specific database fields. To map CSV columns to WordPress fields correctly, each column in your file needs a matching WordPress field – whether you’re importing posts, pages, WooCommerce products, or ACF custom fields.- whether you’re importing posts, pages, WooCommerce products, or ACF custom fields:
- Post Title – name of your post or page
- Post Content – main body text
- Post Excerpt – summary
- Post Status – published, draft, or pending
- Categories & Tags – how content is organized
- Featured Image – thumbnail image
- Custom Fields – extra data like price, rating, or location
Why CSV Column Mapping Matters (And What Goes Wrong)
Skip this step, or get it wrong, and your import breaks silently. Imagine importing 300 blog posts and finding every post title sitting in the content area, all featured images missing, and categories completely unassigned. You won’t even notice until you check your live site. When you correctly map CSV columns to WordPress fields, every piece of data goes to the right place – saving you hours of manual cleanup and keeping your site clean and accurate.
How to Map CSV Columns in WordPress Using a Plugin
The easiest way to map CSV columns to WordPress fields is with a dedicated plugin. WP Ultimate CSV Importer and WP All Import are the two most popular, and both offer a visual column mapping interface that’s straightforward even for beginners.
Step 1: Install a CSV import plugin.
- Open your WordPress dashboard and navigate to Plugins → Add New
- Search for WP Ultimate CSV Importer or WP All Import
- Click Install Now, then Activate
WP Ultimate CSV Importer is beginner-friendly and supports direct import from Google Sheets. WP All Import is well-suited to complex imports with large datasets.
Step 2: Upload Your CSV File
- Open the plugin and click “New Import” or “Import Content.”
- Choose “Upload a file” and select your CSV (Excel/XLSX and TSV also supported)
- Click Continue or Next Step
Ensure your CSV has clear headers and consistent data across every row before uploading.
Step 3: Start the column mapping process.
After uploading, the plugin makes it easy to map CSV columns to WordPress fields – your CSV columns appear on one side and WordPress fields on the other. Drag or select each column and match it to the correct WordPress field. At this stage, you’re defining exactly which CSV column connects to which WordPress field.
- Map the basics first:
| CSV Column | WordPress Field |
| Title | Post Title |
| Content | Post Content |
| Excerpt | Post Excerpt |
| Date | Post Date |
| Status | Post Status (publish / draft) |
Take your time here. One wrong match can send your data to the wrong field across every single imported post.
Step 4: Map Images, Categories, and Tags
These three fields need a little extra attention during the mapping process.
Featured Images:
- Your CSV should contain either an image URL or a file path
- Map that column to the Featured Image field
- Make sure the image URLs are publicly accessible; the plugin fetches them during import
Categories:
- Map your category column to the Post Category field
- If the category doesn’t exist yet, most plugins will create it automatically
Tags:
- Map your tags column to the Post Tags field
- For multiple tags in one cell, separate them with a comma: WordPress, Tutorial, Beginner
Step 5: Map Custom Fields (Advanced)
If your WordPress site uses custom fields through plugins like ACF (Advanced Custom Fields) or Meta Box, you can map those too.
- Scroll down to the Custom Fields section in the mapping screen
- Enter the exact custom field key (e.g., _price, rating, location)
- Match it to the corresponding CSV column
| CSV Column | WordPress Custom Field Key |
| Price | price |
| Rating | rating |
| Location | location |
The field key must match exactly what’s stored in your WordPress database. If you’re unsure, check your ACF settings or use a tool like Query Monitor to inspect your field names.
Pro Tip: You can also use column mapping to update existing WordPress posts – not just create new ones. Enable “Update Existing” mode in WP Ultimate CSV Importer, map your post ID or slug as the unique identifier, and only the columns you map will be updated. All other post data stays untouched.
Advanced CSV Column Mapping in WordPress
Mapping Multiple Categories
List categories in your CSV cell separated by a pipe or comma (News | Technology | WordPress), then map that column to the Post Category field – the plugin assigns all of them automatically.
Mapping Multiple Images
List all image URLs in one cell separated by a comma or pipe, then map that column to the appropriate gallery or attachment field in the plugin.
Mapping Custom Post Types
If importing into a custom post type like “Portfolio” or “Properties”:
- Select your custom post type from the import settings before mapping
- The plugin displays fields specific to that post type
- Map your CSV columns to those fields just like standard posts
Mapping WooCommerce Product Fields
Both plugins support WooCommerce CSV imports – you can map columns directly to product fields like price, SKU, stock status, description, and images, even for large catalogs.
Mapping SEO Fields (RankMath / Yoast)
WP All Import’s RankMath add-on lets you map SEO titles, meta descriptions, and focus keywords directly from your CSV – ideal for programmatic SEO workflows generating pages at scale.
Preview Checklist Before Running Your WordPress CSV Import
Once you map CSV columns to WordPress fields, always use the Preview or Dry Run option before running the full import. Verify:
- Titles → Post Title
- Content → Post Content
- Categories and tags are assigned correctly
- Featured images loading from URLs
- Custom fields are saving to the correct keys
If anything looks off, fix the mapping before proceeding. Once complete, review the summary report to catch any rows that failed to import.
Ready to import? WP Ultimate CSV Importer auto-maps common column headers, supports Google Sheets direct import, previews your data before going live, and handles WooCommerce + ACF fields in one place.
How to Import CSV to WordPress Without a Plugin
For small datasets or one-time migrations, you don’t need a plugin. Here are two methods that work.
Method 1: Convert CSV to WXR Format
WXR (WordPress eXtended RSS) is WordPress’s native XML-based import format. To convert your CSV:
- Open your CSV in Google Sheets or Excel
- Organize columns – Title, Content, Excerpt, Date, Categories, Tags
- Use a free tool like csvtowxr.com or a Python/PHP script to generate the WXR file
- Save it with a .xml extension
Method 2: Import Using the WordPress Import Tool
Once you have your WXR file:
- Go to Dashboard → Tools → Import
- Click WordPress from the importer list
- Install the WordPress Importer plugin if prompted (free and official)
- Click Choose File and upload your WXR file
- Assign content to an existing author or create a new one
- If your file includes images, check the option to download and import file attachments
- Click Submit
It’s free, requires no extra plugins, and works reliably – as long as your WXR file is properly formatted.
Method 3: Use Custom PHP Scripts for CSV Import
For developers or advanced users, writing a custom PHP script gives you full control over how CSV data is imported into WordPress.
| <?php// Load WordPress environmentrequire_once(‘wp-load.php’); // Open and read the CSV fileif (($handle = fopen(“your-file.csv”, “r”)) !== FALSE) { // Skip the header row fgetcsv($handle); while (($data = fgetcsv($handle, 1000, “,”)) !== FALSE) { // Map CSV columns to WordPress post fields $post = array( ‘post_title’ => sanitize_text_field($data[0]), // Column 1 = Title ‘post_content’ => wp_kses_post($data[1]), // Column 2 = Content ‘post_excerpt’ => sanitize_text_field($data[2]), // Column 3 = Excerpt ‘post_status’ => ‘publish’, ‘post_type’ => ‘post’, ); // Insert post into WordPress $post_id = wp_insert_post($post); // Add custom field if needed if ($post_id) { update_post_meta($post_id, ‘your_custom_field’, sanitize_text_field($data[3])); } } fclose($handle);}?> |
When to use this method:
- You need to import into custom post types with complex field structures
- You want to run automated or scheduled imports
- You’re building a custom migration tool for a client site
Important: Always sanitize your data before inserting it into the database. Use WordPress built-in functions like sanitize_text_field() and wp_insert_post() to keep your site secure.
Quick Reference: CSV Column Mapping Cheat Sheet
Not sure how to map CSV columns to WordPress fields correctly? Here are the most common mapping examples to guide you.
Mapping Post Title, Content, and Excerpt
| CSV Column | WordPress Field |
| Title | Post Title |
| Content | Post Content |
| Excerpt | Post Excerpt |
| Date | Post Date |
| Status | Post Status (publish/draft) |
Mapping Featured Images
| CSV Column | WordPress Field |
| Image URL | Featured Image |
Example URL format: https://yoursite.com/wp-content/uploads/image.jpg
Make sure every image URL is publicly accessible before importing; broken links mean missing images after import.
Mapping Custom Fields (ACF / Meta Fields)
| CSV Column | WordPress Custom Field Key |
| Price | _price |
| Rating | rating |
| Location | location |
The custom field key must match exactly what’s in your WordPress database, including underscores and lowercase letters.
Common Errors in CSV Mapping and How to Fix Them
The most common errors when you map CSV columns to WordPress fields fall into three categories – images, column recognition, and wrong field placement.
Images Not Importing
Problem: Featured images don’t appear after import.
Fix:
- Verify that image URLs in your CSV are publicly accessible
- Confirm the URL column is mapped to the Featured Image field
- Turn on the media download option inside the plugin’s import settings to fetch images automatically
- For local paths, ensure files are already in your WordPress media library
Columns Not Recognized
Problem: The plugin can’t detect your CSV columns or shows blank field options.
Fix:
- Open your CSV and make sure the first row contains column headers, not data
- Remove any special characters or extra spaces from header names
- Save the file in UTF-8 encoding; this fixes most recognition issues (In Excel: File → Save As → CSV UTF-8)
Data Landing in the Wrong Fields
Problem: Data lands in the wrong WordPress field after import.
Fix:
- Go back to the mapping screen and double-check that every field matches
- Never skip the Preview step; it catches wrong mappings before they cause damage
- Run a test import with 2–3 rows before importing your full dataset
Best Practices for Accurate CSV Mapping
Following these best practices every time you map CSV columns to WordPress fields will prevent most import errors before they happen.
Clean Your CSV First:
Remove empty rows, duplicates, and inconsistent formatting. Ensure every cell has the correct data type: no numbers in text fields, no broken URLs in image columns.
Use Consistent Column Headers:
Keep headers simple and uniform, like “Title,” “Content,” and “Image URL.” Avoid spaces, special characters, or all-caps to speed up field mapping and reduce recognition errors.
Test With a Small Batch First:
Never import your full dataset on the first try. Start with 5–10 rows, verify the data lands correctly, then run the full import.
Back Up Your Site Before Importing:
Always take a full site backup before importing. If anything goes wrong, you can restore it in minutes rather than fixing it manually.
Best WordPress CSV Import Plugin in 2026: WP Ultimate CSV Importer vs WP All Import
Both plugins handle CSV imports well, but when it comes to map CSV columns to WordPress fields accurately, they serve different needs and user types. Here’s a quick breakdown.
| Feature | WP Ultimate CSV Importer | WP All Import |
| Ease of Use | Beginner-friendly | Intermediate |
| Drag & Drop Mapping | Yes | Yes |
| Google Sheets Import | Yes | No |
| WooCommerce Support | Yes | Yes |
| AI-Assisted Import | Yes (ChatGPT, Gemini, Claude) | No |
| Custom Post Types | Yes | Yes |
| Scheduled Imports | Yes | Yes |
| RankMath / Yoast SEO | Yes | Yes (add-on) |
| Free Version | Available | Available |
| Best For | Beginners & bloggers | Developers & large imports |
| Winner | Best for most users | Best for large/complex data |
Which One Should You Choose?
Choose WP Ultimate CSV Importer if:
- You’re a beginner or non-technical user
- You need a fast, clean import without complex setup
- You want to import directly from Google Sheets
- You’re importing blog posts, pages, or WooCommerce products
Choose WP All Import if:
- You’re handling large or complex datasets (100k+ rows)
- You need advanced filtering or data transformation during import
- You’re a developer building custom migration workflows
- Your import requires XSLT-level control or conditional logic
When Should You Use a Plugin vs No Plugin?
| Use a Plugin If… | Skip the Plugin If… |
| Importing 50+ rows | Doing a one-time import of under 20 rows |
| Your CSV includes images, categories, or custom fields | Your data is simple titles and content only |
| You need to schedule or repeat imports | You’re a developer comfortable with PHP or WXR |
| Importing into WooCommerce or custom post types | You want to minimize plugins for performance |
| You want visual mapping with error checking | You prefer full code control |
Conclusion
Knowing how to map CSV columns to WordPress fields correctly is the difference between a clean 10-minute import and hours of manual cleanup. Always preview before running the full import, and take a site backup first – no exceptions.
For most users, WP Ultimate CSV Importer is the fastest path to a error-free WordPress CSV import in 2026 – with Google Sheets support, AI-assisted mapping, and built-in WooCommerce and ACF compatibility. For large or complex datasets, WP All Import gives you the extra control you need.
Stop fixing broken imports manually. Get started free →
1. How do I map CSV columns to WordPress fields?
Install WP Ultimate CSV Importer or WP All Import, upload your CSV, and map CSV columns to WordPress fields using the visual mapping interface – for example, “Title” → Post Title and “Content” → Post Content. Always run the preview before the full import to catch wrong mappings early.
2. How do I fix CSV column mapping errors in WordPress?
The most common fixes:
Columns not recognized – Save your CSV in UTF-8 encoding with headers in row 1 only
Data in wrong fields – Run a 2–3 row test import before the full dataset
Images not loading – Make sure all image URLs are publicly accessible
Categories missing – Map to Post Category field, not a custom field
3. What format should my CSV be in before importing to WordPress?
Your CSV must have headers in row 1, UTF-8 encoding (Excel: File → Save As → CSV UTF-8), full public image URLs, and comma-separated values for categories or tags. No empty rows or merged cells. A clean, correctly formatted CSV prevents most import mapping errors.
4. Can I map CSV columns to ACF custom fields in WordPress?
Yes. Both WP Ultimate CSV Importer and WP All Import support ACF custom field mapping. During import, enter the exact field key – like rating, location, or _price – and match it to your CSV column. Keys must be exact, including underscores and lowercase letters.
5. Can I map CSV columns to WooCommerce product fields in WordPress?
Yes. WP Ultimate CSV Importer supports WooCommerce CSV imports natively. Select WooCommerce Product as the post type, then map your columns – Price → _price, SKU → _sku, Stock → _stock, and Product Image → Featured Image. Works for simple and variable products at any catalog size.
6. Can I update existing WordPress posts using a CSV import?
Yes. In WP Ultimate CSV Importer, enable Update Existing mode and map your post ID or slug as the unique identifier. Only the columns you map will be updated – all other post data stays untouched. Useful for bulk-updating prices, images, or meta fields without recreating posts.