Skip to main content

Prepare

ZIP for Website Upload

Website ZIPs often fail on upload because the site sits one folder too deep, hidden Mac or Windows files ride along, node_modules or .git is included, or index.html is missing. Drop your site folder and this tool puts its files at the top level of the ZIP, leaves out system files, hidden files and node_modules, and then checks for an index file, a leftover wrapper folder and, for a WordPress theme, the files it needs.

Written by · Published · Last updated

Browser, runs in your browser, no uploadFolder, Any files

Input formats

FolderAny files

Output formats

ZIP

Common uses

  • Upload a static HTML website to a host
  • Submit a WordPress theme via wp-admin
  • Upload a WordPress plugin
  • Package a web project for Netlify Drop
  • Submit a website to a school or client portal

Limitations

  • Cannot deploy: it packages the ZIP and checks its layout, it does not upload anything.
  • The checks cover common patterns (index file, wrapper folder, WordPress theme files), not every host's rules.

Where this packaging step fits

This tool builds a single ZIP from the site folder or files you select, with the structure and contents shaped for an upload step rather than for archival. It suits the moment just before you hand a build to a host: packaging a static HTML site (index.html, CSS, JS, assets) for a drag-and-drop deploy such as Netlify Drop, or zipping a folder of exported files before pushing them to a shared-hosting upload form.

It also fits WordPress, where wp-admin expects a theme or plugin as a ZIP, and client or school portals that want one tidy file. The common thread: a clean ZIP whose first level is the right level, without editor cruft, repository history or system junk.

The flow, the options and the checks

Drop your site folder or choose it (a button also adds single files), check the output name, then create and download the ZIP. Everything runs in your browser; nothing is uploaded or kept after the tab closes.

Three switches, all on by default, do the shaping. "Put the site's files at the top of the ZIP" drops the single folder everything sits in, so index.html ends up at the root of the upload rather than inside my-site/. "Leave out hidden files and folders" skips anything whose name starts with a dot, such as .git, .env or .vscode; turn it off if the host needs a file like .htaccess. "Leave out node_modules" skips node_modules, bower_components and __pycache__ folders. System files (.DS_Store, __MACOSX, ._ files, Thumbs.db, desktop.ini) are always left out.

After building, the tool lists its checks: whether an index.html, index.htm or index.php sits at the top level; whether everything is still inside one folder; if style.css carries a WordPress Theme Name header, whether index.php is present and functions.php is included; and how many hidden or development files were left out. It does not deploy, add a missing index file, or check the HTML, CSS or PHP inside your files.

Pitfalls worth avoiding

The most common mistake is choosing the wrong folder. If your build output lives one level down, for example my-project/dist/index.html, choose dist itself rather than the project folder, or the index-file check will warn that nothing sits at the top. The same applies to a folder that holds two things side by side, such as site/ and docs/: the top-level option only removes a single wrapping folder.

The tool warns above about 300 MB, since everything is held in browser memory; a site that large usually still carries media or build leftovers. Images, video and fonts will not shrink much. And turning off the hidden-files switch to keep .htaccess brings .git and .env back too.

Checking the result before you upload

Before uploading, read the checks and reopen the ZIP: confirm the top level is what the host expects (the entry file at the root for a static host), key assets are present, and no .DS_Store or __MACOSX entries slipped through.

Confirm the size fits your host's upload limit; for a static deploy, previewing the unzipped files locally is the surest test of links and paths.

For a graded or client submission, test the upload on a staging or draft target first; the tool prepares the ZIP, it cannot confirm the host will accept it.

Frequently asked questions

When you zip a folder, the site can end up one level too deep (my-site/index.html instead of index.html), which many hosts reject. The 'Put the site's files at the top of the ZIP' option, on by default, removes that single wrapping folder, and a check warns if everything still sits inside one folder.

System files (__MACOSX, ._ files, .DS_Store, Thumbs.db, desktop.ini) always. Hidden files and folders such as .git and .env, and node_modules folders, are left out by default, with switches to keep them if the upload needs a file like .htaccess.

Yes, when style.css at the top of the ZIP has a Theme Name header. It then checks that index.php is present, which a classic theme needs, and notes whether functions.php is included.

Related tools

Tool last reviewed: September 27, 2026 · Report a problem