

The export screen under Tools, with the settings and the export buttons.
Fstyle Static HTML Export crawls your own site and saves every page, together with the CSS, JavaScript, images and other files it uses, as plain HTML files. You can upload the result to any web server or open it locally.
Shared hosting often answers “429 Too Many Requests” when many pages are fetched at once. Instead of skipping those pages, this plugin slows down and retries, and when the export is done it lists the broken internal links and the parts of the site (forms, search, admin-ajax.php, REST API calls) that will not work on the static copy. Everything runs on your own server, with no external service.
Features
wp fsse export to export without the time limits of a web request.The exported files are saved in wp-content/uploads/fsse-export/{date-time}/. The plugin places .htaccess and an empty index.html in that folder so that the files cannot be accessed from outside. On nginx, .htaccess is not used: configure the server so that this folder cannot be accessed from outside.
WP-CLI
wp fsse export [--concurrency=<n>] [--url-mode=<relative|absolute>] [--target=<url>] [--alias=<hosts>] [--exclude=<prefixes>] [--changed] [--resume=<id>] [--dir-index] [--skip-ssl-verify] [--zip] [--json]
wp fsse report <id> prints the result of an export as JSON.
This plugin does not connect to any third-party or external service. It only sends HTTP requests to your own site (the home URL and the domains you list as “Domains treated as this site”) to fetch the pages it exports. No data is sent to the plugin author or anyone else.
The plugin removes some WordPress head links from the exported HTML, such as <link rel="https://api.w.org/">. This only matches the text of that link in your own pages; the plugin never sends a request to api.w.org.