Для придания читабельности не нужно таких извращений, достаточно передавать все GET параметры в UTF-8. В вашем случае строка запроса должна быть вместо
q=%EC%E5%F2%EE%E4
q=%D0%BC%D0%B5%D1%82%D0%BE%D0%B4
Пока никакого. К тому времени как они добавят поддержку CSP 3 вы успеете стать гуру и сможете читать лекции по применению новых спецификаций на конференциях типа Вебмастерской Яндекса.
Для начала ошибка в кавычках. Вот как-то так должно отправиться
Header set Report-To '{"url": "http://site.rus/reports/","group":"endpoint-1"}'
По спецификации мы должны передать строку с JSON, так что возможно ещё и слэши в URL придется экранировать.
Примеры отправки данных есть в разделе Reporting API.
Если в двух словах, то вы вместе с заголовком Content-Security-Policy отправляете ещё один HTTP заголовок Report-To, в котором задаётся URL для отправки рапортов и название группы. А в самих правилах CSP в атрибуте report-to пишите название этой группы.
Попробуйте во всех htmlspecialchars явно указать кодировку, бывает из-за этого глюки.
Думаю не быстрее этого будет.
Последний год пользуюсь ImBatch для пакетной обработки больших объемов картинок. Бесплатная и довольно гибко настраивается под любые задачи. Можно без проблем работать с картинками в нескольких разных каталогах одновременно.
100 рублей за 5000 запросов на api.megaindex.ru, 30 рублей за тысячу запросов на seozoo.ru
И да, лучше парсить серп, Google Custom Search ни разу не альтернатива.
GWS API давал не более 100 запросов в сутки последние 2 года, так что смысла в нём никакого.
ОЕМ лицензия 45 тысяч сейчас стоит. Если без винды, можете вот конфигурацию глянуть, клиенту собирал на неделе.