A Marriage Made in SEO Heaven

On September 2nd I got married. Yay for me! I’m a little late in posting this as I was debating whether or not to post this on my business blog, then there was a honeymoon/vacation, and then more debate on posting this or not. So here it is. It even ties into business, somewhat.

The internets have been good to me. I have a growing web based business where I help other business owners with their internet marketing and I now have a life partner that I found, well, on the internet. :) Yes, I partook in that crazy online dating thing via Plenty of Fish, or POF, a fantastic website run by a guy name Marcus out of Vancouver, BC. That site, now the largest dating site on the planet, and Markus, was an early inspiration to me on starting my business. Later I began to use the site to meet and date some ladies. That’s how I met Kim. Kudos Marcus, I owe you.

I took much of what I leaned about internet marketing and landing page optimization to create a killer profile on POF. Yes, I am that much of a web marketing nerd. Meeting and then marrying Kim I would consider a perfection in the conversion optimization process.

So there you have it, Stever got hitched. In lieu of gifts I’m accepting links :)

Wedding Ceremony on river in Kamloops, BCA Wedding KissSipping bubbly on the beachCelebrating on the Beach

It was a small ceremony with a few friends, nice sunny day, out on a public wharf along the river. Good times.

Local SEO Link Love

Our fantastic wedding photographer, Kathryn of Owen Imaging, was lots of fun to work with. But like most photographer websites hers is all flash, and even has a doorway page, uggg, but the link will still help her a bit.

We are not church goers so we just had a very simple ceremony officiated by a wedding commissioner. Gordon you need your own website!

Building a Mobile Version of your Website with Wordpress (CMS)

This guide on creating a mobile version of your wordpress powered website is for sites that primarily use WP as a content management system (CMS) for static pages. If your WP powered site is mainly a blog then are plenty of plugins already available for displaying a mobile friendly version of your post.

This is part 3 of our series on building mobile versions of a website for small businesses. Be sure to check out part 1 were we cover what you need to consider before designing your mobile pages. Part 2 covers how to code mobile pages in XHTML Basic, you should glance through that before you read this guide about doing the same in Wordpress.

We are creating separate mobile specific pages here, not re-rendering your existing pages in a mobile friendly layout. Most the clients I work with are small businesses serving local areas. Their websites are mainly about the key pages that describe their services or products. If they happen to use a blog on the site it is for long-tail search traffic and link building, as well as publishing news and the like. The blog is secondary to those few static pages that say this is who we are and this is what we do, call us. It’s those key static pages we wish to mobify.

Creating the Mobile Page Template

Wordpress lets you create page specific templates in your theme. We will build one just for use on your mobile pages. You can download a copy of a mobile template similar to what is explained below here.

Create a new php file and name it mobilepages.php. Start with this;

<?php
/*
Template Name: Mobile Page
*/

Removing the Excess Out of wp_head

Wordpress adds a lot of junk to your header. Some of the plugins you use may add extra stuff there too. In the interest of minimization your pages for mobile browsers you want to omit most of that. Things like links to rss feeds, wordpress versions, parent post and adjacent post links, post archives, etc…. Bloaty, bloat, junk, junk.

In your current themes function.php file include these lines;

remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');

wp_generator shows the WP version number (why show this?), wlwmanifest_link is used for Window’s Live Writer (who uses that?) and rsd_link is for Real Simple Discovery, some sort of xml interface so you can blog from some other client software, besides using the WP dashboard (who uses that?). We add these the the functions.php file and they get applied to every page of your WP powered site. We don’t want them on the mobile pages, but they don’t need to be on your other pages either. Junk.

There are more actions we want to remove but just for our mobile pages. We’ll add those to the top of the template file, just below the template name, like this;

<?php
/*
Template Name: Mobile Page
*/
remove_action( 'wp_head', 'feed_links_extra', 3 );
remove_action( 'wp_head', 'feed_links', 2 );
remove_action('wp_head', 'index_rel_link');
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'adjacent_posts_rel_link');
remove_action('wp_head', 'rel_canonical');

If you are using any plugins that add links to css files or java script files you may need to code a little function to exclude those. For example, the Sociable plugin will add a css file link to all your pages, even those you’ve not enabled sociable to show on. To remove that from the mobile pages I used this code;

add_action( 'wp_print_styles', 'my_deregister_styles', 100 );
function my_deregister_styles() {
	wp_deregister_style( 'sociable-front-css' );
}

If you have other plugins that do the same you’ll need to read the php file for that plugin and find the wp_print_styles hook to determine how they named it for that plugin.

Headers and Cache Control

Same as was shown in part 2, how to code a mobile website, we need to deliver some specific HTTP Headers. Add this;

header("Cache-Control: must-revalidate");
$offset = 60 * 60 * 24 * 10;
$ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
header($ExpStr);
header('Content-type: application/xhtml+xml; charset=utf-8');

Document types and XML version declarations

Because our template file is a php script we’ll need to echo our xml declaration, else it will be mistaken for a shorthand opening php tag. So we add this;

echo "".'<?xml version="1.0" encoding="utf-8"?>'."\n";

