Getting content out of Wix, Squarespace, GoDaddy and Jimdo: what actually works in 2026
Most website builders don't really let you leave. Wix's help centre says blog posts can't be exported to other platforms. Squarespace exports one blog as a WordPress file, with images left as links that “stop working after you cancel”. GoDaddy's builder backups exclude blogs and images. Jimdo says there's “no option for creating a backup of your website yourself”. (Sources for each are on our export reference page.)
We build Decamp, which exports those sites, so we spend our days reading what these platforms publish. Here is what we learned, including two bugs that would have silently lost our users' content.
Read the data the platform already serves
Scraping rendered HTML gets you layout soup. Each builder serves something better:
- Wix: the public site issues a visitor token that the Wix Blog API accepts. Posts come as “Ricos”, a structured rich-content JSON (paragraphs, lists, galleries, tables, embeds) that converts cleanly to HTML. Static pages render on the server if you ask with
?forceSsr=true. - Squarespace: append
?format=jsonto a collection or item URL and you get the item body and metadata. - GoDaddy Website Builder: blog posts are embedded in the page as Draft.js JSON.
- Jimdo Creator: pages are server-rendered stacks of
j-moduleblocks, one class per module type.
Gotcha 1: WordPress silently skips images that share a title
We generate a standard WordPress export file (WXR) and let WordPress's own importer download the images. In a real import, Jimdo sites lost 37 images and GoDaddy sites 20, with no error. The importer treats any item whose title (plus date, when there is one) matches an existing post as “already exists” and skips it. Every Jimdo image is called image.jpg, pages have no date, and a cover image's alt text often equals the post title. A skipped attachment means the post keeps hot-linking the old site, which breaks the day the subscription ends.
The fix: unique titles for every attachment across the file, and distinct timestamps for undated items. Same content, zero skips.
Gotcha 2: Squarespace “website component” blocks
Newer Squarespace sites mark up blocks like this:
<div class="sqs-block website-component-block sqs-block-website-component sqs-block-markdown">Take the first sqs-block-* class as the type and every block becomes “website-component”. On one podcast site that dropped whole episode transcripts (350 words exported instead of 7,633), dropped the audio players, and let “related posts” grids slip in as content. Take the first class that isn't website-component.
Smaller lessons
- Export image files, not links. PNG photos from Wix at 2048px weigh 4 to 6 MB; WebP copies keep transparency at a third of the size.
- Big WordPress imports time out on shared hosting. Splitting the file into 100-item parts, with titles and dates shared with the full file so a re-import still deduplicates, fixes it.
- Comments are reachable: Wix through its comments service (keyed by the blog's internal post id), Squarespace through a public endpoint. Sanitize them: visitor HTML goes straight into WordPress, and the importer doesn't filter it.
- Generate redirects for every host (Redirection plugin, .htaccess, Nginx, Netlify, Vercel, Ghost, Webflow, Squarespace), then check them after the domain moves. We built a free redirect checker for that.
Moving a site?
Decamp does all of the above. The inventory and preview are free.