When we're planning a new website for someone, one of the requirements we often hear in the brief is that "it needs to have a good search".
When I heard that line from a client last week, it ended up that their current keyword search was linked to a 3rd party search engine and doing a search on their site took you to results from all over the Internet. So for them, just a simple keyword search that brought back results just from their site content was their definition of a "good search" - and as we were discussing a WordPress
site this was no problem at all, as a keyword search comes "out of the box" with WordPress.
However, they will be searching a variety of different types of content on their site as it's an Intranet and, to me, a good search is about more than just the algorithm - it's about a user being able to find what they need and sometimes that's as much about the presentation of the search results as the search itself. A very advanced, accurate search which just brings back a mass of text may not actually be that useful so breaking content down into different colours or styles for different page types (e.g. press releases vs. team news) or including images and videos in the search results can all help your search deliver what your visitors want efficiently and easily.
Meanwhile, a couple of our clients on Laravel
builds lately have needed their search to go a bit further than keywords and good looking search results.
On a student recruitment tool for a leading University, staff needed to be able to search through thousands of applications and one of the ways we facilitate this is to let them choose between an AND or an OR search. For example, they can choose whether they're looking for students who have given full references AND have done a 3 month clinical placement. Alternatively, they may wish to look for applicants who have given full references OR have done a 3 month clinical placement!
The next step to creating them a tool suited to their needs was to let them actually layer their search queries. So, building their query and then hitting the Search button just the once, they can carry out a single search for a complex requirement - meaning they can look for applicants who have given full references OR have done a 3 month clinical placement... AND who need funding. Of course the interface for this needs to be super intuitive as well as functionally brilliant.
Another client - a membership site with millions of page views a month - needed a search that lets their members find all sorts of different types of information quickly and easily, whether that's news, pages, events, products to buy, or member offers (of which there are thousands). We started with a search that lets admins tag and categorise content in lots of ways and then let's visitors search by category, location (mile radius), keyword and various other options. The results were then ordered by a hierarchy requested by the client - so certain pieces of content trumped other sorts. This in itself had complexities as the hierarchy wasn't just defined by the data type, but by certain criteria of each data type - for example offers with a certain pricing model had to be treated differently to offers with another pricing model. This again was a project where the presentation was vital and things like price, or the % saving, or that fact that an offer is free, or the location of an event were all headlines that we wanted to present clearly in the search results.
After some testing, whilst the search worked well and brought back what people wanted on the whole, if we were being super picky we found there were some curve balls. An example was an event in Edinburgh, which in the text description mentioned London - this meant that if you searched all the events for the keyword London, it was returned but was actually an Edinburgh event and so probably wasn't what you were looking for.
To get around this we introduced negative keywords, meaning our client's team can tag their content with keywords that the content shouldn't be brought back for. We added this with the warning to use it wisely as it'd be equally frustrating to have read something, remember a keyword about it, and try to find it again by searching for that keyword, not realising that you were searching on a word that was effectively blacklisted. Another strategy around this idea is to just list results which contain negative keywords at the end of the results so they are there for anyone who wants them - you're not hiding anything - but they're not as prominent so they don't get in the way.
We also added more layers of hierarchy to the results so that on keyword searches, content with those keywords in title tags or certain other elements of the content rank might highly than ones where that word is in the body copy. This is then combined with the content type ordering hierarchy already in place and the negative keywords so we end up with an advanced algorithm that can deliver what our client wants to show and what their visitors are looking for. This is essentially a form of relevancy searching and to be honest I much prefer it to SQL relevancy searching which has various draw backs, such as how it handles short words.
We've also presented clients with clever methods of very granular control over search results so they can basically dictate exactly what shows for certain search terms, meaning they can promote what they need to as and when they need to.
The other side of search is of course the reporting. We've got clients who get emailed a weekly report of any "zero results" searches carried out on their site (which they can also view at any point in their website's admin) so they can look for trends in visitors searching for content that they need to provide. Meanwhile, we often build clients a report for seeing all searches carried out on their site so they can see what's trending for them and what they need to provide more of - this can also be achieved in Google Analytics, depending on how your site is set up. Finally, we've also built visitors the option to feedback on search results - for example, if they didn't get a result, we ask them what they were looking for so as to help the organisation learn what their visitors want.
So if you've got a project coming up which needs a super powered search, or you just want some ideas and strategy around how you can deliver your content more effectively to your visitors, please do get in touch
More from our blog
We're looking for an experienced PHP developer to join our highly effective team. We're problem solvers, with clients depending on us - some of them… Read →
We've been busy helping our client OilPrice.com with the launch of their new trading platform.
Made in conjunction with FTSE 250 company owned Markets.com, OPCMarkets… Read →
We recently had 3 clients - within the space of a few days - ask us for video heros on their home page.
We do… Read →