I won't insult your intelligence by taking too much time here. Web design really should be simple: get your information across to as many people as possible. However, people sometimes lose track of this. The following are my bullet points for good web design.
Your design should be viewable on any device.
A lot of people get bogged down here, using things like CSS media objects, and other HTML5/CSS3 magic to create a separate view for each device.
However, by making your template and style lightweight and flexible enough, this can be built into the design of your webiste from the beginning.
Start off like this:
A good framework to start with, and build upon:
AND THAT'S ALL YOU NEED.
These elements can obviously be styled however you want, but they should be laid out in a sane order in your HTML. Again, refer to the first header on this page.
Your website can be quite literally used as a tool for hacking if user content is allowed.
Use Content Security Policy headers for locking it down, and of course, sanitize information before displaying on your website.
The secure design of interactive websites is something much beyond the scope of this article. A good website to start at is Paragon Initiative. While they seem to target the new-age OO PHP/MySQL/MVC hoo-hah, their security advice is pretty much spot on.
The one step I will discuss here from the above site: use HTTPS everywhere.
With the existence of services like Let's Encrypt these days, there's no excuse, and you are preventing a lot of trivial attacks like packet sniffing out login information, and simple things like not having your website's display changed on public wifi without the user knowing.
Consider what you actually need to accomplish with your website.
For instance: I don't really need feedback on most of these articles, as I've posted/shared the content in forums/etc. I certainly don't want to babysit a forum full of freeloaders, or other similar user-space hosted on my website either.
Therefore, this site serves static HTML.
Use the minimal framework possible for accomplishing what you need. Don't install a complete LAMP stack (indeed I would avoid Apache altogether) just to serve some HTML or provide something simple like a guestbook.
Of course, a lot of people don't have control over this using shared hosting.
The following can be enumerated on slightly more on my other page The Decline of Web 1.0, if you feel like reading a little more.
At the end of the day, make sure to do what track #8 on Straight Outta Compton says, without getting bogged down with implementing every flavor of the day.
Have a nice day.