louisrosenfeld.com logotype

Home > Bloug Archive

Jan 19, 2010: Site search best practices

A client recently asked me to help come up with a list of "world-class" implementations of site search. "World-class" is always a red flag term for me, because it's a crutch term that suggests that there isn't a clear idea of what constitutes actual quality. (Ergo, it should be banned, like "redesign" and "building community".)

So, being the annoying consultant that I am, I gently scolded them, saying that there wasn't one ideal or even optimal local search implementation. But there were some principles worth considering. Here's my first stab; given that these took only a few minutes, I'll likely add more:

  1. Keep the initial query entry UI simple
  2. Make sure it's persistent in location on pages, and that it's on all pages
  3. Support query refinement (and avoid "advanced search" UIs)
  4. Repeat a query back in the refinement UI and display # of search results
  5. Provide refinement options that fit the need (e.g., don't provide options that narrow result sets when 0 results have been retrieved)
  6. Show just enough information—and the right information—per search result to enable users to get the information they need (either on the results page or by clicking through to a result page)
  7. If you're searching multiple content areas, see if it pays to expose these differentiations; if so, what order should results be presented in? (federated search)
  8. Support result sorting (e.g., chronological)—if it helps
  9. Teach your search engine to recognize regularly occurring queries for specific types of information (e.g., names of people, products, unique IDs) and configure search results accordingly
  10. Ask for feedback on search results pages—both quantitative and qualitative (e.g., "rate you satisfaction with what you found; if not satisfied, what would you have liked to find?")
  11. Learn what your most frequent queries are; then test their performance regularly
  12. Learn what queries fail most frequently, and fix them
  13. Manually create recommended search results for the most common queries

Does this list stick against your wall? Anything obvious that I'm missing? If I can, I'll assemble good examples of each (and feel free to suggest some yourself).

email this entry

Comment: Adrian Roselli (Jan 19, 2010)

Highlight occurrences of the search term in the results, excerpted from main content. This makes it easier to see if the search term is in the context a user expects and can, as a result, prompt the user to refine the search, skip the link, or click the link.

Comment: twitter.com/JorgenDalen (Jan 19, 2010)

Easy to understand why the first hits have high ranking ("editors choice", "authorative page" etc)

It must be clear what is searched (especially if there are sub sites)

Avoid having outdated content - search won't work well if half of the content is outdated

Follow conventions from common search engines (case-insensitivity etc)

Open content in context (displaying menus, breadcrumbs etc)

Use sorted by date as default for news, calendar events etc, relevancy for the rest of the content

Use operator "and" automatically for short queries, but in "or" automatically for longer queries

Comment: Amy Silvers (Jan 19, 2010)

The list looks pretty comprehensive to me, but here's one more:

Implement "best bets"/dynamic list of most popular queries--if they make sense and are helpful.

Oh, and handle null queries gracefully--if possible, don't return an error message, but instead give the searcher a subtle cue that they didn't enter anything in the search box.

Comment: Jon (Jan 19, 2010)

Building on Amy's points above - I'd say offer people help if there are no results returned.

If your site sells books, for instance, and the person searching enters a title that doesn't exist, offer similar choices or bestsellers or some guided navigation to help them get where they're going.

BTW: I love the term 'searcher' vs. 'user' Amy!! Focuses on a task completion instead of the overused 'u' word! :-)

Comment: Peter Jordan (Jan 19, 2010)

Look at results from the searcher's point of view. Do the titles/descriptions make sense and provide a strong info scent. Feedback to editors to improve the user experience - and tell editors about frequent 'null' results.

Comment: Fredric Landqvist (Jan 19, 2010)

Search Patterns do make sense in all this. Looking forward to read Peter Morvilles new book on the theme ;-)

A fun angle to this 'null' results conversation, when searcher don't cope with the UI and manage to scribble down a correct query (from the machinery perspective): always have a outstanding feedback feature in the result list template. Simply asking 'did you find the things you were looking for?'. This feedback feature used in a enterprise search case study (used in my research) went back to the search & taxonomy governance group and search service (techies) as cues to missing 'items' or possible options to refine the terms, taxonomy or new repositories needs or whatever.

We added yet another 'crowdsourcing' trial to this inbox of 'lost and found' with social searches features. where searchers could help eachothers to find the things. The last piece has not been implemented but the trial went really well.

