tutorialWordPressStatic SiteHTML

How to Clone Any WordPress Site to Static HTML

How to Clone Any WordPress Site to Static HTML

Want the look of your WordPress site without the WordPress complexity? You can convert any WordPress website into static HTML files, preserving the design while eliminating security issues, maintenance, and slow performance.

This guide covers three methods from simple to advanced.


Why Convert to Static HTML?

WordPress IssueStatic HTML Solution
Slow page loadsInstant loading
Security vulnerabilitiesNothing to hack
Plugin updatesNo plugins needed
Database maintenanceNo database
Hosting costsFree/cheap hosting
Downtime risk99.99% uptime

What You'll Get

The conversion creates:

  • Standalone HTML files for every page
  • CSS files for styling
  • JavaScript files for functionality
  • Images and media files
  • Complete folder structure

Your site looks exactly the same but runs on simple files instead of PHP + MySQL.


Method 1: Simply Static Plugin (Easiest)

Best for: Sites under 500 pages, one-time exports

Step 1: Install the Plugin

1. Go to Plugins → Add New

2. Search for "Simply Static"

3. Install and activate

Step 2: Configure Settings

Go to Simply Static → Settings:

Replacing URLs:

  • Choose "Absolute URLs" for hosting elsewhere
  • Or "Relative URLs" for flexible hosting

Delivery Method:

  • "Local Directory" saves to your server
  • "ZIP Archive" downloads a ZIP file

Include/Exclude:

  • Check "Include 404 page"
  • Add any URLs to exclude (admin pages, etc.)

Step 3: Generate Static Files

1. Go to Simply Static → Generate

2. Click Generate Static Files

3. Wait for the process to complete

4. Download the ZIP file

Step 4: Deploy

Upload files to:

  • Netlify (drag and drop)
  • Vercel (connect Git repo)
  • Any web hosting
  • GitHub Pages (free)

Limitations

  • Dynamic features won't work (search, forms, comments)
  • Large sites may timeout
  • Free version lacks some features

Method 2: WP2Static Plugin (More Control)

Best for: Medium sites, more customization needed

Step 1: Install WP2Static

Download from wp2static.com or WordPress plugin directory.

Step 2: Configure Detection

Detect Settings:

  • Posts
  • Pages
  • Custom post types
  • Category/tag archives
  • Media files

Step 3: Configure Processing

URL Processing:

  • Replace WordPress URLs with destination URLs
  • Handle protocol (HTTP vs HTTPS)
  • Process CSS and JS files

Step 4: Deploy Options

WP2Static supports direct deployment to:

  • Netlify
  • GitHub Pages
  • AWS S3
  • Cloudflare Pages
  • ZIP download

Advanced Features

  • Crawl-based detection (finds all links)
  • Custom URL additions
  • Scheduled exports
  • Add-ons for specific hosts

Method 3: HTTrack (Manual Crawling)

Best for: Any site, maximum control, sites you don't own

HTTrack is a free website copier that works on any site - not just WordPress.

Step 1: Download HTTrack

Get it from httrack.com (Windows/Linux) or use the command line version.

Step 2: Create a New Project

1. Open HTTrack

2. Click Next to create new project

3. Enter project name and path

4. Add your website URL

Step 3: Configure Options

Important settings:

Scan Rules:

  • Set maximum depth
  • Include/exclude patterns
  • File size limits

Browser Identity:

  • Set user agent (some sites block crawlers)

Connection:

  • Number of connections
  • Download speed limits

Recommended settings for WordPress:

Maximum depth: 10

Maximum site size: Unlimited

Include: .css, .js, .jpg, .png, *.webp

Exclude: /wp-admin/, /wp-login

Step 4: Start Crawl

Click start and wait. Progress shows:

  • Pages downloaded
  • Files saved
  • Errors encountered

Step 5: Clean Up

After crawl completes:

1. Check for broken links

2. Remove unnecessary files

3. Fix any path issues

Command Line Version

For automation:

httrack "https://your-wordpress-site.com" \

-O "/output/folder" \

-v \

-s0 \

--depth=10 \

-.css -.js +.jpg +.png +*.webp


Handle Dynamic Features

Static HTML can't run PHP, but you can replace dynamic features:

Contact Forms

Before: Contact Form 7, Gravity Forms

After:

1. Use Formspree - add their form action

