If your tags are kept in a table and are indexed, then search through them first, then possibly fall back to a fulltext search on the full thing.
You may be already doing this but you could record what people are searching for, perhaps different things depending on the time of day/week/year.
Cherry pick those search terms and come up with "ready made" results.
So youd snag that term and link straight to the dog_food_home_page, or, more likely show a nice div with enticing links to that page.
This depends wholly upon the type of site you are running and the predictability of results. You won't know for sure 'till you log your searches though.
I was really surprised how predictable some searches are at certain times of the year.
I mocked up a search like that which in effect filtered results so:
1) single word
Search through known key words and present a "did you mean?" wikipedia disambiguation ( search wikipedia for pdf and it'll ask you to pick what kind of pdf you are on about, Panama Defence Forces? )
Then link to articles featuring the chosen keyword.
Search oft used "ready mades" in an array - as above.
Search through key words in an indexed table
4) then we use google, but you could show results from a fulltext search ...
or split the phrase up into single words and ask do you want to search for single words dog or food which then do a straight mysql search "where ... like '% $x %'" etc.
Which of these filters kick in of course depends as I say on the complexity and breadth of your content, and what you are happy to carry on hitting your system to do them.
You might be content to stop once you hit the array of "ready mades"