---
title: Upload a site
type: how-to
section: drive
summary: A site is a static HTML bundle with index.html at its root. Choose Upload site, name it, decide on JavaScript, and Drive registers it in Sites.
sources:
  - evolve-front-end/components/content-platform/content-platform-upload-panel.tsx
  - evolve-front-end/lib/content-registry/minisite-upload-manifest.ts
  - evolve-front-end/lib/content-platform/public-minisite-links.ts
  - evolve-front-end/app/[lng]/drive/minisites/[minisiteId]/page.tsx
verified:
  at: 2026-09-04
  env: code
  by: content-lane-drive
ttl_days: 45
related: [drive/edit-a-site, drive/link-access, drive/upload-failed]
---

Choose **New**, then **Upload site**. Name the site, drop in a folder or a ZIP with `index.html` at its root, and choose **Add**. Drive registers it and lists it under **Sites**.

## What the bundle must contain

- An entrypoint at the root of the site: `index.html`, `index.htm` or `index.xhtml`. A ZIP with a single top-level folder is unwrapped first, so the entrypoint may sit inside that one folder.
- Only static assets. Drive accepts `html`, `htm`, `xhtml`, `css`, `js`, `mjs`, `json`, `md`, `txt`, `csv`, `pdf`, `png`, `jpg`, `jpeg`, `gif`, `webp`, `avif`, `svg`, `ico`, `woff` and `woff2`.
- No executables. Files ending `bat`, `cmd`, `com`, `exe`, `jar`, `msi`, `php`, `ps1`, `scr`, `sh` or `vbs` are refused.
- Nothing that still needs building. Upload the built output, not the source project.

Limits: at most 50,000 files, 5 GiB in total, a path depth of 16, a path length of 240 characters and 96 characters per path segment. Empty files are refused.

## Upload it

1. Choose **New**, then **Upload site**. The panel title is **Upload site package**.
2. Type the name into **Site name**. It is required, and **Add** stays disabled until it has a value.
3. Leave **Allow bundled JavaScript** unchecked unless the site needs the scripts inside its own bundle. External scripts are never allowed. The badge next to the checkbox reads **Scripts detected**, **Scripts allowed** or **Scripts blocked** to say what the current setting does.
4. Drop the folder or ZIP onto the panel, or choose it from your device. The prompt reads **Drop a ZIP or folder that includes the main HTML file and supporting assets, or click to choose from your device.**
5. Read the selection summary. **Mini site detected** or **Mini site ZIP detected** means Drive found the entrypoint. **No mini site detected** means it did not, and the bundle will upload as an ordinary folder or archive instead.
6. Choose **Add**.

Drive creates the site, uploads the assets, and registers the file list against it. It appears in **Sites**, which lists the HTML sites you uploaded.

## Open it and share it

Open a site from **Sites** to see its detail page and its assets. The item's actions offer a **Public link**, which grants read access to anyone holding the link and expires after 30 days. Scripts are switched off on the public link unless the site was uploaded with bundled JavaScript allowed, and a site whose script policy is still under review cannot be shared publicly until that finishes.

## Replace a site with a new version

Use **Update** on the site. The panel warns that uploading creates a new revision and that the current site changes once the new bundle is registered. Upload the whole bundle again; Drive keeps the same site and adds a revision.

## If it did not work

- A message that the archive must contain `index.html`, `index.htm` or `index.xhtml` at the site root. The entrypoint is missing or nested too deep. Zip the folder that contains it.
- A message that the bundle contains an unsupported minisite asset type. It names a file whose extension is not on the list above. Remove it or convert it.
- A message that the bundle contains an executable file that cannot be registered as a minisite asset. It names a blocked extension.
- A message that the file could not be read as a valid ZIP archive means the archive is damaged. Rebuild it.
- **The files uploaded, but the mini-site could not be registered.** means the assets arrived but the site record did not. Reload **Sites** before uploading again.
- To change the content afterwards, see [Change a site in plain English](/help/drive/edit-a-site).
