If you're looking to perform WordPress import users from CSV, you're likely managing a site that needs to handle a large number of users, fast. This is common for online stores, membership sites, eLearning platforms, or internal company portals. Manually adding users one by one just isn’t practical when dealing with hundreds or thousands of accounts.
In this guide, you’ll learn exactly how to import users into WordPress using a properly formatted CSV file. LitExtension will walk you through:
- A plugin-based method (for most users)
- A manual method using PHP code (for developers)
- And a fallback custom import service from LitExtension if things get tricky
This tutorial is designed to help you streamline the process, avoid common mistakes, and ensure your imported users are correctly added and ready to log in.
Why Importing Users from CSV is Useful in WordPress
Manually adding users in WordPress is fine for a handful of accounts — but not when you're dealing with dozens or thousands. Importing users from a CSV file is a faster, more reliable way to bulk add customers, members, or internal users to your site.
This method is especially useful for:
- WooCommerce stores needing to migrate customer data
- Membership sites or online communities onboarding users with predefined roles
- LMS platforms enrolling students in bulk
- Internal portals or intranets adding team members efficiently
With CSV import, you can validate and format data ahead of time, avoid errors, and save hours of manual work. It’s an essential process if you're migrating from another system, onboarding users in bulk, or syncing data between environments.
Prerequisites Before WordPress Import Users from CSV
Before you begin importing users into WordPress, it’s important to set up your CSV file correctly and understand the key components involved in the process. Doing so will help you avoid errors, ensure data accuracy, and streamline the import experience — especially if you're working with sensitive user data like passwords or roles.
1. Backup your WordPress site first
Before making any bulk changes to your user database, always back up your site — including both the database and files. A failed import or corrupted CSV file can lead to duplicate users, broken accounts, or even overwritten data. Having a backup ensures you can roll back in case something goes wrong during the import process.
Learn more: How to backup WordPress site with 3 methods.
2. Understand WordPress user roles and permissions
Each user in WordPress must be assigned a role, which determines their level of access and capabilities on the site. You’ll need to define this in your CSV under the role field.
Some common roles include:
subscriber
– Basic read-only access (default for most sites)customer
– WooCommerce users who can manage their account and orderseditor
– Can edit and publish all postsadministrator
– Full access (not recommended to assign in bulk)
If you’re using plugins like LearnDash, MemberPress, or User Role Editor, you might have custom roles that also need to be mapped correctly in the CSV.
3. What information should your CSV contain?
To ensure a smooth import, your CSV file must be formatted correctly with specific columns.
These required fields are essential for creating valid user accounts:
user_login
– The username for logging in (must be unique)user_email
– The email address (must also be unique)user_pass
– Password (depending on the plugin, you may use plain text or auto-generate it)role
– The user’s assigned WordPress role
Without these fields, most plugins or scripts will not be able to process the import.
These optional fields help populate user profiles more completely:
first_name / last_name
display_name
nickname
billing_address
,shipping_address
(WooCommerce-specific)user_url
– User’s websitedescription
– Bio or about section- Custom meta fields – For memberships, courses, user levels, etc.
The exact optional fields you can use may depend on the plugin handling the import or any plugins/themes you have installed that add user meta.
Method 1: Import Users Using a WordPress Plugin
If you’re looking for a free, straightforward, and flexible plugin for WordPress user import, Import Users from CSV with Meta is an excellent choice. It supports user roles, metadata, plain-text passwords, and even automatic email notifications — all directly from a CSV file.
Step 1: Install the plugin
- In your WordPress dashboard, go to Plugins → Add New
- Search for: Import Users from CSV with Meta
- Click Install Now, then Activate
This plugin will appear under Tools → Import users from CSV once installed.
Step 2: Prepare and upload your CSV file
Now, you can use the CSV file you prepare in the section above and upload it. But, remember to checkthe below fields before uploading for WordPress import users from CSV process.
user_login
,user_email
,user_pass
,role
(required)- Optional fields like
first_name
,last_name
, and others as needed
You should make sure the CSV is UTF-8 encoded and comma-delimited.
Step 3: Start WordPress import users from CSV
It’s time to import users from CSV file to WordPress.
- Go to Tools → Import users from CSV
- Click Choose File and upload your CSV
- Check any options you need:
- Send emails to new users
- Update existing users
- Use headers in the first row (default: yes)
- Click Start Importing
You’ll see a success message once the process completes, along with any errors.
Step 4: Verify the results
Head to Users → All Users to verify that:
- New users were created
- Roles and metadata were assigned properly
- Login and email details are accurate
You can also test logging in as one of the imported users to confirm everything works as expected.
Pros and cons of the WordPress import users from CSV plugin method
Pros:
- Easy and intuitive UI (no coding required)
- Bulk import support for all user types
- Built-in support for WooCommerce and user meta
- Email notifications available
Cons:
- Relies on third-party plugin maintenance
- Some advanced features require premium plugins
- Less flexible than code for highly custom scenarios
Method 2: Import Users Manually Using PHP Code
If you’re comfortable working with code and want more control over the import process, you can use a custom PHP script to import users directly from a CSV file. This method is ideal for developers or technically advanced users who want to automate user creation without relying on plugins.
Important note: Always create a full backup of your WordPress site before running any custom scripts.
Step 1: Prepare your CSV file
First, you should prepare a CSV file with the following required columns in the first row:
user_login
– Unique usernameuser_email
– Valid and unique email addressuser_pass
– Password (plain text)role
– WordPress user role (e.g., subscriber, customer). Optional fields like first_name and last_name can also be included.
Here’s a basic example of what your CSV file should look like when preparing to import users into WordPress:
user_login,user_email,user_pass,role,first_name,last_name johnsmith,[email protected],Password123,subscriber,John,Smith janedoe,[email protected],Password456,customer,Jane,Doe adminuser,[email protected],SecurePass789,editor,Admin,User
Then, save the file as users.csv and upload it to your WordPress site’s root directory or a folder like /wp-content/uploads/.
Step 2: Create a custom PHP script to import users
Here’s a basic PHP script that reads the CSV and creates users:
<?php // Load WordPress environment require_once( dirname(__FILE__) . '/wp-load.php' ); // Set the path to your CSV file $csv_file = ABSPATH . 'wp-content/uploads/users.csv'; if (!file_exists($csv_file)) { die('CSV file not found at: ' . $csv_file); } $row = 0; if (($handle = fopen($csv_file, "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $row++; // Skip header row and store headers if ($row === 1) { $headers = $data; continue; } // Combine headers with data to create associative array $user_data = array_combine($headers, $data); // Basic validation: check required fields if (empty($user_data['user_login']) || empty($user_data['user_email']) || empty($user_data['user_pass'])) { echo "Row {$row}: Missing required user_login, user_email, or user_pass. Skipping.<br>"; continue; } // Check if username or email already exists if (username_exists($user_data['user_login'])) { echo "Row {$row}: Username '{$user_data['user_login']}' already exists. Skipping.<br>"; continue; } if (email_exists($user_data['user_email'])) { echo "Row {$row}: Email '{$user_data['user_email']}' already exists. Skipping.<br>"; continue; } // Prepare user data array for wp_insert_user $userdata = [ 'user_login' => sanitize_user($user_data['user_login']), 'user_email' => sanitize_email($user_data['user_email']), 'user_pass' => $user_data['user_pass'], // WordPress will hash this automatically 'first_name' => $user_data['first_name'] ?? '', 'last_name' => $user_data['last_name'] ?? '', 'role' => $user_data['role'] ?? 'subscriber', // Default role if not set ]; // Insert the user $user_id = wp_insert_user($userdata); if (is_wp_error($user_id)) { echo "Row {$row}: Error importing user '{$user_data['user_login']}': " . $user_id->get_error_message() . "<br>"; } else { echo "Row {$row}: Successfully imported user '{$user_data['user_login']}'.<br>"; } } fclose($handle); } else { echo "Could not open the CSV file."; } ?>
Place this file in your WordPress root (e.g., import-users.php
) and run it by visiting https://yourdomain.com/import-users.php
.
Step 3: Test and verify imported users
Once the script completes:
- Go to WordPress Dashboard > Users
- Verify that the imported users appear correctly
- Test logging in with one of the new user credentials
- Check that assigned roles and names display properly
Pros and cons of the manual WordPress import users from CSV method
Pros:
- No plugin dependencies
- Complete control over import behavior
- Easier to automate or extend with custom logic
Cons:
- Requires PHP and WordPress knowledge
- Risky if errors exist in the code or CSV
- Lacks user-friendly UI for non-technical users
Let LitExtension Handle the Import for You (Custom Solution)
Running into issues while importing users from CSV? Even with the right format and tools, things don’t always go as planned. Some common problems include:
- CSV formatting errors – Incorrect delimiters, missing headers, or encoding issues
- Duplicate emails or usernames – WordPress skips conflicting records silently or throws errors
- Invalid or missing roles – Using roles that don’t exist on your site can break the import
- Password handling – Some plugins require plain text, others auto-generate or expect hashed formats
If you’re dealing with a large user list, a legacy system, or a messy CSV, consider handing it off to the experts. At LitExtension, we offer custom user migration and CSV import services tailored to your WordPress or WooCommerce setup.
Our team can:
- Clean and map your CSV correctly
- Import users with passwords, roles, and meta fields
- Migrate users from other platforms like Shopify, Magento, or BigCommerce
- Handle WooCommerce-specific customer fields and historical data
Need help importing users to WordPress or WooCommerce? Let us save you hours of frustration — and ensure every user is imported safely, securely, and correctly.
Bonus: How to Export Users to CSV in WordPress
Just as importing users from a CSV is useful, you may also want to export your WordPress users to a CSV file — whether for backup, syncing with other systems, email marketing, or migrating to another site.
One of the easiest tools to use you can consider is Export Users for WordPress. To export your users:
- Install the plugin from Plugins → Add New
- Navigate to Users → Export to CSV
- Choose which user roles to export (e.g., subscribers, customers, editors)
- Click Download CSV
The file will include standard fields like username, email, role, and registration date. If you need to export custom user meta, you may need a more advanced tool.
If your site uses a lot of custom fields (like phone, membership_level, etc.), consider using:
- WP All Export – Offers meta field selection and scheduling (paid add-on required for users)
- Advanced User Export For WP – A niche plugin that supports exporting user meta for specific use cases
WordPress Import Users from CSV: FAQs
How to bulk import users in WordPress?
You can bulk import users in WordPress by using a properly formatted CSV file and a plugin like Import and Export Users and Customers or WP All Import. These tools allow you to upload a CSV, map fields, assign roles, and create users in just a few clicks.
How do I add a user CSV file to WordPress?
First, prepare your CSV file with required fields like user_login
, user_email
, user_pass
, and role
. Then install a user import plugin, upload the CSV via the plugin’s interface (usually under Users > Import), and follow the import wizard to complete the process.
Can I import users with passwords to WordPress using CSV?
Yes — most import plugins support plain text passwords in the user_pass
field. Some plugins also hash passwords during import. If you’re using WooCommerce or membership plugins, check whether password requirements differ.
Will users receive a notification or password reset email after import to WordPress?
Most plugins give you the option to send a welcome email or password reset link after import. Be sure to enable that setting before importing. If not, users won’t be notified automatically and may not know how to access their accounts.
What is the maximum number of users I can import to WordPress?
There’s no hard limit set by WordPress itself, but performance depends on your hosting environment and the plugin used. Some shared hosts may time out on very large files, so consider splitting the CSV into smaller chunks or using tools that support batch imports or cron-based automation.
Can I import WooCommerce customers with order history?
Not with a basic CSV import plugin. You’ll need a migration tool like LitExtension for that. LitExtension can import not only customers but also their order history, billing info, and account data from other platforms into WooCommerce.
Final Words
Mastering WordPress import users from CSV gives you a major advantage when managing large user lists. Instead of wasting time on manual data entry, you can streamline onboarding, ensure accuracy, and scale your site faster.
If you’re comfortable with code, the manual method works well. For most users, though, the import users from CSV plugin offers a reliable, flexible way to get the job done — complete with role assignments, passwords, and user meta support.
For more advanced cases, like importing customers from another eCommerce platform or preserving order data, consider using LitExtension’s custom migration service. Our team can handle the complexity for you securely and accurately.
We hope you found this article insightful and now have a clear understanding of WordPress import users from CSV. For more content like this, be sure to visit the LitExtension blog and join our eCommerce community to gain further insights and connect with fellow business owners.