Archive for Featured

Using a Rolling 12 Report to Understand Income Trends

Unpredictable income is something that every freelance web developer faces. While developing recurring income streams can help to stabilize our finances, there will likely always be significant ups and downs in our monthly earnings.

There are seasons in freelance work

There are good times and bad times. Like King Solomon wrote in Ecclesiastes, there is “a time to sow and a time to reap… a time to mourn and a time to dance.” That’s life.

As freelancers we need to come to terms with this fact of financial seasons and develop strategies and tools that help us survive and prosper. The Rolling 12 Report is one of these tools.

Understanding the Rolling 12

If you charted your finances from month to month, you’ll likely create a line graph that looks like the Himalayas. Lots of peaks and valleys. It’s hard to see trends when we deal with so many ups and downs.

That’s where the Rolling 12 becomes helpful. Instead of looking at your income from month to month, you look at the average of the last 12 months as of today. As each month comes, you drop off the oldest month and add the newest and chart the decrease or increase in revenue.

Download the Rolling 12 Excel File

Examining the Sample Data

Start with the Raw Data

Start with the Raw Data tab. Two years of monthly totals are supplied as an example. At the 12th month, an average is calculated in cell E17. Each month thereafter, the average is recalculated using the current month and the 11 previous months.

The Actual Income Chart



Here are the peaks and valleys that are common for all of us freelancers. Looking at this chart, it’s hard to grasp where we are with our finances.

The Rolling 12 Chart


When we chart the average of the last 12 months, we can more easily start to see trends and the numbers become meaningful.

Give it a try

Take some time and fill in your actual numbers and see if the ups and downs in your business income start to make more sense.

Note, you’ll need to click into each of the charts and manually adjust which cells are being rendered. There is likely a more elegant way to do this that an Excel guru could figure out, but hopefully this tool will provide you some value immediately!

Take Away

The Rolling 12 Report can help you get a more accurate view of trends in your variable income as a freelancer.

Freelancing on a Desert Island

The Three Dangers of Isolation

Remember the movie, Castaway? The story focuses on Chuck Noland, a time-driven FedEx executive played by Tom Hanks. Noland’s plane crashes into the Pacific Ocean and he finds himself marooned on an isolated island. Day after day for four years, he fights to survive with no one to talk to other than a volleyball he affectionately names “Wilson.”

Needless to say the experience radically changes him.

I’m playing the odds here, but I doubt anyone reading this has ever been stranded on a desert island. But if you’re a freelance web developer, it’s likely that you’ve experienced the kind of isolation the island experience can bring.

How many days have you hunched over your desk, staring at your monitor and pecking away at your keyboard with virtually no human interaction aside from an occasional client call? Do you have anyone to share your problems with who genuinely understands?

Few people have ever sat in the freelancer’s chair and had to struggle through the unique set of challenges that we face.

Freelancers need each other.

That statement true even if you’re an introvert. There are a few subtle dangers in isolation that every freelancer must face – and each of us needs people in our lives that can help us overcome these challenges.

Danger #1: Blindspots

Have you ever realized how easy it is to see when someone else is about to make a dumb mistake? A friend comes to you and describes a situation and explains what he is about to do next. And you can tell immediately he is about to make a huge mistake. Why is it that you have a crystal clear understanding of the situation and he doesn’t?

It’s exceedingly difficult to take an unbiased look at our situation. That kind of perspective usually only comes from others.

In a word: blindspots. We all have them. It’s exceedingly difficult to take an unbiased look at our situation. That kind of perspective usually only comes from others.

It’s simple. Others can see our blindspots when we can’t.

Blindspots hide throughout your business. They breed in our bad time management habits, and they thrive in our dysfunctional processes. They are left to grow unchecked because we’re simply blind to the issues.

We need others who can see where we can’t. We need people in our lives to call us out – friends who we know and trust who have permission to speak freely. If you try to live your live or run your business without them, you’re flying blind. And you’ll continue to make the same mistakes over and over again.

Danger #2 – Stagnation

As you watch the movie Castaway, you can’t help but notice how mundane and repetitive Chuck Noland’s life becomes. He goes from living a life filled with variety and change to a life confined to a few hundred square yards of sand, where every day is the same.

The busier we are, the less innovative we become.

As freelancers, our lives are rarely boring. But they can certainly get stagnant. This is especially true when we’re busy. This may seem counterintuitive at first, but think about it… the busier we are, the less innovative we become.

When we’re busy, there’s no time for innovation and there’s no time for growth. There’s only enough time to get the work done, and sometimes there’s not even enough time for that.

We need people in our lives to push us forward – people who stretch us to find new and creative solutions to the technical problems we face and the business issues we struggle with.

When we’re isolated, our tendency is to stagnate. We just keep doing things the same old way. We never grow, we never improve.

Danger #3 – Loneliness

