BLACK FRIDAY
Save 59% on PageForge Annual $191/year $485/year
Claim 59% Off →
Distan icon
Actively maintained Tested with WP 7.1 #14 in deploy

Distan

Author in WordPress, deliver static HTML — built for handing over files, not a CMS. No database, and no deploy credentials, in the deliverable.

Active installs<10New
Downloads · 30d362▼ -27.9% vs prev. 30d
Rating—0 reviews
Health score64/100Good
All-time downloads1.1KSince Jul 2026
Support resolved—No recent threads
RequiresWP 6.0PHP 8.0+
Downloads · 7d21▼ -34.4% week over week
Our verdict

Solid choice

Distan is a solid plugin choice in 2026, with a few things worth checking first. Was last updated 3 weeks ago, and scores 64/100 on our health check.

  • Actively developed — last update 3 weeks ago
  • Tested with the latest WordPress (7.1)
  • Small user base (<10 active installs)
  • Very few reviews so far

How does it stack up?

Side-by-side on installs, updates, ratings & support

Daily downloads

132639Jul 28Aug 29Oct 1
Yesterday6
Daily average (1y)16
Peak day53Aug 1, 2026
Last 12 months1.1K

Download spikes usually follow a new release — each site that auto-updates counts as a download.

Rankings

Where Distan stands today

WordPress.org search rankings

Live position in the plugin search, top 100
KeywordPositionCompeting pluginsCategory
deploy >100 989 Best deploy plugins →
headless >100 471 Best headless plugins →
jamstack #10 21 Best jamstack plugins →
static export >100 884 Best static export plugins →
static site generator >100 366 Best static site generator plugins →

About Distan

From the official readme · v1.8.0

Description

Distan turns WordPress into a build environment for static HTML deliverables. You author in WordPress, then export clean, self-contained HTML that runs anywhere. No WordPress, no PHP, and no database are required on the production server.

Most static-export plugins mirror a live WordPress site and keep it running behind the scenes. Distan is built for the opposite case: the HTML files themselves are the deliverable, and WordPress stays on the developer’s side and is never published. When an update is needed, you edit in WordPress, regenerate, and hand over the difference. (We think of it as “headloss”: the head — the static HTML — goes to production, while the body — WordPress — stays in the workshop.)

This suits people who deliver files, not a CMS — for example a recruitment site placed under a subdirectory of an existing corporate site, where adding another WordPress install is not an option.

How Distan is different

  • It does not deploy for you, and holds no credentials. Distan writes files and stops there. Deployment is wired through hooks (distan_after_generate, distan_dispatch), so you connect your own rsync, git push, FTP, or CI. Nothing to trust with your server keys.
  • It enumerates, it does not crawl. Distan generates the pages WordPress already knows about, rather than spidering links. The result is predictable and light — no queue, no database tables, no build daemon.
  • It stays small. No bundled framework, no vendor tree, no schema migrations. Easy to read, easy to audit, and nothing left behind when you remove it.

What it does

  • Generates every published page, the posts archive with pagination, category archives with pagination, and a 404 page.
  • Rewrites internal links as document-relative paths, so the output can be opened directly and placed in any directory.
  • Flattens WordPress paths: theme files move to assets/, uploads move to media/. The wp-content directory disappears from the deliverable.
  • Cleans the HTML: removes the generator tag, REST API links, oEmbed, emoji scripts, speculative loading rules, and the development noindex.
  • Keeps cache-busting query strings on assets, so file names stay stable and can be overwritten over FTP.
  • Optional sitemap.xml and a minimal robots.txt, built from the pages actually generated, using the production URL.
  • Optional Markdown export (content.md) that combines every page’s main content into one file — handy for feeding a site into AI tools (Gemini Notebook / NotebookLM, and similar).
  • Exports a single page as a starting template for an outside coder: that page plus only the assets it references (following stylesheet url() and @import), laid out at their real paths, with a README of ground rules. In-page markers can drop the block-library CSS (distan:no-block-styles) or drop scripts and styles under a path prefix (distan:drop-assets).
  • Surfaces URLs that WordPress core’s sitemap lists but enumeration missed — a plugin’s thank-you page, a virtual route — and lets you include or ignore each. The choice is remembered across runs, so there is no filter to hand-write.
  • Reports a diff after each run — which files were added, changed, or need removing from production — and can hand you a ZIP of just the changed files, with a list of what to delete.
  • Audits internal links and reports any whose target was not generated, and compares against WordPress core’s sitemap to surface pages that enumeration may have missed.
  • Optionally bundle extra files or directories that nothing links to (distan_extra_assets) — for assets referenced only from inside a script, such as a JSON file fetched by JavaScript.
  • Downloads the result as a ZIP.

