1. Put some thought into organization.

Think about what content you have and how it should be organized. This is at least as important as what your pages look like, so actually spend some time on it. You do your readers a disservice if they can’t easily find what they’re looking for if everything is thrown up on your site in a haphazard fashion.

2. Minimize clicking!

Put as few clicks between your visitor and your information as possible. This is so important I’ll repeat it: Put as few clicks between your visitor and your information as possible. The more you force your visitors to click around your site the more likely they’ll abandon it. Even if they don’t leave they might get annoyed, or not view as much of your content — either of which is bad for you.
Is your home page a splash page (a page with no meaningful information on it, that simply “welcomes” visitors to the site, along with an “Enter Site” link)? If so, get rid of it. After someone takes the effort to visit your site, give them your site right away! Don’t make them knock on two different doors.

A related idea is to put meaningful amounts of information on each page. If a page doesn’t have at least 400 words, you probably should combine that page with another short page. I’ve seen many sites which spread info around five different pages that could have easily gone on one.

Along with minimizing clicking, minimize scrolling, too.

3. Limit page length to 2 screenfuls, or 6-7 screenfuls for articles.

While you should put a lot of info on each page to minimize clicking, don’t go too far in the other direction by putting too much info on a page. You should normally limit a page to no more than two screenfuls of info. Articles (like this one) are exceptions, because articles are longer by nature. But even so, very long articles (more than about 6-7 screenfuls) should usually be chunked into separate pages.

4. Include a way to get back to the home page, on every page.

When users get lost they like to start over from square one. Make it easy for them to do so. Even if you’re including a clickable logo on the top of every page, make sure to also include text that says something like “Home”, because some users don’t realize that logos take you back to the home page. Also remember that users might not be able to hit the “Back” button to go back to your home page, because they might have entered the middle of your site after clicking a link to it from a search engine or from some other site.

5. Include a menu on every page.

While you should provide a way for users to get back to your home page quickly, you shouldn’t force them to go home before they can go somewhere else. Include a menu on the left or the top of each page. Don’t put navigation links only at the bottom of pages, because then users will have to scroll down to the bottom to get to them (unless your pages are very short). Users clearly dislike links at the bottom of long pages. On long pages, you’ll want navigation elements on BOTH the bottom and the top or left, so that users who have read a lengthy page don’t have to scroll back up to get to the menus.

6. Don’t use frames.

You might be tempted to use frames because it makes it easy to have the same header or menus appear throughout the site. And usability studies do show that users find sites with frames “Easy to Comprehend”, “Easy to Navigate”, and “Easy to Find Info”. But there are two serious downsides to frames: First, the address bar doesn’t change as you go from page to page. That makes it impossible for anyone to bookmark or link to a specific page in your site, or to share that page with a friend by emailing them the link. Second, when a page within your site other than the frameset shows up in a search engine, a visitor clicking over to that page will see just that subpage without the surrounding frame.
There are clunky Javascript tricks that can overcome these problems, but once you hassle with that to get your frames to work properly then you’re defeating the purpose of using frames because you wanted a quick & easy solution in the first place. The preferred way of having the same elements on a page throughout a site is to use server-side includes.