Wordpress Stuff in the Head

We can add our dynamic title tag and the wp-head function.

<title><?php bloginfo('name'); ?><?php wp_title(); ?></title>
<?php wp_head(); ?>

The Rest of our Meta Tags and the CSS file

Now we add these;

<meta name = "viewport" content = "width = device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;" />
<meta name="HandheldFriendly" content="True" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<link href="http://domain-name.com/path/to/mobile/style.css" rel="stylesheet" type="text/css" />
</head>

The Body and the Wordpress Loop

Because our mobile pages are small, and there will not likely be a lot of them, nor a need for other mobile template variations, we can scrap creating separate header and footer template files that get injected with a php include(). We’ll just hard code them into the template. Our wordpress loop will sit inside our content div’s;

<body>
<div id="page">
<div id="header">
	<a href="http://domain-name.com/m/">
		<img scr="path/to/image/folder/logo.gif" alt="Business Name" width="xxx" height="yy" />
	</a>
</div>
<div id="content">
	<?php if(have_posts()) :
		while(have_posts()) : the_post();
		the_content(); ?>
		<?php edit_post_link('Edit this page.', '<p>', '</p>'); ?>
		<?php endwhile;
		else : ?>
		<?h2><?php _e('Not Found'); ?><?/h2>
	<?php endif; ?>
</div>
<div id="menu">
	<ul class="m">
		<li class="home"><a href="http://domain-name.com/m/">Home Page</a></li>
		<li class="page1"><a href="http://domain-name.com/m/page-1/">Page 1</a></li>
		<li class="page2"><a href="http://domain-name.com/m/page-2/">Page 2</a></li>
		<li class="page3"><a href="http://domain-name.com/m/page-3/">Page 3</a></li>
		<li class="page3"><a href="http://domain-name.com/m/page-4/">Page 3</a></li>
		<li class="contact"><a href="http://domain-name.com/m/contact/">Contact Us</a></li>
	</ul>
</div>
</div>
<div id="footer">
	<p>Non-mobile site <a href="http://domain-name.com">Business Name</a></p>
	<p>Copyright 2010 Business Name, LLC.</p></div>
</body>
</html>

You may notice the dynamic <?h1> header tag is not included there. For these mobile pages I prefer to enter then directly into the text editor instead of relying on using the post title field. That way you can use your post title field to better differentiate you mobile pages from within your full list of pages in the WP dashboard. We are also re-editing the page file url slugs so you don’t need to rely on WP making a page file name using your full title text. We want brief short URLs.

A Back/Home link for Internal Pages

Your internal mobile pages should include a noticeable link back to the home page, since the mobile browser may not have a back button. The is_page() function in Wordpress makes this easy. We’ll add an if statement that say’s “if this is not the home page, add this link” and place it in our header like this;

<div id="header">
	<a href="http://domain-name.com/m/">
		<img scr="path/to/image/folder/logo.gif" alt="Business Name" width="xxx" height="yy" />
	</a>
	<?php if (!is_page(m)) { ?>
		<p><a href="http://domain-name.com/m/">Home</a></p>
	<php? } ?>
</div>

I include a link to the home page in the logo at the top, by habit, but that may not be intuitive enough for most users, so the little home button does the job.

You could get more advanced and use referral agent strings to determine what the last page visited was and have the back button be an actual back button. But if you only have a handful of mobile pages and they go no deeper than 3 pages deep, a simple home button is good enough.

Upload your completed mobile page template into your current theme folder. As well its own stylesheet file.

Create Pages in Your m Folder

The Mobile Home page

I title this page the “Mobile Home Page” so I can get to it easily in the list of pages in the WP dashboard. Re-edit this page file name to be just m, instead of mobile-home-page as WP would want to do automatically. You are using pretty permalink URLs right?

Edit the permalink to be just m

In the page attribute section set this page to be a parent of the sites main home page, then select the mobile page template. Write your content and publish. You now have a mobile home page :)

Select the root directory and your mobile page template

Add the Rest of your Pages

Create the rest of your mobile pages the same way, except now select your mobile home page to be the page parent so that your internal pages all resided inside the m folder. Publish those pages and you now have a mobile website.

Redirecting Mobile Users

We want to redirect mobile users, who happen to land on the full version of the site, to our mobile pages. We also want to redirect them to the right pages and allow them to visit the full version if they choose to.

Like we did in part 2, coding a mobile web-page, we’ll use Andy Moore’s detect mobile browsers script. Buy it, download it, and save that to your current theme’s folder. Then at the top of your header.php file, in your theme, we’ll add something like this;

<?php
if (strpos($_SERVER[HTTP_REFERER],"domain-name.com")==0) {
	require_once('mobile_device_detect.php');
	if (is_page(2,3,4)) {
		mobile_device_detect(true,false,true,true,true,true,true,'http://www.domain-name.com/m/page-1/',false);
	} elseif (is_page(5)) {
		mobile_device_detect(true,false,true,true,true,true,true,'http://www.domain-name.com/m/page-2/',false);
	} elseif (is_page(6,7)) {
		mobile_device_detect(true,false,true,true,true,true,true,'http://www.domain-name.com/m/page-3/',false);
	} elseif (is_page(9,10,11,13)) {
		mobile_device_detect(true,false,true,true,true,true,true,'http://www.domain-name.com/m/page-4/',false);
	} elseif (is_page(18)) {
		mobile_device_detect(true,false,true,true,true,true,true,'http://www.domain-name.com/m/contact/',false);
	} else {
		mobile_device_detect(true,false,true,true,true,true,true,'http://www.domain-name.com/m/',false);
	}
}
?>

