All posts in Web

WordPress, IIS, Permalinks and index.php

Here’s the problem:

You need to install WordPress on a Windows machine running IIS. I’d never normally do this, but sometimes you just don’t have a choice.

There are plenty of links out there about how to do this, and the one I referred to most was How To Install WordPress on IIS 6.0. It is, more or less, straightforward.

However, there’s an issue with IIS and permalinks. Continue Reading →

Are Twitter followers your friends?

I was at a concert last weekend at Wembley Stadium which is, if you haven’t been, H U G E. It was filled to the brim with 80,000 people who had paid good money to see a nameless boyband. I was one of them. :)

Not long after the first support act had finished, the murmurs of a Mexican wave started around the stadium. It was awesome to watch. Each time it went around it grew, until by the third or fourth loop almost everyone was standing up. Watching 80,000 people synchronize themselves, spontaneously, is really quite phenomenal.

How did it start? Why did it start? And why did 80,000 strangers join in – creating a singularity. A wave.

We are, I think, compelled to join. Ultimately we all want inclusion, not because of any misdiagnosed lack of self confidence (although we all suffer to some degree from that – except politicians). No. I believe we are compelled to be included, it’s inherent in our being. We want to join in, to contribute, to be part of something bigger than ourselves.

Isn’t that what a Mexican wave is? An expression of joy. A chance to be part of something bigger, whilst still retaining our own sense of identity.

It made me think about social media, and it’s explosion over the last few years. When Michael Jackson dies and the news is broken across Twitter moments after it breaks on TMZ. When CNN, the BBC and others quote Twitter feeds because it’s the quickest way to get comment and feedback. When we all turn to the internet or our smartphones for confirmation, not from traditional news sources but from trusted bloggers and Twitter accounts, you know it’s big.

And we all want to be a part of it. We’re compelled to. Although most people sign up to Twitter, tweet once, and then bugger off, the important part is that they do sign up.

They want to know what Twitter is. They want to be a part of it.

But because social media is so new, because this is such a new way of communicating (if you think that communication began with the grunt of a caveman), most people don’t quite understand what to do. And so they leave.

Is this a problem with Twitter? Possibly. I think they could redesign their sign up process to single out and hand-hold people who have no idea what it’s about. Twitter is the medium through which we connect, but like strangers at a party we’re often dumbstruck when faced with talking to people we don’t know. Here’s a question whose answer might make you a millionaire: how can we bridge that gap? How can bridge the gap between the technology that allows us to say hello, and actually saying ‘hello’?

Or look at this another way. Why do we want a bunch of followers we don’t know to listen to what we’ve got to say? Is it because it allows us to touch our own version of celebrity? How arrogant are we?!?! I have enough trouble keeping up with the few ‘real’ friends I have, let alone telling my Twitter followers what I’ve been up to. Is Twitter, like Facebook, a substitute for lazy friendship?

Maybe. Twitter, Facebook, email and even texting allows us to engage in one way communication without worrying about what the other person has to say. The great thing about these forms of communication is that we can reply when we want to, and carefully craft what we want to say (and how it’ll be interpretted). And yet Twitter brings us, almost, full circle. All these forms of communicaiton are in some way instantaneous, but Twitter as a form of communication encourages conversation in real time. It’s like text messaging on acid, and allows us to join conversations with people that share our interests – not necessairily close friends.

Many many many years ago, I wrote a paper on how the internet segregates people not by gender, race, religion etc, but by interest, by values. It segregates us by who we really are. In fact, segregates is the wrong word. It does not segregate, it unites.

And perhaps that’s the point of Twitter. It brings us together, because we are compelled to join in, and it brings us together with those who share our interests and values. They may not be our real friends, but then maybe we can have different types of friends. One type is no better or more valued than the other – we just need them at different times of the day, week, month, and our life.

Twitter and Customer Service

I think a lot of people are still trying to work out how to use Twitter for business.

We can all let our followers know what we’re up to, and even forward on useful links to other sites to each other. Some business have been successfully experimenting. Dell, for example, have made over $2m tweeting special offers. The company I work for tweets holiday deals, and we can accurately track how many are clicked thanks to bit.ly.

However, I experienced something new last week and it blew me away, despite it being simple and – dare I say – basic customer care.

I was having all kinds of problems searching for images on iStock. I’d search all media for a generic term like ‘holidays’ and I’d get no results at all. I thought this was a problem at my end, so I cleared cookies an restarted my browser.

But still nothing. iStock was, as far as I could tell, broken.

I tweeted my frustration, and shortly afterwards a Twitter buddy replied…

So, it was working for rishil. Or was it? Moments later rishil added…

Wow. So maybe iStock was broken. You’ll spot the time on that last tweet was 13:49 – 1:49pm GMT.

Also, notice that rishil is helpfully suggesting another stock photography website (dreamstime.com). This is, of course, bad news for iStock.

Less than 30 minutes later, this popped up:

