{"id":291388,"date":"2026-03-30T13:25:31","date_gmt":"2026-03-30T13:25:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wpstatic\/"},"modified":"2026-03-30T18:01:30","modified_gmt":"2026-03-30T18:01:30","slug":"statixly","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/statixly\/","author":16824352,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.2","stable_tag":"1.0.2","tested":"6.9.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Statixly","header_author":"Anindya Sundar Mandal","header_description":"Generate a fast, secure, static HTML version of your WordPress website. Export to ZIP.","assets_banners_color":"","last_updated":"2026-03-30 18:01:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/speedify","rating":0,"author_block_rating":0,"active_installs":0,"downloads":70,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"speedify","date":"2026-03-30 13:25:06"},"1.0.2":{"tag":"1.0.2","author":"speedify","date":"2026-03-30 18:01:30"}},"upgrade_notice":{"1.0.2":"<p>Recommended update. Improves plugin deletion reliability by fixing uninstall bootstrap loading.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1","1.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Track the export progress in real-time with Export Status Log.","2":"Export, Download, and Delete buttons."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[146,169165,247,600,57011],"plugin_category":[52,54],"plugin_contributors":[167418],"plugin_business_model":[],"class_list":["post-291388","plugin","type-plugin","status-publish","hentry","plugin_tags-cache","plugin_tags-jamstack","plugin_tags-performance","plugin_tags-security","plugin_tags-static-site-generator","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_contributors-speedify","plugin_committers-speedify"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/statixly.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Statixly helps you create a static copy of your WordPress website, facilitating faster content delivery and reducing the security risks on production hosting.<\/p>\n\n<p>The admin screen provides the following capabilities:<\/p>\n\n<ul>\n<li>Start a static export job<\/li>\n<li>Monitor live export status in real time<\/li>\n<li>Pause, resume, or abort the export<\/li>\n<li>Download the generated static site as a ZIP file<\/li>\n<li>Download or delete export logs<\/li>\n<li>Delete temporary export directories<\/li>\n<\/ul>\n\n<p>Statixly systematically crawls website URLs, renders content, rewrites links for static output, and packages the results for deployment.<\/p>\n\n<h4>Typical workflow<\/h4>\n\n<ol>\n<li>First, build and set up your site as you normally do in WordPress. Make sure all content and settings are finalized before exporting.<\/li>\n<li>Next, open the Statixly admin screen and select the <strong>Generate\/Export Static Site<\/strong> button to start the export process.<\/li>\n<li>After the export finishes, download the generated ZIP file containing your static website.<\/li>\n<li>Extract the files from the ZIP archive. Upload the extracted files to your chosen static hosting provider. For example, use your website's document root on a web hosting server, Cloudflare Pages,  GitHub Pages, AWS S3, etc.<\/li>\n<\/ol>\n\n<h4>Important Requirements<\/h4>\n\n<ul>\n<li>If the current WordPress website is on example.com and you want to make the static website available on example.com as well, move the WordPress website to a subdomain and protect it with HTTP Basic Auth, or move it to your localhost computer using a backup and migration plugin such as Duplicator.<\/li>\n<li>Permalink structure must not be set to <strong>Plain<\/strong>.<\/li>\n<li>Keep the Statixly export tab open while export is running.<\/li>\n<\/ul>\n\n<h4>Not for e-commerce, etc.<\/h4>\n\n<p>Statixly will not work on any WordPress website that generates content dynamically based on user interaction, e.g., an e-commerce or subscription-based website.<\/p>\n\n<p>Contact forms will not work. The contact form requires immediate backend processing upon submission by the user. However, this is on our roadmap.<\/p>\n\n<h4>Advanced Opt-In Options<\/h4>\n\n<p>Statixly includes two optional safety\/compatibility flags (both disabled by default):<\/p>\n\n<ul>\n<li><p><code>statixly_prefer_temp_storage_above_document_root<\/code><br \/>\nSet to <code>true<\/code> (in the options table) only if you explicitly want Statixly working directories outside <code>wp_upload_dir()<\/code>. By default, Statixly uses WordPress uploads paths.<\/p><\/li>\n<li><p><code>statixly_allow_insecure_local_http_fetch<\/code><br \/>\nSet to <code>true<\/code> (in the options table) only for local\/self-signed certificate environments where same-site HTTPS fetches fail TLS verification. This disables SSL verification for local same-site fetches.<\/p><\/li>\n<\/ul>\n\n<h4>Need Help?<\/h4>\n\n<p>If you face any issues after installing the Statixly plugin, please open a support ticket with detailed information, and we will be happy to fix the issue.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to the plugins folder (<code>wp-content\/plugins\/<\/code>), or install it through the WordPress Plugins screen, click 'Add Plugin', and search with <strong>Statixly<\/strong>.<\/li>\n<li>Click the 'Activate' button, or activate the plugin from the <strong>Installed Plugins<\/strong> screen.<\/li>\n<li>Open <strong>Statixly<\/strong> from the WordPress admin menu.<\/li>\n<li>Click the <strong>Generate\/Export Static Site<\/strong> button and wait for completion.<\/li>\n<li>Download the ZIP and deploy the exported files to your chosen host.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20replace%20my%20live%20wordpress%20site%20automatically%3F\"><h3>Does this plugin replace my live WordPress site automatically?<\/h3><\/dt>\n<dd><p>No. Statixly creates a static export for you to deploy manually.<\/p><\/dd>\n<dt id=\"why%20can%20i%20not%20start%20an%20export%3F\"><h3>Why can I not start an export?<\/h3><\/dt>\n<dd><p>Common reasons:\n* Your permalink structure is set to <strong>Plain<\/strong>.\n* File permissions prevent writing inside the uploads\/temp directories.\n* Another export job is currently active.<\/p><\/dd>\n<dt id=\"can%20i%20pause%20and%20continue%20later%3F\"><h3>Can I pause and continue later?<\/h3><\/dt>\n<dd><p>Yes. Export jobs can be paused and resumed from the export screen.<\/p><\/dd>\n<dt id=\"can%20i%20download%20export%20diagnostics%2Flogs%3F\"><h3>Can I download export diagnostics\/logs?<\/h3><\/dt>\n<dd><p>Yes. Logs can be downloaded using the <strong>Download Export Log<\/strong> button, and you can include system information using the 'Include\/Append system information' checkbox.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: Uninstall flow now reliably loads required helper functions before cleanup.<\/li>\n<li>Improvement: Kept uninstall cleanup logic centralized by reusing existing helper APIs instead of duplicating cleanup behavior.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Renamed plugin to Statixly.<\/li>\n<li>Security: Added path traversal detection to reject unsafe URLs during export.<\/li>\n<li>Security: Blocked export of PHP and other server-side executable files.<\/li>\n<li>Security: Added symlink escape prevention during log file and directory deletion.<\/li>\n<li>Security: Refactored SSL verification handling for local HTTP fetches \u2014 insecure fetches are now only permitted when statixly_allow_insecure_local_http_fetch is explicitly and correctly set.<\/li>\n<li>Feature: Export job now enqueues allowed static files from the site document root, excluding PHP files.<\/li>\n<li>Feature: Implemented auto-resume functionality when connectivity is restored during an export, with configurable retry attempts and delays.<\/li>\n<li>Feature: Added support for two advanced opt-in flags \u2014 statixly_prefer_temp_storage_above_document_root and statixly_allow_insecure_local_http_fetch.<\/li>\n<li>Improvement: Introduced statixly_get_option_bool helper for consistent boolean option retrieval across the codebase.<\/li>\n<li>Improvement: Minimum required PHP and WordPress versions are now defined as plugin constants for more maintainable version checks.<\/li>\n<li>Improvement: Upload directory handling now supports explicit opt-in for above-webroot temporary storage with clearer error logging.<\/li>\n<li>Improvement: Uninstaller now removes directories based on the configured upload path for thorough cleanup.<\/li>\n<li>Improvement: Installation timestamp now uses WordPress current_time() for consistency.<\/li>\n<li>Improvement: Few export log messages in the admin UI are now translatable.<\/li>\n<li>Fix: Moved admin.css to assets\/css\/ and updated the enqueue reference accordingly.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial stable release.<\/li>\n<li>Added admin export interface with live status updates.<\/li>\n<li>Added start, pause, resume, and abort export controls.<\/li>\n<li>Added static ZIP download and export log download.<\/li>\n<li>Added tools to delete logs and temporary export directories.<\/li>\n<\/ul>","raw_excerpt":"Generate a static HTML version of your WordPress website and download it as a ZIP archive.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/291388","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=291388"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/speedify"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=291388"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=291388"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=291388"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=291388"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=291388"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=291388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}