From a fresh 64-bit install of Centos 5 or RHEL 5 without Apache, PHP or MySQL packages installed:

Install Apache:

yum install httpd.x86_64 httpd-devel.x86_64

Install the latest PHP & MySQL from Remi:

wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm
yum --enablerepo=remi install php php-xml
yum --enablerepo=remi install mysql-devel.x86_64 mysql-server.x86_64 \
    mysql-libs.x86_64 php-mysql

Start Apache and MySQL and you should be good to go:

/etc/rc.d/init.d/httpd start
/etc/rc.d/init.d/mysqld start

Note, if you already have the packages installed and you only wish to update to the latest versions, replace ‘install’ in the yum command with ‘update’.

Traditional SEO is far from dead, although some experts will have you believe otherwise.  Search engines are constantly evolving and their systems are always being tweaked to improve the quality of results.  Google reportedly changes its algorithm 350-400 times a year – that’s at least one change every day.

Users are also changing the way they discover new content. Five years ago there was no such thing as Facebook or Twitter. There was no such thing as “Like” or “Tweet” buttons. If you liked something, you might add it to your bookmarks or share it with friends via email. These days the “social web” is slowly taking over from these more traditional methods. If you see something you like you can share it instantly with hundreds of friends using Facebook. You can tweet about it for the world to see via Twitter. Even your bookmarks can be part of the social revolution with services such as Delicious or StumbleUpon.

So how will this effect SEO in the future?

The first thing to consider is that the number of people finding new content through social media is on the increase. Whilst this doesn’t necessarily mean that fewer people will use search engines, it does mean that social media can’t be ignored when planning any SEO activity.

I’m sure there will be a point in time where social media pushes more traffic to some websites than traditional search engines do. This may already be the case for some sites, but from looking at my own analytics I can see a steady growth in referrals from social media sites and I’m sure this trend will continue.

Ideas for future SEO

These trends got me thinking about what the future of SEO could entail. A few of my ideas are:

A Facebook search engine: If, for example, you wanted to find a great restaurant, you might search Facebook instead of Google. The results could be restaurants recommended by your friends, and that’s the interesting part – if someone you know recommends something, you’re much more likely to try it out because you value their opinion and are likely to share similar tastes and interests (which is why you’re friends in the first place, right?). So the search results are probably going to be more relevant than those found in a traditional search engine such as Google.

“Liked” or “Tweeted” content ranking higher in traditional organic results: Traditional search engines could use the number of Likes or Tweets a particular site has received as part of its ranking algorithm. This could be extended to many of the social link sharing services – for example, the number of times a site has been bookmarked at Delicious, or the number of Diggs a site has received. This might partially be true already for some search engines. Microsoft owns a percentage of Facebook, so it could already have the Like data feeding into Bing (and therefore Yahoo, which now gets its search results from Bing).

Social search within traditional search engines: If the rumours are to be believed, Google are building a new social layer on top of their search engine. Personally I don’t think this will be something to compete with Facebook, instead I think it is more likely to be a way of being able to make recommendations to friends, or potentially influence search results shown to your friends based on what you search for and which sites you eventually decide to visit. Again, like in the Facebook search idea above, recommendations from friends are valued highly.

UPDATE: Oddly enough whilst I was writing this post, Google announced their Hotpot product which claims to be “a local recommendation engine powered by you and your friends”, so there you go, one of my predictions seems to have come true already.

Now let’s sit back and see what happens to the rest.

Let me know if you have any ideas on how SEO will change in the future in the comments section below.

I’ve seen numerous changes to Google’s SERPs (search engine result pages) over the last few weeks and one of the most notable changes is the extra prominence given to results from Google Places.

Take a look at a search below for “furniture” – the first three results are sponsored links, then out of the next 9 organic results, three are local results from Google Places. For some other search terms I’ve even seen entries from Google Places totally dominate the first page of results, pushing organic results to page two.

Google Places example search results

Whilst I think this is a great idea, it has one fatal flaw for me… it thinks I live in Nottingham – a place called Felley to be exact. This is about 30 miles away from where I actually live.

Why is it doing this? It seems that Google are using something called Geolocation – a process whereby they try to determine where in the world my IP address originates. The accuracy of this largely depends on how your ISP allocates IP addresses. Groups of concurrent IP addresses (known as subnets) may be allocated to a specific geographic region (and documented as being located in that region), or could be spread out across the whole country (yet still documented as being located in one place – the head office of the ISP for example).

