Enhancing Your Website’s Search Experience
Search Experience is Crucial to your Site’s Success
A search bar is more complex than one might think, and during a website design or redesign, it’s one of those features that often times gets overlooked and overshadowed by more prominent aspects such as navigation or imagery. But it is crucial not to neglect your website’s search functionality, and take the extra steps to ensure that when a viewer is on your site, they have the most seamless experience possible. You want your search function to not only be easy to accomplish, but most importantly, return the most relevant results. But getting your viewers the information that they want is not as easy as just typing in a keyword into a search bar…well it is from a non-developer perspective, but for the guys building your site, there is a complex science behind creating successful search functionalities.
Last week, our office held a Lunch and Learn, where participants dined on delicious District Tacos, while being schooled by Mike, our head developer, and Kurtis, a search connoisseur and senior developer, about search functionalities. During the discussion, they outlined the different search capabilities of WordPress vs Drupal and functionalities of such tools as Swiftype, a third-party hosted search engine with WordPress integration, that is picking up speed in the world of search implementation.
The Problem With Default Search Functions
Majority of websites today are on a WordPress or Drupal platform, which offer default search features. WordPress’ default search functionality is basic at best. When utilizing the built-in search function, void of additional tools or plugins, WordPress default works by going into a site’s database and search by page description and page title only, and results are populated chronologically. This approach misses the mark. What you really want are results based on all content and its relevancy, so when a viewer searches your site, they get the most relevant results based on the overall content of a page and not on headlines alone, since titles are so often times broad and generalized. The last thing you want is for your website visitors to be given inaccurate search results, since the search bar is specifically implemented to allow viewers to easily and readily access desired information. Populating inaccurate and irrelevant search results will directly drive viewers away from your site and cause for a frustrating user experience. Luckily, The Web Development Group has work-arounds that create for a better search experience on both WordPress and Drupal.
What Makes a Search Engine Great?
Let’s first break down what differentiates a successful search function. It’s really all about content, and being able to pinpoint the most important parts of your site. Successful search functions index your site’s content in such a way that allows results to be returned quickly, based on how many times a specified keyword appears on a page, placing importance, also know as weighting, on the most significant parts of your content. Weighting allows you to specify which piece of your content should carry the most importance. Applying an index and weighting solution works because no additional services are needed. Everything happens right within WordPress or Drupal.
Proven Work-Arounds
We recommend two plugins that augment the WordPress default search, a paid one and a free one.
- SearchWP [paid] – Indexing, weighting, sort by relevance, multiple engines, and PDF indexing.
- Relevanssi [free] – Indexing, weighting, sort by relevance.
We recommend Search API with Search API Database Search for Drupal.
These plugins and modules are useful at achieving a more accurate search than the WordPress or Drupal defaults, but, these solutions can bog down your site if there is large amounts of content. We have found with larger sites it can take as long as 10 – 20 seconds to populate results, which is unacceptable. To give some perspective, according to The Google Gospel of Speed, “a 400ms delay leads to a 0.44 percent drop in search volume,” and those are some big numbers. So where every fraction of a second counts, it’s imperative to place just as much weight on turn around time as it is on relevancy.
That’s where search technologies like Apache Solr and Elasticsearch come in. These technologies are very efficient at organizing content for search and returning a result very quickly, even at a large scale. Of the two, we recommend Apache Solr for its extended feature set and wide range of support from the community.
On top of the quick result return, these technologies give access to a number of advanced features, like facets and filters that funnel users to their desired result and advanced keyword analysis that allows for spell check, stemming, and fuzzy-matching. To give you some examples, stemming expands a search beyond the exact keyword a user searches for, picking up the root, and then casting a wider net, such as populating results for “exploration,” “explorer,” and “exploring,” when the keyword “explore” is searched for. Apache Solr is also capable of matching similar sounding words based on phonetics, in the case of typos or misinterpretations such as “Stefan” vs “Stephen” vs “Steven”, even matching different languages and picking up accent characters, eg “Stéphane”. Learn more about the basics of Apache Solr.
Drupal has great support for Apache Solr through the Search API Solr module and support for facets and filters through the Facet API module.
WordPress support for Apache Solr integration is lacking in the community. Recently Pantheon, a WordPress and Drupal hosting company, released a plugin that has some promise, but it’s still early to tell how well it works. This lead us to build a custom solution for American Enterprise Institute. Read more about this integration on the AEI case study.
Unfortunately, even search technologies like Apache Solr have limitations. For one, you have to host Apache Solr on your server, work with a host that offers hosted Solr search, or pay for a host Solr server as a service. For example, if Apache Solr is not able to integrate with your site’s application layer, you may have to build or extend a site crawler to index this content.
Introducing Swiftype
This brings us to a service called Swiftype. This service offers crawlers to ingest the content of any number of sites to include in the same search results, called a “federated search.” In many cases, this is the only way to incorporate the content from these external sources in your site search. The service also allows you to see what people are searching for, and manually set rankings based on what is searched for the most, so you can tailor the results of certain keywords, even if they are not the most relevant results. Swiftype also offers advanced features, such as pulling results for synonyms, so that the people searching for “jump drive,” “flash drive,” and “pen drive,” all see the same results. Swiftype includes these features without relying on your own servers, ie WordPress or Drupal, to return results. This leads to all the performance of an Apache Solr instance without the server costs. The service does have a price tag of close to $300 a month, but with additional features such as pdf indexing, custom weighting, search analytics, facets & filters, and a robust API, this service is well worth the cost when your WordPress or Drupal site needs a robust search solution. Swiftype is a no-brainer especially for those WordPress sites that require a high-functioning search capacity that incorporate content from multiple sites in a federated search. Our team recently utilized Swiftype for the launch of the new site for the City of Alexandria. Read more about how we created a one-of-a-kind search function for the site.
To Sum Things Up
If search functionality is a key factor of your website, there are solutions for both WordPress and Drupal that are very robust. While Drupal has excellent integration with Apache Solr with a few quick modules, there are still options for improving WordPress search, whether you use a plugin, a service, or a custom-built integration. Of course, it’s all about the end-user and what the user experience calls for. The Web Development Group is here to guide you to the best solution for your situation.