Exporting Your Site
Exporting generates a complete static HTML/CSS/JS copy of your WordPress site that you can host anywhere. This is the core of what Stelae does.
How Export Works
When you trigger an export, Stelae runs the following process:
- URL discovery. WP-CLI queries your WordPress database to find every published URL — pages, posts, custom post types, archives, category pages, tag pages, author pages, and the sitemap.
- Crawl. An ephemeral export container crawls your WordPress site using httrack, starting from the discovered URLs. It downloads every page and follows links to capture CSS, JavaScript, images, fonts, and other assets.
- Post-processing. The export pipeline fetches any assets referenced by the domain that weren’t captured during the crawl (e.g. images referenced in CSS), downloads Gravatars, and rewrites all URLs to be relative so the archive is portable.
-
Archive creation. The result is packaged as a
.ziparchive and sent back to the management server.
The entire process typically takes 30 seconds to a few minutes depending on the size of your site.
Triggering an Export
From your WordPress admin panel, click the “Deploy” menu item in the sidebar (added by Stelae’s built-in mu-plugin). You have three options:
- Deploy — exports your site and deploys it to your configured target (statichost.eu, Cloudflare Workers, or git). This button is disabled if no deploy target is configured — set one up in the Stelae dashboard first.
- Export Only — generates the static archive without deploying. Use this to preview or download the output.
- Download Latest Export — downloads the most recent export as a
.zipfile.
You can also trigger an export from the Stelae dashboard via the “Export & download” option in the site card overflow menu.
Exports are rate-limited to prevent abuse. You can run up to 3 exports per 15 minutes and up to 450 per month. If you hit the limit, the buttons will be disabled and show how long until you can export again. The limits are generous enough for normal use — even frequent iterative publishing.
What Gets Exported
| Included | Not included |
|---|---|
| All published pages and posts | Draft and private posts |
| Category, tag, and archive pages | wp-admin/ and login pages |
| CSS, JavaScript, and font files | PHP files |
| Images and media uploads | Database content not rendered as HTML |
| Sitemaps (XML) | wp-json/ REST API endpoints |
| RSS feeds (XML) | Dynamic content loaded via AJAX |
| Gravatars (downloaded and localized) | Server-side redirects |
robots.txt, favicon.ico |
.htaccess rules |
Export Best Practices
Preview before exporting
The export captures exactly what WordPress renders. Preview every page you care about in the WordPress admin before exporting. If something looks wrong in preview, it will look wrong in the export too.
Publish all content first
Drafts, scheduled posts, and private posts are not exported. Make sure everything you want on the live site is set to “Published” status before triggering the export.
Check for AJAX-dependent content
Right-click any page in your WordPress preview, choose “View Page Source”, and search for the content you expect to see. If the content is in the HTML source, it will be in the export. If the content only appears in the rendered page but not in the source, it’s being loaded via JavaScript/AJAX and won’t be in the export.
Keep your site lean
Export time scales with the number of pages and the amount of media. A blog with 50 posts exports in seconds. A site with 10,000 pages and thousands of images takes longer. Optimize images before uploading and remove unused media to keep exports fast.
After Export
Once the export completes, you have two options:
-
Download the archive: Get a
.zipfile you can unpack and host anywhere. This always works, regardless of hosting target. - Auto-deploy: If you’ve configured a hosting target (statichost.eu, git push, or Cloudflare Workers), the archive is deployed automatically. See the deployment guide.
After export, your WordPress container becomes eligible for idle shutdown. It will go to sleep after 15 minutes of inactivity, freeing up resources.
WordPress Backup
The static export contains your published site (HTML, CSS, JS, images). If you also want a full copy of your WordPress data — the database, themes, plugins, and uploaded media — use the Backup button on your site card in the dashboard.
Backups are generated on demand. Click the button, wait for the progress indicator
to complete, then download the .zip archive. The archive contains a
MySQL database dump and the full wp-content directory. You can import
this into any standard WordPress installation.
Export = your published static site (what visitors see).
Backup = your raw WordPress data (database + files, for migrating
to another WordPress host).