Advertising Most free web hosts impose advertising on your website. This is done to cover the costs of providing your site the free web space and associated services. Some hosts require you to place a banner on your pages, others display a window that pops up everytime a page on your site loads, while still others impose an advertising frame on your site. There is really no hard and fast rule which is to be preferred: some people hate a pop-up window, other webmasters dislike having to stuff banner codes onto their pages, and many people cannot stand an advertising frame (which may cause problems when you submit your website to search engines). Whichever method is used, check that you're comfortable with the method.
File type and size limitations Watch out for these. Some free hosts impose a maximum size on each of the files you upload (including one with a low of 200KB). Other sites restrict the file types you can upload to HTML and GIF/JPG files. If your needs are different, eg, if you want to distribute your own programs on your pages, you will have to look elsewhere.
Amount of web space Does it have enough space for your needs? If you envisage that you will expand your site eventually, you might want to cater for future expansion. Most sites use less than 5MB of web space. Indeed, at one time, one of my other web sites, thefreecountry.com, used less than 5MB of space although it had about 150 pages on the site. Your needs will vary, depending on how many pictures your pages use, whether you need sound files, video clips, etc.
Reliability and speed of access This is extremely important. A site that is frequently down will lose a lot of visitors. If someone finds your site on the search engine, and he tries to access it but find that it is down, he'll simply go down the list to find another site. Slow access is also very frustrating for visitors (and for you too, when you upload your site). How do you know if a host is reliable or fast? If you can't get feedback from anyone, one way is to try it out yourself over a period of time, both during peak as well as non-peak hours. After all, it is free, so you can always experiment with it.
CGI-BIN access / PHP This is not particularly crucial nowadays for a free web host, since there are so many free CGI hosting services available that provide counters, search engines, forms, polls, mailing lists, etc, without requiring you to dabble with Perl or PHP scripts.
However if you really want to do it yourself, with the minimum of advertising banners from these free providers, you will need either PHP or CGI-BIN access. Note that it is not enough to know they provide PHP or CGI-BIN access: you need to know the kind of environment your scripts run under: is it so restrictive that they are of no earthly use? For PHP scripts, does your web host allow you to use the mail() function? For Perl CGI scripts, do you have access to sendmail or its workalike?
Bandwidth allotment Nowadays, many free web hosts impose a limit on the amount of traffic your website can use per day and per month. This means that if the pages (and graphic images) on your site is loaded by visitors beyond a certain number of times per day (or per month), the web host will disable your web site (or perhaps send you a bill). It is difficult to recommend a specific minimum amount of bandwidth, since it depends on how you design your site, your target audience, and the number of visitors you're able to attract to your site. In general, 100MB traffic per month is too little for anything other than your personal home page and 1-3GB traffic per month is usually adequate for a simple site just starting out. Your mileage, however, will vary.