Cам запрос из поисковика и напрямую мало чем отличается.
Тут нужно разделить задачу на более мелкие и разобраться в каждой.
1. Нужно сделать так, чтобы поисковики получали доступ к сайту без проблем. Поисковики бегают по сайтам ботами с определенным user-agent и ip адресами. Тот же клаудфраер в основном различает их - правило в Security - WAF - Firewall Rules (название фильтра Known bots). Но это правило поддерживает только в этом разделе, а там можно только выдать вердикт о легитимности запроса (выбить на него капчу, пропустить, заблокировать и т.д.). В принципе, можно выбрать вариант пропустить запрос далее и закончить на этом.
2. Далее нам нужно пропустить юзверей с поисковика к нам на сайт. От перехода напрямую, переход из поисковика отличается иногда параметрами запроса (например в url есть параметры, такое бывает, если ты рекламу долбанул в яндексе и оттуда перешел типок, но это не надежно). Следующее - заголовок Referer - в нем содержится url откуда перешел юзер, например, перешел ты из яндекса, то будет Referer=
https://yandex.ru/ и так далее, в каждом поисковике свой. Соответственно в том же правиле Cloudflare можно выбрать пункт Or (или то или другое условие) и указать там список Referer с которыми также нужно пропускать запросы на сайт.
И последнее, нам нужно будет создать другое правило и инверсировать условия (добавить НЕ перед ними) и выбрать действие - заблокировать. Тогда если к нам перешли не из поисковика или же не сам бот поисковика, то его не пустит на сайт и выбьет дефолтную cloudflare страницу с ошибкой.
Но тут есть очень важные моменты.
Первый - это защита от дурака, если ты так собираешься защищаться от дудоса (а в тегах вопроса это есть) то затея изначально провальная. Даже в массовых парсерах уже давно научились подменять referer на значения поисковиков и тебя спарсят или задудосят в любом случае.
Второй момент - поисковикам очень не нравится такое поведение сайта. Это называется серый клоакинг (вроде не совсем разумно клоачим, но все-таки есть какие-то приколы с работой сайта). Поисковики, разумеется не разглашают полную схему проверки сайтов. Но помимо понятных ботов (с юзерагентом яндекса, гугла или еще чем и их айпишником) гоняют еще и простые боты без опознавательных знаков. Так вот, если этот бот попадет на твой сайт и увидит, что там контент отличается от того, что ты показываешь людям - то он может понизить твой рейтинг в выдаче и еще чего хуже может наделать. Кроме автоботов, подозреваю, и и ходят слухи, что гоняют еще и простые модераторы в ручном режиме проверяют сайты. Тут уже они тебя выбьют из выдачи за клоакинг.