This is a guest post by Christian from Lingo24.

It can seem as if almost everyone is writing a blog these days. The blogosphere is a crowded place, with millions of them competing for readers on the World Wide Web. Making your blog stand out from the crowd is anything but easy. But a little knowledge of SEO and following a few basic rules will give you a head start.

#1: Find keywords

You can have the best product in the world, but if your customers can’t find your website, you’ll have to sell it to your friends and neighbors. And when it comes to being found online, the golden rule is “choose the right keywords.”

This isn’t as easy as it sounds. All too often, people in a specific industry tend to use jargon instead of the language spoken by ordinary customers. Sit down with a colleague or friend and brainstorm which words you think your readers are searching for.

Remember an effective “keyword” might be two or three words, not just one. It often makes sense to target more specific terms. Instead of “books” try “crime fiction” to cut down the number of competitors and give internet visitors interested in this genre a better chance of finding you. You can also make your task easier by using Google Suggest or an online thesaurus to find synonyms or similar phrases.

#2: Shortlist your killer keywords

Once you have several possible keywords, your next step is to figure out which of those are “hotter,” that is, more sought after by the internet visitors who are interested in the item you are offering.

Luckily there are several free tools which can help. One of the best is definitely Wordtracker, a platform which tells you how popular a certain keyword is, and how much competition it will face, that is, how tough it will be for it to rank well on search engines should you use it for your website.

Also, Wordtracker might help you to find a less used term which, unexpectedly, draws a lot of traffic. Another useful assistant in the quest for the perfect keywords is definitely Google AdWords Keyword Tool. Like most Google services it’s easy to use: you just need to type your product in the “Find keywords” box and you’ll be overwhelmed by a long list of possible keywords, together with the competition for each one.

#3: Optimize your pages

At this point you should have a stock of the killer keywords you need. So what do you do with them?

First of all, list them in a hierarchical order based on the number of searches they draw. Then, pick your big shots and match them with the most suitable pages of your website. You will soon find out that some of them fit better than others. For those that don’t fit, you need to carry out a process called keyword optimization, that is adapting your content to the relevant keywords.

This of course includes inserting your keywords as smoothly as possible into the content. But when a keyword doesn’t really fit a page, you either have to make big changes to the content or, if possible, use it on another page.

At the end of this process every page of your website should be linked to at least one keyword, and the main pages should get the big shot keywords.

#4: Tidy up your blog – create categories

If there’s something search engines like, it is a well-organized website. Dividing your posts into well-structured and well-named categories will make your human and robotic readers’ lives much easier. And as a result it will increase your traffic.

#5: Use your lethal weapon – headings with keywords

Not paying attention to headings in a blog post is like writing a novel without chapters.

Headings say in a flash what your post is all about and, if well-crafted, they can be an irresistible attraction for your visitors. But there’s more to it than that. Sticking a keyword in a heading is a smart move because search algorithms are attracted to headings like bees to honey. If they find a keyword there, they’re likely to drive more traffic to your website.

#6: Internal links – make your blog as sticky as glue

All bloggers should pay attention to internal links. The reason is simple: if your readers jump from one post to another, clicking on internal links, it means that they are staying on your site and not going anywhere else. The outcome is an increased number of page views, a better ranking in search engines and greater ‘stickiness’ for your blog.

Other ways to lock in your reader are: create a site map (for WordPress you can do it using the WordPress SEO by Yoast plugin); set up a FAQ section; place links to related posts at the bottom of the page or on the side bar of your posts.

Okay, now you have all the tools you need to start a successful blog. Oh, one thing I forgot to mention, you also need good content!

About the author: Christian Arno is the founder of Lingo24, one of the world’s fastest growing translation agencies. Launched in 2001, Lingo24 now has over 160 employees spanning three continents and clients in over sixty countries. In the past twelve months, they have translated over 60 million words for businesses in every industry sector, including the likes of MTV, World Bank and American Express. Follow Lingo24 on Twitter: @Lingo24.

Related Posts:

6 SEO Tips for Bloggers You Can Use Today |

Each year, the WordPress core development team meets in person for a week to work together and discuss the vision for WordPress in the coming year. As annual events go, it’s easily my favorite. Don’t get me wrong, I love attending WordCamps and local WordPress meetups (which are awesome and you should try to attend if you are able), but at the core team meetup, the focus on working together and getting things done is unique, as is the experience of every person in the room being so highly qualified. This year, instead of just planning a core team meetup, I’m aiming a little higher and shooting for a full-on contributor/community summit.