The strpos() function is checking our referral string in the HTTP header and if it is not coming from within our domain the mobile detection sniffer goes into action. We also take advantage of the WP is_page() function to set our redirects to specific pages. If your main site has a number of similar pages on one them, yet your mobile site only has the one page on that topic, we’ll redirect all those themed pages to the one mobile page, using a series of if, elseif statements. Inside your dashboard Page edit screen you’ll be able to get the post number codes for your page you want to redirect. Just go to the edit screen for that page and view the url, or while in your dashboard view that lists all you pages just mouse over the link to edit a page and you’ll see the post id number in the url. It should look like this;

http://www.domain-name.com/wp-admin/page.php?action=edit&post=2

The post=2 part is your post number. You can enter multiple pages at once into the one function by separating them with commas.

The final else statement simply redirects every other page of the site, except those we’ve explicitly created a re-direct for, to our mobile home page.

If you wanted mobile users to be able to still read your blog posts you may want to use some sort of mobile friendly blog posts plugin then adjust the above redirects to exclude your blog pages.

Coding a Simple Mobile Website in XHTML Basic

This is part 2 of my guide on building a simple mobile version of a small business website. Part 1 covered that basic considerations you need to take into account before developing your mobile pages. Here we get into the specific of coding the pages. Part 3 will take this into building the mobile pages in Wordpress, for those sites that use it as a CMS.

A sample template of an XHTML Basic mobile web-page can be downloaded here. It includes the php coding for HTTP header delivery as discussed below.

And a couple sample mobile sites can be seen here. This car detailing shop in Vancouver, BC is seeing some success with their mobile site while this alarm system installer in Shreveport, Louisiana gets some traffic to their mobile version, the population base is just not pushing as much mobile users as a big metro city, but it’s slowly growing.

Mobile Specific Pages vs. Mobile Friendly Pages

To keep things simple we opted to create a stand alone mobile version that resides on its own URL instead of cloaking pages to provide a mobile version on the same URL’s as the normal website. Those who support the One Web philosophy may not agree with that approach but frankly it is simpler AND in the interest of delivering usable content to different user groups with different user behaviors, the one web idea is pretty flawed (IMHO).

Location of your Mobile Page URL’s

You’ve got two options. Place them in a sub folder off the root domain or use a sub-domain. The sub-folder is probably the simplest to set-up. Some label the mobile folder or sub-domain as mobile, others mobi and some just use m. In the interest of shorter url’s I like to us the m like this;

domain-name.com/m/

Mobile Page Meta Data

Document Types

There are two major doc types that can be used for mobile web pages. WML (wireless markup language) and XHTML. WML was the standard for older phones but as more phone browsers becom more capable, XHTML BASIC 1.1 is becoming the mobile standard. We’re going to go with the XHTML as its closer to what we as web designers are familiar with, HTML.

So this would be our doc type statement at the top of the file;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">

but since XHTML is a sort of XML we also need this above it;

<?xml version="1.0" encoding="utf-8"?>

Note that if your pages are able to execute php script then that the <?xml part of that code may get mistaken as php and the server try to parse it as such, generating an error. If that is the case then deliver that line with a php echo instead, like this;

<?php echo "".'<?xml version="1.0" encoding="utf-8"?>'."\n"; ?>

And we’ll also state in the html tag that this is xhtml and xml;

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

Character Coding

Character coding absolutely has to be utf-8, so include this;

<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />

Mobile Specific Meta Tags

Modern mobile browsers on larger screened smartphones can browse normal full sized websites, but they will scale the full sized page to fit the small screen, then you would zoom in on a section of it. But because we’re building pages specifically to fit mobile screens we tell the device to not re-scale things. We also let the device know they are indeed on a mobile friendly page.

<meta name = "viewport" content = "width = device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;" />
<meta name="HandheldFriendly" content="True" />

Headers and Caching

You need to send some specific HTTP headers to the device. The content type header specifies an xhtml+xml application and that it uses utf-8 character coding. Also, because mobile phones have limited memory and bandwidth restrictions you should set specific caching directives to help the device limit HTTP requests and rely on its cache, where appropriate. You want to set an expiry date, into the future and tell the device to re-validate if content has expired. In other words, as the user hops from page to page, they do not need to load the entire file set again as they revisit a page via the back button.

In php you would add this code to the top of your pages, or page template;

<?php
$offset = 60 * 60 * 24 * 10;
$ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
header($ExpStr);
header("Cache-Control: must-revalidate");
header('Content-type: application/xhtml+xml; charset=utf-8');
?>