One of the most poignant moments in the movie Castaway is when Chuck Noland finds a volleyball in some debris that washes ashore. He gives it a face and a name, and “Wilson” becomes his companion for much of the rest of the movie. It’s a fact: loneliness will do strange things to you.

We need people who can celebrate our victories with us.

While I hope that none of you have taken to having conversations with inanimate objects, most of us freelancers struggle with loneliness at some level. Many of us work alone and have no one around us for most of the day. But even if you enjoy some alone time, there comes a point where all of us reach an unhealthy level of loneliness.

Some freelancers try to solve this problem by working some place else for a while. Feeling lonely? Head to the local coffee shop and get a change of scenery. While this change can certainly help, most of us need a little more engagement than a Starbucks can bring.

We need people who can celebrate our victories with us.

We need friends around us who can appreciate the joy of cobbling together some php that solves a pesky problem. We need friends we can high five when we land a huge new project, or navigate a complicated client issue to deliver an elegant solution.

Those people are hard to find because they’re people just like us. They are other freelancers who are sitting hunched over at their desks just like us. And they think they’re just too busy to spend time with others break the cycle of isolation… just like us.

A call to break the cycle of isolation

So what about you? Are you living alone on an island? Desert island freelancing is not sustainable. We need people who can call us out, push us forward, and celebrate our victories.

The issue of isolation is one of the reasons I created >ADVANCE Coaching. Having a coach / consultant who understands how the WordPress freelance business works can make all the difference in helping you avoid blindspots and stagnation. The >ADVANCE community addresses the issue of loneliness head on.

Whether or not you choose >ADVANCE, I urge you to find a community where you can connect with other likeminded freelancers. Start with a local WordPress meetup. Join an online community. Find some place where you can share your successes and struggles. I promise, you’ll be better for it.

Oh, and if I ever see you having a conversation with a volleyball, you and I are going to have a talk.

Take Away

Freelancers need each other. Find a community where you can connect and you’ll be better for it.



The Problem with Being a Problem Solver

Most web developers are problem solvers. It’s in our nature. We enjoy confronting a problem and cobbling together the technology that provides a solution. The problem with being a problem solver is that sometimes our drive to find a solution makes us lose sight of the ultimate goal.

See if this situation sounds familiar…

You’re working on a web project and you’re having fits with an ecommerce plugin. It’s supposed to do one thing and it’s doing another. You’ve tinkered, you’ve tweaked, but nothing you do has fixed the issue. So you google, and you try something – and it doesn’t work. You google again, and you try something else – and that doesn’t work. This process continues for hours until finally a piece of magic code solves the problem.

Your greatest weakness is your greatest strength taken to an extreme.

Now here’s where our nature as problem solvers becomes a problem in itself. When we finally find that magic code snippet, we’re thrilled. We celebrate. We pat ourselves on the back for a job well done and leave our desks with a feeling of immense accomplishment… when in fact we are unintentionally reinforcing a poisonous productivity habit.

Someone has said that your greatest weakness is your greatest strength taken to an extreme. Being a problem solver is no different. We love to solve problems so much that we don’t want to face a simple fact…

You don’t have to be the one to solve the problem.

Really, you don’t. As a matter of fact, insisting on being the problem solver can actually be a huge detriment to your business. Consider the scenario above. Wasting hours solving a small problem will kill your productivity.

Let’s say that your hourly rate is $100 an hour. If you spend 4 hours solving a niggling little problem, that answer just cost you $400. Was it really worth that much?

Yes, I realize that the problem certainly needed to be solved, but it’s likely you could have found the answer cheaper than what you paid with your investment of time (you need to view your time this way if you don’t already).

Solving the Problem Solver’s Problem

There comes a point when we hit a wall and it would be wiser to surrender the problem to someone with more expertise than we have.

As problem solvers we need to be honest with ourselves. There comes a point when we hit a wall and it would be wiser to surrender the problem to someone with more expertise than we have. That means having resources to turn to for quick answers when we need them.  None of us are proficient at every aspect of web development. It’s impossible. But all of us should have a short list of problem solvers who have the skills that we don’t.

Instead of spending four hours trying to solve a problem in the scenario above, what if you stopped about 20 minutes in and realized that you hit a wall. Instead of trudging ahead and wasting hours, you Skype your programmer friend who knows exactly what to do and fixes the issue in about 15 minutes. Say that programmer charges $150 an hour. The answer just cost you $75 instead of $400.

Now say that instead of going to a $150/hour programmer, you locate a few providers on Fiverr (or some other freelancer marketplace) who specialize in the ecommerce plugin that is driving you mad. You send a message to several of them describing the issue and asking for a quote. One comes back to you with a price of $25 (which is very realistic in this scenario).  Now your answer costs you just $25 instead of $400. See how this works?

Getting More Productive

Problem solvers don’t always have to solve the problems. Sometimes we just need to know the best way to find the answer.