Core code isn’t the only way to contribute to the WordPress project. We have an active theme review team, support forum volunteers, people writing documentation, plugin managers, community event organizers, translators, and more. The teams have been siloed for too long, so we’ve recently begun the process of bringing them together by having teams elect representatives to facilitate more communication between the contributor groups. These reps will form the nucleus of the contributor summit now being planned for a long weekend at the end of October in Tybee Island, GA. This is completely different from a WordCamp. It will be a combination of co-working, unconference, and discussions among the project leaders, and participation will be by invitation.

In addition to bringing together the active contributor team reps to work together, I think it’s important to include community members who don’t fall into that category (at least not yet!). Successful WordPress-based business, authors of popular plugins and themes, and people using WordPress in unexpected but intriguing ways should have a place at the table, too. That said, part of the magic of the core team meetup is the small size; it allows every voice not only to be heard, but to engage. Since this is my first attempt at bringing together so many groups and points of view, I want to try and keep it small enough to retain that personal atmosphere while at the same time ensuring that the best possible mix of people and businesses in the WordPress ecosystem is represented. This is where you come in!

Taking a cue from events with limited availability like AdaCamp (attendance) and the jQuery conference (speaker roster), I want you to nominate people and/or WordPress-based businesses to participate in the summit. Yes, you can nominate yourself.* You can nominate up to 10 additional people — be prepared to provide URLs and the reason you think they should participate. You can also nominate up to 10 WordPress-based businesses without naming individual people, so if there’s a theme or hosting company (for example) that you think should be there, you don’t need to go looking for employee names. This nomination process will hopefully ensure that we don’t overlook someone who is making a difference in our community when it comes time to issue invitations.

Nominations will be open for a week, after which the survey will be closed and the process of analyzing the results** will begin. The nominations process will lead to invitations in June, confirmations in July, planning in August and September, and the summit itself in October. Hopefully we can stream and/or record some of the activity to share online at Additional invitations may be extended up until the event if there are people/businesses that become more active in the community. If you’re thinking to yourself that maybe now’s the perfect time to start contributing time to the WordPress project, good thinking! In the meantime, if you want to weigh in, fill in the community summit nomination form. Thanks, and wish us luck!

* Nominating yourself: Do nominate yourself if you fall into one of the categories described in the post above, or if you believe that you have a unique point of view. Please do not nominate yourself if you just think it would be cool to hang out with this group. This is a working event, and everyone is expected to bring something special to the table.

** I (and/or a helpful community volunteer) will sift through the nominations and compile a shortlist of the most-nominated people/businesses and the most intriguing underdogs. This list will be reviewed by the summit planning committee (made up of team reps) to create the invitation list.

fighting spamEmail spam is reaching new standards…

Of course, I’m not talking about any improvements, or anything that could be considered “a good practice.”

Besides, it’s hard to identify any good practice since we’re talking spam, right?

Here’s the case. Just the other day I received an email like this (the important part marked with the rectangle):


Everything seems fine at first… Someone sent me an email, I responded, and I got a follow up email.

However, I never responded!

My so-called response (starting with “Can you tell me more about …”) is completely fabricated.

… Talking about new standards in email spam, right?

How can this work?

The idea behind this is pretty simple. Busy people can get tricked into believing that they’ve indeed replied.

I’m busy, that’s correct. But my email software (Thunderbird) tells me that on March 19th, 2012 I didn’t send any email to anyone at

Apparently, there are some clever marketing guys at twin-links

What’s the lesson here?

  1. Don’t ever do business with twin-links.
  2. Always make sure that someone is not trying to trick you when dealing with email.

Have you experienced anything similar during your online existence? I don’t really know if that’s a popular practice or not. It’s the first time I was sent such a thing.

Related Posts:

Email Spam Reaching New Standards |

Here’s the main problem with benefits: they sound hyper-pitchy.

But is pitchy bad? Not necessarily. If my only option to make money was to use pitchy messages then hell … no problem.

However, even though the language of benefits works great for many marketers selling products online, it’s still not perfect for everything.

Some products are just too basic, recognizable, and easy-to-grasp, which means that they don’t need much marketing speech. I mean, what benefit would you mention while trying to sell a standard t-shirt? If the t-shirt is nicely designed then it’s the best marketing message in itself, right?

In the end, there are some products that truly need benefit speech to be sold, but others don’t need it at all. If you want to find out how to identify both groups, feel free to check out my guest post at

1 Reason Why Writing About Features Doesn’t Sell… And 1 Reason Why It Does

And when you’re back, don’t forget to tell me what your story is. Are you using benefits in your marketing materials?