The offset variable there is setting the expiry date to 10 days into the future, from the day the user visits it.

If caching leaves you scratching your head there’s a great overview of it here.

The XHTML Markup

XHTML is pretty much exactly like HTML but it gets very strict on a few things. It is case sensitive and all tags and attributes must be in lowercase. All tags need to be closed, including empty ones like the image tag or break tag. For more on the differences between HTML and XML there are good references here and here.

Click to Call Links on Phone Numbers

Some smart phones will automatically turn a phone number into a click to call link, if the number exists in typical text formats for phone numbers. But not all of them do. You can use the tel attribute on an a href tag to make the phone dial that number when the link it clicked via the touch screen.

It looks like this;

<a href="tel:555-555-5555">555-555-5555</a>

If you were so inclined you could even add java on-click events to that link for tracking purposes.

Include a Back Button on Internal Pages

Most mobile browsers do not have a built in back button like your desktop browser does but we all know how handy that feature is when browsing the web. You should include a back button or link, or at the very least a home button or link at the top of your internal pages. The home page itself does not need one, of course.

For the simple types of mobile sites I’ve been building for local small businesses a home button is enough as most the mobile site pages are off the home page.

Google Analytics on Mobile Web Pages

Most mobile web browsers in modern smartphones can execute java script. The normal Google Analytics code will work just fine. There is a serverside script you can use that will let you track on phones that do not execute java but it’s really not necessary as the numbers of those are small and shrinking.

Create a Mobile Sitemap

You can create a separate, mobile specific, site map of your mobile web pages and submit it to Google via the Webmaster Tools interface. Google uses a different crawler the index the mobile web. This should get your pages crawled and indexed as mobile.

Here is an example mobile site map;

<?xml version="1.0" encoding="UTF-8" ?>
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0">
   <url>
      <loc>http://www.domain-name.com/m/</loc>
      <mobile:mobile/>
   </url>
   <url>
      <loc>http://www.domain-name.com/m/page-name</loc>
      <mobile:mobile/>
   </url>
</urlset>

More on mobile sitemaps here.

Redirecting Mobile Users to your Mobile Website

Google has more than one version of its search results for mobile users. They get the normal universal results, or they can choose a mobile specific set of results. If they are using the normal results, which probably links to your normal web-pages, you want to employ user agent sniffing to detect that the user is coming from a phone and serve them your mobile specific pages.

I use this great php script by Andy Moore to detect mobile users and set redirects to mobile pages. It’s well worth the $50. You can set which types of mobile devices you want to redirect and which you do not. The iPad for instance may be a mobile device, but its large screen is as big as some laptops, they can use your full site.

I did however customize the call to this script to do a little more. I wanted mobile users to be able to visit the non-mobile pages and I wanted to set specific redirects for certain pages.

Allow Mobile Users to go Back to Main Site

When your mobile pages exist on a separate URL, like the simple mobile sites we are coding up here, you still want your users to be able to switch to the full sized site should they want to. You don’t want them caught in a loop of trying to go to the full version only to be redirected again back to the mobile version. I included a link to the full version of the website down in the footer of the mobile version and before the mobile browser check and redirect script kicks in I run a check on the referral string. If the mobile user came from a link on the same root domain, then there is no re-direct. If they landed on the site via any other referral, be it a search engine or a link from another site, we sniff for a mobile user agent and redirect them.

That code looks like this;

<?php
 if (strpos($_SERVER[HTTP_REFERER],"domain-name.com")==0) {
    require_once('mobile_device_detect.php');
    mobile_device_detect(true,false,true,true,true,true,true,'http://www.domain-name.com/m/',false);
 }
?>

The strpos function finds the position of the first occurrence of a string within a larger string. Our string being the server response from the HTTP referrer header. So this will work for referrals from any page of the site, as well as from a sub-domain should you have placed your mobile version in a sub-domain versus a sub-folder of the root domain.

Redirect the Right Pages

The default set-up for most mobile user redirects is to throw them to your mobile home page, regardless of which page of your website they happened to land on. A better approach would be to redirect them to the relevant page of your mobile site, for those pages that have a similar page on the normal site. Your mobile version is probably a stripped down version of your site with fewer pages, only the most important ones. The rest of your non-mobile website pages can be redirected to the mobile home page.

The above referral check script could be adapted to do a second check for a sting referencing a particular page like this;

<?php
 if (strpos($_SERVER[HTTP_REFERER],"domain-name.com")==0) {
    require_once('mobile_device_detect.php');
    if (strpos($_SERVER[HTTP_REFERER],"page-name.html")==0) {
       mobile_device_detect(true,false,true,true,true,true,true,'http://www.domain-name.com/m/page-name/',false);
    } elseif (strpos($_SERVER[HTTP_REFERER],"other-page.html")==0) {
       mobile_device_detect(true,false,true,true,true,true,true,'http://www.domain-name.com/m/other-page/',false);
    } else {
       mobile_device_detect(true,false,true,true,true,true,true,'http://www.domain-name.com/m/',false);
    }
 }
?>

The referrer check and redirect script would be placed on your non-mobile pages.

Validate your Code