Comment: Marko Hurst (Jan 19, 2010)

Great list everyone!

Adding / refining a few from above and some of my own...

1) The basics: Standard treatment for all text results
- Content type is listed with appropriate icon: Article, Video, Podcast, Slideshow,
Image, etc
- Results titles are large, bold, and hyperlinked
- Searched words are shown in bold in a page snippet, in context
- URLs shown in a different color under each result (used when search pulls from multiple locations)
- Visited links are in a different color
- With mixed results, (images, video, etc) results may or may not display thumbnails with search snippet

2) Ensure your site is fully indexed. You'd be VERY surprised to know that most search engines, since they are geared towards commerce, do NOT index non-product content

3) Make Search Look Like Search - simple, but sometimes search doesn't look like a search field or is mixed up with other text fields that are close in proximity to search, e.g. email or newsletter sign ups fields.

4) Snippets - (The supporting copy after the link) there is a delicate balance between too much and too little. There needs to be enough copy around the (highlighted) query term(s) for a user to understand the context

5) Faceted Search / Navigation - probably needs it own post but here's the highlights
- never has less than 3 as an initial category
- provide a way to Select All / Unselect All when there are a lot of options
- never show a facet that has zero results

6) Facet types
Standard facets
-- A list of facet values
Hierarchical facet values
-- Taxonomy of facet values
Range/query facets
-- Dates
-- Prices
-- Alphabet buckets
-- Intervals (upper& lower bounds)

7) Developing Facet Structure – Selection of facets
- Thing / entity
- Kind
- Part
- Property
- Material
- Process
- Operation
- Patient
- Product
- By‐product
- Agent
- Space
- Time

Like I said, facets should be its own, since there's much more, but that's a good start.

8) General things I typically see missed (several were mentioned above):
- Case sensitive: think about how to treat acronyms
- Stop words
- Stemming
- Compound / hyphenated words
- Phrase Identification
- n-grams
- synonym expansion
- named entity recognition

9) Auto-Complete - probably a post on it own, as the interaction can get complex between dual keyboard strokes & mouse controls, but just wanted to throw it out there.

10) Special characters (search operators) that I typically implement for "advanced users" :)
a) + (plus sign) include
b)‐ (minus sign) exclude
c) ~ (tilde) find synonyms
d) OR or |(synonyms or alternate term): specify synonyms or alternative
forms with an uppercase OR or | (vertical bar)
e) .. (2 periods): specify that results contain numbers in a range
f) * (asterisk): AKA a wildcard, to match one or more words in a phrase
g) “ ” (quotes): to search for a phrase, a proper name, or a set of words in a
specific order, put them in double quotes


Comment: Gerry (Jan 19, 2010)

Don't forget stemming and removal of stop words, but check that the stop word isn't a popular search example - "WILL" on a legal / government site.

Highlighting terms is good, but do it subtley, otherwise it looks annoying as hell.

don't trust google

Comment: David Cain (Jan 19, 2010)

