Publishing an HTML landing page

A landing page is one file with one action in it. The build is an afternoon. The part that stalls teams is getting it to an address without starting a project.

An HTML landing page is one file with one action in it, and the part that takes the longest is usually publishing rather than building.

The markup is straightforward. The stall happens when a single file gets routed through a deploy pipeline that was designed for an application.

A single file HTML landing page rendered in a browser, headline and one button visible above the fold.
A single file HTML landing page rendered in a browser, headline and one button visible above the fold.

What the page actually needs

Part Required Why
Headline stating the offer Yes The visitor decides in seconds
Supporting detail Yes Three to five points, not a brochure
One call to action Yes Two actions split the response
Proof of some kind Usually A number, a logo, a quote you can stand behind
Navigation menu No Every link is an exit
Cookie heavy analytics stack No One lightweight measure is enough to start
A framework and build step No Nothing here is dynamic

The list is short because a landing page is an argument, not a site. Anything that is not part of the argument is drag.

The head tags that decide how it is received

Four lines in the <head> do more for a landing page than most of the visual design.

  1. <title>. It is the browser tab and the first line of every preview card. An untitled page reads as spam.
  2. The viewport line. <meta name="viewport" content="width=device-width,initial-scale=1">. Without it the page is unreadable on a phone, where most traffic lands. See the viewport meta tag.
  3. A meta description. Used in search results and some previews. Writing a meta description covers the length.
  4. Open Graph tags. These control the image, title and text when the link is posted in chat or social. Open Graph tags has the exact set.

Skipping the fourth one is the common miss. A link with no card gets far fewer clicks than the same link with one.

A link to the landing page pasted into a chat window, unfurled into a card with image and title.
A link to the landing page pasted into a chat window, unfurled into a card with image and title.

Keep it a single file

Styles in a <style> block, images embedded or on full addresses, scripts inline if you need any.

This matters because a landing page gets moved. Into an email test, onto a host, into a document, into a colleague's browser to check the copy.

Every one of those moves breaks relative paths. A page that reaches for a folder next to it loses its images the first time it travels.

Self contained HTML explains how to fold the pieces in. Once it is one file, the page works everywhere you put it.

The form, which is the only non static part

A landing page with a form is still a static page, as long as the form posts somewhere else.

Point the form action at a submission service or your own endpoint. The page is served as a file, the submission goes over the network to something that stores it.

That keeps the hosting requirement at "serve one file", which is the cheapest requirement there is. Static HTML vs dynamic sets out why this distinction saves so much work.

If you have no endpoint yet, a mailto link or a link to a scheduling page is a legitimate first version. Ship the page, then upgrade the action.

Getting it to an address

Two routes, and they differ in what happens after launch rather than at launch.

A static host serves the file. The address is stable, and every copy change is a re export and a re upload. For a page you will edit twice a week, that friction adds up.

A document that renders HTML takes the paste directly. In NOS the page renders exactly as written, dark theme, charts and scripts included.

Take the address from Share, then Share link, then Create link. Tick Public on the web so search engines can reach it, since a landing page usually wants that.

The landing page HTML pasted into a NOS document, rendering as a page at its own address.
The landing page HTML pasted into a NOS document, rendering as a page at its own address.

Editing copy after it is live

This is where a landing page differs from most pages. The copy changes constantly in the first fortnight.

If a headline change means re exporting and re uploading, you will test fewer headlines. If it means clicking the words and typing, you will test more.

In a document the text stays clickable and the address does not move, so links already in circulation keep pointing at the current version. Editing generated HTML without code covers the same habit for pages you did not write yourself.

Measuring without building an analytics project

You need two numbers to judge a landing page: how many people arrived, and how many took the action.

A single lightweight analytics snippet gives you the first. The second comes from whatever receives the form, or from a distinct link on the button.

Resist adding more until those two numbers exist and disagree with your expectations. Scroll depth and heat maps are interesting after you have a conversion rate, not before.

If you run several versions, give each one its own address rather than trying to split traffic inside one page. Separate addresses are easier to reason about and easier to stop.

The mistakes that cost the most

  • Two calls to action. The second one is usually there to satisfy an internal stakeholder, and it halves the first.
  • A headline about you. The visitor is deciding whether this is for them, not who you are.
  • No phone test. Most traffic is on a phone, and desktop previews hide the problem completely.
  • Copy that cannot be edited quickly. The page ossifies at version one.
  • A missing preview card. Links shared without one look like spam in a channel.

Before you send traffic

  • Open it in the HTML file opener to confirm it stands alone.
  • Load it on an actual phone, not a narrowed desktop window.
  • Click the call to action and complete it yourself, end to end.
  • Paste the link into a chat to check the preview card.
  • Read the headline out loud. If it takes two breaths, cut it.

For the stripped down version of this build, see a simple HTML landing page. To publish what you already have, paste it into the HTML to link tool.

Questions people ask

What should an HTML landing page contain?

One headline that states the offer, enough supporting detail to make it credible, and one action. Anything that does not serve the action is a reason for the visitor to leave. Navigation menus are usually the first thing to cut.

Do I need a framework for a landing page?

No. A landing page is static content with one form, which a single HTML file handles completely. A framework adds a build step and a deploy pipeline to a page that has neither accounts nor a database.

How do I collect form submissions from a static page?

Post the form to a service that receives submissions, or to your own endpoint. The page itself stays static, because the form posts elsewhere. That keeps the hosting requirement to serving one file.

What is the quickest way to put a landing page online?

Paste the finished HTML into a document that renders it and take the share link. The page is live at an address in one step, and editing the copy later does not change the address.

Keep reading