Posts Tagged ‘google’

Google Trends Gadget Reveals Interesting Weekly Search Behavior

Friday, May 22nd, 2009

Although Google Trends is nothing new embedding it on a website is. I just tried some Google Trends searches analyzing user search behaviour and some interesting  facts arose. When performing these searches you should always be aware that keywords may not have one meaning only thereby distorting the graph. So you shouldn’t use Google Trends to compare “apple” and “pear” because of the well known company named “Apple”.

The disadvantage of the Google Trends Gadget is that you cannot give a specific date for displaying statistics, only relative values so these graphs will surely look different each day you are looking at them on this page.

It’s Monday: Searching For A Doctor

It is interesting to note that these search terms have the highest search volume on Mondays and then fall off over the next days. In contrast to what one might expect there is not an even distribution over the weekdays and a lower search volume on weekends.

Weekend Priorities

As the weekend arrives other search terms dominate the search engine queries. The following graph shows some queries that show this weekend trend.
I just picked some words that came to my mind which are mostly unambiguous and have a comparable search volume.

Rather Even Distribution

As one might expect general search terms have a more even distribution over the week but a slight drop on weekends is noticeable which is somewhat expected.

Opposing Trends

Using Google Trends you can  also find somewhat opposing trends like this comparison of restaurants vs. hotels.

Browser Wars? Not Really.

This graph shows the distribution of the search queries for different browsers. With this graph you also need to keep in mind that the words “opera” and “safari” are ambiguous.

Using The Gadget For Your Own Statistics

You can of course use this information to find out when to launch specific campaigns or when to expect a higher AdWords search volume. If you want to see current statistics on Google search volumes for different keywords you can now simply create a page and embed the Google Gadget several times on that page just like I did on this page. So you don’t have to go to the Google Trends website to search for different terms one by one.

Embedding The Google Trends Gadget On A WordPress Blog

If you are using WordPress and want to embed these statistics on your blog you need to have a plugin for WordPress that enables the use of IFrames like Embed Iframe otherwise for security reasons WordPress will silently eat your IFrame code.

This is a sample code for embedding the gadget into your WordPress blog if you have installed the Embed IFrame plugin (you need to remove the space in front of the “iframe” word at the beginning and just before the closing bracket):