Related Posts:
  • No Related Posts

“Features Tell, Benefits Sell” – A Marketing Guru Would Say, But Do They? |

Note: Everything I’m talking about here, including the code, is in beta mode. It will be subject to change. I’ll update this post after release to fix any code changes that may occur between now and then. I’m releasing this post now so that theme authors can start looking at their themes and thinking about how they might want to change the way they do options pages.

So, WordPress 3.4 has this nifty new feature you can find on the main Theme selection page. It’s a link next to each theme labeled “Customize”. This is the new Theme Customizer, and it’s way cool.

In fact, you can’t see what it does with a simple picture, so here’s a video. It’s available in HD if you want to go full screen. :)

So, now you know what it does, and if you’re a theme author, you’ve probably just gotten some great ideas. Here’s how you can implement those ideas in your theme.

First, note that if you already support the built in Custom Header and Custom Background functionality the WordPress core provides, then those will magically show up and work in the theme customizer. No extra code needed on your part.

Existing Options

Now, the first thing you’ll probably want to do is to take note of how your existing settings in the theme work. You have three main options for theme settings, realistically. I’ll go over them briefly.

1. “Theme mod”. This uses the set_theme_mod and get_theme_mod functions. It’s rare that themes actually use these since I wrote about the Settings API, but it is there and if you use these normally then it is supported by the Theme Customizer (in fact it’s the default).

2. Individual Settings. If you store your theme’s settings in the options table as individual rows, one per setting, then that works fine with the customizer. This is not the preferred way of doing things in themes, however, and not the most common. Still, some themes do this, so if you’re one of them, it’s supported as well.

3. Serialized Settings. This is the way I explained in my Settings API Tutorial and the method recommended by the Theme Review guidelines, as well as the way Chip described in his own tutorial for theme settings. Essentially, you store your settings in an array, then store that array using set_option or get_option, as one row in the database. This method is supported and it’s the way I’ll primarily cover in this article. I’ll briefly mention the other two methods when appropriate.

Once you know how your settings are stored, then you’ll know what to fill in at certain spots in the code. More on this when we get to it.

Object Orientation

Now, the Theme Customizer is very object oriented, and while you don’t necessarily need to understand this to implement the basics of it, you might need to understand it if you’re going to make something completely custom. Just a warning.

First, we’ll look at the left hand side of the customizer screen. Notice that the left hand side is divided into sections. Actually, that’s their name: WP_Customize_Section. In each of these sections is one or more controls; or rather, WP_Customize_Control. Finally, each of these controls one of more settings on the page: aka WP_Customize_Setting.

The Sections organize the controls. The Controls get input and pass it to the settings. The Settings interface with your existing options in the theme.

To make new stuff here for your own custom options, you need to know where to add it. That place is the customize_register action hook.