Once your site is complete you can check to make sure everything validates using the W3C mobileOK Checker. You can view how your mobile pages will render on an iPhone, from your descktop computer, using this iphone emulator.

And there you have it. How to build and code your mobile pages. Part 3 of this series will show how to do it in Wordpress.

Building a Simple Mobile Version of your Small Business Website

After building a few mobile versions of websites for some clients I though I would share some insights. I tend to work with small businesses that operate in local areas so this guide is catered primarily to simple ways to create a mobile version for those types of websites.

This is a 3 part series starting here with a basic overview of considerations when building a mobile version. Part 2 gets into the specifics of coding mobile pages and part 3 takes that one further with a guide on coding a mobile theme template for websites using Wordpress as a CMS.

Now onto the major considerations you need to think about before building your mobile web pages.

Target the Right Phones, the smart ones

There are oodles of cell phones on the market that are capable of browsing the web. From older phones with a small black and white, or black and green, screen not much bigger than a wrist watch to full sized touch screens like the iPhone. As we all know the growth market in mobile are these larger screened Smartphones and those are the users who are venturing onto the web via their phone. You can basically ignore those older small screen phones.

The iPad and the other tablets to come are technically mobile devices but they are not phones and their screen sizes are not much different than many laptops. If you plan on using user agent detection to redirect mobile users to your mobile version don’t include the iPad in that. Those users can use your full sized site just fine.

Minimized Page Layouts

As large as the screens are on an iPhone, or Blackberry, or Android, they are still quite small compared to a desktop monitor or laptop screen. You need to tailor your design to these small screens so your site is actually usable. Screens are small so your pages should be small, in all aspects.

Also recognize that user behavior on a phone is different than on a full sized monitor. People browsing the web from a phone, and in particular if they are searching for a local business, are in a hurry. They want to very quickly find what they are looking for then go about their day. They do not want to read pages and pages of text so make your mobile web pages very short and concise. Get right to the point an avoid fluff. A headline and a few sentences of text plus a call to action can often be enough.

Flexible Layouts for Different Screen Sizes

Among the large screen smart phones screen dimensions vary widely. Design your mobile pages to fit most the phones out there by using dynamic page widths. Or if you need or want to use a fixed width then make it small enough to fit some of the smaller phones yet render nicely, but not too small, on larger phones.

Small file sizes for speed

The mobile web is slower than a hard-line high speed connection. Many mobile users are also on data plans with bandwidth restrictions. Keeping your page files, style sheets, and image files light will speed up load times and help conserve your users bandwidth. Keep your code light. Bare bones HTML markup and make sure your css is not declaring styles for elements you are not using. If you are including a contact page with an email form, the css for that form can be as large as that for rest of your site markup. In that case you should serve the css for that form separately so it is only loaded when that page is viewed, not all your pages.

Minimize the use of images and where you do include an image optimize it. Re-size images to fit a typical phone screen. When saving jpeg images, if your software lets you, reduce the image quality percentage down to 6o% to 70%. That is enough that the human eye can’t quite see the image degradation yet can cut file sizes, in bytes, by 50% or more.

Site Navigation, again minimal

The mobile version of your website likely only needs a handful of core pages. Most local small businesses don’t have a very large website to begin with. Your mobile website can be as small or smaller. Just focus on your primary service/product pages, plus the home page and a contact page.

Many guides on best practices for mobile web design will tell you to place your navigation links at the bottom of the page. A decent idea, except I prefer to include it right up top on the home page, below the header but above the primary page content. This helps users get to the specific page they need. Internal pages can stick to the navigation on bottom rule.

Mobile version of website for HVAC contractor in Houston

A Sample Small Biz Website with Mobile Pages

I recently finished up a mobile version for a client, an air conditioning company in Houston, Texas. If you are viewing that link from a full sized web browser (Firefox, Chrome, or Opera), just shrink your window to about iPhone width to see how the mobile pages would render. But if you are using Internet Exploder you won’t be able to see it as it does not know what to do with xml.

Their full website, here, has about 40 static pages, not including blog posts. The mobile version has a grand total of 9 pages. We cover just their primary products and services and a couple pages about their pricing policy and guarantees. That’s it. Come winter we’ll add a page for gas furnaces but there is no rush on that.

You can see the difference in content between their full page for ac repairs versus the mobile ac repair page. The mobile version is much thinner on content, else the user would need to scroll about 10 screen heights to get it all. We focused on delivering the message in a few words as needed and emphasized the contact button and click to call links.

Yet another example can be seen here for this law firm in Los Angeles.

A Simple Search Optimization Tip

Include your phone number in your meta description tags. Phone numbers, even when just plain text, become a click-able link that will dial the number on some smartphones. When a user does a Google search and that description tag as displayed in the results, people can click to call without even visiting your website. Certainly worth adding.

Now that those things are covered, on to coding up your mobile web pages.

Google Places and Service Areas

Google has finally added options for business owners to set their service areas, as reported a couple weeks ago by Matt McGee. Today it officially rolls out, again, along with a re-branding of the Local Business Center, now simply called Google Places.

