Multi-label Text Classification
What you seem to want is to identify meaningful discrepancies between your blog posts in order to identify what category they fit in.

I think it's important for you to consider the classification problem in terms of human thinking:


How would humans decide which blog gets which tags? 
Can we distil this decision-making into meaningful features? In other words, does this decision-making depend on (linguistic) phenomena that can be found in the text? (it probably does)
(How) can we extract these features from the text? 


Also, it might be the case that either the tag set you propose or the data set you have are too similar. This means that the tags might be too similar and that their occurrence depends on many similar feature values which makes it difficult for your training algorithm to extract discriminative features. The same thing happens when the data expresses too little variety.

On a final note: This might well be the first attempt to solving this particular problem (on this data set and this set of labels), so the number you get is not necessarily bad or sub-par, because it might simply be a difficult task.