« A Reminder To Small-Medium Size Players Seeking Google Love | Main | Former Intrapromote Client Openlist Sold for $13M »

SEO Considerations for AJAX Development

May 24, 2006

Erik Dafforn

If web development is even remotely within your periphery, you've probably heard of AJAX, which stands for Asynchronous JavaScript and XML. While most serious developers realize the hype is overblown, even the most caffeine-addled code monkeys are impressed with some recent AJAX applications.

Calling AJAX "new" is a little misleading, and it's no different from calling gin & tonic poured over Cap'n Crunch a "new" breakfast treat. The ingredients have been around forever; only the unique combination is recent.

Explained simply, the key benefit of AJAX applications is their ability to work in the background to supply data to the client browser and provide a relatively seamless "application" experience instead of the click-wait, click-wait game of traditional web pages.

The "J" in AJAX (JavaScript) has been a stumbling block for developers with an eye for search-engine friendliness, but that need not be the case. While it's true that engines typically ignore scripted data, good AJAX programs can occasionally come out of their JS trances long enough to feed even the most demanding bots. Following are some notes about AJAX development as it pertains to smart SEO.

The Problem: Not Enough Unique URLs

In my opinion, the single greatest SEO issue with AJAX is the tendency (although not necessity) of AJAX applications to not judiciously create unique, bookmarkable (and therefore indexable) URLs.

I'll use Google Maps as an example, not only because it's used in this excellent AJAX backgrounder written by an IBM engineer, but because Google Maps has come to be known as the "classic" AJAX application. If you have brand awareness like Google, you don't necessarily need too many deep, internal URLs, because everyone remembers and links to "maps.google.com". But for the rest of us, getting many internal pages indexed is critical. Like the IBM article mentions, the fact that Google put the "Link to this page" feature on the Maps page shows that they understand the need for unique URLs pulled from within the application. Depending in what you're doing with AJAX, you'll derive a ton of SEO benefit from a similar philosophy.

A secondary point is that once you've created the capability to create unique internal URLs, you'll need to post them somewhere so they can be crawled. For example, suppose you had an AJAX application that enabled celebrities to build a custom automobile. After enough celebrities had built them, you'd need to build a page that links to those deep links, such as "See Tyra Banks' custom Bentley" or "Ashton Kutcher's punk'd-out Prius," for example.

You'll also need a system that can create custom, relevant titles and meta descriptions for these deep URLs, since the amount of body copy on a page likely won't be particularly plentiful or relevant.

The Other Problem: Too Many Unique URLs

Looking at the other side of the coin, you can also have usability issues by creating too many unique, indexable URLs. Microsoft's Live.com (the beta edition of its search site, which I reviewed in March) is an example. if you go to www.live.com and search for [vacation rentals], you'll get a resulting URL like

http://www.live.com/#q=vacation%20rentals&offset=1

But if you scroll through Live.com's "infinite" results long enough, the "offset" argument starts to tick upwards. Before you know it, you'll be at "offset=20" or something like that. Not necessarily a big deal, until you decide to hit the "Back" button and go to your previous site. You'll need to hit it up to 20 times to get back to that site, since each time you hit it, you merely decrement the offset argument by one. See this post by Microsoft's Robert Scoble for more on this. (Read the comments too; they're a nice contrast to the post, and a great reality check for developers.)

Other issues to consider when developing in AJAX aren't as critical to SEO as the URL issue, but they're still important. These include load time, which can be as bad as bloated Flash if you're not careful, and disabling browser controls that the user has come to rely on - never a good move.

Google Web Toolkit for AJAX Development

Google, until now one of the reasons AJAX has been approached so gingerly, has just added a new twist to the game with the introduction of the Google Web Toolkit. If nothing else, Google has always focused on the size of its index, so you can expect that any toolkit will provide a framework for unique URL generation. In its explanation of the GWT's "browser history management," the docs claim "No, AJAX applications don't need to break the browser's back button. GWT lets you make your site more usable by easily adding state to the browser's back button history."

The Class History docs provide code samples and explain how "you can create new history items (which have a token associated with them when they are created), and you can programmatically force the current history to move back or forward."

That's the necessary first step in letting your AJAX application come up for a breath of SEO. Post those links to a permanent, crawled file, and you're in the SEO-friendly AJAX web dev business.

see all posts by Erik Dafforn
posted by Erik Dafforn at May 24, 2006 11:47 PM
Intrapromote: [ Case studies | SEO services | Bios ]

Printer-friendly version

Trackback Pings

To TrackBack this entry, use the following URL:
http://seoblog.intrapromote.com/mt-tb.cgi/224

Comments

meanwhile I don't recommend to add any ajax candy in some cases.

Posted by: tobto at January 4, 2007 01:03 PM

Thanks for the info!

Posted by: webdesign Leiden at May 29, 2007 03:49 PM

Whilst having access via unique url's is crucial, it is NOT the fundamental problem with SEO and AJAX. The key problem is the rendering engine ie javascript! Any output generated by Javascript in the browser cannot be seen by a webcrawler because they dont emulate browsers, ie they dont actually execute any javascript detected.

This means we have a fundamental mismatch between the capabilities of (say) googlebot and the capabilities of the browser.

Producing parallel output specifically for the bots is a potential route, but at the moment Google take a very dim view of that as 'cloaking'.
They need to wake up to the fact that either everyone sticks with non-ajax (isnt going to happen) or their business model is in trouble!

Posted by: Howard Bell at September 20, 2007 10:11 AM

There is a way to do SEO friendly AJAX calls. Read the post I did on my blog how to do SEO friendly ajax calls.

Posted by: David Pirek at October 10, 2007 07:53 AM

Check this one:
http://www.asual.com/blog/swfaddress/2007/11/15/swfaddress-2-pt3-ajax-and-seo.html

Posted by: Rostislav at November 17, 2007 07:18 AM

A secondary point is that once you've created the capability to create unique internal URLs, you'll need to post them somewhere so they can be crawled.

Done. :)

You'll also need a system that can create custom, relevant titles and meta descriptions for these deep URLs, since the amount of body copy on a page likely won't be particularly plentiful or relevant.

Done. :)

Other issues to consider when developing in AJAX aren't as critical to SEO as the URL issue, but they're still important. These include load time, which can be as bad as bloated Flash if you're not careful

I was careful :)

disabling browser controls that the user has come to rely on - never a good move.

Hmmm... still a problem. Still needs research into this if Javascript can do something about it.

"browser history management," the docs claim "No, AJAX applications don't need to break the browser's back button. GWT lets you make your site more usable by easily adding state to the browser's back button history."

I haven't checked GWT in while but I kind of remember they are JavaScript-XML-Java and I am more for a JavaScript-XML-PHP and since I suck at Java, I decided to not even look at it. But considering the benefits, I might give it a shot one day. Or figure out how I make my own using my own toolkit.

And the product for my 3 day work on AJAX for SEO.

Posted by: Benj Arriola at November 29, 2007 11:59 AM

Thanks for the tips. I have a shopping site that is built with AJAX and Yahoo User Interface widgets. I'm hoping the search engines crawl my site too.

Posted by: Alex Choo at December 7, 2007 12:55 PM

Post a comment




Remember Me?


(you may use HTML tags for style)

Copyright 2005-2008 Intrapromote, LLC