Requirements

The only hard requirement is loopback HTTP (the site being able to request itself). No direct SQL, no exec(), no external binaries, no external APIs. It runs on Local, MAMP, XAMPP, DDEV, Docker, or shared hosting, and works offline.

Not for every case

Distan is not suitable when the client updates the site themselves, or when forms, search, comments, or membership are required. If you need built-in deployment to many destinations, scheduled or change-based publishing, or managed static hosting, a larger tool such as Simply Static or Staatic will fit better.

Installation

  1. Upload the plugin to wp-content/plugins/, or install the ZIP from Plugins → Add New → Upload.
  2. Activate it.
  3. Open the Distan menu, check the environment, set the public URL, and generate.

The output is written to wp-content/uploads/distan/dist/.

Frequently asked questions

Does the production server need WordPress?

No. The output is static HTML. That is the point: there is no application to attack or maintain on the production server.

How do I deploy the result?

Distan does not deploy for you and never stores server credentials. It fires distan_after_generate when a run finishes, and an optional distan_dispatch action when you press the deploy button after reviewing the output. Hook either one to your own rsync, git push, FTP, or CI step. You can also just download the ZIP.

Do template functions work?

Yes. Generation sends a normal HTTP request per page, so get_header(), get_template_part(), template hierarchy, conditional tags, and custom fields all behave exactly as they do on the live site.

What does not work?

Anything that needs server-side processing: search forms, comment submission, contact forms, and membership. Values that depend on the current time (a copyright year printed with date('Y'), relative dates) are frozen at generation time.

A script fetches a file (e.g. JSON) that is not being copied. Why?

Distan collects assets by reading the generated HTML and CSS, so a path built inside a script — fetch('../assets/json/data.json') — is invisible to it and the file is left out. List the file or directory with the distan_extra_assets filter to bundle it anyway; its path is flattened the same way as other theme assets, so the relative fetch keeps working.

Can I export the content for AI tools?

Yes. Enable the Markdown export and Distan writes content.md, combining every page’s main content into one file with production URLs — ready to hand to an AI notebook or a retrieval index. An optional content.local.md keeps development URLs. You can also narrow what goes into it by post type and publish date, and hand-pick individual fixed pages, so the transcript can be limited to (for example) just your articles while the static site is still delivered in full.

Can I open the generated files directly?

Yes, with a classic theme. Block themes load their JavaScript as ES modules, which browsers refuse to load over file://. HTML, CSS, images, and links work either way; use a local server for a complete preview.

Does it work with block (Full Site Editing) themes?

Yes. Classic and block themes are both supported, including the block navigation’s interactivity, importmap paths, and module files.

A page changes its content based on a URL query parameter (?filter=chair). Can Distan handle it?

Yes, with an explicit opt-in. Name the query keys that change the page with the distan_variant_keys filter, then register the specific URLs you want to ship with the distan_sources filter — usually built in a loop from the same terms or posts the page’s pulldown or checkboxes are built from. Each value becomes its own static file. Because a plain static host addresses files by path only, the query is folded into the path: the published URL becomes /products/filter-chair/ rather than /products/?filter=chair. Distan does not discover these automatically — pulldown and multi-checkbox URLs are…

Changelog