add_action( 'customize_register', 'themename_customize_register' );
function themename_customize_register($wp_customize) {
	// ... do stuff ...

The function gets a parameter of the main $wp_customize object. This is the interface point where you will do everything like adding sections and controls and such.


So, first thing to do is to add a section. Here’s one way to do it:

	$wp_customize->add_section( 'themename_color_scheme', array(
		'title'          => __( 'Color Scheme', 'themename' ),
		'priority'       => 35,
	) );

The first parameter is a unique ID for the section that you’ll need later (when you’re putting controls into it). The second parameter is an array of options for the section. Sections don’t have a lot of options, really. You can give them a title, you can give them a “description” if you need some explanatory text in them. The priority setting determines their order in the list.

You can also give sections a “capability” if you have a special case. Generally speaking, most sites require the “edit_theme_options” capability to have users edit this sort of thing, and this is the default capability that the sections use. However, if you have options that anybody can edit, or which should only be managed by administrators, changing this capability will prevent the section from appearing to users who can’t change those settings anyway.

One final thing you can add to a section is a “theme_supports” option. This will make the menu not appear unless the theme supports something. If you’re putting this code in a theme itself, then you already know what the theme supports, so it doesn’t make much sense. The core uses this to not show the header and background options if the theme doesn’t support them.


Next, let’s configure some settings. Yes, the settings, not the controls. See, the controls need to know what settings they’re changing, so we have to attach the settings up first.

To declare a setting, you do it like this:

	$wp_customize->add_setting( 'themename_theme_options[color_scheme]', array(
		'default'        => 'some-default-value',
		'type'           => 'option',
		'capability'     => 'edit_theme_options',
	) );

In this case, I’ve declared that the setting I’m interested in is in an option, the option is named “themename_theme_options” in the database, and it’s serialized, and the actual array key in there is “color_scheme”. Remember that talk we had before about the Settings API and how you store your settings? This was method 3.

Here’s method 2 (one option per database entry):

	$wp_customize->add_setting( 'themename_color_scheme', array(
		'default'        => 'some-default-value',
		'type'           => 'option',
		'capability'     => 'edit_theme_options',
	) );

And here’s method 1 (using theme_mod):

	$wp_customize->add_setting( 'color_scheme', array(
		'default'        => 'some-default-value',
		'type'           => 'theme_mod',
		'capability'     => 'edit_theme_options',
	) );

This setting basically tells the theme customizer where the option is stored, and how to change it’s value so that your theme displays with the changed option.

Here’s the good bit about this: You’re telling the theme customizer where the option is. You don’t have to change the way the existing option works at all.

You already have a theme options page, right? So somehow, you’re saving those options. And in the theme, it’s reading those options using get_theme_mod or get_option, right? The way the theme customizer works is that it intercepts that call using a filter, changes the option for the previewer case only, and then passes the new option along to the theme. So the theme has no idea that the value it’s getting isn’t in the database, but one the user just selected. That’s the magic trick and why themes don’t have to dramatically change to support this sort of thing. All they have to do to make custom sections is to tell the theme customizer code what options they’re using and how, and it changes those options directly for the previewer.

(Note of clarification here: The “default” setting above should be a default value, not the current value. The difference is a subtle one, but the point is that you don’t actually need to get the current value of the option from the DB and put it in here. The WP_Customize_Setting takes care of all that jazz for you. The “default” is what should be used if the value doesn’t exist in the DB at all.)

There’s one more bit to the add_setting call that we’ll come back to later when I get around to explaining postMessage.


Finally, we come to the controls. Controls can look one of a lot of ways, obviously. The simplest controls are just checkboxes, or text fields. However, colors are something that change a lot, so there’s color wheel controls too. In fact, WordPress defines a number of possible controls. Let’s go over a few:

A radio selection:

	$wp_customize->add_control( 'themename_color_scheme', array(
		'label'      => __( 'Color Scheme', 'themename' ),
		'section'    => 'themename_color_scheme',
		'settings'   => 'themename_theme_options[color_scheme]',
		'type'       => 'radio',
		'choices'    => array(
			'value1' => 'Choice 1',
			'value2' => 'Choice 2',
			'value3' => 'Choice 3',
	) );

Pretty simple. It’s referencing the section it’s in, the setting that it’s going to change, and then it has the radio type and the list of choices along with their associated values.

How about a checkbox instead? This one comes straight from core:

	$wp_customize->add_control( 'display_header_text', array(
		'settings' => 'header_textcolor',
		'label'    => __( 'Display Header Text' ),
		'section'  => 'header',
		'type'     => 'checkbox',
	) );

A checkbox is on or off, true or false. It needs no real values.

How about a selection dropdown box? Here’s an example:

	$wp_customize->add_control( 'example_select_box', array(
		'label'   => 'Select Something:',
		'section' => 'nav',
		'type'    => 'select',
		'choices'    => array(
			'value1' => 'Choice 1',
			'value2' => 'Choice 2',
			'value3' => 'Choice 3',
	) );

The default type of control is actually type = ‘text’, and it creates a text box control. One more type of control is the “dropdown-pages” type, which creates a dropdown list of the WordPress Pages.

But that’s not all. There’s actually several more, but because they’re so custom, they’re declared differently. Here’s where we get all object oriented on ya…

	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'link_color', array(
		'label'   => __( 'Link Color', 'themename' ),
		'section' => 'themename_color_scheme',
		'settings'   => 'themename_theme_options[link_color]',
	) ) );

Whoa, what’s with the new class? The WP_Customize_Color_Control is a class that is extending the built in WP_Customize_Control class. It adds the color wheel jazz to places where color selection is needed. Note that the class is being created here with new, and so it has to get the $wp_customize passed to it directly, so it knows where to hook in. (Note: This may change before final 3.4 release.)

Other controls of note:

  • WP_Customize_Upload_Control – This gives you an upload box, for allowing file uploads. However, you probably won’t use this directly, you’ll extend it for other things… like:
  • WP_Customize_Image_Control – This gives the image picker and the uploader box. It extends the upload controller. You can see it in action on the custom background piece, where a user can upload a new file to be the background image.
  • WP_Customize_Header_Image_Control – Because of the resizing action of the header piece, it needs a bit of special handling and display, so the WP_Customize_Header_Image_Control extends the WP_Customize_Image_Control to add that functionality. You can see it in action on the custom header piece, where a user can upload a new file to be the header image.

So, the way to create a custom controller to do whatever you want is to make a new class of your own which extends WP_Customize_Control and adds the bits you want. How to do that is a bit complex, so I’ll save that for another tutorial. For now, you’ve got image handling, color wheels, text boxes, radios, dropdowns, and checkboxes. I think that should be enough to get started with.

End of tutorial?

Not quite. Everything I went over above is enough to add new sections to the customizer, put controls in them, and then to have the preview show your changes after a slight delay when the page refreshes. All you have to do is to call those functions with the proper parameters, in the proper place, and it’ll work.

However, note that I said “when the page refreshes”… C’mon… this is the year 2012. We don’t have flying cars, and we still have to wait a whole second or two?


Enter postMessage

Back when I mentioned the $wp_customize->add_setting function call, I mentioned “one more bit”. That one more bit is the option called “transport”.

Transport defines how your setting change gets from the place where you changed it into the preview pane. The default setting for this is “refresh”. An alternative setting is named “postMessage”.

The postMessage transport makes it such that the setting is instantly sent into the other frame, where javascript can adjust the page on-the-fly using this new information.

An example:

Let’s say we have a setting to change the colors of the titles. All the titles on the page are in some tag that has a class of posttitle, perhaps. The option normally just saves the HTML color chosen, then outputs some inline CSS in the header.php to basically do this:

.posttitle {
	color: #abcdef;

Or whatever the option actually is for that color.

We have hooked our setting to that option, and hooked our WP_Customize_Color_Control up to it, and now when we change it, it works and we can see the color change. Note that this is easiest to do with already working customizer options, so the best way to do it is to get it working normally first, then add on this next bit.

Now, we have the working option in the customizer, so to take away that refresh delay, we’ll add this new option to the add_setting call:

	'transport'         => 'postMessage',

This tells the customizer that the setting will be sent directly to the frame via javascript. However, for that setting to work, we need javascript in the frame itself to receive it.

So, back in our main function… remember that? It started like this:

add_action( 'customize_register', 'themename_customize_register' );
function themename_customize_register($wp_customize) {
	// ... do stuff ...

Right at the end of that function, we’re going to add this code:

	if ( $wp_customize->is_preview() && ! is_admin() )
		add_action( 'wp_footer', 'themename_customize_preview', 21);

This is going to add a new function call to our preview frame’s footer. It only gets added with the preview frame, so the live site and others won’t see it, because they don’t need to see it. This is where we’re going to output our javascript to make things happen in real-time.

Here’s our function:

function themename_customize_preview() {
	<script type="text/javascript">
	( function( $ ){
	wp.customize('setting_name',function( value ) {
		value.bind(function(to) {
			$('.posttitle').css('color', to ? to : '' );
	} )( jQuery )

As you can see, it just outputs a bit of javascript. This code won’t change much, ever, so let’s go over just two pieces of importance:

  • ‘setting_name’ is the name of the setting, as added by the $wp_customize->add_setting call.
  • The entire line starting with jQuery(‘.posttitle’) is our custom bit of code. It gets the “to” variable, which will be the color chosen by the user, and it sets the posttitles on the page to have that color, using the css modifying functionality of jquery.

Those are the only two bits you need to change, really. The rest is pretty copy-pasta. For each real-time setting, you can dupe this bit of code in the script.

Here’s another thing: You can change pre-existing refresh settings to be postMessage ones. Take the Site Title and Tagline elements in the Header section, for example. These are refresh settings, and the reason they are is because each theme implements them differently. There’s no way for the core to know the javascript code needed for any particular theme.

But if you’re a theme author, then you’re not writing for a generic theme. You’re writing for your particular theme. You know how the site title and tagline are displayed. There’s no reason you can’t make those update in real time. And while you’re at it, the header_textcolor setting can be real time too, since you know the theme code.

In your main function again, add these three lines of code:


That changes the transport on those core settings to be postMessage. Now you need to add the javascript code to actually do the refreshing in your theme. Here’s an example of TwentyEleven doing this (with the patch I wrote for it):

function twentyeleven_customize_preview() {
	<script type="text/javascript">
	( function( $ ){
	wp.customize('blogname',function( value ) {
		value.bind(function(to) {
			$('#site-title a').html(to);
	wp.customize('blogdescription',function( value ) {
		value.bind(function(to) {
	wp.customize( 'header_textcolor', function( value ) {
		value.bind( function( to ) {
			$('#site-title a, #site-description').css('color', to ? to : '' );
	} )( jQuery )

For the blogname, it changes the HTML inside the “#site-title a” link. For the description, it changes the tag with #sitedescription. For the color of those, it simply targets both of them and alters their CSS.

Core has to try to be generic across all themes. But themes have more knowledge of how they work and can change things to target themselves in better ways. A theme adding controls knows what those controls change, so if it’s something simple like CSS or even something more complex like HTML, if you can write javascript code to make that modification in real time, then you can use postMessage and eliminate that refresh delay.

Hopefully this explains some of the theme customizer. Was it as clear as mud? Take a look at my patch to Twenty Eleven to add some of the theme options from its existing options screen into the customizer. You can find it on this ticket:

This site is for a Whangarei appliance servicing company, and is designed by Urban Legend web using the shell-lite WordPress theme as a base.

It is an information site which also allows visitors to send job requests via a jQuery-enabled form, and uses jQuery sliders to showcase both illustrative pictures of the company, and logos of the brands Electrotrade services.

It is coded in HTML5 using valid CSS, and offers both an original map showing Electrotrade’s coverage area, and a google map showing the company’s street location.

guideIf you have an online business, or you’re planning to launch one, chances are that at some point you will be searching for a web designer to redesign your current site or create something completely new.

A different path to choose is to buy a premium, out-of-the-box website template.

Either way, no matter which path you choose you still want your website to be well designed and to represent what your business is about.

However, how do you tell what is good web design and what isn’t? Is a website good just because you like it visually? Is everything that looks good suitable for your business? Or maybe we’re not even scratching the surface…?

Unfortunately, we’re not.

In this post I’m going to explain some of the most important elements of good web design, so you – an online entrepreneur – can take them and use them to evaluate the work your designer delivers.

First and foremost:

Your goals


I literally don’t know how many times I’ve talked about the importance of goal setting in all of my posts…

And not without a reason because goal setting is the most important activity for every project imaginable, not only web design.

So, two questions for you:

  1. Why do you want to have a site designed?
  2. Why would people want to visit it once it’s created?

The first question is the most important. You need to know the “why” exactly. This will show you and your designer the path to the happy end.

Do you want to sell your products? Do you want to show your expertise by publishing articles? Do you want to make money on advertising? Are you creating any type of a functional start-up (basically, everything where something else happens besides text content being published)?

There are hundreds of possible reasons. You need to know yours and be able to explain them in a sentence.

The second question can be even more challenging to answer. That’s because what you want might not be what your soon-to-be-visitors want. Simply think for a moment and try to come up with a reason for anyone to visit your site… They want to buy your products because of what? They will be reading your content because … ? And so on.

Once you have the answers you have a starting point to build upon. The next thing would be to:

Choose the main element

The main element of your site. The thing that is supposed to focus the most attention. Every site has one. Just. One.

For blogs, it’s the posts themselves. For online stores, it’s the listings of items on sale. For YouTube, it’s the videos.

Whatever it is for you, it needs to be only one single element.

How to decide what is it? Look at your goals (the previous point) and try to come up with this one element that is completely in tune with your goals and makes the most sense.

Defining your brand


Please notice that it’s the third subheading of this design-related post and we still haven’t touched upon a single thing that’s strictly about web design. Or have we?

Actually, goal setting and choosing the main element both are crucial phases of every web design project. However, they are not that well known, in comparison to the phase of creating a logo, for example.

Speaking of which. Nothing defines your brand more than a good logo. I don’t advise you to try to design it yourself if you don’t have the expertise, and don’t ask your nephew to do it either (unless he’s a professional).

What I do advise you to do is to visit a site like 99 designs or LogoTournament and launch a contest. These sites are great for getting some cool logos. All you have to do is define your requirements, set your price, and you’ll have (literally) hundreds of designers working for you. When your contest ends you can pick the winner and pay only them.

Other things that do the job of defining your brand are colors. Be careful while choosing colors for your site because they might mean different things for different people.

For example, green is the color of action, red isn’t. Red and white are the colors of Coca-Cola. Red and orange – McDonald’s. Blue and white are the colors of Israel, but they’re also the colors of Chelsea F.C. These are just some examples, but depending on the environment you’re in, some of them may be really significant to you.

Before you make any decisions regarding the colors of your site, make sure that they, indeed, convey the exact message you want them to convey.

Selecting a platform


My rule of thumb is this: If possible, always use WordPress.

These days, WordPress is the most popular online platform, you should take advantage of it.

I’m only telling you this because web designers sometimes have strange ideas. Like: “we’re going to build your site from the ground up, WordPress is for amateurs!

Whenever you hear a designer saying such a thing you say: “thank you, good bye.

Focusing on simplicity

Well designed sites are simple. Period.

Google, Facebook, ProBlogger, TechCrunch, Tumblr, Flickr, Copyblogger, the list just goes on and on. Every one of them is simple in nature.

I know that sometimes we find it hard to pay for a design if it’s not flashy … when it only uses a handful of elements … when it doesn’t look expensive. But this is a trap.

And it’s a trap for both, designers and their clients. On one side, clients don’t know any better so they expect flashy, pointless designs, and on the other side, designers know that the more flashy the site is, the more money they can ask for it.

That’s why I’m emphasizing simplicity so much here. One rule worth remembering is this: it doesn’t matter how many elements you can place on a website, what matters is how many you can remove – in a way that the website still makes sense, of course.

There’re many indicators of simplicity. In my opinion, the most important and apparent ones are:

1. Whitespace.

Whitespace is a fancy name for the part of a site where nothing is displayed. What’s visible is just the background.

Using whitespace is a tricky thing. Some less experienced designers are often hesitant about using it because they feel that every available space needs to be filled with yet another social media button or whatnot.

In reality, whitespace is a very important “element” in itself. It focuses attention on what’s surrounding it. If you have too much stuff on your site, you will find it hard to focus any significant attention on your most important element.

2. Good typography.

There is a lot more to a well-designed site than just some nice Photoshopped graphical elements. Equally as important are the fonts used in the design.

Whatever you do, don’t request Comic Sans as your desired font. Unless you want your designer to kill you (for real).

Good typography should emphasize the message your graphical design conveys.

Feel free to read this if you want to find more about web typography, it’s a rather big topic: A Basic Look at Typography in Web Design.

3. Your own common sense.

The most obvious advice I can give, I know, but still. Chances are you can tell a simple design when you see it. Trust yourself on this one.

Just a handful of work-of-art elements


Every website needs to shine somewhere. However, just a handful of such work-of-art elements is enough.

Remember, simplicity is what matters the most. And it’s hard to keep your site simple when every element screams “look at me!

How many is enough, then? Focus on the main element of your site, and on having all the work-of-art details driving more attention to this one element, not to themselves. You never want to overshadow the most important element of your site with some fancy graphics.

Final step: Is everything in tune with your goals?

The goals haven’t been set just for the sake of it. The goals are the benchmark. And you should use them to evaluate if your design is any good or not.

Simply look at the design and try to assess if it’s in tune with your goals. Use your common sense. Take each goal and decide if it’s reflected in the design.

There you have it. I believe that these hints are all you need to describe and then recognize a well designed site. Just to recap:

  1. Set your goals.
  2. Choose the main element.
  3. Define your brand by a nice logo and proper use of colors.
  4. Use WordPress as your platform.
  5. Ask for/buy a simple and effective design.
  6. Allow just a handful of fancy graphical elements, and only if they drive attention to the main element.
  7. Decide if the design is reflecting your goals.

The point of this post is not to explain how web design works, but just to give you some tips on how you can recognize a design suitable for you and your online business.

Don’t look at other people because most of the time the fact that a design is beautiful doesn’t matter at all. You want your site to do its job, don’t you? Not to win a beauty pageant. Winning beauty pageants doesn’t pay very well, so I’m told.

Is there anything else you’d like to add? Most importantly, where do you get your designs from? Do you hire a designer or maybe buy a custom theme from a place like ThemeFuse?

Related Posts:
  • No Related Posts

Online Entrepreneur’s Guide to Web Design |

online business models subscriptions

This series is slowly coming to its final episode, however this isn’t the one yet.

So far we’ve been talking about things like: services and consulting, products, affiliate income, and advertising. These are all valid online business models. Today let’s focus on something that is not that obvious, but has been fairly popular lately nevertheless – subscriptions and membership programs.

What a membership program is

A membership program is commonly known as a premium area to which you can gain access by paying an ongoing fee of any kind (monthly or yearly). The premium area can contain almost anything … software, text content, and any kind of digital products.

Essentially, a membership program is a product, but what’s interesting about it is the way it’s delivered to customers. They don’t get the actual product, only gain access to it. They can interact with the product by logging in to their membership accounts.

What the steps of creating a membership program are

The actual part of “creating” is not very different from creating any other kind of product.

First of all, you have to decide what type of a membership program you want to offer. Is it going to be a piece of software, or just some text content on a given topic? Or maybe something entirely different?

As I’m sure you know very well by now, creating an app (software) is usually very expensive and consumes a big amount of time. In most cases, you have to hire a team of developers, designers, and testers (if you want to do it right).

This can be a topic for an entirely different series, so here I’m only going to talk about some basic text-based membership programs to explain the whole idea.

Once you know what it is exactly that you want to create you should compile a complete outline of the whole program for at least 3 months worth of subscription time.

This is very important. If you’re planning on providing text-based content (premium articles, tutorials, etc.) then you need an outline for the next 3 months. You never want to wake up one day with absolutely no idea what you’re going to share with your subscribers.

Once you have the outline ready you should create one month worth of the actual content. You need this startup package, so to speak, to show your initial subscribers that there’s indeed something going on in your membership section.

Now the section itself. How to get it done technically? No surprise here – WordPress. Only this time you’re going to have to make a small investment, and buy the WishList Member plugin. The basic version will cost you $97 (there’s a 30-day money back guarantee). The plugin offers an easy way of setting up your membership program with content you already have, and also adding more content later on. It also supports all major payment processors.

Once you have everything set up you can start marketing and launching your membership site.

Why membership sites work

This is something we can tackle from two angles.

First of all, why do they work for online businesses? Usually, membership programs are not that expensive to set up and maintain. Everything is kept together by a system designed specifically for this purpose (the WishList plugin), so in case of any problems you can contact the support.

The profits are also somewhat predictable. At least if the program has been around for a while. Once you know for how long people remain subscribed to your program (on average) you can predict the amount of money that will appear in your bank account the next month.

Finally, you only need to sell your program to a customer once, and then they can possibly be a member for years to come … paying their monthly subscription fees. So the lifetime value of a customer can go through the roof.

Now, why do membership programs work for customers? They feel safe. Customers are only committing to being a member for one month. They know that they can unsubscribe at any point. Essentially, there’s no risk if you put a money back guarantee on top of this whole thing.

A well set up membership program also delivers the content in the right order and in well thought through packages that can be easily digested. So the customer doesn’t have to decide how many pages should they read this day, the program does this for them.

Popular price ranges


Membership programs are sold for a variety of different prices.

Some people go as far as charging their customers $5,000 a month. Honestly, I can’t imagine a package of content that is that valuable. In most cases this is only a practice used by “guru” marketers trying to sell the “next big thing.”

In the normal world, on the other hand, membership programs are usually sold for around $30-$200 a month. This sounds both honest and reasonable.

At first, $30 might sound a little small, but remember that you’re selling multiple times to the same customer. So if they remain subscribed for, let’s say, 6 months you are still making $180 off of that customer.

The price shouldn’t be too high either because it can easily go over people’s level of “can’t live with that.” For instance, if you charge someone $10 a month for something they rarely use then they might still decide to remain subscribed regardless of this minor expense.

Marketing membership programs

The rules are not different from marketing other digital products. You still need to create some promotional material, decide on a marketing strategy, and choose a way to reach your target audience.

As I said in one of the previous episodes, we’ll focus on marketing in a separate post. However, I still want to point out one approach that works rather well for many membership-based business models.

I’m talking about an affiliate program.

Affiliates like to promote all kinds of membership programs because they know that they get their commission every time a customer pays the monthly fee.

For an affiliate, this is an obvious opportunity … sell once, get paid multiple times. But you, as the manager of the membership program, need to make sure to pay your affiliates regularly.

What’s a typical commission for an online membership program? Anything between 50% and 80% of the shelf price.

Sounds high, I know. But remember that affiliates bring you sales that you wouldn’t have gotten without them.

What’s your opinion on membership programs? Are you a member of any? Or planning on launching your own?

There’s at least one more part coming out in the series, so don’t forget to come back to get it. Feel free to subscribe to my RSS feed or email updates to get the posts delivered to you the minute they are created.

Related Posts:

Online Business Models Explained: Subscriptions and Membership Programs |

Are you ready to bring a gun to a knife fight? Because, essentially, that’s what upselling is.

For some people upselling is like generating free money, others don’t believe in the whole idea that much.

My opinion is somewhere in between. I know that upselling can bring you some serious profits, but only if you set your offers with upselling in mind from the get-go. It’s hard to upsell if you don’t have anything to offer, right?

However, if you do have an interesting range of products that your audience will surely enjoy then you can start crafting your sales messages in a way that it hits the 6 triggers of upselling.

If you want to know what these triggers are check out my guest post at

The Art of Pulling the Trigger: Upselling Done Right

Is upselling something you’re doing in your business? If so, how’s it going? If not, why?

Related Posts:

Upselling Like a BOSS – How to Pull the Trigger |