Можно ли определить, по каким ключевым фразам пришел на сайт посетитель?
Если он пришел с поисковика, то узнать требуемое можно только у самого поисковика. И HTTP_REFFERER тут не поможет, т.к. там будет редирект от поисковика с кучей служебной информации.
Если нужно узнать по каким фраза пришел пользователь с гугла, ставим  аналитикс. Нужны фразы из яндекса - ставим метрику.
Можно распарсить соответсвующие куки. Например, куки utmz, которые использует Google Analytics, содержит фразу, по которой человек пришел на сайт, в параметре "utmctr".
Да и сам рефферер часто содержит фразу, по которой пришел человек. Она в ссылке записана.