2. Use Netlify Forms - add data-netlify="true"

3. Use Basin - form endpoint service

Example replacement:

Search

Before: WordPress search

After:

1. Pagefind - fast static search

2. Algolia - powerful hosted search

3. DuckDuckGo Site Search - simple embed

Comments

Before: WordPress comments

After:

1. Disqus - popular, has ads

2. Giscus - GitHub-based, free

3. Cusdis - privacy-focused

Newsletter Signup

Your email provider's embed code works on static sites:

  • Mailchimp embed forms
  • ConvertKit forms
  • Buttondown forms

Just copy the HTML and paste into your static files.


Fix Common Issues

Issue: Missing Images

Cause: Images loaded via JavaScript or lazy loading

Fix:

1. Disable lazy loading temporarily

2. Scroll through site before export

3. Manually check image paths

Issue: Broken CSS

Cause: CSS using absolute URLs

Fix:

1. Search and replace old URLs

2. Use relative paths

3. Check @import statements

Issue: JavaScript Errors

Cause: Scripts expecting WordPress backend

Fix:

1. Remove WordPress-specific scripts

2. Replace with static alternatives

3. Check console for specific errors

Issue: Missing Pages

Cause: Pages not linked or behind JavaScript

Fix:

1. Add pages to include list manually

2. Ensure all pages are linked somewhere

3. Check robots.txt isn't blocking pages


After Export: Hosting Options

Free Hosting

PlatformDeploymentBest For
NetlifyDrag & dropEasy deploys
VercelGit integrationDevelopers
GitHub PagesGit pushSimple sites
Cloudflare PagesGit integrationGlobal speed

Deployment Steps (Netlify)

1. Go to netlify.com

2. Sign up for free

3. Drag your folder to the deploy zone

4. Your site is live!

To update:

  • Upload new files
  • Or connect to Git for automatic deploys

Automation: Keep Static Site Updated

If your WordPress content changes, automate exports:

Using WP2Static + Webhooks

1. Configure WP2Static

2. Set up webhook trigger

3. Deploy to Netlify/Vercel via webhook

Using Cron Jobs

Run export every night at midnight

0 0 * cd /path/to/site && wp simply-static run

Using CI/CD

Example GitHub Action:

name: Export WordPress

on:

schedule:

- cron: '0 0 *'

workflow_dispatch:

jobs:

export:

runs-on: ubuntu-latest

steps:

- name: Export site

run: |

# Your export script here

httrack ${{ secrets.WP_URL }} -O ./dist

- name: Deploy to Netlify

uses: netlify/actions/cli@master

with:

args: deploy --dir=dist --prod


When to Use Each Method

ScenarioBest Method
Quick one-time exportSimply Static
Regular exports neededWP2Static
Site you don't controlHTTrack
Large site (1000+ pages)WP2Static + add-ons
Need to preserve everythingHTTrack

The Better Long-Term Solution

Converting to static HTML is a great first step, but for ongoing maintenance consider:

Migrating to a proper static site generator:

  • Next.js
  • Astro
  • 11ty

Benefits:

  • Easy content updates (Markdown files)
  • Components and templates
  • Automatic optimization
  • Modern developer experience

Learn about migrating properly →


FAQ

Q: Will my WordPress plugins work?

No. Plugin functionality needs to be replaced with static alternatives or removed. See contact form alternatives →

Q: Can I update content on the static version?

Not without re-exporting or switching to a proper static site generator. Learn about Next.js →

Q: Is this legal for any site?

Only clone sites you own or have permission to copy. Cloning others' sites may violate terms of service or copyright.

Q: What about e-commerce sites?

E-commerce requires dynamic features. Consider Shopify or headless commerce instead.


Conclusion

Converting WordPress to static HTML gives you:

  • Instant performance - no server processing
  • Perfect security - nothing to hack
  • Free hosting - static hosts are cheap/free
  • Same design - looks identical

Choose your method based on needs:

1. Simply Static - easiest, one-time export

2. WP2Static - more control, deployment options

3. HTTrack - any site, maximum control

For a more maintainable solution, consider migrating to a static site generator instead.

Related guides:

Try our automated WordPress export tool →

Share:

Related Articles

View all

Ready to Migrate Your WordPress Site?

Use our free tool to export your WordPress content in minutes.

Start Free Migration