Reduce Bounce Rate with Good Content and Easy Navigation

by Jeff 27. May 2009 15:00

I recently tried a tactic of writing for just search engine traffic that failed and increased my bounce rate so I’ve decided to correct my mistake and write more for people instead of search engines and decrease my bounce rate. Lately I’ve ended up with a really high bounce rate while writing for search engine traffic that I’m not too happy about, yes the traffic went up while I was writing for search engines but so did my bounce rate and I’m sure I made some really unhappy people in the process. Before this realization I was writing for both search engines and people but in separate ways instead of subtly integrating the two tactics into one article I was writing multiple search engine articles and less of the content articles. Using these difference tactics resulted in a high bounce rate and less click though.

Awhile back I wrote a few post on this blog and a few others that targeted some frequently searched terms not thinking the whole thing though I wrote and posted some content without thinking about what my goals where. Not having a good goal is great if you want your bounce rate to go up. Yes my search engine traffic doubled but so did my bounce rate with it. Having a high bounce rate made me stop and think about what my goals where. Yes I want more traffic but at what costs, writing for search engines alone is a waste of time, all it did was increase my traffic and annoy some interested readers. All the pages I wrote for specific search terms where junk if someone was to read them. I did provide good content on other posts but they were never seen because of the poorly worded content on the search engine targeted posts that forced my readers to move on. If the visitor coming from a specific search term doesn’t like the content there reading, the visitor will leave right away I found this out first hand and have now made a decision to change that by structuring my blog how I would a normal website, write content for people not search terms, adding graphics and content that would keep visitors interested not just search terms that attract search engine traffic.

My first task in decreasing my bounce rate is writing good content for people and then search engines. My second task is to organize my blog like an average website. All good websites have a natural flow to them a flow that if done right will decrease my bounce rate and increase my click though rate. I’m going to accomplish this by adding hierarchical page lists and hierarchical category lists that will provide better organization for my readers. These features are very common on good websites and I’ve added them to almost all websites I’ve done in the past. It just simply slipped my mind when I started blogging.

Correcting my website design and content tactics

The first question that comes to mind is am I writing for people or search engines?

Well the answer to that is simple and complex at the same time. I have to write good content for people otherwise they will leave (increasing my bounce rate) and I have write good search engine friendly content with keywords that search engines need content for. So the answer is to write content for both people and search engines at the same time always keeping my search engine content subtle enough for people reading what I wrote.

Hierarchical Page List for BlogEngine.net

For right now it will just simple indent the child page list until I find an effective solution here is the code to do this and it was actually already done inside the BlogEngine.net admin I just stripped down the code and put it into a widget.

widget.ascx


<%@ Import namespace="BlogEngine.Core"%><%@ Control Language="C#" AutoEventWireup="true" CodeFile="widget.ascx.cs" Inherits="widgets_HierarchicalPageList_widget" %><blog:HierarchicalPageList ID="HierarchicalPageList" runat="Server" />

widget.ascx.cs

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

public partial class widgets_HierarchicalPageList_widget : WidgetBase
{

 public override string Name
 {
        get { return "Hierarchical Page List"; }
 }

 public override bool IsEditable
 {
  get { return true; }
 }

 public override void LoadWidget()
 {
  // Nothing to load
 }
}

HierarchicalPageList.cs

#region Using

using System;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.IO;
using BlogEngine.Core;
using System.Collections.Generic;

#endregion

namespace Controls
{
    /// <summary>
    /// Builds a Hierarchical Page List. a list of nested UL - LI - UL - LI
    /// </summary>
    public class HierarchicalPageList : Control
    {

        /// <summary>
        /// Initializes the <see cref="HierarchicalPageList"/> class.
        /// </summary>
        static HierarchicalPageList()
        {
            BlogEngine.Core.Page.Saved += delegate { _Html = null; };
        }

        #region Properties
         

        private static object _SyncRoot = new object();
        private static string _Html;

        /// <summary>
        /// Caches the rendered HTML in the private field and first
        /// updates it when a post has been saved (new or updated).
        /// </summary>
        private string Html
        {
          get
          {
            if (_Html == null)
            {
              lock (_SyncRoot)
              {
                  if (_Html == null || BlogEngine.Core.Page.Pages == null)
                {
                  HtmlGenericControl ul = BindPages();
                  System.IO.StringWriter sw = new System.IO.StringWriter();
                  ul.RenderControl(new HtmlTextWriter(sw));
                  _Html = sw.ToString();
                }
              }
            }

            return _Html;
          }
        }

        #endregion

        /// <summary>
        /// Loops through all pages and builds the HTML
        /// presentation.
        /// </summary>
        private HtmlGenericControl BindPages()
        {
            HtmlGenericControl ul = new HtmlGenericControl("ul");

            foreach (BlogEngine.Core.Page page in BlogEngine.Core.Page.Pages)
            {
                if (!page.HasParentPage)
                {
                    HtmlGenericControl li = new HtmlGenericControl("li");
                    HtmlAnchor a = new HtmlAnchor();
                    a.HRef = page.RelativeLink;
                    a.InnerHtml = page.Title;

                    li.Controls.Add(a);

                    if (page.HasChildPages)
                    {
                        li.Controls.Add(BuildChildPageList(page));
                    }

                    li.Attributes.CssStyle.Remove("font-weight");
                    li.Attributes.CssStyle.Add("font-weight", "bold");

                    ul.Controls.Add(li);
                }
            }

            return ul;
        }

