How to Share a ChatGPT Website as a Trackable Link

Ilya SpiridonovIlya Spiridonov
7 min read

Regular ChatGPT sharing works when the goal is simply to let someone open a prototype or presentation. It may not be enough for a proposal, investor presentation, client prototype, or report. You may need to associate activity with an intended recipient, collect an email before entry, limit access to approved external inboxes, expire the link, or see which pages and sections held attention.

That is where a tracked HTML sharing service fits. Ask ChatGPT for one downloadable HTML file, upload it to the service, and send each recipient a trackable link.

HummingDeck is our product. This guide uses it as the sharing layer after ChatGPT produces the downloadable HTML file.

When you need to...The sharing layer must provide
Associate engagement with an intended recipientA separate personal link for each recipient
Collect an email before viewingAn email-capture gate
Limit access to approved external inboxesA verified email allowlist
End access automatically or on demandLink expiration and manual revocation
Update the page without sending a new linkReupload the HTML while keeping existing share links
Understand what held attentionPage or section time, completion, and engagement flow

HummingDeck provides these controls for uploaded HTML files. Personal links, basic view tracking, file replacement, and manual revocation are available on Free. Page or section time and link expiration start on Starter. Email Capture and Restricted Access start on Pro. Compare HummingDeck plans.

If you only need a public URL, our guide to hosting and sharing a single HTML file compares eight options. Continue here when you need recipient-level controls.

This workflow is for static pages. If the live ChatGPT Site depends on sign-in, saved data, payments, or server code, keep that version hosted and use HTML only as a review copy.

Turn the ChatGPT page into one HTML file

ChatGPT may present the result as a Site, a Canvas or HTML Preview, or a generated file. HummingDeck needs the file; it does not import a ChatGPT Site URL or Canvas share link. Return to the chat that created the page and ask for a static copy:

Return the latest version as one self-contained index.html file that I can download.
Keep the layout and browser interactions working without a server.
Embed or replace external images, fonts, icons, scripts, and other assets so the file works offline.
Remove or replace anything that needs an API key, database, sign-in, or backend.
Return index.html as a downloadable file, not only a code block.

If the response shows a generated .html file with a download control, download it and keep the .html extension (file workflow documentation). If ChatGPT shows only an HTML Preview, ask it to return a downloadable .html file or the complete HTML source. Use the manual-save steps below only when the full source is visible.

If ChatGPT only returns complete HTML in a code block:

  1. Copy the complete document, starting with <!doctype html> or <html> and ending with the closing </html> tag.
  2. Paste it into a plain-text editor.
  3. Save it as index.html with UTF-8 encoding.
  4. Confirm that the editor didn't add .txt to the filename.

In our August 7, 2026 test, ChatGPT Sites showed no HTML export control, so we requested a generated index.html from the original chat. The file worked offline and after upload to HummingDeck.

If ChatGPT returns a React or Vite project with package.json, it has given you source code that still needs a build and deployment. Ask for one static index.html only when a review copy without the live backend is enough.

Test the HTML before you upload it

Open the downloaded file in your browser and use it as the recipient would.

  1. Open and review the whole page. Raw code usually means the file is named index.html.txt or contains incomplete markup. Visit every slide, section, and result screen.
  2. Test interactions and assets offline. Try navigation, tabs, calculators, forms, buttons, images, icons, and fonts without an internet connection.
  3. Check the source for secrets. Anyone who receives HTML can inspect it. Never put an API key, password, or private token in the file.

If the page breaks offline, return to ChatGPT and ask it to embed or replace the missing dependency.

Add tracking and access controls with HummingDeck

Once the file works on its own, upload that exact file to HummingDeck:

  1. Open HummingDeck's HTML sharing page and upload the .html file.
  2. Test the uploaded version again.
  3. Create one personal link for each recipient.
  4. Choose the access and expiration settings you need, then send the link.

When ChatGPT produces a revision, use Replace on the document and upload the new .html file. Previously generated links will point to the new version, so you do not need to resend them.

Tracking is attribution, not identity

Email Capture records the address a viewer enters. A personal link associates activity with the intended recipient, but the link can be forwarded. Restricted Access verifies control of an allowlisted inbox, not legal identity. Bot filtering reduces scanner noise, but no filter catches every automated event.

Our HTML analytics comparison explains the difference between aggregate site analytics and recipient-level links.

Fix common export problems

  • ChatGPT returned code instead of a file: Ask it to return the exact code as a downloadable index.html. If it still gives you a code block, use the manual-save steps above and leave out the Markdown fences.
  • The file opens as text: Rename index.html.txt to index.html, then reopen it in a browser.
  • Images or styling are missing: Ask ChatGPT to embed or replace every external asset, then repeat the offline test.
  • Buttons do not work: Name the broken control and ask ChatGPT to rewrite it in browser-side JavaScript without a framework or server dependency.
  • The page needs sign-in, saved data, payments, or server code: Keep the live version on ChatGPT Sites. A static HTML copy can be a labeled review mockup, but it cannot replace the working app.

Frequently asked questions

How do I export a ChatGPT website as HTML?

Ask ChatGPT to return the latest page as a downloadable index.html file. If you only see an HTML Preview, ask for a downloadable file or the complete HTML source. When the complete code is visible, you can copy it into a plain-text editor and save it as index.html.

Can I use this with a ChatGPT Site, Canvas, or generated HTML page?

The workflow works when ChatGPT provides a complete .html file. HummingDeck cannot import a Site URL or Canvas share link. A static copy can preserve browser-side content and interactions, but not hosted features such as sign-in, saved data, payments, databases, or server code; keep the working app on ChatGPT Sites and share the HTML as a review copy.

Export the revised page as another .html file, then use Replace in HummingDeck. Existing share links will open the new version, so you do not need to generate or send them again.

Does the recipient need a ChatGPT or HummingDeck account?

A standard HummingDeck link requires no HummingDeck or ChatGPT account. Restricted Access verifies an allowlisted inbox but still does not require the recipient to create a HummingDeck account.

It attributes activity to the intended recipient's link. Restricted Access gives stronger confidence about the inbox used to enter, but it does not prove legal identity or who was physically using the device.

Turn the ChatGPT page into a controlled share

ChatGPT created the experience. Exporting it as HTML lets you add the delivery controls that ordinary sharing lacks.


Related: