---
title: "Hosting HTML pages"
description: "Host a single HTML file or a zipped static site as a tracked link that runs live in a sandbox."
canonical: "https://everypage.co/docs/sharing/html-sites"
plan: "free"
last-updated: "2026-10-18"
---

# Hosting HTML pages

You can upload a single `.html` file or a `.zip` of a static site and share it like any other document. The page runs live in the reader's browser, scripts included, and you see how many people opened it and how long they stayed. For a quick overview, see [HTML to link](https://everypage.co/html-to-link).

HTML hosting needs an account on any plan. The anonymous uploader does not accept HTML.

## What you can upload

- **A single page:** one `.html` or `.htm` file. It becomes the site's `index.html`.
- **A zipped site:** a `.zip` with `index.html` at the top level. If everything sits inside one folder, that folder is opened for you.

Inside a zip, these file types are kept:

| Kind | Extensions |
|------|------------|
| Pages | .html, .htm |
| Styles and scripts | .css, .js, .mjs |
| Data | .json, .txt, .csv |
| Images | .png, .jpg, .jpeg, .gif, .webp, .avif, .svg, .ico |
| Fonts | .woff, .woff2, .ttf, .otf |

Anything else (video, audio, PDFs, executables) and hidden files such as `.DS_Store` are left out. After upload, the Configure & Share screen lists what was skipped.

## Limits

| Limit | Free | Basic | Pro |
|-------|------|-------|-----|
| Unpacked size of the site | 10 MB | 50 MB | 100 MB |
| Files in a zip | 1,000 | 1,000 | 1,000 |
| Counts toward active documents | Yes | Yes | Yes |

The cap is on the unpacked size of everything kept. The upload itself must also fit your plan's normal file size limit.

## What works

- Links between your pages, folders and assets, including clean URLs (`/about` opens `about.html`, `/blog/` opens `blog/index.html`)
- A custom `404.html` for missing paths
- JavaScript, forms, canvas, web fonts and images
- Pages that load scripts, styles or images from other sites, such as a CDN

## What does not work

- **Server-side code:** PHP, databases or an API of your own. Only static files are served.
- **Remembering things between visits:** each visit opens the page on a fresh origin, so values a page keeps in local storage or cookies do not carry over to the next visit.
- **Service workers, file downloads and top-level navigation:** the sandbox blocks them.
- **Video and audio files inside the zip:** they are left out. Embed them from a video host instead.
- **Replacing the content:** you cannot yet swap the files behind an HTML link. Upload the new version as a new document.

## Sharing settings

HTML pages use the same link controls as PDFs: expiry dates on every plan, passwords and view limits on Basic, and an email gate on Pro. Viewer modes, watermarking, page ranges and downloads do not apply to HTML and are not shown. A link can be embedded unless it has a password, a view limit or an email gate.

## What you can see

Your readership page shows views, readers and the average time the page stayed open and visible. Page-by-page charts do not apply to HTML; see [What EveryPage measures](https://everypage.co/docs/readership/what-everypage-measures).

## How readers are protected

Hosted pages are served from a separate domain, `everypage.link`, inside a sandboxed frame on the share page. A hosted page cannot read the reader's EveryPage session or cookies, cannot reach the share page around it, and cannot download files to the reader's device. Opening the sandbox address directly sends the reader back to the share link.

Every page has a **Report** button. Pages reported for phishing or malware are paused while they are reviewed. On the free plan, readers also see a reminder not to enter passwords on pages they don't trust.