The service area is great for those businesses that work from a home address they would rather not display, or businesses that serve multiple areas from one physical location, which is very common in larger metro areas (think plumbers, landscapers, remodeling contractors, interior decorators, etc..). Up till now many of those businesses targeting multiple cities had to resort to obtaining unique addresses and phone numbers in those other cities, often through UPS box addresses, a practice Google now frowns upon.

The question is, how are rankings influenced by these new service area settings? Will a business located in “City A”, yet services the adjacent “City B” to the north, be able to rank for City B search queries when all its citation sources mention City A? It’s too early to tell and for some of my clients that this is well suited too I’m a little hesitant incredibly hesitant to make any changes as they already rank well. Perhaps the next fresh client becomes the guinea pig.

Google is Encouraging Us to Build the Local Web

Some recent changes to the Local Search algo has led me to believe Google is trying to encourage us to enrichen the local web. Do that well and they will reward you with better rankings in Google Maps and that coveted 7 pack.

What is the local web? Any location based information that can be added to a map. Geo-tagged photos, videos and webcams, geo-tagged Wikipedia articles, Google My Maps, and KML mapping files are the additional layers of location based information that Google wants to see users creating so as to build a richer local experience online.

User reviews were one of the first, and heaviest, spammed factors of local business listings in an attempt to improve rankings in the 7 pack. They are far too easy to fake and game so it seems Google may have turned the dial down on that part of the algorithm. In turn they seem to have turned up the dial on the user content factors (my maps, kml files, geo-tagged images), to the point that My Maps are now beginning to get aggressively spammed in some industries.

How to Build a Rich Local Web Around Your Business?

Build some My Maps and KML files of your business location, as well create Maps of other businesses in your immediate area. Maybe there is a great coffee shop on the corner – map it. Or a couple great restaurants within a couple blocks of your location – map them. Your accountant might be located a few blocks away, or your favorite laundromat, book store, auto repair guy, sports field, whatever. Combining these locations into your maps may make your maps more authoritative, as well as make your user account more authoritative so that your My Maps have a little more weight behind them than just one single stand alone map in your account. While you’re at it leave some reviews at those places, again to build your authority.

Take photographs and videos of stuff in and around your location. Add those images to Fickr and-or Panaramio and include geo-tags of the location. Add videos to Youtube and include geo-location information. Get creative so that these things might be useful or entertaining for users, not simply there for that fact of trying to satisfy Google with more junk that might help you rank. Instead of leaving a user scratching their heads on why the heck this photo or video is even there, make it useful in some way to build trust and show value.

This appears to be the direction Google is headed with maps and local search. By turning up the dials on that part of the local ranking algorithm it seems Google is encouraging, perhaps incentivising, the creation of more rich local content.

Google Maps Going Real Time?

I just finished building this website for an auto detailing shop in Vancouver, BC and today am editing some stuff in their Google Maps profile when I spotted something new. Now you can post up to date events and specials about your business as seen in the screen shot below.

Post event and specials to your Maps Listing

You get 160 characters to write something, and it will auto expire in 30 days.

Below you see how it appeared on their Maps Place page for the business shortly after adding it.

Real time content on Google Maps place pages

Notice the “54 seconds ago“. It seems to show up on the page in a minute or less.

If you post another one it will overwrite the old one, not post more than one like a twitter feed kind of setup.

Great way to keep fresh content on your maps listing and promote your specials, events, and other timely stuff.

Question is, will posting this stuff on a regular bases have any influence in rankings?

Update :

Seems others are commenting on the Twitter-esque or Facebook-like functionality of this new feature. Seb Provencher suggests it’s Google’s shot across the bow towards Twitter and Facebook and goes so far as to suggest Twitter and FB need to start building business profile pages to compete with Google Maps.

Over on Mike Blumenthal’s post the commentors are picking up on the facebook Fun Wall and Twitter stream look to it.

Greg Sterling suggests it should eventually be tied direct to FB and Twitter so you could post it once in the LBC, and auto update your FB wall and Twitter stream in one go.

Transferring Google Local Business Center Accounts

Following my previous post where I recommended that Google should be allowing shared user access in the LBC I’m now thinking about best practices for transferring accounts. Basically how to pull it off with the minimum disruption to your listings current rankings.

Maybe your web designer went ahead and created a maps listing for you, in their account. Or a family member that knows a bit about the web went ahead and did it for you. But now you want it in your own account where you can control it.

As it stands there is no way to simply transfer ownership of a business listing from one Google account to another. Essentially you must delete one listing and create a new listing in another account. This will temporarily remove the original listing from search results and may take some time for the new listing to resume in its place.

I am actually in the process of doing one of these now and the following is how I’ve gone about it. With relative success. We did loose a couple spots in rankings.

Create A Listing in Second Account

First create the new listing in the other account. Make all the details of that listing identical to the other one. Same name, description, contact info, etc… but add a few more details such as a few extra “Additional Fields”, maybe a few more images. This may make the new listing the more powerful of the two.

Wait for the Merge

