The difference between a web application and a website

Something worth considering in this era of powerful, interactive - alright, let me grit my teeth and say the buzzword - Web 2.0 websites, is where the line is drawn between a website and a web application. Why am I bringing this up? Read on.

I'd been building this website about a month ago. This is a simple site, no rocket science, just a bit of content that needed to be made available on the net. After a fairly frustrating time trying to achieve the desired effect using CSS (I'm no expert :-)) I gave up and decided to use tables.
Once I'd made that decision, it seemed logical to me to just develop in GWT and be done with it, since I wanted to have a bunch of divs and manipulate them with javascript. I could then layout the lot using GWT's VerticalPanels and HorizontalPanels which translate to tables anyway. All the content would be rendered dynamically, but I saw no problem with that.
To cut a long story short, I got the site done and put it up, replacing an older one which we weren't too happy with - until a few days later we realised that a Google search for 'Activ Mobs' produced nothing from the site except the link. Obviously (hindsight is always 20/20) Google is not going to execute all that javascript to produce the content and then index it.
Which brings me to my point (finally!) - if you've got a website from which you do want content available to search engines, then it's still a website and you want to be careful about which bits you render using javascript, Adobe Flex, Microsoft Silverlight or other similar technologies. On the other hand, if there is content which makes no difference if it was indexed, then it's probably a web application.
The way I got around this little problem for the Mobs website was to copy the content and drop it into the host html page as a hidden div. It's all there for the search engine, links included, but is never actually visible to the end user. Of course, I was able to hack my way out of the situation because the amount of copy was miniscule. Hacks never scale too well, unfortunately, so someone choosing to dynamically populate large quantities of copy in a website which should be searchable might get themselves into a bit of a mess.

Update: 2007-05-03
I am by no means trying to actually identify the differences between a web app and a website, but rather emphasise the importance of identifying content which we want available to search engines quite early in the development process. Designers and developers need to ensure that this content is rendered in a manner which makes it accessible to a crawler. Given the amount of traffic many websites derive from Google, having important content served through flash or rendered dynamically using javascript could drastically reduce referrals from Google search.

Update: 2007-06-07
There were several thoughts which came out of this, one of them being that the whole model of web development is pretty messed up for certain kinds of applications. I've written a post explaining what I mean by this and why we should have our business models on the browser in javascript and use AJAX only to keep them synced with the server. You can find it here.

You may also want to read: When should you choose Google's GWT for your web app?
You may also want to read: Bringing business logic to the browser, or why you should develop in JavaScript
Post a Comment