A static website is one that does not rely on a server side technologies to generate the page you see. The pages are made of HTML, CSS and JavaScript. This site itself is an example of a static website!
Most websites rely on a database to generate the page you see. For example, your browser may request a page showing an item, the page on the server then pulls the information from a database, uses this information to generate a unique page for you and then sends it to you. There may be some caching involved which can speed up the process, but generally it is a slow process
A static website page is fixed. It is not generated when needed and is always ready. The browser requests the page (and any components like graphics and style sheets) and they are sent to the browser, that is all the server does. No slow data retrieval and assembling of pages.
Serving static pages is a very simple task. As all the server does is send pages and little else, it does not require the setting up (and maintaining) of complex components such databases (e.g. MySQL, Postgres) or scripting languages that build the pages (e.g. ASP, PHP, Perl). This means that static web hosting is generally much cheaper or even free.
A static web server has a much smaller attack surface to deal with. By not running a scripting language, you immediately rule out a whole class of vulnerabilities to defend against. Note that you still need to keep the web server up to date! Apache and IIS, the two main web servers, do still have frequent updates!
A static website has no special requirements from the host. Whereas if you were to move a script/sql based site, you need to make sure the new host supports these technologies. With a static website, you can move from host to host no difficulties. As long as the host can serve pages, you are usually fine!
As great as static websites are, they are not suitable for everything. Anything that allows users to submit, purchase or interact (post, chat or vote) is out of the question. Once you have made your page(s), that is it. They cannot be updated in real time to reflect changing stock levels or show user opinions.
There are a few ways to create a static website, manually by hand or by using automation to generate the pages from a database or other source.
There used to be a few tools to create webpages from scratch including Microsoft FrontPage and Adobe Dreamweaver, these showed both the HTML code as well as the site appearance, unfortunately these have long since been discontinued. If you want to create a website from scratch now, there may be alternatives to those applications but a decent text editor (such as Notepad++) and a few html guides is a good place to start.
If your website is just a few pages, you may be able to export from a graphic design or desktop publishing application. LibreOffice Writer has an option to save as HTML, the pages are not usually as compact as the hand made equivalent but the application are much easier to use. The main tip is to try and keep your page layout simple!
Although a static website cannot read from a database, it does not mean you cannot generate your webpage from one. In this instance a database can mean a spreadsheet. This method takes a database which could contain lists of items, messages or whatever else and then does the equivalent of a mail merge, it uses a HTML template to produce a static page for each record/row of your database. This method is good for creating blogs or shop front type website.
A spreadsheet to website generator will be available from here soon!
Static hosting is great, if this guide has convinced you to take a look, there are many static web hosts available. One of the best ones to start with is Neocities, it is fast, easy to use and has a very generous free tier! It also has useful features such as tipping, basic stats and (optional) user comments.
Updated
(25/10/2026)