Wow. Technically I guess it’s not that impressive. Sure, they must monitor every mention of iStock in tweets. But still – they found the problem (perhaps due to my tweet, perhaps not), fixed it, and then told me about it.

That is GREAT customer service. Think about how difficult that would be to replicate in the real world. Or would it? I bet you could do something similar for your customers if they were able to contact you the instant there is a problem.

Or, better still, that they knew they should contact you instantly if there is a problem.

It gets better. I thank iStock for their speedy response and they get back to me with:

A money off coupon may well be self-serving, but it’s these gestures that help build brand loyalty. Like I’m ever going to go to dreamstime.com! Or Shutterstock!

I sent them another thank you tweet, mentioning their great customer service, and iStock replied with:

I rest my case.

There are opportunities for all of us to use Twitter to connect with our customers in an immediate and helpful way. iStock used the system well, and have retained a customer. Not only that, but I’ve written this post about them!

Imagine the good will you could create by reaching out to your customer base and offering them just a little bit more than your competitors.

Twitter is not just good fun. It’s good business too.

SEO – Fishing or hunting?

A quick thought:

Search Engine Optimisation, in the wrong hands, can turn into fishing.

I had a conversation recently about generating a keyword rich page in a highly competitive space. Even if we didn’t get page one, or two, or three of Google, some people might find the site and then, perhaps, might decide to buy some products.

Really? Would they? Sounds like fishing to me. We’re dropping our bait into an incredibly busy river (there are LOTS of fishermen here!) hoping that a fish might not only see our bait, but also like it. Like it more than all the other bait they’ve seen already.

The first problem with this approach is that it is almost infinite. You could create ‘keyword rich’ (ooh, I hate that phrase) pages for all of your products and services, and their related phrases, and hope that some of them get noticed.

There’s no denying that this can and does work. It’s a tried and trusted formula for limited success. My main problem with it, however, is that it is not user centric. We are not asking the question, “what do our users expect to find when they search for that phrase”.

For example, if we were a tennis ball manufacturer we could create a page for the phrase “Wimbledon 2009″. Granted, some people searching that phrase might want to buy tennis balls – but the chances are they want information on the tournament. We could even include some wonderful keyword rich paragraphs about Wimbledon but, unless we’re Slazenger, it’s unlikely this text will be of value for the user.

Another example might be a car insurance provider optimising for ‘Toyota Prius’, because the person searching either  has a car or is about to buy one. Surely they’ll need car insurance at some point too? Maybe, but that’s not what they’re searching for!

I guess that doesn’t stop car insurers sponsoring motor shows, but isn’t a point of the online marketing that we can accurately target people and their interests?

There is also a (please don’t run away here) moral issue. Google is, in many ways, a victim of it’s own success. As SEOs try to keep up with the algorithm, and websites vie for a page one ranking, all kinds of SEO’d content is being created which can be of no use to users. What use is a visitor to you and your site? Vanity? Ego? Would you rather have 1000 visitors who don’t convert or 10 visitors who do?

How many results on page one of Google are directly targeting your search phrase, and how many have been SEO’d to appear there?

This, my friends, is fishing. If you have the time, go nuts. But there are far better things to do. Seriously. You need to get out more.

Throw away your rod, get up off the riverbank, and go hunting.

You know who your prey are – people who want to buy tennis balls. Optimise for phrases like ‘tennis balls’ and ‘buy tennis balls’ (or whatever your keyword research suggests). It’ll be much easier to get a good result on Google, and it’s likely you’ll enjoy much higher conversion rates.

So sling your shotgun over your arm and spend your SEO time more effectively. Don’t waste time competing with the BBC’s coverage of Wimbledon and settling for a page 3 or page 4 result. Go deep and long with your phrases and links, and (last pun coming up) your conversion rates will be an ACE.

That was shocking, I know.

Welcome! But please come back later…

Hello there.

So my first question is, how on earth did you find this page? RichardShepherd.com should be hidden from those nasty search engines at the moment, so if you’ve found me then please – go away!

Actually, stick around and forgive the ‘work-in-progress’ feel to the site. It’s still being optimised and customised so who knows what might work and what might break.

Anyhoo – I need to carry on giving this theme a damn good spanking so I’ll catch you on the finished site* very soon.

:)

* Like a website could ever be ‘finished’. Nooch.

Using jQuery to nudge links

jQuery is so blooming useful! There’s an effect you’re seeing all over the web now, where links nudge over to the right when you mouse over them.

So, here’s a simply tutorial to get jQuery link nudges onto your pages in just 5 minutes!

First we need need to include the jQuery library in the <head> section of your page, which we can do with something like this…


And then we need the actual jQuery code that does all the magic. Again, this is in the <head> of your page.


So what does that do?

First of all is the usual jQuery DOM ready command,

