Rob Pickering moved robpickering.com from Squarespace to WordPress on 20 July 2010. He published the write-up on 27 July 2010. The live page’s modified date is 6 September 2026. An Internet Archive capture from 19 August 2019 still has the same clicks. The screens in that post are the July 2010 product. Squarespace’s current export guide describes a different one, so copying his clicks in 2026 sends you to menus that are gone.
He wanted control of the site. Squarespace had no tag cloud widget. He did not think he could add Mint, or any analytics besides Squarespace’s own, without a lot of work. A friend asked him to fix SSH support in WordPress. He liked that install, set one up for the blog, and then had to get the posts out.
Each Journal exported alone
Squarespace called a blog page a Journal. A site could have several. Each Journal had its own navigation tab, and you exported them one at a time.
He looked under Website Management, then Data & Media. Data Snapshots is in that area. It only makes a backup, so there is no import file there for WordPress. He calls that a dead end.
The export lived on the page. Structure Editing Mode, then configure this page, then the bottom of Journal Page Configuration. Data Export, then Export Blog Data. Repeat that for every Journal. The download is a .export.txt.html file. He says it is Movable Type HTML, and that it holds the content, the authors, and the comments.
The import prints one line per post
He says to create the Squarespace authors on WordPress before the import, if you want the bylines to match on the way in. The importer also asks you to map authors. You can point every post at one account and fix the bylines later. WordPress can create the accounts during the import instead. He says that option is better than what Squarespace would do.
In the admin he used, the path was Tools, then Import, then MoveableType and TypePad. That is his spelling of the menu. If the plugin was missing, WordPress offered to install it. You pick the .export.txt.html file and assign authors. WordPress then prints a line for each article it imports. An empty list means nothing was imported.
Published, and still pointing at Squarespace
Status is copied, so a post that was Published on Squarespace is Published on WordPress. He wanted those flipped to Draft straight away, because the media had not moved.
The file does not contain the images. He dragged each one to the desktop on his Mac, then uploaded it into the post. He calls that the worst part of the job, and he asked readers if they had a better way.
The posts can still show their pictures, because the image addresses point at Squarespace and the browser loads them from the old site. Move the domain and those pictures break, so re-upload before that change. He does not give a post count, an image count, a downtime number, or a redirect list.
The current file is WordPress XML, and it holds one blog
Squarespace’s guide was last updated on 9 October 2026. The site has to be published, and site availability has to be Public. A trial site cannot export.
Open the Import & export content panel. Click Export, then the WordPress icon. They tell you to click that icon even if you are not importing into WordPress, because the download only exists as WordPress XML. More than one blog page means you pick a primary blog in a dropdown. Only that blog is in the file. Processing can take a few minutes. Download the .xml, or click Clear and discard it.
You also cannot import that file into a different Squarespace site. They say that leaves broken image links.
The file includes layout pages, and one blog page with all of its posts and up to 1,000 comments per post. It includes text blocks and image blocks. Text from other blocks, such as embed and Instagram, comes across with minimum structure. Gallery pages come across, including York project pages on version 7.0.
The guide’s skip list is album, cover, index, info, calendar, portfolio, and store pages, plus page headers, footers, and sidebars. Any blog beyond the primary one is skipped, and so are dropdowns, audio blocks, product blocks, and video blocks. Drafts, style settings, and custom CSS stay behind too.
Squarespace’s reason is that much of the product is their JavaScript and CSS, so it never enters the file. A linked PDF can sit in the XML and still fail to import into WordPress. For that case they point at WordPress.com’s Squarespace import guide.
The Squarespace → WordPress playbook covers the route list, plus the drafts and the shop this file skips.
Reference links on the current importer
Image blocks are in the current XML. Getting the file bytes onto WordPress is a second step, which the 2010 export never did.
Squarespace says a self-hosted site using the WordPress Importer plugin might not migrate images. WordPress can store reference links, and those links stop working after you cancel Squarespace. Their preferred path is WordPress.com, which copies the images onto WordPress servers. Open the Media Library afterward and check the files are actually there. If some are missing, they tell you to contact WordPress. You can also download the files and upload them, which is what Rob did.
WordPress.com’s guide, reviewed on 22 October 2026, says the Squarespace site has to stay public through the export and the import, or the images do not transfer. Images that were already external links may not come through. You upload those by hand, because the import copies files the Squarespace site is still serving.
The plugin directory lists WordPress Importer 0.9.7, tested up to WordPress 6.8.12, last modified on 20 October 2026. The same page shows the warning that it has not been tested with the latest three major releases. It also documents import_allow_fetch_attachments. Return false from that filter and the importer will not download attachments.
A large XML can die as a blank screen. The FAQ’s example is Fatal error: Allowed memory size of 8388608 bytes exhausted, which is 8 MB. Split the file, or ask the host to raise PHP’s memory limit. An empty list in 2010 meant the Movable Type import had brought in nothing. A blank screen on this plugin can mean the host killed the script for memory.
Authors, permalinks, and the shop
On WordPress.com, several authors in the XML means you map each one to a user on that site. A file with no author list assigns every post to the account that runs the import. The guide never describes creating a user for each Squarespace author. That auto-create option was the importer Rob used in 2010.
Permalinks are optional. They need a plugin-enabled plan: Personal, Premium, Business, or Commerce. The free plan does not include Settings → Permalinks. If Squarespace posts lived at /blog/ plus the title, the custom structure they show is /blog/%postname%. Save it, and the imported posts pick up that shape.
Store pages are outside the XML. Products move as a CSV. In Squarespace that is Commerce, then Inventory, then Export all. On WordPress.com you install WooCommerce, open Products, then Import, and check the column mapping. Unrecognized columns are skipped. Run the importer, and do not refresh the tab while it runs.
If the Squarespace subscription has already expired, reactivate it before you export. Squarespace says the content may already be deleted, depending on how long the site has been expired. After the import works, you can cancel. Do that after the Media Library check, because Squarespace says those reference links stop working once the site is cancelled.