How to build a simple HTML index page

An index page is a list of links with enough context to choose between them. It is the cheapest way to turn a pile of separate HTML files into one thing you can send.

A simple HTML index page is a single page listing links to your other pages, with one line of context per link so a reader can choose without opening everything.

It exists for a specific problem: you have six HTML files and no way to hand someone all of them at once.

An index page with grouped headings and a short description under each link.
An index page with grouped headings and a short description under each link.

A simple HTML index page, minimum version

<!doctype html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Q3 reporting pack</title>
<h1>Q3 reporting pack</h1>
<p>Five pages, updated 16 September 2026.</p>
<ul>
  <li><a href="revenue.html">Revenue by channel</a>
      <span>Monthly totals with the channel split.</span></li>
  <li><a href="costs.html">Cost breakdown</a>
      <span>Fixed and variable, against budget.</span></li>
</ul>

The span after each link is the part people skip and the part that makes the page useful. A list of file names is a directory listing, not navigation.

Where "index" comes from

A web server asked for a folder rather than a file responds with index.html if one is present. That is the entire reason for the name.

Ask for a folder with no index file and you get either a raw directory listing or a 403. Neither is something you want to hand a client.

If the page is served from a document address instead of a folder, none of this applies. The name of the file you pasted from is irrelevant, because the address points at the document.

What to put on it

Element Include when Note
Title and one-line purpose Always What this collection is
Last updated date The content changes A real date, kept current
Grouped link list More than about six links 2 to 5 headings
One line per link Always What it is, who needs it
Owner or contact Others will have questions One name, one method
Search box Dozens of entries Otherwise skip it

Resist adding a hero image and a colour scheme. An index page is read in three seconds and left; decoration costs load time and gains nothing.

Relative paths or full addresses

This is the decision that determines whether the page survives being sent.

Relative paths like revenue.html resolve against the folder the page is in. Keep the folder together and they work. Send the index file alone and every link is dead.

Full https addresses resolve from anywhere. The index page can be emailed, pasted into chat, or opened on a phone, and the links still work.

Relative versus absolute paths covers the rules. The short version is that anything you intend to share should use full addresses.

Opening the folder locally has its own problems, because pages loaded over the file protocol are restricted in ways that served pages are not.

The index page opened on its own, with the linked pages missing and the links failing.
The index page opened on its own, with the linked pages missing and the links failing.

Grouping and ordering

Under about six entries, one flat list. Past that, group with <h2> headings.

Order by what the reader needs first, not alphabetically. Alphabetical order is a way of avoiding the decision about what matters.

Mark entries that changed recently. A small date or a "new" label next to two of twenty links saves the reader opening the other eighteen.

Give each page its own address

An index page is only as good as what it points at. If the targets are files on your machine, you have moved the problem rather than solved it.

The route is the same for each target page.

  1. Open the page in the HTML file opener to confirm it renders outside your folder.
  2. Paste it into a NOS document.
  3. Share, then Share link, then Create link. Copy the address.
  4. Put that address into the index page.

Then do the same for the index page itself, and send that one link.

The share dialog for the index page, with the link created.
The share dialog for the index page, with the link created.

Because each address is stable, updating a target page does not break the index. You edit the page, the link already points at the new version.

Index page or home page

They overlap, and for a small project one file can do both.

A home page explains and persuades. It has a hero, a statement of what this is, and one action.

An index page navigates. It assumes the reader already knows what this is and wants to reach a specific part of it.

If your readers are outside the organisation, write a home page and put the index list on it. If they are colleagues who use the pack weekly, write the index and skip the persuasion.

An about page is a separate thing again. Link to it from the index rather than merging it in, because the two are read by different people for different reasons.

Keeping it from going stale

An index page rots faster than the pages it points at. Someone renames a file, or a page is retired, and the list quietly stops matching reality.

Two habits keep it honest. Check every link whenever you add one, which takes a minute and catches the breakage while you still remember the cause.

And remove entries rather than leaving them with a "deprecated" note. A list of twenty links where six are dead teaches readers not to trust any of them.

If the pack is rebuilt regularly, keep the index in the same document and paste the new list over the old. One address, one current list, no archive of stale copies.

A new entry being added by clicking into the list in the document. The page address is unchanged.
A new entry being added by clicking into the list in the document. The page address is unchanged.

Before you send it

  • Does every link work from a machine that has never seen your folder?
  • Does every entry have a line of context, not just a file name?
  • Is the updated date real and current?
  • Is there a <title>, so the tab and preview card are not blank?
  • Does the list read on a phone without sideways scrolling?

Questions people ask

Why is the file called index.html?

Web servers serve index.html when a visitor requests a folder rather than a specific file. That convention is why the front page of a site is almost always that name. When a page is served from a document address instead, the file name has no effect.

What is the difference between an index page and a home page?

A home page persuades and explains. An index page navigates. In practice a small project often uses one file for both: a short statement of what this is, followed by the list of links.

How do I link several separate HTML files together?

Either keep them in one folder and link by relative path, which only works while the folder stays intact, or give each page its own address and link to those addresses. The second survives being shared, the first does not.

Can I make an index page without a web server?

Yes. Paste the HTML into a NOS document and create a share link. The page is served at its own address, so the links on it work for anyone who opens them, including on a phone.

Keep reading