[ iframe http://www.gmodules.com/ig/ifr?url=http://www.google.com/ig/modules/trends_gadget.xml&source=imag&up_is_init=true&up_cur_term=firefox,internet%20explorer,explorer,opera,safari&up_date=mtd&up_region=US 330 250 ]

tweetthis-15

How To Create Search Engine Friendly RewriteRules For Domains

Tuesday, May 19th, 2009

Do you have multiple domains pointing to your website? From an SEO standpoint you shouldn’t have them all pointing to your document root directory because this might be interpreted as duplicate content by the search engines or you might even get a mixup of pages distributed over several domains and subdomains (like example.com and www.example.com) in the organic search results.

If you are using Apache and have access to the RewriteModule you should configure the VirtualHost like this so that all domains and subdomains are redirected to the main hostname via a search engine friendly HTTP 301 redirect:

<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot /srv/www/example.com/htdocs
ServerName www.example.com
ServerAlias example.com
ServerAlias www.example.org
ServerAlias example.org
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteRule (.*) http://www.example.com$1 [L,R=301]
…
</VirtualHost>

This will redirect all requests not going directly to http://www.example.com to that hostname. So even if someone enters http://example.org/index.php the server will issue a redirect to http://www.example.com/index.php.

Of course this also works if someone links to your page with a link like http://example.com/file.gif. In that case the redirect will be issued to http://www.example.com/file.gif. Google likes that.

tweetthis-15

Why WolframAlpha Should Hire An SEO

Sunday, May 17th, 2009

Although my first look at WolframAlpha was rather disappointing I didn’t really intend to show everything that’s not working as I had expected. However I stumbled upon problem after problem.

Now I didn’t intend to write this article at all but just searching for what Google has already indexed of WolframAlpha and following some links made it clear that they obviously didn’t think about SEO at all prior to launching their site.

The problem is: they are doing many things that  might actually harm their Google rankings that are just beginning to show up. We don’t yet know who will be using WolframAlpha in two months, if it will grow to become something that most of the people will use  just like Google or if it is going to fail like WikiaSearch.

Remember: they received over 1000 links to their site within two days and this is likely to grow so it makes sense to optimize the site now to prevent damage.

So from a logical point of view if I had been responsible for the WolframAlpha website I would not have done any of the following that WolframAlpha has implemented:

  • You Should Prevent No-Result Pages From Being Indexed
    “no result” pages return an 200 HTTP status code, not a 404 – Google will likely index these pages. The page doesn’t contain any META robots tag containing “noindex,follow” either.
    Because the differences between different “no result” pages depending on the query are only marginal this might be seen as duplicate content which you should never have on your own site.
  • Don’t Use Redirects For Loadbalacing
    Using the search field on the homepage now redirects via a 302 redirect to a hostname like “www18.wolframalpha.com” leading to even more duplicate content if Google indexes the same page with two different hostnames, e.g. www18 and www76. Normally you would be using a loadbalancer and not use HTTP redirects to distribute the load. They should at least be using the canonical tag to tell Google the original URL, but they aren’t, regretfully.
  • Use A Robots.txt File
    WolframAlpha is currently not using a robots.txt file so they are not telling search engines what should not be indexed.
  • Optimize The Clickthrough Rate In The SERPS
    The result pages do not contain a META description field which I would recommend for a higher click-through rate in the organic search results.
  • Use Text To Display Text, Not Images
    The title tag could also be optimized but I still don’t understand why even simple text is rendered as an image.

What do you think?

tweetthis-15

How To Achieve Maximum Website Performance (Part 3)

Sunday, May 10th, 2009

Welcome to part 3 of this article series on how to maximize the performance of you website. This time I am going to show you how to minimize the number of HTTP requests on your page. Most people don’t even realize how many HTTP requests are required until every single element on the page has been loaded. I was shocked when I saw that the Sociable plugin for WordPress has not been optimized for the number of requests but more on that later.

4. Less Requests = Better

If you have not done yet you need to empty your browser cache once again. Open the page you wish to optimize and open Firebug by clicking on the Firebug icon in your browser’s status bar.

Firebug

Firebug

If you have not used Firebug before on that domain you need to activate it (check all boxes) and reload the page. After the page has finished loading open the network tab in Firebug at the top.

This will show you all of the HTTP requests that were required on your page.

Using CSS Sprites To Reduce Image Requests

Now have a look at all of the image requests on your page. If you move your mouse pointer over the “GET …” text on the left hand side of the list Firebug will show you a thumbnail version of the image so that you can find out quickly which image has been loaded.

On my blog (this page) there is a large number of images loaded which can (and should) be optimized.

Some of the HTTP Image requests on my blog

Some of the HTTP Image requests on my blog

There is a good technique to merge several images into one file yet still be able to display separate images even in separate image tags in HTML. These are called CSS Sprites because Cascading Style Sheets are used to implement this. In fact a new image is created that contains all of the images and CSS is used later with background positions to show separate areas of the image where the source images are located in the merged image.

This is not as hard as it sounds because although you could create the merged image and CSS manually I prefer to use the Online CSS Sprite Generator.

The only thing you need to do is to package all of the images into a single ZIP file and upload it on the Sprite generator website. I recommend that you use the same output format as the original images – I will be using the PNG format. You may want to change some of the default options however I am using the default options most of the time.

After clicking on the “Create Sprite Image & CSS” button after a few seconds you will be shown some CSS code and a link to download your merged image.

In my case I received the following CSS code:


.sprite-1_de_btn { background-position: 0 -30px; }
.sprite-delicious-large_blue { background-position: 0 -83px; }
.sprite-digg-large_blue { background-position: 0 -165px; }
.sprite-findmeonfacebook2 { background-position: 0 -247px; }
.sprite-linkedin2 { background-position: 0 -310px; }
.sprite-myspace1 { background-position: 0 -370px; }
.sprite-stumbleupon_48x48 { background-position: 0 -460px; }

This is the code I have added (slightly modified from the original code on the website):


.sidebarsprite {background: url(/img/csg-4a07143404186.png) no-repeat top left; }

This is the merged image:

Merged Buttons as CSS Sprites

As I am not using a list for the images on the right hand side of this page (the sidebar) although this may make sense this is how I implemented it. You need to have a 1×1 pixel transparent GIF first. This will be used as your main image file in the image tag and it has to be transparent for the background image to be visible.

<img src="/img/spacer.gif" width="100" height="30" alt="" border="0" class="sidebarsprite sprite-linkedin2" />

When using an image tag (and not an <li> tag) you have to set both width and height of the image as shown in the image tag above otherwise your image will not be shown.

It does of course not make sense to merge all of the images on your page just to save HTTP requests but you should do this whenever there are images on your page that are used on many other pages on your site as well (just like the sidebar images I am using).

By using the CSS sprite technique just described I have saved 6 HTTP requests to the server. There is even more to optimize – try it for yourself on your own website.

External Scripts Under Scrutiny

Now it’s time to have a look at all the external scripts and maybe images used on your site. Use the method described above in Firebug to find more culprits. And look very closely at your own website – do you really need these 12 external JavaScripts to show your Twitter follower count, your social network friends and contacts and so on?

By using Firebug you can find out how much further requests are caused by some of the external scripts – just scroll down the list in the network tab.

Remove all of the external files that are not essential and that you can live without.

Merge CSS And JavaScript Files Automatically

If you have several CSS and/or JavaScript files on your page hosted on your own server you should merge them into a single file – for your visitors. I strongly suggest to keep modular code separated on the development site but you may wish to just copy all of your own JavaScript and CSS files each into a single .js and a single .css file while still keeping the original files for editing.

Also see the section Optimizing CSS and JS Code in part two of this article series.

Several techniques are shown on this page but I am planning to show you the one I am using in one of the next articles on my blog.

Outsourcing With Google

If you are using one of the popular JavaScript frameworks like prototype.js, jQuery, MooTools, DoJo, script.aculo.us etc. I suggest using Google to deliver these files straight from their servers. Google’s worldwide network of servers has a very high performance and speed so I suggest you check out the documentation on the AJAX Libraries API and start using it to deliver these files through Google’s servers.

This concludes the third part of this article series. Continue with the next part.

tweetthis-15

Google Introduces New CAPTCHA

Sunday, April 19th, 2009

Sometimes on the web you’re just thinking “Why the heck didn’t I have that idea?” and that’s just what happened when I read this article on CNET. Everybody should already be familiar with the CAPTCHA concept and I recently had to enter a CAPTCHA code for three times because the first two were simply non-decipherable. Actually that problem occured on a Google page.

I have developed my own custom CAPTCHA about two years ago where you have to identify the male person on the image and enter the corresponding code under the face with some random parameters added:

ttt-imagephp

However Google’s method is superior yet so simple because they only rotate an image. Rotation can be detected by a human easily yet not automatically by your usual automated spam bot. Maybe I’ll change my CAPTCHAs to this method as well – even far easier to implement.

The full details of Google’s new method can be found in this PDF file.

tweetthis-15