Search Over 30,000 FREE Plugins from the Official WordPress Plugin Directory Repository

FG SPIP to WordPress

A plugin to migrate categories, articles, news, and images from SPIP to WordPress

This plugin migrates categories, articles, news and images from SPIP to WordPress.

It has been tested with SPIP versions 1.8, 1.9, 2.0, 3.0 and 3.1 and Wordpress 4.7. It is compatible with multisite installations.

Major features include:

  • migrates categories
  • migrates articles
  • migrates news
  • migrates featured images
  • converts SPIP shortcodes

No need to subscribe to an external web site.

Premium version

The Premium version includes these extra features:

  • migrates authors
  • migrates keywords
  • migrates forum as WordPress comments
  • SEO: keeps the SPIP articles IDs or redirects SPID URLs to the new WordPress URLs
  • partial imports : ability to skip some parts of the import: categories, articles, news, users, forum

The Premium version can be purchased on:


The Premium version allows the use of add-ons that enhance functionality:

  • documents migration
  • multilingual content to WPML
  • metas SEO data migration

These modules can be purchased on:

Author Frédéric GILLES
Contributors FrédéricGILLES
Tags convert spip to wordpress, converter, import, importer, migrate spip to wordpress, migrator, spip, spip to wordpress migration, wordpress
  1. fg-spip-to-wp screenshot 1

    Parameters screen

  1. Install the plugin in the Admin => Plugins menu => Add New => Upload => Select the zip file => Install Now
  2. Activate Plugin in the Admin => Plugins Menu
  3. Run the importer in Tools > Import > SPIP
  4. Configure the plugin settings. You can find the SPIP database parameters in the SPIP file config/connect.php
    spip_connect_db($host,'',$user,$password,$database,'mysql', 'spip','');


  • Tested with WordPress 4.7.2


  • Fixed: Images not imported on some servers
  • Tested with WordPress 4.7.1


  • Fixed: Fatal error: Call to undefined function entites_html()
  • Tweak: Code refactoring


  • New: Convert the SPIP table shortcodes to HTML tables
  • Fixed: Existing images attached to imported posts were removed when deleting the imported data
  • Tested with WordPress 4.7


  • New: Allow the medias that return any 2XX code, and not only 200
  • New: Decode the HTML entities in the media filenames before downloading them
  • Fixed: Images and documents not replaced in the chapo


  • New: Convert the SPIP shortcode "_ " to a line break


  • New: Replace multi-levels ordered and unordered lists shortcodes
  • Fixed: Wrong progress bar color


  • Fixed: Wrong encoding with some databases


  • Fixed: The progress bar didn't move during the first import
  • Fixed: The log window was empty during the first import


  • Fixed: The "IMPORT COMPLETE" message was still displayed when the import was run again


  • Fixed: The images protected by a user agent protection were not imported


  • Fixed: Database passwords containing "<" were not accepted


  • Fixed: In SPIP 1.x, some articles, news and categories were not imported due to their encoding in a LONGBLOB field
  • Fixed: Categories with duplicate names were not imported


  • New: Compatibility with SPIP 1.8


  • New: Authorize the connections to Web sites that use invalid SSL certificates
  • Tweak: If the import is blocked, stop sending AJAX requests


  • New: Option to delete only the new imported data


  • Tweak: Change the visibility of function get_status()


  • New: Compatible with SPIP 1.9
  • New: Display the number of data found in the SPIP database before importing


  • Fixed: Wrong number of comments displayed
  • Tested with WordPress 4.6.1


  • Tested with WordPress 4.6


  • Tweak: Code refactoring


  • Fixed: The news date was always the current day


  • Fixed: Display an error message when the process hangs
  • Tweak: Increase the speed of counting the terms


  • New: Add an option to import the medias from a local directory
  • New: Replace the tags by
  • New: Guess the SPIP version even if the database is wrongly encoded
  • New: Sanitize the wrong dates
  • Tested with WordPress 4.5.3


  • New: Prevent the import of duplicate posts
  • FAQ updated


  • New: Run the import in AJAX
  • New: Add a progress bar
  • New: Add a logger frame to see the logs in real time
  • New: Ability to stop the import
  • New: Compatible with PHP 7
  • Tested with WordPress 4.5.2


  • Tested with WordPress 4.5
  • Compatible with SPIP 3.1


  • New: Process the SPIP anchors like [anchor<-]
  • New: Process the SPIP shortcodes -* (unordered list) and -# (ordered list)


  • New: Process the SPIP shortcodes like [anchor_text->img]


  • Fixed: Paragraphs line breaks were removed


  • New: Add a link when we choose "Import introduction in the content"
  • Fixed: Don't add an empty div is the excerpt is empty


  • Tested with WordPress 4.4.2


  • Fixed: Encoding issue of the texte field


  • New: Remove the IDs from the begining of the articles and categories titles
  • Fixed: Encoding issue of the texte field
  • Fixed: The import last indefinitely due to the encoding issue
  • Tested with WordPress 4.4.1


  • Fixed: Fatal error: Call to undefined function add_term_meta()


  • Tweak: Use the WordPress 4.4 term metas


  • Tested with WordPress 4.4


  • New: Convert the SPIP shortcodes <img>, <doc> and <emb>


  • New: Add a link to the FAQ in the connection error message


  • New: Code refactoring
  • New: Update the plugin description


  • New: Add a screen shot
  • New: Add an help screen


  • Initial version

