This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.



Most WP features are fully supported:

  • More than 50000 lines can be imported/exported (the only limit is your server)
  • Posts, pages, and custom post types
  • Tags, categories, and custom taxonomies
  • Custom fields (simple and complex)
  • Thumbnails
  • Flexible filter system to easily control which fields export
  • Simple User Interface (if you know Excel or another spreadsheet program, you will find this plugin quite easy)
    The plugin should now be usable with most plugins that are fully WordPress compliant.
  • Shortcode to allow frontend download by your visitors if you choose

Learn more here and read the full documentation including a quick start guide and a description of all the kinds of fields you’ll see.


We no longer provide any free support for the following reasons.

If you see value in the plugin, support it!


Refer to the Quick Start Guide.


Frequently Asked Questions are stored on our main website.

Installation Instructions

Refer to the Quick Start Guide.


Mukutulansanja 8, 2019
I was hesitant to try a plugin that hasn't been updated but as I have 3000 entries to tidy I desperately needed to export my site as CSV including tags and categories. This is usually a feature to pay for so I wanted to thank the author for keeping this in the repository. I'm still editing the files so am not sure how the import will go, but essentially I am now abe to strip junk code from entries, remove unneeded information and streamline my blog (including getting it all ready for a domain move (bulk edit url here we go!) I may need another tool to allow me to create new tags and categories but the export has been everything I needed.
Gatonnya 7, 2018
I think this is the only free plugin available to import and export any posts in WordPress. If you can handle some technical things this is the best plugin to import or export unlimited posts even custom posts. Thanks to the author. All the best.
Mugulansigo 20, 2017
As long as you're familiar with the intricacies generally involved in proper CSV formatting and issues related to text file based importing into and exporting from databases, this is the tool you're looking for to shlep content from one site (or host) to another without any need to mess around with database scripting. It's has very clean operation and performs very well. I just can't overstate the importance of the above opening qualifier, so I'm repeating it here: if you're a web pro, this is your life saver. If you don't know what database scripts are, or what CSV actually stands for - stay away. Just... Stay away. And above all, don't blame the author for the inevitable results when you don't heed this sincere but necessary advice. It's a professional tool for professionals; it's a bit like Apple has its particular quirks that design pros learn to understand first, then appreciate, and finally come to evangelize with unrelenting zeal. So there you have it: this plugin literally saves souls (even when you also hate the misuse of "literally"). Anyway. Just remember the first bit of this review and you're good.
Mukutulansanja 23, 2017
Shut the front door! You just saved me HOURS! I needed to pull all posts that were private from a website. I was then planning on going through them to see if they were noindex or not, but this tool pulled that info for me too. Awesome-sauce!
Read all 46 reviews

Contributors & Developers

“WP CSV” is open source software. The following people have contributed to this plugin.


Translate “WP CSV” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


  • Fixed custom field/json bug.

  • Fix PHP notices in strict mode.
  • Fix layout bug on export page.
  • Remove CSV Export Vulnerability.
  • Improve handling of blank custom fields.
  • Fixed exclude none bug.

  • Adding tabbing and split the settings screen into two tabs
  • Improved the type and status filtering to give users full control over what is exported

  • Shortcode added to optionally allow download by visitors, with date range selection on modified field.
  • Fixed bug causing incorrect interpretation of ‘0’ in custom fields.
  • Improved code that tests for the new field naming convention.
  • Moved menus and reworked all screens
  • Added file cleanup function (remove files after 1 day)
  • Added export id to files and throughout code to handle concurrency
  • Replaced download code with new class

  • Post type filtering bug fixed.

  • Fixed mark_done bug.
  • Added option to export/import attachment post types
  • Added check to make sure the uploaded file is smaller than post_max and upload_max PHP ini settings
  • Added modified_date and post_mime_type to exported field list
  • Fixed a small bug with future posts incorrectly being marked as ‘Missed Schedule’
  • Improved AJAX error reporting

  • Fixed bug causing hidden fields to always export.
  • Errors generated during AJAX calls will now be displayed

  • Fixed bug causing fields to not line up correctly sometimes.

  • Fixed bug with hidden custom fields not exporting.
  • Added errors for when an old style import/export file is used.

  • New version to prevent the ‘invalid header’ error that some users were getting on install/upgrade

  • Added a debug setting to trace export operations (import to be added in future)
  • Overhaul of export code to improve handling of fields with the same name (ie a custom field called ‘post_title’)
  • All fields will now be exported with prefixes (ie wp_ID, wp_post_title, cf_this_is_custom_field, tx_post_tag)
  • Modified import to allow import of the new prefixed field names
  • Added code to prevent deprecated warning for inconv_set_encoding call in PHP > 5.6
  • By request, posts in ‘trash’ can now be exported

  • Minor bug fixes related to the ‘no posts found’ problem. (Thank you napcok and mcdorf!)

  • Fixed bug in download_view
  • Eliminated several more error notices
  • mysqli_real_escape_string warnings addressed

  • Fixed bug with permissions setting
  • Changed function name in download_view to prevent a reported conflict.
  • Added a PHP version check before calling of the deprecated iconv_set_encoding function
  • Fixed various PHP Notice errors
  • Changed mysql to mysqli

  • Export should now work for those who have specified a db port in wp-config.php

  • Empty exports will hopefully no longer happen. Bug affecting users with more recent versions of PHP.

  • Improved logic for finding/creating a usable CSV folder, and also now provide better feedback when there are problems.

  • Added fix for security vulnerability

  • Added post status filter (sponsored feature addition)
  • Fixed an incompatibility bug reported for WP 3.9
  • Protocol independent urls for better compatibility when served over HTTPS

  • Enhancement: URL decode taxonomy items before import/export.

  • Fixed bug with taxonomy import causing duplicates under some circumstances
  • Added dropdown to settings to make it possible for non-administrators to access

  • Fixed bug relating to new posts always being ‘published’. Now you can set to ‘draft’ etc for newly created posts if you wish.

  • Fixed bug relating to export of custom post types.

  • Fixed bug with import and export when the separator characters are different to defaults.
  • Fixed bug that was causing settings to be wiped under certain circumstances.

  • Fixed small javascript error that was preventing import and export working for some users

  • Testing of 50000+ records has been done, with some small optimizations.
  • Added report messages to give feedback about memory usage, etc.
  • Plugin now ready to be internationalized (POT file in ‘lang’ sub-folder, please send me MO files in your language).
  • Several more minor enhancements and bug fixes, based on feedback.

  • Will now export posts with ‘pending’ status
  • Misc bugfixes and tidy up.

  • Compatible with WP 3.8
  • Improved look and feel
  • Improved memory management greatly, should now be able to process much larger numbers of posts and adapt better to available resources
  • More helpful error reporting

  • Improved error handling and user feedback for badly formatted taxonomy terms.

  • Added row limit and row offset as a work around for when memory limit/timeouts are being hit
  • Added post and page to the post type filter, for greater control over what exports

  • Enabled export of ‘hidden’ post meta fields
  • Added include/exclude filtering for fields
  • Convert complex (serialized) custom fields to JSON and back

  • Code cleanup
  • Fixed post_author bug (non-existant user ids will now export blank)

  • Fixed minor export bug

  • Added support for custom taxonomies (NOTE: Old export files are not compatible since the column heading names have changed)
  • Added a check for iconv support
  • Tweak to reduce memory footprint (experimental)

  • Added a custom post type filter for export (thanks to Phillip Temple for the idea and for submitting the code)

  • Added error checking and helpful messages when the wrong data is put into the Author field.
  • Improved validation of comma separated category lists

  • Added support for post_author field.

  • Fixed: Error ‘creating default object from empty value’.

  • Enhancement: Plugin will now automatically create a backup folder in one of 4 locations (in order of preference) and add an .htaccess file to prevent unauthorized download.

  • Fixed: Another session bug

  • Fixed: Session bug preventing download of CSVs
  • Fixed: Version string not being updated
  • Added: Automatic search and/or creation of a safe download folder

  • Fixed: mysqli_real_escape_string issue

  • Fixed: minor incompatibility with WP 3.5

  • Fixed: minor incompatibility with PHP 5.4
  • Fixed: small improvement to the download mechanism

  • Made csv file path configurable

  • Initial upload