1.8.0

  • Added: the Markdown export (content.md) can now be narrowed by post type and by publish date, and specific fixed pages can be force-included, so a site can be delivered whole while only, say, its articles within a date window are transcribed for an AI. With no filter set the export still covers every page as before (posts, custom types, fixed pages, the front page and archives). When you do filter, post types are chosen with checkboxes and the publish-date range is inclusive on both ends (either bound may be left open); while filtering, pages and archives drop out unless a page is added individually from the live title search, which force-includes it. The static HTML output (dist/) is unchanged by any of this.
  • Added: an optional “remove HTML comments” setting. When enabled, plain HTML comments left by plugins and themes are stripped from the delivered pages at write time. Comment-like text inside script, style, textarea and pre elements is shielded, and IE conditional comments are kept because they can wrap real markup. Off by default; the static output is unchanged unless you turn it on.
  • Changed: the admin screen’s own styles and scripts are now cache-busted by file modification time, so an updated build always loads its current assets instead of a stale cached copy.

1.7.0

  • Improved: the distan:no-block-styles / distan:drop-assets markers now also take effect in a normal “static HTML” run, not only in the template export. On a marked page, the declared link and script tags and inline block styles are removed from that page’s output; shared asset files are left in place so other pages that use them keep working.
  • Improved: the Markdown export (content.md) now preserves much more structure, so it reads better when fed to an AI. Tables become Markdown tables, code becomes fenced or inline code, images keep their alt text, and block quotes, bold/italic, ordered-list numbering, and horizontal rules are carried across. Each page section also records its source URL and meta description, and its title falls back to the first heading when a theme emits no title tag.

1.6.4

  • Updated: the plugin screenshots — the full admin screen and the in-app help.

1.6.3

  • Added: a “設定” link on the plugin’s row on the Plugins screen, so you can reach the Distan screen from there.
  • Improved: the template export page selector can now be filtered live by title. Type in the box above the list and the candidates narrow as you go — useful when a site has many pages.