I get the message: "[fg-spip-to-wp] Couldn't connect to the SPIP database. Please check your parameters. And be sure the WordPress server can access the SPIP database. SQLSTATE[28000] [1045] Access denied for user 'xxx'@'localhost' (using password: YES)"

  • First verify your login and password to your SPIP database.
  • If SPIP and WordPress are not installed on the same host, you can do this:
  • export the SPIP database to a SQL file (with phpMyAdmin for example)
  • import this SQL file on the same database as WordPress
  • run the migration by using WordPress database credentials (host, user, password, database) instead of the SPIP ones in the plugin settings.

The migration stops and I get the message: "Fatal error: Allowed memory size of XXXXXX bytes exhausted" or I get the message: “Internal server error"

  • First, deactivate all the WordPress plugins except the ones used for the migration
  • You can run the migration again. It will continue where it stopped.
  • You can add: define('WP_MEMORY_LIMIT', '512M'); in your wp-config.php file to increase the memory allowed by WordPress
  • You can also increase the memory limit in php.ini if you have write access to this file (ie: memory_limit = 1G).

I get a blank screen and the import seems to be stopped

  • Same as above

The media are not imported

  • Check the URL field that you filled in the plugin settings. It must be your SPIP home page URL and must start with http://

The media are not imported and I get the error message: "Warning: copy() [function.copy]: URL file-access is disabled in the server configuration"

  • The PHP directive "Allow URL fopen" must be turned on in php.ini to copy the medias. If your remote host doesn't allow this directive, you will have to do the migration on localhost.

I get the message: "Fatal error: Class 'PDO' not found"

  • PDO and PDO_MySQL libraries are needed. You must enable them in php.ini on the WordPress host.
    Or on Ubuntu:
    sudo php5enmod pdo
    sudo service apache2 reload

I get this error: PHP Fatal error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'

  • You have to enable PDO_MySQL in php.ini on the WordPress host. That means uncomment the line in php.ini

Does the migration process modify the SPIP site it migrates from?

  • No, it only reads the SPIP database.

I get this error: Erreur !: SQLSTATE[HY000] [1193] Unknown system variable 'NAMES'

  • It comes from MySQL 4.0. It will work if you move your database to MySQL 5.0 before running the migration.

I get this error "Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM"

  • You must use at least PHP 5.3 on your WordPress site.

I get this error: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

None image get transferred into the WordPress uploads folder. I'm using Xampp on Windows.

  • Xampp puts the htdocs in the applications folder which is write protected. You need to move the htdocs to a writeable folder.

Do I need to keep the plugin activated after the migration?

  • No

Is there a log file to show the information from the import?

  • Yes. First you must put these lines in wp-config.php:
    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);
    And the messages will be logged to wp-content/debug.log.

The plugin imports data with wrong encoded characters

Don't hesitate to let a comment on the forum or to report bugs if you found some.


  • English (default)
  • French (fr_FR)
  • other can be translated
Version 2.15.0

Requires WordPress version: 4.4 or higher

Compatible up to: 4.7.2

Last Updated 14 Feb 2017

Date Added: 12 Nov 2015

Plugin Homepage


5 stars
9 ratings


Not Enough Data

Works: 0
Broken: 0