AFAIK, out-of-the-box WordPress does not include taxonomies, such as tags and categories, in it’s search, only post titles & content.
I’m sure this has always been the case, so I’m a little confused as to why it ‘used to work’. Perhaps the pages have been modified, and used to contain the search terms themselves, but no longer do?
UPDATE: Taking a look at your functions.php, I see three possible troublemakers;
- Line 572,
add_filter('pre_get_posts', 'query_post_type'); - Line 597,
add_filter('pre_get_posts','SearchFilter'); - Line 776,
add_filter('posts_groupby', 'group_by_post_type' );
I suggest, one at a time, commenting out the line (prepend the line with //) and then testing a search. If there are no improvements, try all three commented out and work your way backwards. Either way you should be able to isolate the problem.
Also, two minor improvement suggestions (off-topic);
- Remove the line
add_action('init', 'my_init_method');(it’s worthless) - Remove the two
update_optioncalls at the top (unneccessary database writes on every request).