Aggregate (but don't intermix) related search results: user searches for "RFID" and next to item results, surface person results for RFID SMEs. In doing this, explain why the person results are relevant.

Avoid the temptation to wrap the SERP in your complete chrome and navigation. Search is a web application once you get to the SERP, and you waste valuable real estate with the chrome and nav.

For God's sake, don't break the back button with your way-too-tricky SERP.

Make sure your query uses HTTP GET, not POST to avoid driving users nuts with "resubmit this page?" dialogs. POST is for buying stuff, not for searches.

Its a nice idea to want to provide context around a doc. However, it's pure evil to force users to open docs and off-site results through an iframe with your chrome and navigation. Just don't. Users know how to move around with the back button. You didn't break the back button, did you?!??! *sigh*...

AJAX is not better just because its AJAX. Try to keep developers from delivering your content with AJAX - it'll index easier/better if not.

Guiding principles: simple delivery, lightweight presentation, don't break the back button. What?!?? You broke it AGAIN?

Comment: Jørgen Dalen (Jan 20, 2010)

Possible to preview documents before opening it (for instance thumbnails of ppt slides you can browse through). Painful to wait for a large document to download if it is the wrong one.

Avoid getting hits in "nonsense" content. SharePoint by default gives you hits in every damn object out there.

Comment: Rob Clarke (Jan 20, 2010)

Good list, some good points covered here.

With summaries have the ability for the searchers to personalise and have the ability to expand/contract summaries further so they can see more of the result before click.

Comment: Walter Underwood (Jan 24, 2010)

You missed the most important one.

0. Log your search activity (queries and clicks) and keep the logs forever.

Without that, you are flying blind.

I would never ask for feedback on search results. It annoys the users and is low-quality data. Track what people actually do, instead of asking them what they think they would do. People lie and everybody hates surveys.

For every thing that seems cool and makes search more complicated, test it. You are probably wrong.

Short version: track, test, and iterate. When in doubt, KISS.

Comment: Lou (Jan 26, 2010)

Heh. Walter. Of course, #0...

I disagree about asking for feedback. When they have a bad experience, it doesn't hurt to ask *what* they would have liked to retrieve. I'm not sure the quantitative ratings would be all that useful in this case, but if searchers are willing to tell you something about what they wanted, you can then see if there is some sort of missing content, mis-titled content, etc...

Comment: Walter Underwood (Jan 26, 2010)

Participation rates are super-low on voluntary surveys, plus you need to split up the results by query (or information need). So your results will be 100% statistically meaningless unless you have well over 1M queries/day. On top of that, it is expensive to implement and annoys the customer.

Maybe it works for the Microsoft Knowledge Base, though the search there doesn't seem to get better. They have the best kind, an in-page survey. But there must be lots of better approaches with implicit data, thus 100% participation: investigating long search sessions, looking at Google referrers, tracking per-query success rates, etc.

See: http://support.microsoft.com/kb/871122

What would I do instead? Track failing queries and investigate what the information need is for those.

Comment: Lou (Jan 26, 2010)

True, surveys always suffer from self-selection bias, and you need sufficient volume. But that doesn't mean they can't be useful, especially on high traffic sites (I'm starting to work on more of these, so it's on my mind a lot right now).

It shouldn't be at all annoying if implemented properly; for example, it can live quite unintrusively at the bottom of an SERP. That's different from what you've shown in MSKB; that's on a result (i.e., content) page, not an SERP. Different purpose, and different questions should be asked there.

Finally, one more nit: just because MSKB isn't getting better, it doesn't mean that this idea is faulty. Might just be that MS isn't bothering to *do* anything with the data. Which wouldn't exactly surprise me.

Anyway. (BTW, it's fun to nitpick with you Walter; it's been too long; seriously!)

And I agree: tracking failing queries is far more useful. It just won't scale well too far beyond the short head, so it's worth considering other approaches.

Comment: ray ban store (Feb 5, 2010)

I enjoyed the article and thanks in behalf of posting such valuable tidings as an another of all of us to skim, I be the start around it both useful and educative and I method to check up on it as again as I can.

ray ban 3025

Comment: louis vuitton (Feb 6, 2010)

This is a straight-faced blog and I call forth discretion reading it every morning recriminate you
right sharing it!

louis vuitton handbags

Comment: UGG Boots (Feb 10, 2010)

I found this article useful in a paper I am writing at university. Hopefully, I get an A+ now!


Bernice Franklin

UGG Boots

Comment: free trial (Feb 13, 2010)

After reading you blog, I thought your articles is great! I am very like your articles and I am very interested in the field of Free trial. Your blog is very useful for me .I bookmarked your blog! I trust you will behave better from now on; I hope she understands that she cannot exepct a raise.

Comment: andyw (Feb 15, 2010)

After reading you blog, Your blog is very useful for me .I bookmarked your blog!
Wishes your valentine day to be joyful!

Comment: Free international call (Feb 16, 2010)

www.louisrosenfeld.com; You saved my day again.

Add a Comment:



URL (optional, but must include http://)

Required: Name, email, and comment.
Want to mention a linked URL? Include http:// before the address.
Want to include bold or italics? Sorry; just use *asterisks* instead.

DAYENU ); } else { // so comments are closed on this entry... print(<<< I_SAID_DAYENU
Comments are now closed for this entry.

Comment spam has forced me to close comment functionality for older entries. However, if you have something vital to add concerning this entry (or its associated comments), please email your sage insights to me (lou [at] louisrosenfeld dot com). I'll make sure your comments are added to the conversation. Sorry for the inconvenience.