Every blogger wonders what growth hacks, SEO tips, and tricks they missed when they build their blog. Everyone wants their blog to be search engine optimized like crazy to drive maximum traffic. This post will give you step-by-step tips on installing and getting value out of 21 different plugins, custom code, theme selection and other goodies for your blog as it relates to SEO.
I recently had to do experience this in building my new blog. I thought it might be educational and useful to walk through some of my logic in thinking about SEO for blogs and the process I went through to ensure that I got the most Google juice out of every single post I write. This is bottom-of-the-pyramid stuff for growth hacking a blog. Here are some of the areas I worked on:
- Blog/CMS Platform
- Theme for SEO
- SEO for Blogs
- Page Speed
I used WordPress. Two reasons: First, I wanted to have complete control to configure everything I wanted to play with. Medium, Svbtle, Blogger and Tumblr or even something like using LinkedIn or Google+ for my blog held a certain minimalist appeal, but I wanted to be able to test things, set things up my way, and control the world. Second, I had used WordPress before and I was comfortable with it. People like Tim Ferriss use WordPress for their blog. Everybody uses WordPress – it is a widely supported platform that can be expected to continue to evolve.
I use WordPress.org, not WordPress.com – I wanted to host and hack my platform. I am sure some people would say that they use Jekyll or Drupal or something like that, but my past experience with WordPress and the broad set of tools available for SEO for blogs and user experience improvements made me want to use it again. I would recommend you choose the same. Growth hackers need to be able to hack. Don’t constrain yourself.
Theme for SEO
I wanted a “magazine-style” theme. I wanted lots of links on the home page to minimize the number of click-throughs needed to get to content and expose more of my content at the top level to the Google spider for SEO purposes.
I decided to use Expound, but in many ways, this was the least thought through decision I made. Design genius, I am not. If I wanted to spend some money, I would have gotten the Genesis framework and purchased one of their themes. I also considered using Reverie and the default 2014 theme. I probably would have used Reverie, but the layout wasn’t quite magazine like enough for me. The 2014 theme was probably OK, but I didn’t want the left sidebar and I felt like I see too much of that theme already. All of this is code for “I am too lazy to customize the layout extensively”.
From an SEO perspective, I think all of these are fine. Modern templates incorporate pretty good SEO design thinking out of the box, I suspect.
I did grab a new font off Google Fonts to give my site some character. I also played around with rotating some different pretty images in the header, but I am such a crap photographer that it turned out to be a disaster.
My other big habit is that I wanted a blog layout that supported a feature image and I wanted a layout that supported the “more” button. I am terrible at working with these, but I recognize that feeding people partial RSS feeds is probably important in the macro scheme of things to get people to the site and onto the email list (growth hack!). So this was not really for SEO, but about driving traffic through the site.
SEO for Blogs
There were several things I wanted to focus on in ensuring that I nailed the SEO for this site. I recognize that my site is doomed due to the new-ness of the domain, but here was my plan:
- Distribute authority (for SEO) and drive page views (for traffic) across the site
- Improved SEO related to my blog posts
- Manage internal architecture and analytics for SEO purposes
Authority in Blog SEO
To distribute authority and drive page views across the site, I used several plug-ins:
- Top Posts & Pages from Jetpack: In the sidebar I always display my most popular posts.
- Yet Another Related Plugin Post: To provide a menu of related posts for each post at the bottom of the post.
- Recent Posts: This comes standard with WordPress and I put it in the side to display the five most recent posts.
- Archive: This comes standard with WordPress.
Now there are links to many different pages on every post. I don’t have enough posts up yet, but my expectation is that there will be links to 6 to 10 different posts on every page. One of the problems with YARPP is there is not an easy way to exclude many of the static pages I had created (things like the “Thank you for signing up for emails” page). To address this, I installed the Post Categories & Tags to Pages plugin.
By default, pages are not allowed to have categories or tags. This plug-in changes it so they are available and use the standard WordPress infrastructure. Once this was done, I created a tag called “YARPP-Private”, assigned it to pages I didn’t want shown in the results, and then blocked that tag in YARPP (which is a standard out of the box functionality.
It turns out that the layout I was using (Expound) also had a “related_posts” structure built into it. That meant that when I turned on YARPP, it displayed related posts twice. I had to turn off “display” of YARPP to make it only display once. If you have the same problem I had, then this sentence just saved you ~6 hours of work!
Blog Post SEO
One answer here: SEO by Yoast. Install it and use it. You set the keyword you are trying to optimize for in a given blog post and it does an amazing job of giving you feedback on how effectively your post is going to move the SEO needle for that keyword. Super helpful.
I find I have gotten tremendous value out of even the most basic things it does, such as making sure that my meta description and title are not too long to be improperly displayed on Google. This is a little thing, but it is criminal to screw it up. If you go to so much trouble to try to SEO rank for a term and then your title or description can’t be read, who will click on your blog?
I did a few other things that are not really plug-in related, but interesting. I made sure that Google+ was set up correctly so I could get authorship credit. Also, I used all the template code that Donnie Cooper makes available at inboundable.
Finally, I set up a custom URL structure that was /year/post_name. I don’t blog so frequently that I worry about URL collision, but I figured that on the off-chance that it could occur, using year as an additional unique key would address that adequately. I am still debating actually flipping those so it is post_name/year. I would like to get the post_name closer to the front, but I am on the fence regarding whether this is really a big deal.
Blog SEO Architecture
A bunch of little things here:
- Simple URLs: This allows you to track outbound link traffic. Seemed like a good idea to be able to see that in the analytics.
- RB Internal Links: It is surprising that the functionality of RB Internal Links isn’t included out-of-the-box in WordPress. It changes the internal linking architecture to use the post ID rather than the URL itself. That means that if you change the URL of a page or post late, then the URL will be updated dynamically. This minimizes 404 pages and maximizes internal link strength.
- XML Sitemaps: You need a good robots.txt file and a good XML Sitemap. I have personally reviewed the output and it seems to work well. I made sure to add to the block list a list of all of the pages that I did not want included because they are squeeze pages and things not meant to be indexed.
Growth Hack To Drive Page Views & Email Sign Ups
I wanted people to consume lots of content and I wanted them to sign up for the email list. I use Mailchimp for my email list because it is rocking and free and has a monkey. I followed Noah Kagan and Andrew Chen’s best practice and put the email sign up front and center using the Magic Action Box plugin. Then I used the Mailchimp widget and threw the email sign up in the sidebar, so every page would see it. Then I added a pop-up after you scroll 60% down the page using Scroll-Triggered Boxes and another box at the bottom of the blog post using GC Message Box.
I don’t have data on which of these work best, so there is some optimization coming in the near future. I wanted to use my WordPress pages to build landing pages and squeeze pages. Part of that is building custom page templates that didn’t have any of the sidebars or links. Also, I needed to get rid of the comment section at the bottom of pages and posts for certain pages. There is a plugin for that!
Finally, I installed “What Would Seth Godin Do” as one last wave of attempts to get people to sign up for the email list. I have a friendly message for first time visitors that attempts to get them to sign up, then a bullying message for long time visitors to harass them.
Analytics for Blog SEO
Yoast’s Google Analytics Plugin: I looked at a bunch of different Google Analytics plugins and this one seemed like it had the most functionality out of the box while not increasing complexity at all.
I used JetPacks standard settings for sharing. Sharing is really important and previously I have spent a fair amount of time fooling with this, but I think JetPack has really improved in this area and it seemed good enough for me. Of course, despite me saying that I think it is important, my success in getting content shared has generally been, “meh”. So maybe there is some other thing I should do.
I have never done the “have the share bar slide along as you read”, although many large sites do. I suspect that they have split-tested this and found it works. I have no such knowledge. Chime in with a comment if you have a best practice here!
Loading time makes a huge difference for blog ranking in Google and I have already noticed that my Media Temple site seems insanely slow. Of course, absent doing something dramatic to fix the problem, I will have to settle for doing what I can. I suspect I may migrate my entire architecture over to AWS or something like that in the not to distant future strictly because the response times for SEO purposes are glacial.
W3 Total Cache: There are tons and tons of caching plugins out there. W3 Total Cache is not the most popular, but it is probably the most powerful. This plugin handles everything from combine and minification for both CSS and JS to HTML linebreak and comment removal, disk caching, browser caching and more. There are known issues with the newest release (0.9.3) and I wasn’t able to get it working on my site, but I was able to download, install and get running with the prior release (0.9.2). It is a wave of caching power.
I have a bunch of WordPress plugins that I have used for quite some time and believe in them. You need these:
- WordPress File Monitor: This notifies you if files change. It is kind of a hassle as you get your site set up, but it is must-have security.
- Akismet: Everybody uses it, you should too.
- WP-SpamFree: Akismet labels tons of comments as potential spam. WP-SpamFree just whacks ‘em. This has definitely saved me time on spam management.
- Limited Login Attempts: Don’t let people try to login to your site a zillion times.
- Block Bad Queries: This stops a bunch of different malicious hacks for WordPress.
Win The SEO Blogging Game
So there you go. If you do these things, you will be set up to build a blogging empire with minimal fuss. I am trying to add two things to this from a personal habit perspective:
- No blog posts under 1,000 words. If I don’t have something meaningful to say, I should try and tweet it. Twitter is the place for throwaway comments!
- End blog posts with a teaser for the next blog post. That requires organization, but it also was a key tip given to me during a 1 on 1 call that led to tons of email signups for a buddy.
What are your best practices for winning the blog wars? Tips for improving my page speed for SEO? Throw down a comment!
If you liked this blog post, my next one is right up your alley. I have conducted a substantial test of how to get someone to sign up for your email list and I will tell you what to do to improve sign ups. My best system was 60% more effective than my worst test with 99% confidence. 60% improvements move the needle. Subscribe via email to make sure you don’t miss it.