So you built your website. Congratulations. It was a labor of love, and the Internet thanks you for your contribution.
Time flies. One night you snap awake to terrors that your website is filled with content, but nobody has any way to find it. It was just a nightmare, you tell yourself, but the thought bugs you like a mosquito. You can’t get back to sleep.
Little-by-little, you realize your nightmare is slowly becoming reality. You know that your website’s information architecture is impeccable, but your inbox is still piling up with emails from coworkers asking where to find this document or that blog post or some brilliant tweet about “American Progress” by your CEO. Where did you go wrong?
After a bit of introspection, you realize the answer: your website needs a search function.
The Internet is rife with stories about search woes. By some accounts, almost 60% of interested visitors will use your internal website search. If search is unavailable, we can assume that these visitors will either flail through internal links until they happen upon their query, or they will simply depart and drop a nasty tweet about your website on their way to a competitor’s site. Nobody likes to be on the butt end of a nasty tweet.
The good news is that your content management system (CMS) might have a search function you can deploy within a few clicks. The bad news is that these search engines often leave much to be desired, and a mediocre search experience can be just as frustrating as none at all. Worse, it can leave visitors with the impression that the content they seek is no longer available.
Never fear: you have other options.
Good Enough: Google Custom Search
If you have limited resources or technical know-how, it may be worth taking a look at Google Custom Search. Google allows you to configure and drop a search box anywhere on your site.
The downside here is that the search results will take a user back to Google’s search results page. Even though all links will point back to your site, we’ve found that this approach may jar or confuse some users. However, it’s an easy solution to a complex problem.
Our Top Choices: Solr or Elasticsearch
Intermediate users should consider Solr or Elasticsearch. Many CMSs provide some level of support for these tools (including Drupal and WordPress). However, unless you have a server available to deploy the software manually, you will need to subscribe to a cloud hosting service. After that, the level of effort varies from platform to platform.
You can likely integrate Solr or Elasticsearch into your application even if your CMS or framework lacks native support, but it will take some programming. These tools provide an easy-to-understand query language along with responses in JSON (or XML). However, you will have to build both front-end and back-end functionality, including a mechanism for submitting content to your search engine of choice.
A major plus to using this approach is that you aren’t limited to indexing your website’s content. If you want your CEO’s tweets to appear in search results, all you need to do is write a bit of code to toss them in Solr or Elasticsearch. The same goes for other content like PDFs or Word documents.
Other Runner Ups
If you’ve already explored these options and are still on the lookout, there are other solutions to be had. Microsoft provides access to Bing’s public index via an API and allows up to 5,000 queries each month free of charge. Amazon’s solution, CloudSearch, also provides a robust API in a managed infrastructure. If you would like to have a fully integrated search without needing to maintain a Solr or Elasticsearch instance, Bing or CloudSearch may be viable options.
A solid information architecture can mitigate the need for a search function, but if you are putting out fresh content on a regular basis, things will get buried. Think long term. It is better to add search at the beginning of a project than to fix the problem only after you’ve frustrated your stakeholders.
Need more tips on search? Feel free to drop us a line.