        private HtmlGenericControl BuildChildPageList(BlogEngine.Core.Page page)
        {
            HtmlGenericControl ul = new HtmlGenericControl("ul");
            ul.Attributes.Add("class", "childList");

            foreach (BlogEngine.Core.Page cPage in BlogEngine.Core.Page.Pages.FindAll(delegate(BlogEngine.Core.Page p)
            {
                //p => (p.Parent == page.Id)))
                return p.Parent == page.Id;
            }))
            {
                HtmlGenericControl cLi = new HtmlGenericControl("li");
                cLi.Attributes.CssStyle.Add("font-weight", "normal");
                HtmlAnchor cA = new HtmlAnchor();
                cA.HRef = cPage.RelativeLink;
                cA.InnerHtml = cPage.Title;
                               
                cLi.Controls.Add(cA);

                if (cPage.HasChildPages)
                {
                    cLi.Attributes.CssStyle.Remove("font-weight");
                    cLi.Attributes.CssStyle.Add("font-weight", "bold");
                    cLi.Controls.Add(BuildChildPageList(cPage));
                }

                ul.Controls.Add(cLi);

            }
            return ul;
        }
        /// <summary>
        /// Renders the control.
        /// </summary>
        public override void RenderControl(HtmlTextWriter writer)
        {
          writer.Write(Html);
          writer.Write(Environment.NewLine);
        }
    }
}

My next step will be to write a Hierarchical Category List. Originally I thought I would be better off leaving the Hierarchical Category List out because I thought it would help with search engine ranking and while I still think it helps It’s just that it doesn’t look natural and I want a natural look and not something that looks like I’m keyword stuffing. Keyword stuffing is great for SEO but not for reading and I’m trying to get my bounce rate down and go for a natural look that provides more of a website look and feel with good content.

Bookmark and Share

Tags:

Asp.net | BlogEngine.net | Blogging | Widgets

Comments

7/1/2009 3:14:38 AM #

aditya@Sunshine coast web design

Hi,
very nice post.Yes i agree with you that if you are write the content for the search engine than your bounce rate is really high.so it is better that you write the content for the user.
Thanks fpr the sharing.

aditya's last blog post.. A feed could not be found at http://www.timecodestudios.com.au

aditya From Sunshine coast web design United States

7/21/2009 9:32:18 PM #

Needmoney.com

Writing for people versus engines is always a difficult balancing act--you can see why some end up resorting to cloaking. Your strategy, however, is pretty elegant. Thanks for this.

Needmoney.com's last blog post.. Interview with Jeremy Schoemaker (Shoemoney)

Needmoney.com United States

10/4/2009 12:39:09 PM #

Andreq Weismen

This is oh so true!! I am also having this role confusion to make up in this world wide web. To be search engine advocate, or of quality blog advocate!! Seriously, this two things are very hard to balance.  And I am trying to make a harmony between this two issues. Guys, can you give me some points to remember in making this issues meet at one point?

Thanks in advance!

A very good blog!!!

Andreq Weismen United States

10/9/2009 2:49:12 AM #

Carrie Bevill

Very informative article!!

@Andreq Weismen - it is really important to be both a search engine and a quality blog advocate.. Balancing is not that easy. However, there are hundreds of advices available in the internet. Just make your articles of quality, grammar error free with content and make a justifiable amount of keywords available in your article..

This is a very good blog you got here!! Kudos.

Carrie Bevill United States

10/24/2009 6:22:19 PM #

hire seo expert

The content and the look of site matter lot for reducing bounce rate.

hire seo expert United States

11/4/2009 1:07:21 AM #

ScriptoManiac

Excellent post..Keep them coming Smile
Thanks for sharing.

ScriptoManiac United States

12/12/2009 7:32:53 AM #

Nipul Parikh

Good content will really helpful for site ranking and also traffic.

Nipul Parikh India

1/10/2010 2:00:29 PM #

alen air purifier

When I originally commented I clicked the "Notify me when new comments are added" checkbox and now each time a comment is added I get four emails with the same comment.
Is there any way you can remove me from that service?
Thanks!

alen air purifier United States

2/9/2010 4:19:07 AM #

Link Building Packages

valuable information and excellent design you got here! I would like to thank you for sharing your thoughts and time into the stuff you post!! Thumbs up!

-Link Building Packages

Link Building Packages United States

2/19/2010 9:04:12 AM #

save tiger in India

Good content really help you.

save tiger in India India

2/28/2010 4:56:17 PM #

Fatcow

Should I get a Virtual Private Server? At the moment I am using anhosting but they keep turning off my websites because of high server load. Im getting about 2,000 UV a day. What brand should I get?

Fatcow United States

3/3/2010 1:53:55 AM #

wow mobile

WoW Mobiles is awesome! I get free mobile service with t-mobile because I refered 3 people to wow. You can too!

wow mobile United States

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading



Powered by BlogEngine.NET

Code Research Center

©2009 CodeResearchCenter.com. All Rights Reserved

About Me

I'm a 30 year old browser based software developer who has just started to research the various ways to make money online. My current interests are software development, online marketing, social networking and blogging.

Disclaimer

These postings are provided "AS IS" with no warranties, use at your own risk

Page List

Poll

What blog platform do you use?



Show Results