A powerful, yet simple, CSV importer and exporter for WordPress.



Import posts and pages using your favourite spreadsheet program.


Export all your posts and pages to a convenient CSV format.


Add and remove tags from hundreds of posts at once.

Custom Fields

Manage your custom fields the easy way. Simple and complex custom fields supported.


Add and remove categories from thousands of posts at once. Build complex hierarchies too, if you need to.


You can set your featured images. You can even add images to the body of your post or page.

Custom Post Types

All custom post types and all custom taxonomies supported.

Language Support

All characters from all languages are supported (UTF-8).

Free Updates

This plugin is free, and all updates will be published to the WordPress plugin repository.


You’re welcome to contact us if you require assistance. However, please read the support and donations page before doing so.


Free Download

This is a free open source plugin. You can download it here:

WP CSV Plugin
  1. Dear CPK Web Solutions,

    You guys are really amazing, thank you for making this wonderful plugin that just works! Moved hundreds of products with all the images and custom fields intact, without hiccups! Lifesaver!
    I’m making a donation and I hope all who’ve benefited to do likewise!

  2. I’ve downloaded a test file and it seems after cell AY the data is shifted to the right one column. This seems to be borne out with a single test record import. I tried copying all the data to the right of AY and moving it back one field but that didn’t seem to work too well as there were a few additional fields that apparently didn’t line up. I did not change any columns (add/delete). This is a variant of the GeoPlaces theme that has had some custom work done on it. Is it possible the plugin is not picking up all the field headers?

    • Hi George

      Sorry it’s not working for you, however, due to a lack of support from users, I can’t provide much free support. Based on previous experience with similar bugs, it’s likely that your separator and/or enclosure characters aren’t set to match your settings in WP CSV. If you’re using Excel, you may find another spreadsheet program works better (as mentioned in the Quick Start Guide). Failing that, you’ll need to hire someone to help you, or try a different plugin.

      Best wishes


  3. Possibly the best CSV importer available for wordpress.

    Patrick from epcrating.co.uk

    Thank’s Paul

  4. I’m trying to upload a CSV based on the columns you list here – http://cpkwebsolutions.com/plugins/wp-csv/csv-column-descriptions/

    I have an “id” column where I specify a 13 digit integer as an id. When I have this column the import doesn’t work. If I remove the column then everything uploads fine.

    So the question is – why can’t I specifiy an id for each post? If that makes sense…


    • Hi Dave

      The plugin is designed such that you can only specify the id if the id already exists (ie modify only). If you’re creating new posts, then leave the id blank and wordpress will assign an id automatically for each post. I use wordpress functions to create/update posts, and that’s how they work. Sorry if it’s not what you need.

      Best wishes


  5. Hey – great plugin. Just a quick question. Where do the files get saved? Are they on the server or are they deleted after download. I’d like to secure this folder if it exits.

    Thanks again. Cheers

    • Hi Gavin

      Sorry, took me a while, but I’ve modified the FAQ to cover this question a little better.

      Best wishes


  6. This plugin has helped me add/edit over 1700 posts to the site I’m working to build out. It has been the single biggest reason the site is getting the positive response it has.

    Paul, YOU have played a big role in the site’s success. I’m off to make a donation to you.

    Thank you so much

    • $50 donation made. The value of your plugin has been FAR more than that (am doing the site as a volunteer – no $$ coming in :)

      I will create an “Acknowledgements” page and give you proper credit for the role your plugin has played in getting the site built.

      Thanks again Paul!!

      • Great to hear it helped you, John! Makes a difference to know someone is actually getting some use out of the plugin, especially since your site is for such a worthy cause.


    • Thanks so much for the feedback, and also for the donation. I hope your site continues to grow and help people.


  7. Hi,
    Is the plugin supports the repeating fields (like wp-types or ACF) and how to import that type of content?
    Kind regards

    • Hi Zak

      I haven’t used those plugins and I haven’t tested repeating fields, so I’m not sure and for the sake of simplicity, I’ll just say no it doesn’t.

      Best wishes


  8. Ahh, thanks for the prompt. As I was seeing it formatted on multiple lines when I opened in Notepad as well, I was confused. Used google Docs to import data and then download in xlsx and I’m all good now – just have to ensure that when I then recode the csv that it saves correctly before uploading!

  9. Hi,
    Great easy export tool, but on first try I’m running into an issue.

    When I export, the post_content field only shows the first line of each post. All subsequent lines of text from the post come through as individual lines in the csv.

    So I end up something like this:

    1 , abc, abc, The first line of post
    Second line of post
    third line of post
    2 , abc, abc, The first line of post
    Second line of post
    third line of post

    • Hi Kyle

      The most common cause of that is your spreadsheet delimiter/enclosure characters not matching your WP CSV settings.

      If you look at the exported file in a simple text editor you should see something like the following format:


      The ” helps it break the above into 3 columns correctly.

      However, it sounds like your spreadsheet is opening as 5 columns:


      So my guess is that your spreadsheet needs to be configured to use ” as the enclosure character (or whatever you have it set to).

      Another option is to use the free Libre Open Office Calc spreadsheet. It will always prompt you for separator and enclosure upon opening.

      Best wishes


  10. Hello,

    We use Modern Tribe Pro Events Calendar and want to use this plug-in import event information.
    Will this plug-in work for that?

    • Hi Scott

      Sorry, I’m not familiar with that plugin. However, if it uses standard WordPress mechanisms to store data, then it should be compatible.

      Best wishes


  11. Hi How to import Italian special char data.example my csv file has “è,à”
    when i try to import,until this character importing after that now able to import.please suggest how to get this done.

    • The plugin supports UTF-8 (pretty much all languages and characters). So, perhaps try using a UTF-8 compliant spreadsheet like ‘Libre Open Office (FREE)’ or even Google Office spreadsheet. Excel should work in many cases, but I’m less confident since it isn’t 100% UTF-8 compliant.

      Best wishes


  12. Great plugin. I’m attempting to export and then import data from “postmeta” as well. I’m wondering if there is some customization that can be done to extend the plugin. I notice it works with postmeta for thumbnails. Would you have pointers on how to proceed? Thanks!

    • Hi Tel

      It sounds like you just want to import some custom fields. If so, then the plugin does support that. The plugin is designed to let WP and your spreadsheet do most of the heavy lifting.

      So, the best way to add the custom fields is in the WordPress post edit screen. You only need to do it once and then next time you export, new columns will appear.

      I hope that helps.

      Best wishes


      • Excellent tip – almost there! I am trying to put in data for longitude/latitude (it is a mapping theme for wordpress) and for some reason the serialized data is “re-serialized” when I import it with WP CSV. I hear this is might be Word Press problem, but i’m wondering if the plugin can help with this in any way. I did not find any “serialize()” in the source files. Thanks!

        • Functions like update_post_meta automatically serialize/unserialize data, but I’m not sure there’s much you can do to benefit from that without modifying the plugin. I’ve contacted you directly.

          Best wishes


  13. Awesome plugin and thank you it saved me a ton of time. Only thing was though, I went through and set post_author field for the correct author for each post, but when I imported it these were ignored and all posts were set to post_author = 1. Luckily it wasnt many so I manually edited them but for those wondering, is there a way to keep the post_author field accurate?

    FYI I tried with and without ID column and no effect, I also uploaded without ID column to get WP to set new post ID’s, then exported and edited manually each row to correct the post_author column and reuploaded but it set all post_author fields to 1 again.

    • Hi David

      Thanks for pointing this out. I’ve uploaded version 1.3.6 to add this field in. As a general rule, if the field doesn’t export, then it isn’t supported (yet).

      FWIW, the plugin and its ancestors have actually never supported this field. When I first created the plugin several years ago, my goal was to keep the number of columns to a minimum so this is one of half a dozen fields that got the chop. It really should be available however, so I appreciate you taking the time to give feedback.

      Best wishes


  14. I wish to move my current blog http://www.peacefultable.blogspot.com to wordpress. I know nothing about conmputer so am reading WordPress for Dummies. Would this plugin be something I could use to migrate my old blog date onto wordpress. My new site is peacefultable.net. Thank you.

    • Hi Amanda

      Not without a lot of work, but you could try this:


      Then in your WordPress dashboard, choose Tools > Import and follow the prompts. We haven’t tried this ourselves, but hopefully it will help you.

      If you run into any problems or just don’t have the time for the WordPress learning curve, we provide a cost effective migration and setup service. Please message us via the contact page if you’re interested.

      Best wishes


Leave a Reply