How to Write a Good Blog Post
Tags: beginners, webdev, productivity, tutorial
Published: 2019-07-08 15:11:32

---
title: How to Write a Good Blog Post
published: true
tags: ['beginners', 'webdev', 'productivity', 'tutorial']
series: false
canonical_url: https://www.cdevn.com/how-to-write-a-good-blog-post
description: "What goes into writing a good blog?"
---
[Cover Image](http://youngblah.com/wp-content/uploads/2012/03/Life-of-a-Blogger.jpgblog)

In my first month of blogging, I learned a ton of lessons, that have helped me improve as a writer, as a communicator and as a person. 

Last week, I published a post titled ["How I Started Existing on the Internet"](https://dev.to/taillogs/how-i-started-existing-on-the-internet-2nf5). The post primarily discussed my social media efforts, but I also tried to include some practical advice about writing successful blogs. I got a lot of feedback based on that post, and the most overwhelming request was for more meta content about the blogging process. When I received the following comment yesterday, it was the inspiration I needed to write this post.

![comment for blogs](https://thepracticaldev.s3.amazonaws.com/i/me7qfs1452ajq0v3ljju.png)

_Thanks Tim!_

## How to Write a Good Blog Post

### Set the Right Expectations

The first, and most important tip to writing blogs, is to calm down. Out of all the conversations I've had with people who want to blog, but haven't yet, the only common factor is anxiety. 

I believe that the common advice/support given to these people is toxic and only contributes to that anxiety. I can't even count the number of times I've seen comments such as:

> Oh you're just in your head, your post is going to do very well

or

> Great content speaks for itself, if it's quality people will read it

Look, it sucks that I have to be the one to tell you this, but that's all bullshit. I'm not saying those aren't genuine comments driven by a desire to positively impact others, they're just not factual. 

**No matter how amazing your writing/technical skills are, some of your content will do bad, and that's ok**. 

This is exactly what I mean by _setting the right expectations for yourself_. I see a lot of new bloggers spin a fantasy in their head of how things will play out. And even when things go well, if they don't match the fantasy exactly, those people feel disappointed. It's critical that you accept right now that you will produce a ton of flukes throughout your blogging career. It's normal, and it happens to EVERYONE! In fact, I would bet every dollar I own that _INSERT-YOUR-FAVORITE-BLOGGER-HERE_ has written many posts that tanked, you just obviously never heard about those ones.

![some-fail](https://thepracticaldev.s3.amazonaws.com/i/d1uzqj8ykzzke7bnhyo7.jpg)
[Source](https://sloanreview.mit.edu/content/uploads/2016/03/Simester-Fail-1200.jpg)

Another aspect of this is, what really constitutes a "bad blog post". For most people, a "bad blog post" is any blog post that doesn't do well. With a polarizing definition like that, it's not hard to see why people feel very anxious about writing blogs. You have to remember, there are so many factors that go into whether a blog post (or any content on the internet) succeeds or fails. Unfortunately, the quality of that content is not even the primary determining factor. 

Accepting this as truth brings a ton of benefits. If you internally believe that a great post can do bad, you won't set unrealistic expectations that only serve to disappoint you. Keep in mind, just because you wrote a good post and it didn't do well, doesn't mean you can't improve. As I said, there are many aspects to producing a successful blog post outside of the writing quality. Here are a few...

* You distributed the post to the wrong audience.
* You didn't distribute the blog post at all.
* The formatting and organization of the post turned people off
* The title wasn't catchy enough
* You posted at the wrong time of day
* There was similar content out that hurt your visibility

"There was similar content out that hurt your visibility" is especially great, because this is a problem that also affects box office movies. Would you say that every movie that does bad at the box office is a "bad movie"? I wouldn't, in fact, some of the most critically acclaimed movies bombed at the box office.

![](https://thepracticaldev.s3.amazonaws.com/i/4e06a1g9wsdyg4v460qs.jpg)

_By all standard measures, this movie bombed_

**Personal Note**: I said that everyone writes unsuccessful posts and that definitely includes me. Out of all the posts I've written, the one I spent the most time on did the worst. Over the few weeks it took to write the post, I learned that it might not work well with my audience. Learning that ahead of time made it a lot easier to see the post not succeed. In the end, I enjoyed writing it and it helped me improve so it was just as worthwhile as a successful post.

### Have a Goal

Having a goal when you start, will tremendously improve your writing quality, and increase the value that others distill from your work. The biggest advantage of being goal driven when blogging is the effect it has on the "focus" of your content.

"Content focus" is something that many people are aware of, but never think about. Have you ever read an article that was allegedly about X and somehow turned into a discussion of Y. A lot of the time, I'll see comments on one of those posts accusing the author of being "clickbaity". It's funny, because half the time they aren't even trying to write clickbait, they just got distracted when writing the article and lost focus on their goal. Remember, if someone clicked on your article, it was because they were interested in the value alleged by the title. The only way your post can be "bad" is if it doesn't fulfill the expectation you set.

Let's take this post for example. The title is "How to Write a Good Blog Post", which is a pretty lofty goal to deliver on. Keep in mind that you're not expected to please everyone. There's a good chance that someone will read this post and not get anything meaningful out of it, and again, that's ok. As long as I'm honest, on topic and striving not to waste the readers time, I've done my part.

On a more meta level, goals tie back into setting realistic expectations. I've seen many people set their high level goal as 

> Write my first blog post, it should also be successful.

How many times have you tried something for the first time and done it perfectly, how about even well? It's not just you, things take practice. A much more realistic goal would be

> I will write 10 blog posts and one will succeed.

Lastly, it doesn't have to be externally validated goal, just a purposeful one.

### Know Your Audience

Having an accurate "audience profile" is key to writing a good blog post. An audience profile is the set of defining characteristics of your average reader. Even if you have 0 followers, and have never written a blog post, you still have an audience profile. Although in that case, it would be mostly defined by audience profile of the sites where you post.

**Audience Profile of a Few Sites**

|Site|Profile (Heavily Opinionated)|
|-|-|
|Devto|programming, tech, mostly beginners, discussion, friendly, very liberal |
|Reddit (programming subs)|experienced, critical, attentive to detail, political (moderator based), |
|Hacker News|tech, negative, overly critical, bitter, highly intelligent|
|LinkedIn|professional, no non-sense, critical, mixed experience|

Although it may not feel the most natural, writing content with your audience in mind will produce a more relatable and empathetic result. It helps me to think of each individual blog post as a full fledged product. This allows me to manage them like I would any other product, by prioritizing features (content) that solves a user need.

Knowing your audience allows you to focus your writing and deliver on the the core value of your post. For example, if you're explaining technical concepts, how much can you expect your average reader to know coming in? This is something I see a lot of writers struggle with, including myself. I'll see a post that is seemingly aimed at a highly technical crowd, but starts off teaching people about rudimentary programming concepts. Don't do that!

There are a lot of other potential ways to alienate your audience. The unfortunate reality is that your content will never be able to satisfy everyone, so your goal should just be to satisfy one group very well. There are some very common things that alienate audiences that I do my best to avoid.

* Memes that are only funny with context
* Using unnecessarily complex words when simpler alternatives are possible
* Title doesn't convey value of the post to the audience
* Excess references to pop culture or other time sensitive constructs

![friends](https://thepracticaldev.s3.amazonaws.com/i/iyci4p1lukiscrl2a67q.jpg)
_irony.jpg_

The last point is pretty easy to understand because you've all experienced it before watching older T.V. shows. Some shows are timeless and others become very dated very quickly.

**Personal Note**: I struggle to not alienate my audience more than anything else discussed in this post. I involve myself with a wide range of topics, so it's very hard for me to not rely on references to other topics and fields outside of audience comfort zone. I learn very relationally, so often times I struggle to explain a concept if it's not in the context of something else.

### Create an Outline

The biggest improvement to my blogging came from outlines, and by quite a margin. I wrote quite a few posts before I started using outlines, and it was always a big time-wasting mess. I would often spend 1-2 hours writing before I realized that the pieces of my idea didn't really connect, or that the information didn't have a natural way to fit together.

![blank page](https://thepracticaldev.s3.amazonaws.com/i/ze8b6d8dfbss70l44rjm.jpg)
[Source](https://blogs.transparent.com/french/files/2016/09/4815205632_632ee48a71_z1.jpg)

Your brain also hates that empty space staring back at you. Intros are so crucial, so it's pretty daunting to start a post if the intro is the first task you have to tackle. To combat this, start your post by just jotting down a ton of topics. I usually try to organize these in logical sections, that way the outline provides starter info and structure. 

In my experience, outlines also have a tremendously positive effect on "Decision Fatigue". [Decision Fatigue](https://en.wikipedia.org/wiki/Decision_fatigue) is a scientifically studied phenomenon that describes how each decision we make (over the course of a day) inherently reduces the quality of future decisions we make. When it comes down to it, writing a blog post involves making a ton of micro and macro decisions. I have found writing an outline to be the most effective method of combating decision fatigue.

**Personal Note**: Here's the actual outline I used for this post.

![outline](https://thepracticaldev.s3.amazonaws.com/i/ul58f8414jgvrxlzcs9y.png)

As you may have noticed, some stuff changes. That's ok, the outline still did its job.

### Start Writing

I actually have the least to say about this part of the process. Being a good writer is an entirely separate skill from being a good blogger. I'm not a bad writer, but I'm not a great writer. I do have some general tips that I find very useful.

* Don't be afraid to move on. There is no required linear path when writing a blog post, lol.
* If you can handle reading other similar posts to yours first without getting discouraged, do it. It will help you write more confidently and know which areas to spend more time addressing.
* Use a spell checker.
* Have a quiet place to work.
* Set aside enough time to not feel rushed.

### Learning From Twitter

{% twitter 1137658720698228736 %}

_This tweet-storm is a great example of concise effective communication_

I've started using Twitter recently (just since last month). Twitter provides a great opportunity to practice succinct and effective communication. I tend to be "unnecessarily verbose", and Twitter has really made me aware of the words I choose and the way I phrase things. 

My learnings on Twitter eventually led to a strategy that I like to call "lossless blog compression". The goal is to reduce the length of a blog post as much as possible, without increasing the barrier of entry or losing meaning. This isn't an excuse to pull out the thesaurus and start swapping out words for their shorter, obscure counterparts. This is a casual, passive habit for me, so once or twice per blog post I read it over and put everything to the test.

{% youtube QEzhxP-pdos %}

### Aim for a Peer Review

Having another person read your post before you publish is really helpful and can really boost your confidence. Unfortunately, this one is really hard to accomplish and most of the time it's not even possible. I would encourage you to send your post to personal friends and family before you release. Even if the readers aren't the intended audience, they can still provide valuable feedback on things like typos and grammar.

### Conclusion

Writing a good blog post requires you to become a good blogger. As with everything, it takes practice. Go in with the right expectations and with the understanding that you'll need to walk before you run. Anyone can write good blog posts as long as they stay focused and work hard. The most important step (and most difficult) is to get yourself out there. I promise it's not as bad as you think.

For the record, there are a ton of other aspects of writing a good blog post such as

* Be passionate
* Be positive
* Have a unique voice
* Don't be religious about tooling and technology
* Use lots of headers
* Don't use un-cited data ([or unfairly present the data like I did in this post](https://dev.to/taillogs/how-to-write-a-good-piece-of-code-2gmj)) 
* Etc

I ran out of room for this post, but I might even make a part two covering some topics I didn't address. Either this week or next week I will release a meta-article covering a blog post that I never released. In the article, I will discuss how I identified that the piece was bad and how I plan to fix it.