1.6.2

  • Fixed: the copy buttons for the template markers did nothing on a plain-http development host (for example http://site.local). The clipboard API is only available in a secure context, so a fallback is now used there.

1.6.1

  • Improved: the admin screen now follows the WordPress admin colour scheme instead of a custom palette. The accent tracks the colour scheme each user picks, and status badges are shown in neutral greys with red reserved for real problems such as broken links.
  • Improved: the section sub-navigation no longer sticks to the top of the screen, so it never covers a heading while scrolling. Dates are all shown in the site’s timezone. The uncovered-URL list scrolls once it grows long, and the settings save bar keeps a little breathing room.
  • Clarified: the descriptions for “WordPress の痕跡を除く” and the template export now spell out that the former only removes invisible metadata (block CSS and plugin JS are left to the per-page markers), so the two are not confused.
  • Fixed: block styles the template export could leave behind. The distan:no-block-styles marker now also removes the inline block styles WordPress emits (wp-block-*-inline-css, the style/global-styles placeholders, and the wp-img-auto-sizes helper), not just the stylesheet link and global-styles block.
  • Updated: bundled Alpine.js to 3.17.1.

Full changelog on WordPress.org →

Screenshots

Distan の管理画面。環境チェック、ボタンひとつの静的 HTML 書き出し(差分・リンク切れの表示、テンプレート書き出し、取りこぼしの取り込み)、そして納品に合わせた各種設定を 1 画面で行えます。
Distan の管理画面。環境チェック、ボタンひとつの静的 HTML…
「使い方」ヘルプ。Distan の考え方(WordPress は作る場所、書き出した HTML が納品物)と、環境の確認 → 書き出し → 受け取り・公開の流れ、主な設定の要点を確認できます。
「使い方」ヘルプ。Distan の考え方(WordPress は作る場所、書き出した HTML が納品物)と、環境の確認 → 書き出し →…

For developers

Is this your plugin? Show off the numbers.

Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.

Active installs badge Rating badge Health score badge

Best Distan alternatives

All deploy plugins →
Alternatives
Rank Plugin Active installs Rating Updated Health
1 Publish to Netlify Publish to Netlify Easily deploy static sites to Netlify using WordPress as backend. This plugin builds your… by Rogério Moreira 100+ ★★★★★★★★★★ No reviews 6 years ago 25
2 Deploy Webhook Button Deploy Webhook Button Easily deploy static sites using Wordpress and Netlify by Luke Secomb 100+ ★★★★★★★★★★ 5 (1) 7 years ago 32
3 Deploy & Sync Content Deploy & Sync Content Move your content easily from your production instance to your development instance. by ealab 40+ ★★★★★★★★★★ 5 (1) 11 months ago 46
4 Copy Post Copy Post Copy Post allows you to copy posts from one instance of WordPress to another. by jwong.dayspring 20+ ★★★★★★★★★★ 3 (1) 17 years ago 25
5 Deploy Trigger for GitHub Deploy Trigger for GitHub Trigger GitHub Actions workflows from WordPress when content changes. Perfect for headless… by Facundo 10+ ★★★★★★★★★★ No reviews 1 year ago 32
6 StaticForge for Cloudflare Pages StaticForge for Cloudflare Pages Auto-export WordPress as static HTML to Cloudflare Pages on publish — with SEO meta… by Gunjan Jaswal 10+ ★★★★★★★★★★ 5 (1) 2 weeks ago 73
7 Deploy Webhook Github Actions Deploy Webhook Github Actions DEPLOY WEBHOOK GITHUB ACTIONS PLUGIN by nicolasdra 10+ ★★★★★★★★★★ No reviews 3 years ago 23
8 Bulk Deployer Bulk Deployer Bulk deploy WordPress plugins to multiple sites via FTP or SFTP. Manage target sites, test… by Hayan 10+ ★★★★★★★★★★ No reviews 7 months ago 38
9 WP Quick Deploy Revisited WP Quick Deploy Revisited WP Quick Deploy Revisited allows you to either choose plugins from a preset and/or create… by vjmayr 10+ ★★★★★★★★★★ 5 (2) 15 years ago 30
10 WP Git Deploy WP Git Deploy Deploy websites using Git and the admin bar. by vmassuchetto 10+ ★★★★★★★★★★ No reviews 12 years ago 23

FAQ

Distan: quick answers

Straight answers, pulled from live WordPress.org data.

Live data from WordPress.org · checked Oct 2, 2026

Is Distan free?

Yes. Distan is free to download and use from the official WordPress.org plugin directory.

Is Distan safe to use in 2026?

Distan is a solid plugin choice in 2026, with a few things worth checking first. Was last updated 3 weeks ago, and scores 64/100 on our health check.

How many websites use Distan?

Distan is active on <10 WordPress websites and has been downloaded 1,056 times since it launched in July 2026. It was downloaded 362 times in the last 30 days.

Does Distan work with WordPress 7.1?

Yes. The developer has tested Distan up to WordPress 7.1.2, the latest release. It requires WordPress 6.0 or newer.

What PHP version does Distan need?

Distan requires PHP 8.0 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.

When was Distan last updated?

The latest version, 1.8.0, was released on September 11, 2026 (3 weeks ago).

Who makes Distan?

Distan is developed and maintained by youheiokubo.

What are the best alternatives to Distan?

The most popular alternatives to Distan are Publish to Netlify (100+ installs), Deploy Webhook Button (100+ installs) and Deploy & Sync Content (40+ installs).

Powered by PageForge

Want thousands of pages that rank like these? Build them in an afternoon.

This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.

  • CSV, Google Sheets & API data sources
  • AI content, schema & internal links per page
  • Works with Elementor, Gutenberg, Yoast & Rank Math
  • Free on WordPress.org — no credit card
Sarah is here to help!
Hi there! 👋 Need help finding what you're looking for?
Sarah
Sarah
Online & Ready to Help
Hi there! 👋 Need help finding what you're looking for?

We'll use this to continue our conversation

Just now ✓ Verified

Join 500+ SEO Pros Scaling Their Strategy

Get exclusive programmatic SEO tactics, AI content workflows, and the latest PageForge updates delivered straight to your inbox. Stay ahead of the algorithm.

We care about your data in our privacy policy.