I've recently finished reading Steve Krug's Don't Make Me Think which was highly recommended by both Jeff Atwood and David Sturtz, Geonetric's information architect.  One of the points the book makes is that the users of your website nowadays have been so conditioned by Google that they expect to see a search box. My contention is that adding "search" to your website is no trivial matter.

There seem to be few categories your site can fall into, here are three that I'm familiar with:

Scenario 1:

My father has a website, with a number of pages of static content.  The pages are .aspx pages only to utilize features of .NET like MasterPages and/or themes.  The content is static.  To implement a search I need to somehow index the content, which should be easy, in theory since the content is static.

Scenario 2:

I've built a small CMS system for myself, to manage pages and content.  The pages are dynamic in that when you request a page, no page exists on disk and is loaded from a database.

Scenario 3:

A large CMS with multiple different "objects".  You may at various points want to search for specific "objects" or search across all "objects".  I'm thinking back to my last job where we had a large site to manage baseball tournaments.  There were three primary "objects", players, teams, tournaments.  There was a general search that had to search everything and individual searches for each object that would only return those objects.  In other words the site wide search for "Blue Devils" would return both the "Cleveland Blue Devils" team as well as the "Duke Blue Devils Classic" tournament.  The same search in the team and tournament section would only return the team and the tournament, respectively.

Options:

  • I could use Google to search my site.  You've seen the "search this site" boxes on websites.
    • Pros
      • Google indexes well
      • Easy?
    • Cons
      • lose the "look" of your site since you're using google for the search results page.
      • Can't index "objects".  Google can index only public facing web pages/documents.  Therefore (using Scenario 3) a tournament could only be found if the name appear prominently somewhere where Google will find it.  In other words you're relying on Google, a lot.
      • Cannot limit Google to certain "objects".  I can't say, "search only pages that are about Teams", where I could do that quite easily implementing my own search
  • Implement my own search
    • Pro
      • The algorithm is my own and I can change it if I'd like.
      • Keep "look" of site by never leaving site.
    • Cons
      • Much more work.  Writing my own SQL to search and aggregate the results.  Do I full-text index on tables?  Do I use a third party solution?

It's a very tricky proposition.  Krug says that users will look for a search box, so that means you should put one there right?  If you put a search box on your site that doesn't produce reasonably good results then the user will lose faith in your website and may leave.  If you don't provide a way to search your pages/data, of which there may be quite a bit, then the user may struggle to find what they're looking for and leave.  The only option you seemingly have is too implement search and implement it well.


 
Comments are closed.