Of course, this issue isn’t just about touching code. Maybe you’re great at that. But all of us have areas where we might have some competence, but not expertise. And as a result, we end up wasting time that would be more productively invested some place else.

What is your place of greatest expertise and what are the areas where you would be better served to hand things off?

How much productivity would you save if you self-imposed a 20-minute time limit to solve a problem before you outsource to an expert?

Problem solvers don’t always have to solve the problems. Sometimes we just need to know the best way to find the answer.

Take Away

You don’t have to solve every problem. Be honest with yourself when you hit a wall. Set a time limit, and once you hit it, hand off the problem to an expert.

When Facebook isn’t using the Featured Image for your WordPress Post

Annoying, Isn’t It?

I hate it when things beyond my control affect my clients’ web sites. Facebook is too-often one of those things. So when I received an email this morning from a client stating that Facebook wasn’t using his post’s featured image but was pulling other images from the site instead, I wasn’t surprised. But finding a solution to these issues is another matter.

The Featured Image Was Correct

My first suspicion was that the client hadn’t correctly set the featured image, or had forgotten to update the page after the image was set. Yet, upon inspection, the featured image existed and was displaying properly on the web site. Yet when I posted the URL to the post on the client’s Facebook page, only two image options were available. They happened to be from the front page and neither of them was the correct featured image.

So, on to Google… and the Diagnosis

After some time searching, I discovered the reason why this was occurring.  Apparently, my client had initially published the post without a featured image. We use the Social plugin from Mailchimp/Crowd Favorite to automatically post his blog articles to Facebook. So Facebook did what it was supposed to. It grabbed a couple of images from the front page and offered those as options for the post. However, when the featured image was added later, Facebook continued to insist that only those two image options could be used. Here’s why…

When a post or page is shared on Facebook, it stores the images from that URL in its own cache to use in the future. Facebook is not going to look at that URL again for different images until their cache expires. And nobody outside Facebook really knows how long that will be (hours? days? weeks? months?). But there is a way to fix it…

The Solution

There is a little-known tool provided by Facebook that allows you to force it to look at your page or post again and refresh the Facebook image cache for that URL. Here it is:

Add your URL in the box at the top of the page and Facebook will scan it for the new image to share and give you a preview of what your post/share will look like at the bottom. In my experience, you sometimes must submit the page more than once to get the correct image to show up. But in the end, it will, and your featured image will shine.

Restricting WordPress Search to Titles Only

Yes, WordPress search leaves a lot to be desired. But with some tweaking, you can get the results you want.

Why would you want to do that?

In a recent project, the client requested that WordPress search return only hits from page titles and ignore page and post content. Why would they request this, you might ask? In a site that is heavily optimized for SEO, a popular keyword search might return dozens of hits that are not really what the user needs to see. By restricting search results to page or post title only, many extraneous matches can be filtered out.

Certainly opting to restrict searches to title only can hinder search capabilities as well. It should be used sparingly and only on sites that have been written with SEO keywords in mind.

The Code

Adding the following code to your active theme’s functions.php file will restrict WordPress search results to page and post titles only.

[sourcecode language=”php”]
//Limit Search to Post Titles Only

function ni_search_by_title_only( $search, &$wp_query )
global $wpdb;
if ( empty( $search ) )
return $search; // skip processing – no search term in query
$q = $wp_query->query_vars;
$n = ! empty( $q[‘exact’] ) ? ” : ‘%’;
$search =
$searchand = ”;
foreach ( (array) $q[‘search_terms’] as $term ) {
$term = esc_sql( like_escape( $term ) );
$search .= "{$searchand}($wpdb->posts.post_title LIKE ‘{$n}{$term}{$n}’)";
$searchand = ‘ AND ‘;
if ( ! empty( $search ) ) {
$search = " AND ({$search}) ";
if ( ! is_user_logged_in() )
$search .= " AND ($wpdb->posts.post_password = ”) ";
return $search;
add_filter( ‘posts_search’, ‘ni_search_by_title_only’, 500, 2 );[/sourcecode]

Excluding Certain Particular Pages from WordPress Search

If you want to further tweak your search results, you can manually exclude certain pages from being returned by WordPress search by using the code below. FYI, this code is not related to the code above and can be used independently of it. It should also be added to the functions.php file in your active child theme.

[sourcecode language=”php”]

function ni_search_filter( $query ) {
if ( $query->is_search && $query->is_main_query() ) {
$query->set( ‘post__not_in’, array( 80, 147, 13 ) );
add_filter( ‘pre_get_posts’, ‘ni_search_filter’ );[/sourcecode]

You will need to add the specific page or post IDs you want to eliminate from search on line 3 of the code above.

If you don’t know how to find the ID of a page or post, install the Simply Show IDs plugin which displays ID numbers on the page and post list screens. By the way, don’t let the fact that the plugin hasn’t been updated in a while dissuade you. If a plugin works, there’s not need for it to be updated.