Wait a couple weeks to see if a data merge takes place. In the two different LBC accounts you should start to see identical impression and action statistics. Also the listing details on the place page for that business should be now showing those extra’s you added to the new listing version. This is similar to merging duplicate listings within the same account, except in this case its across two accounts.

Edit Original Listing

Once you are fairly confident a data merge has occurred go and edit the original listing, the one you want to remove from the other account. Strip out all the information except the name phone and address. Delete the description, images, hours, additional fields, etc… but don’t touch the name, phone and address fields. Save those edits.

Wait Some More

Now wait and watch for a couple weeks. Hopefully rankings did not plummet, the listing appearing in results still has all its details, from the new listing you created, all or most the reviews and web citations (”more about this place”) are still appearing in the businesses place page, etc…

Delete the Old Listing

Now you should be able to safely delete the old listing from that other account.

What I saw happen in the case I’m dealing with is some of the reviews from other sources, outside Google’s own reviews, got dropped. I do expect them to return at some point. The business dropped out of the top 7, where it had been ranking #7, falling to #9. Loosing those reviews may have been the kicker there. Seems we still have all the web citations. When those reviews come back, plus other optimization tricks begin to kick in, we should see this business back into 7 pack, and hopefully ranking a bit higher next time.

Update: They came back into the top 7, at #4, after a few weeks.

Google’s Local Business Center Should Allow Shared Users

Note to Google – this should be a priority for 2010

