How to zip to 7z converter online for free
- Step 1Open the ZIP to 7Z tool — Go to zip-to-7z. The page loads the generic archive runner — there is no per-tool settings panel to configure because this conversion takes no options (no compression-level slider, no format picker). It does exactly one thing: ZIP in, TAR.GZ out.
- Step 2Drop your ZIP archive — Drag a single
.ziponto the drop zone or click to browse. This tool takes one archive at a time — it is not a folder/batch tool. The runner sniffs the format from the file's magic bytes (PK\x03\x04for ZIP), so the.zipextension is not strictly required, but the input should be a real ZIP container. - Step 3Let it decompress and re-pack locally — fflate unzips the archive in memory, lists every file entry, writes a TAR (ustar) stream, then GZIP-compresses that TAR at level 6. For a typical few-megabyte ZIP this is sub-second; large archives near the tier cap take longer because the entire archive is processed in RAM.
- Step 4Check the metrics panel — After processing, the result panel reports Source: ZIP, Target: TAR.GZ (7Z fallback), Native 7Z: unavailable in browser, the entry count, and the input vs output size. This is where you confirm the entry count matches what you expected (empty folders are not counted — see edge cases).
- Step 5Download the .tar.gz — Click download. The file is named
<original-stem>.tar.gz(e.g.report.zipbecomesreport.tar.gz). Your OS routes the.tar.gzextension to your default archive app — double-click to extract in 7-Zip, Keka, WinRAR, or Archive Utility. - Step 6Verify the extracted contents — Open the
.tar.gzand confirm the file tree matches the original ZIP. Because the conversion is byte-lossless, a checksum of any extracted file equals the checksum of that file from the source ZIP. If you need to prove this, run checksum-generator on both and compare.
What this tool actually produces
The single most-misunderstood fact about this tool. Verified against the conversion handler — it calls the ZIP to TAR.GZ path and re-labels the metrics.
| You might expect | What you actually get | Why |
|---|---|---|
A native .7z file (7Z / LZMA2 container) | A .tar.gz file (TAR archive, GZIP level 6) | Browser-side LZMA2 writing needs a ~600 KB WASM encoder; to keep the page light, the tool uses fflate's GZIP instead |
| 7-Zip-level compression ratio (LZMA2 -mx9) | DEFLATE/GZIP-level ratio — typically within 5–15% of LZMA2 on text, 3–8% on binary | GZIP uses DEFLATE, which is a weaker algorithm than LZMA2 but ships natively in the browser with no extra download |
| A file that opens labelled as 7Z | A file that opens as TAR.GZ in 7-Zip / Keka / WinRAR | All three apps read .tar.gz natively, so the extraction experience is the same even though the container differs |
| Options to tune the compression | No options at all — fixed GZIP level 6 | The tool's option schema is empty; the level is hardcoded for a balance of speed and size |
Free vs paid limits (archive family)
Per-archive limits from the archive tier table. Both the byte cap and the entry-count cap apply — an archive can be under the size cap but over the entry cap.
| Tier | Max archive size | Max entries per archive | Files per run |
|---|---|---|---|
| Free | 50 MB | 500 | 1 |
| Pro | 500 MB | 50,000 | 20 |
| Pro-media | 2 GB | 500,000 | 100 |
| Developer | 2 GB | 500,000 | Unlimited |
Cookbook
Concrete before/after for the common 'I need a 7z' situations. The 'Result' lines show the real metrics the tool reports and the real filename it hands back.
A colleague asked for 'a 7z' — give them a TAR.GZ that opens in 7-Zip
The most common case: someone on a 7-Zip workflow wants higher compression than your ZIP. You cannot make a real 7Z in the browser, but a TAR.GZ opens in their 7-Zip identically and is usually smaller than the original ZIP.
Input: project-build.zip (12.4 MB, 320 entries, stored/low compression)
Tool: zip-to-7z (no options)
Output: project-build.tar.gz (9.1 MB, 320 entries)
Metrics: Source ZIP -> Target TAR.GZ (7Z fallback)
Native 7Z: unavailable in browser
They double-click project-build.tar.gz in 7-Zip -> all 320 files extract.Confirm the conversion is byte-lossless
Prove that re-packing did not alter any file. Run checksum-generator on the original ZIP's contents and on the converted TAR.GZ's contents — the per-file hashes match.
1. checksum-generator on report.zip -> data.csv sha256: 4f2a...e91 2. zip-to-7z: report.zip -> report.tar.gz 3. checksum-generator on report.tar.gz -> data.csv sha256: 4f2a...e91 Same hash = byte-identical file contents; only the container changed.
Hit the Free 50 MB cap and upgrade or split
A 70 MB ZIP exceeds the Free 50 MB ceiling. The tool refuses before processing. Either upgrade to Pro (500 MB) or pre-split the archive.
Input: media-pack.zip (70 MB) Free tier: rejected -> 'File exceeds the 50 MB limit for your tier.' Fix A: upgrade to Pro -> 500 MB cap, runs fine. Fix B: use archive-splitter to make 2 x 35 MB parts, convert each.
An empty folder in the ZIP does not survive
ZIP directory entries (names ending in '/') are dropped during extraction, so an empty folder in the source ZIP will not appear in the TAR.GZ. Folders that contain files are preserved via the file paths.
Input ZIP entries: src/main.js src/util.js logs/ <- empty directory entry Output TAR.GZ entries: src/main.js src/util.js (logs/ is gone — it held no files)
GZIP can beat a low-compression ZIP
If the original ZIP stored files with little or no compression (common for ZIPs produced by 'send to compressed folder' on already-compressed inputs, or by tools that prioritise speed), the level-6 GZIP re-pack often shrinks it.
Input: docs.zip (8.0 MB, mostly 'stored' .txt and .md) Output: docs.tar.gz (2.3 MB) Why: the original ZIP barely compressed the text; GZIP level 6 does.
Edge cases and what actually happens
You expected a native .7z file
By designThe download is .tar.gz, not .7z. This is intentional: browser-side LZMA2 writing needs a heavy WASM encoder the tool deliberately does not ship. The TAR.GZ opens in 7-Zip, Keka, and WinRAR. If you genuinely need a .7z extension, you must re-compress with a native 7-Zip install — no browser tool here produces one.
Archive larger than the tier cap
Rejected (limit)Free rejects anything over 50 MB before processing starts. The cap is per archive. Upgrade to Pro (500 MB) / Pro-media (2 GB) or pre-split with archive-splitter. The size is checked on the input ZIP, not the output.
Archive over the entry-count cap
Rejected (limit)Even a small ZIP can exceed the 500-entry Free cap if it holds thousands of tiny files. The entry limit is separate from the byte limit. Pro allows 50,000 entries; Pro-media and Developer 500,000.
Encrypted (password-protected) ZIP
FailsThis tool exposes no password field. A ZIP with AES-256 or ZipCrypto-encrypted entries cannot be decrypted, so the conversion fails. Decrypt first by extracting with a tool that takes a password — for example multi-format-extractor or selective-extractor — then zip the plaintext result and convert that.
Empty directories in the source ZIP
Not preservedExtraction drops entries whose name ends in / (directory markers). An empty folder therefore disappears from the output. Folders that contain at least one file are preserved implicitly through the file paths.
Input is not a real ZIP
FailsIf the file's magic bytes are not a recognised archive, the runner cannot extract it and throws 'Could not detect or extract archive format'. Make sure you are feeding an actual .zip (some files are renamed but are really .7z or .rar — check with auto-format-detector).
Output is larger than the input
Expected sometimesIf the source ZIP was already heavily compressed (e.g. it contained JPEGs, MP4s, or other pre-compressed data), re-compressing with GZIP can add a tiny amount of overhead rather than shrinking it. This is normal for incompressible content — the bytes are random-looking to DEFLATE.
File timestamps are not carried over
Not preservedThe TAR header writes the current time as the modification time for every entry, not the original ZIP timestamps. If you need stable, reproducible timestamps, run timestamp-normalizer on a ZIP first or normalise after extraction.
Very large archive near the cap stalls the tab
Slow / memory-boundThe whole archive is decompressed and re-compressed in browser memory. An archive near the 2 GB Developer cap can use a lot of RAM and may feel frozen mid-process. Close other heavy tabs, or split the archive so each part processes well under the cap.
Frequently asked questions
Does this tool actually make a .7z file?
No. It outputs a .tar.gz file, not a native .7z. Writing real 7Z (LZMA2) in a browser requires a heavy WASM encoder the tool does not bundle, so it re-packages your ZIP as TAR.GZ instead. The good news: .tar.gz opens natively in 7-Zip, Keka, WinRAR, macOS Archive Utility, and tar, so the practical result — a widely-readable, usually-smaller archive — is what most people actually need.
Will the TAR.GZ open in 7-Zip?
Yes. 7-Zip reads .tar.gz natively — double-click and it extracts the same files. WinRAR, Keka, macOS Archive Utility, and the command-line tar all handle it too. The container is different from 7Z but the extraction experience for the recipient is the same.
Is it really free with no upload?
Yes. The entire conversion runs in your browser tab using fflate — your ZIP is never uploaded to a server. There is no signup required for the Free tier, and no cost. Free covers archives up to 50 MB and 500 entries.
Is anything changed inside my files?
No — the conversion is byte-lossless. Each file is decompressed from the ZIP and re-compressed into the GZIP container without modification; extracted file contents are bit-for-bit identical to the originals. You can verify with checksum-generator on the source and the output.
How large a ZIP can I convert for free?
Free allows up to 50 MB per archive and up to 500 entries. Pro raises this to 500 MB / 50,000 entries, Pro-media to 2 GB / 500,000 entries, and Developer to 2 GB / 500,000 entries with unlimited files per run. Both caps (bytes and entry count) apply.
Can I set the compression level?
No. This tool has no options — the GZIP level is fixed at 6 (a balance of speed and size). If you want to experiment with different levels on a ZIP, use compression-level-optimizer, which compares levels and reports the size at each.
Why is my output sometimes bigger than the ZIP?
If the ZIP already contained compressed data (JPEGs, videos, or a ZIP made at high compression), GZIP cannot shrink it further and adds a small amount of container overhead. That is expected for incompressible content. For already-compressed inputs, converting mostly changes the container, not the size.
My ZIP is password-protected — will it work?
No. This converter has no password field, so it cannot decrypt encrypted ZIP entries and the conversion will fail. Extract the ZIP first with a password-capable tool such as multi-format-extractor, re-zip the plaintext, then convert that.
Are my empty folders kept?
No. ZIP directory entries (names ending in /) are dropped during extraction, so empty folders disappear from the output. Folders that contain files are preserved because their files carry the folder path.
What about file modification dates?
The TAR header stamps every entry with the current time, so original ZIP timestamps are not carried into the .tar.gz. If timestamps matter for a reproducible build, normalise them with timestamp-normalizer.
Can I just convert ZIP to TAR.GZ directly instead?
Yes — that is exactly what this tool does under the hood, and there is a dedicated zip-to-tar-gz tool with the same output. Use whichever name matches what you searched for; the result is identical. For other targets see archive-format-converter.
Does it work on a locked-down work laptop?
Yes. There is nothing to install — it runs in the browser. As long as your browser can run WebAssembly and JavaScript (the default), the conversion works without admin rights, a 7z/tar binary, or any server access.
Privacy first
Every JAD Archive tool runs entirely in your browser using fflate, @zip.js/zip.js, and the libarchive WASM bridge. Your archives never leave your device — verified by zero outbound network requests during processing.