James Royal-Lawson


Meta descriptions on

From August 2009 until the point of writing this, each of the weekly articles published by Gerry on his website has contained incorrect meta description content. In this short video I highlight two of the ways in which this has a significant impact on his web presence.

Update 22nd August

Gerry has in his latest blog post fixed the problem and said a little thank you on Twitter. Little things, easily fixed. It’s really is worth giving your site a regular health check.

WordPress plugin: Measuring browser viewport size

Previously I’ve written about the importance of browser viewport size, and also explained how you can measure the browser viewport of your visitors and store the result in Google Analytics as events.

Given the 25 million sites out there running WordPress, I decided to invest a bit of time into creating a WordPress plugin to track viewport size. It uses exactly the same technique as described in my earlier post but conveniently wrapped up as an easy to install WordPress plugin.

Download the plugin

You can download the Measure Viewport Size plugin from the WordPress plugin directory. Or you can install it directly from your WordPress site by searching for “Measure Viewport Size” from the “add plugin” page.

There are a few prerequisites; you will need to have Google Analytics installed on your site (the asynchronous “_gaq” version). I’ve tested the plugin with Google Analytics for WordPress and it works fine. You will also need to make sure that your theme supports the body_class trigger. The body tag in header.php wthin your active theme should look something like the following:

<body <?php body_class(); ?>>

How does it work?

The plugin uses a javascript function to obtain the width and height of the viewport of the browser window your website visitor is using to view your site. It then sends three “events” to your Google Analytics account. One for the width, one for the height, and one with a text label containing the full dimensions.

You can then view the events that have been recorded as people visit your site in Google Analytics under Content -> Event Tracking. It can take a day or so for the events to be processed and to appear in your GA reports, so be patient!

Why bother?

Monitoring and analysing the browser viewport size is a crucial part of designing and maintaining a successful website.

50 pixels fewer in available height for content could be the difference between your call to action being visible or disappearing below the fold. That could have a noticeable impact on your conversions and goals.

The browser viewport is the window in to your world. Your visitor sees everything through it. So why drive blind when you can quite easily gather and analyse a bit of data?

5 new social memetrackers

Twingly Channels is a social news reader what gives you the possibility to aggregate feeds and real-time search results into a single channel where many people sharing the same interest can view, comment and vote on the content.

Earlier this month Twingly opened their doors a little wider and started to allow anyone to create channels. So I took the opportunity to create five new channels focusing on five seperate subjects.

Content that receives attention – such as retweets, linking blog posts, likes, comments – bubbles up to the surface and is shown under “top stories”. If you really want to dive in deep then you can click on “Show incoming stories” for a real-time display of incoming articles.

Eye tracking

Articles, blogs and resources about eye tracking and usability testing using eye tracking.


Articles, resources, blogs about Intranets, intranet managment and intranet collaboration.

Google Analytics

Aritcles, blogs and resources about Google Analytics, measurement and web analysis.

QR Codes

Aritcles, blogs and resources about Quick Response Codes and their uses.


Beantin says and Beantin reads… A collection of my blog posts across all my blogs plus my favourited tweets.


A bonus channel. This one wasn’t created by me, but rather by Simon Sundén. Contains everything regarding Search Engine Optimization in English.

What do you read?

If you read any blogs related to the above topics and think they would be good to add to the Twingly Channels, then get in touch with me and let me know!

Search-engine friendly country site select boxes

Design often has the final say in a redesign project – or at best, a very powerful voice – which isn’t always a good, or acceptable, situation.

Recently I was part of a project where I needed to preserve an aspect of the old design for SEO reasons. The new design had included a select box, but I needed those “options” to be real links that would pass link-love. So, I offered this search-engine friendly solution.

Country links

Country links on the original website

To give a bit more background, the old site had a footer that contained links to every single country site within the organisation. This was about 26 links. On every page of the site. Most of those country sites had a similar footer, making most of the links reciprocal. That’s quite an international network of inter-linked international top level domains.

I obviously wanted to maintain that network of links after the redesign. It clearly wasn’t going to help the position of any of the sites in SERPs by removing them.

Country select box

Choose your country site select box

The design that was produced had “simplified” the list of countries in the footer to be a select box drop down menu. Although this is not unusual for companies with multiple country sites, it’s not always a good thing for usability (I like populating the select box using geolocation as a solution – but that would be another blog post!) and it’s really not a good thing for search engines.

No link-love for select boxes

Although Google has indexed text in select boxes for a number of years, and also indexes (new) URLs that is discovers within those lists, it doesn’t pass any pagerank to those links. Neither does it attribute the anchor text (or more correctly in this case: option text) to the destination link.

This obviously meant that the international network of inter-linked top level domains would come crashing down to the ground. Not really something that was on the list of requirements…

Country sites as a linked list

So in order to preserve the link network, and to honour the design decision, I decided to re-introduce the <a> link list of countries, and in order to not make this visible to (most) end-users, I set it to “display:none”.

Now hold on I can hear you say. Doesn’t Google (and other search engines) consider adding “display:none” to things as cloaking? Well, not necessarily. The key is whether there is a mechanism for making the content visible to visitors or not.

So in order to keep both the search engines and users happy what I did was add the “display:none” only if javascript is enabled. That way we are always serving the same HTML content to all visitors and search-engines, but making parts of it invisible when viewed in the browser by most visitors. Importantly, we are letting the search engines see and index all the links to the countries.

Adding a class

Add a js class to the country link list, or whatever element of the page you want to be hidden when javascript is enabled.

<div class="js">

Include an external js file

Add a link to an external script directly after your CSS styles (you may already have such an external file already)

<script type="text/javascript" src="/script/functions.js">



in that script add a document write to write the additional css style link

document.write('<link rel="stylesheet" 

type="text/css" media="screen" />');


Finally, your js css file. Add the “js” class styling with display:none there.

.js {
display: none;

There are other ways you could achieve the same result; especially if you’re already using an Ajax library such as jquery, but I thought it was good to share with you an example that didn’t force the introduction of that overhead.


Yes, you could argue that this is technically cloaking, but it is better to say that we are offering enhanced content to those with javascript disabled. By doing this we are cloaking in a way that is helping Google and visitors who find long lists within select boxes difficult to use.

5 Articles worth reading… (Spotted: Week 26, 2010)

Why I Still Blog

Hans Kullin asked and answered Why do I still blog? last week on his blog, this week, John Cass gives his answer. Both provide some interesting insights into the ever-evolving blogosphere.

Yahoo Style Guide

July 6th Yahoo will launch their book, which will cover grammar, punctuation, web accessibility and writing copy that helps SEO. The companion web site has some useful articles too.

10 Reasons Why Your Analytics Are Failing & 13 Tools To Help

The reasons listed here are quite a nice analytics “basics” overview. Covers a lot of things that are all too often overlooked.

Serving Static Content from a Cookieless Domain

You are all (as you’re clever, web-savvy people who read this blog), already serving your static content from a seperate domain. This is a good explaination of why (and how) you should make sure that your media domain doesn’t serve up cookies with all the media requests.

Sitemaps: One file, many content types

Now all specialized sitemap formats can be rolled into one file. Sitemaps, and how Google are enhancing them, is a “you scratch my back and I’ll scratch yours” situation. Google want to serve accurate, useful, search results – and we all want our pages, images, videos, etc to be included. Get scratching.

4 of 9
Reload this page with responsive web design DISABLED