Update: It’s now 2011 and still no shared user access :(

I  believe that business owners should own and control their online data. Or as much as is possible. Google generally feels the same way and recommends that business owners claim and verify their own listings in Maps.Too many small business owners are not getting this message.

Why Google does not have a shared user system, like it currently uses in products like Google Adwords and Google Analytics, baffles me.

What I see happening, too often in fact, is marketing agencies, SEO’s, and whatnot creating, claiming and verifying listings on behalf of clients from within the agencies LBC accounts. This makes it much easier for the agency to manage their clients info, and, as a fair number of  small business owners are a tad handicapped when it comes to just about anything computer related, it’s also easier for the business owner to have someone else handle it for them. But it poses many problems. Some big nasty ones, in my opinion, that create significant business risk.

Risks Associated with Not Controlling your Own Google Maps Listing

  • Being Held Hostage by Marketing Companies – read that as “keep paying monthly or we delete your listing”.
  • Lack of Transportability – Must create new account and listing, wait for a data merge, then delete old listing. Potential 2+ week disruption.
  • Unable to Make Your Own Changes when you Need To or Want To – Don’t like your description? Want to add new hours or payment methods? No can do.
  • Open to Spammy Abuses by Unscrupulous Agencies or Amateurs – these could get your listing penalized at some point.
  • Potential for Duplication of Listings – multiple internet yellow pages type sites are adding Google Maps marketing up-sells, where they create maps listings and/or are using their own call tracking numbers. eeek!

Any of these could cause a noticeable drop in rankings for anywhere from a few days, a few weeks or a few months.

Risks of Having to Share Login Info

You should not share your Google Account with others. Whoever you share your Google Account login info to has access to all your Google services. That includes your Gmail, where you may have private information in your inbox, Google Adwords where you are spending money on advertising, Google Docs where you may have important documents such as business plans, etc…

Sharing your login info to allow a 3rd party to “optimize” your Maps listing should only be done after you’ve established some level of trust with that 3rd party. Even then you should probably change your password to a temporary one, for while they have access, then change back to your preferred one and lock them out after they are done. Note, while that third party has access it is possible for them to change passwords and lock you out!

That said I often have clients send me login info so I can set things up for them. But I’m upfront about making them aware of what it means and what I have access too. In cases where the client does not yet have a Google Account yet I go through the process of setting one up, creating an iGoogle page, Analytics, Local Business Center, and in some cases Adwords. Show them how it all works then tell them how to change the password so they then have control.

Keep Business Accounts Separate from Personal Google Accounts

A tip to business owners. Keep your business data separate from your personal data. This includes your Google accounts. Google recommends this too. At some point you may need to share login info regarding business stuff, or in the future when you sell your business, you want to be able to easily transfer ownership of business data online.

Ideally The LBC Should have Shared User Access Functions

This would solve a number of problems while still allowing agencies and SEO’s to manage things efficiently. Google already has the infrastructure in place. A simple cut and paste of code from Adwords or Analytics, some tweaks to apply it to the LBC, and presto, shared user capabilities.

I worry about the many naive small business owners facing the growing onslaught from mediocre quality and sometimes outright exploitative companies working towards scaling local SEO to capture the big market where those naive and spendthrift people lie.

I see some “local SEO agencies” springing out of the multi-level marketing (MLM) world and it makes me shudder. Not to mention those springing up outside of North America and Europe. That’s not meant to be a xenophobic/racist comment by any means. I’m just generally not comfortable with the quality of service coming out of certain parts of world where tech labor is abundant on the cheap. Also many larger agencies don’t apply any sort of exclusivity on their service and offer the same services to local competitors, and thus are privy to your performance data which can than be applied to assist your direct competitors.

Google Maps team, get on it!

Future Proof Your Google Maps SEO

Google Maps is still in it’s early stages of evolving and improving the ranking algorithm. Lots of easy, often spammy, methods for ranking are still working, but slowly many of these will be getting picked off by the G team. Are the current optimization methods you’re using today going to continue to work in 3 months? 6 months? A year or more? Or will you be one of the many complaining in the maps forums or various blogs about how your highly ranked listing suddenly dropped to page five.

Strive for Quality

Google ultimately wants to provide relevant and quality results to it’s users. It’s simply in their best interest to do so. It’s in your best interest then to satisfy Google to that end. Give them reasons to believe your business is a quality one. Give those quality cues early.

I see many small business owners, too many really, hoping for that quick fix home run, only to be continually chasing it over and over again when something in the ranking algorithm changes. Think about each and every aspect of your listing and why you are doing it the way you are.

Tone Down the Keyword Spam

Keyword spamming of business name titles, descriptions, and additional fields is a common tactic. About a month ago there was a rash of complaints over lost rankings due to keyword spamming in category fields. This sent hundreds of business owners scrambling to figure out what was wrong and how to fix it. The same is likely to happen when Google ads more filters to cut other forms of keyword spam.

Much has been discussed elsewhere about keyword usage in business name titles, and Google’s stance on it, so I won’t say much about it here other than to say if you do it, keep it light.

Writing and crafting descriptions and additional field information is not simply about jamming in keywords, the quick and dirty way. Instead take your time to craft a good description that uses a couple of your main keywords in a natural way. You should really only need 1 or two variations of your main service keywords and one instance of your city name within your description. At 200 characters your description field may just give you enough room to word it in such a way as to also include a Call to Action of some sort.

Use Additional Fields to help target other service keywords, as well as reinforcing your main keywords one or twice more. Write nice little sentences that may provide real information to a potential customer.

Some examples of bad Additional Field usage;

  • NYC Laptop Repair : Yes
  • Laptop Repair : New York

This would be an example of quality in an Additional Field;

  • Laptop Repairs : Our NYC computer technicians can repair your laptop or notebook with ease. From broken monitors to dead batteries.

See the difference? Those bad examples, I’ve seen all kinds of that out there. Not only from small business owners that don’t really know better, but from some larger scale SEM agencies optimizing listings for clients. Tisk, tisk.

Just look at what we accomplish with the higher quality Additional Field that is targeting the exact same keywords. A user can actually read it and get some value out of it, thus building goodwill and trust (not much, but miles above that lame crap in the bad example). You are hitting not only your main keywords, but a few other relevant ones as well.

It might take an extra 5 minutes to try to write something decent that will fit inside the 120 character limit but in the long run it’s well worth it. When Google adds a keyword density filter, or something similar, you won’t be scrambling to rewrite your Maps listings again.

Be Careful with Reviews

Upon realizing reviews have an effect on Maps rankings many business owners jump to trying to amass a number of reviews quickly. Often taking the easy route of creating fake reviews. Woa! Careful there. Fake reviews are easy to spot, both by users and by search engines.

Comments about fake reviews

I repeatedly see legitimate reviews commenting upon what looks like a fake review for the same business. If a couple people are taking the time to write such a comment in the reviews how many more are noticing it and are left scratching their heads as their trust levels diminish. Fake reviews are also quite easy to spot by a computer algorithm. Where has that user left other reviews? Did that same user claim that business listing? Is that same review content appearing for other business listings, or from other review sources? Copypasta is easy but tastes horrible.

Instead, create and implement a system that will continually encourage the generation of reviews over the long haul. Include links to review sites in thank you emails sent to customers. Hand out a thank you card at the cash register that includes information on leaving online reviews. Get creative, there are lots of easy and non-spammy ways to get real reviews.

Recognize Inherent Limitations

Maps search is primarily about the broader categories of business services, for the vast majority of businesses out there. It is not much of a long tail search play. That is much better suited to organic SEO and Pay Per Click advertising.

Now there is a bit of a long tail effect in Maps but it is very weak in comparison. With only 5 categories to choose from, very limited space for descriptions and other information, and the fact that a map is only triggered in the Universal Search Results for mainly those broader category types, the system itself creates limitations. Recognize them and work within them to maximize your relevance to the types of key phrases people are actually using to find your services.

Diversify your Local Marketing

As Google Maps has grown in prominence I get more requests for help with Google Maps listings but I’m seeing many who are relying solely on Maps to generate business. That’s a dangerous position for a small business to be in. Anything could change at any time such as a massive algorithm adjustment that bumps you out of the top results, or a silly mistake in your optimization triggers a filter, or Google completely changes the game with a new version of Universal Search Results, perhaps as simply as occupying the entire visible page, before scrolling down, with paid ads.

Don’t neglect organic search optimization and the long tail riches it trickles your way. Or PPC ads that help you pull a larger fraction of total available traffic (yes, even for same keywords you already rank well for in maps and organic). Experiment with social media marketing via Facebook and Twitter. Try the Pay Per Click options through Facebook. Advertise locally on relevant local websites. There is a lot more yo can do besides just Google Maps.

So for 2010, and beyond, focus on quality to win the local SEO game now and into the future.