$(document).ready(function(){

which ensures we don’t execute any code until all the DOM elements have been loaded. We then tell jQuery to take all <a href=”anything here” class=”nudge”></a> elements and add a function to them – in this case, whenever the user hovers over them.

$(document).ready(function(){

When the user hovers over the link, we then run the following piece of code, which is a standard jQuery animate method:

   $(this).animate({ paddingLeft: '5px' }, 200);
   }, function() {
      $(this).animate({ paddingLeft: 0 }, 200);
   });

$(this) is referring the element we have hovered over. This is great, because it means we can use the class ‘nudge’ on multiple elements on one page – in other words we can have whole menu systems with links that nudge.

We animate the link 5px to the right by changing the padding-left css property (in javascript this is referred to as paddingLeft rather than padding-left. 200 is the time in milliseconds. Obviously you can change these values to whatever you like. You could also add in additional CSS properties to animate!

In the following line we then reverse the effect when the user takes the mouse off the link, reducing paddingLeft back to 0.

It really is that simple. This effect looks best when there’s a few links using it because you get this wonderful cascading effect.

If you want to see a great example of a site that uses the jQuery link nudge effect, check out the footer of Chris Coyiers fantastic CSS Tricks site.

Ranger, out.

The 7 Things I Hate About You… Yes You, Twitter!

I think we can all agree that Miley Cyrus is one of the most influential recording artists of our time. Probably.

So, in an homage to her and Ken Jones – and all those Top 10 (7?) lists out there on Twitter – here is my own list.

Yes Twitter, these are the seven things I hate about you… Continue Reading →

.htaccess and 302 redirect problems fixed

So I had quite a specific problem. For some reason, http://growlingranger.com was redirecting to http://www.growlingranger.com with a 302 redirect. And, as SEO guru (and friend) Ken Jones from the SEOpsCentre put it, that’s bad SEO juju.

302 means that the address has moved temporarily, and will be back soon. Which in turn meant that my entire site (everything at www.growlingranger.com) was seen by Google and others as temporary. Bad juju indeed.

How do you know this? Well, I downloaded and installed a Firefox plugin called Live HTTP Headers, which does exactly what it says on the packet. It gives you a feed of the HTTP headers as you load a page. And my headers had an ominous 302 redirect.

What I need is for it to be a 301 redirect, which means the address has moved permanently and that any lovely link juice is passed on.

Now I tried everything to fix this, including my DNS entries. Scary stuff indeed. But nothing seemed to work. My hosting is with GoDaddy, so if you’ve also had this problem and you know why it happens then please let me know!

However, we were able to find a fix thanks to Ken Jones and his .htaccess awesomeness.

My .htaccess file already has some WordPress stuff in there, which looks like this:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

And that’s just doing funky things with my permalinks – how my blog has friendly URLs like http://www.growlingranger.com/2009/02/how-to-use-jquery-with-a-json-flickr-feed-to-display-photos/ instead of http://www.growlingranger.com/?p=455.

What we need to add was a bit of redirect code that takes anything and everything from http://growlingranger.com/ and forwards it permanently to http://www.growlingranger.com/.

And here it is:

RewriteCond %{HTTP_HOST} ^growlingranger.com [NC]
RewriteRule ^(.*)$ http://www.growlingranger.com/$1 [L,R=301]

If you’ve experienced the same problem you can just replace ‘growlingranger’ with whatever your domain is. If you’re successful you’ll get something like this in Live HTTP Headers…

Live HTTP Headers

Now I have restored my SEO juju, and it shouldn’t be long before Google catches up.

Ranger, out.

How to remove the smiley face from a WordPress blog

So a little smiley face appears at the bottom of your blog, and it looks like this:

Well ain’t that the cutest thing! But what is it?

It’s the little .gif file that the WordPress Stats plug-in uses to monitor your page. It does so with some code like this…

<img src="http://stats.wordpress.com/g.gif?host=www.yoursite.com&rand=###############&blog=#######&v=###&post=#&ref=#" alt="" />;

…where the #’s are various characters. It’s all mystic WordPress voodoo which you don’t need to worry about.

Now I actually like the smiley face, but some people want to remove it from their blog. And it’s easy to do.

In wp-admin, head over to Appearance > Editor > style.css (or whatever your main style sheet is named). You then just add this bit of CSS:

/* Let's remove that WordPress Stats Smiley Face ! */
img#wpstats {
     display: none;
}

There you have it! We’re just using plain and simple css to remove the smiley face from the screen, but still loading it so the page view gets counted.

So now you know how to remove the WordPress Stats smiley face. The question is, do you really want to?!

How to use jQuery with a JSON Flickr feed to display photos

So today I needed to display photos from our Flickr Group without using php or asp.net. I have a WordPress widget that does this job nicely, but no PHP was allowed.

Thank goodness for jQuery! jQuery has a handy little function which allows us to load JSON data using an HTTP GET request, and then process the contents as an array. And with some natty CSS to square things up as a grid, I have nine random (ish) photos from our Flickr group displaying in a nice 3×3 grid.

See it in action.

The full commented code is at the bottom of this post, but let’s go through it bit by bit. Continue Reading →