For the blog entries: are you completing the meta information, such as meta title, meta description, including keywords in image titles and the content, and using long tail keywords to pull in more searches? Yes, compelling content is important. But with full meta data and SEO optimized content you give search engines so much more to grab onto. And using SEO optimization will also improve your scores.
For example, you can take the keywords asked by your users and do some searches on them yourself -- are the results relevant to your blog? And by adding to the original terms with long tail keywords you give yourself the chance to be a bigger fish in a smaller pond. For example, searching for "css" gets a huge number of results and you'll be buried. However, searching for "using css and jquery to rotate background image" is much more specific and will improve your opportunities to appear higher in the search results and get better scoring.
Plus, notice that the long search string is more like natural language. That's more compatible with how Google finds and presents results. So using a more specific long tail keyword (without going overboard, in the example above a good choice would be "css rotate background image" or "jquery image rotation"; not the whole search string) results in focused results.
My advice would be to create fantastic content and use all of those meta data fields to enhance your SEO optimization.