There are a few ways to help Google determine your exact location to improve the accuracy of results. The first is by setting your default location in the search preferences (which are then stored to your computer in a cookie for future reference). I did try this, but oddly it still showed results from as far away as Birmingham ahead of well-known, long established, and ultimately more relevant local businesses near me, so the accuracy of this method is questionable.

Another way is to enter your postcode as part of your query. This works well and will trigger the Google Places results every time, but whilst this returns accurate results, it means typing your postcode in each time (which I don’t think is convenient).

There is, however, one place where this application works incredibly well and that’s on a mobile device. Doing the same “furniture” search using Safari on my iPhone returns excellent local results.

Why is this the case? Well it’s much easier for Google to locate you when you’re using a mobile device because its location can be tracked using either triangulation of cell towers, or in the case of most modern smart phones, your location can be determined using GPS (the same technology used in your satellite navigation).

The idea of merging results from Google Places with organic results is an interesting one. It’s something that could be immensely useful, but (and it’s a big but) only if your location can be accurately determined. Without an accurate location, these “local” search results are completely useless.

There’s definitely a place for local results on mobile devices, but I’m yet to be convinced that the technology is accurate enough to use on other devices that are unable to determine their location.

How accurate do you find the Google Places results? Do you have any tips for increasing their accuracy? Let me know in the comments.

If you run any sort of CMS on your website and you often paste content in from word processors, e.g. Microsoft Word, then you’ll probably know how much a pain “smart quotes” (sometimes called “curly quotes”) can be.

There are a number of characters that often get automatically converted from a normal quote into a smart quote when you type it into your word processing software. For example, a normal speech mark (“)  will be converted into a very similar, but slightly prettier speech mark. The same thing can happen with commas, dashes, and a whole load of other characters too.

Why are smart quotes a problem?

These smart quotes aren’t part of all character sets. So for example if you’re outputting a page in ISO-8859-1 then the chances are your fancy smart quotes will appear in the browser as a broken character.

Another problem I’ve come across in the past is when performing database queries. Consider this query:

INSERT INTO mytable SET mycolumn=’That’s a nice curly apostrophe you’ve got there’;

Now assume that the apostrophe characters in the string we’re inserting are not smart quotes. This query is going to fail because they are not escaped. I know they should be escaped at this stage, but for the sake of the example they haven’t been escaped.

Now assume that the quotes are actually smart quotes – the query will be successful because the smart quotes do not need escaped. Great you might think! That makes my query less likely to fail if I forget to escape my string!

Wrong.

For one, you should be escaping the string anyway (ever heard of SQL injection attacks? No, then you should Google it pronto). As you can see, smart quotes can cause many headaches and therefore in my opinion should be avoided online.

As well as breaking in some character sets and potentially upsetting your database, I personally like my quotes to be quotes and my commas to be commas. Also from an aesthetic point of view, I actually prefer normal (dumb?) quotes over their “smart” replacements. If you want to make your text look pretty then do it using CSS.

How I replace smart quotes

When I’m building a CMS in PHP I always include this function on any string being saved to a database that may have been pasted from a word processor.

function cleanupsmartquotes($text){
  $badwordchars=array(
    chr(145),
    chr(146),
    chr(147),
    chr(148),
    chr(151),
    chr(133),
    chr(149),
    chr(160),
    chr(161),
    chr(169),
    chr(171),
    chr(173),
    chr(174),
    chr(187),
    chr(188),
    chr(189),
    chr(190),
    chr(191),
    chr(150)
  );
  $fixedwordchars=array(
    "'",
    "'",
    '"',
    '"',
    '—',
    '...',
    '*',
    ' ',
    '¡',
    '©',
    '«',
    '-',
    '(R)',
    '»',
    '1/4',
    '1/2',
    '3/4',
    '¿',
    '-'
  );
  return str_replace($badwordchars,$fixedwordchars,$text);
}

I don’t claim to have written the function, there are a few variations of it available online, but this version deals with the largest number of smart characters I can find. Not only will it convert smart quotes, but also turn copyright symbols, etc into the html code.

If you’ve got any tips for dealing with the dreaded smart quotes, let me know in the comments.

, , , ,

Hi, my name is Matt and I’m a web developer.

I’ve been meaning to setup a blog for some time now. I’ll be using it to post tips and tricks mostly about web development and SEO. I can be quite forgetful at times, so I’ll probably use the blog as my own reference guide and at the same time help out others who are stuck.