Свой алгоритм работы google, конечно не выдаст, но можно выделить несколько способов поиска:
Обычно картинки в себе помимо изображения хранят ещё кучу информации, начиная от места, где была сделана фотография (достаточно включить геолокацию в настройках камеры вашего смартфона), заканчивая названием альбома, в котором лежала картинка. Вообще этой информации может быть очень много, поэтому поисковик, извлекая максимум из этой информации, может найти картинку без других способов.
Нахождение опорных точек картинки. Используя специальный алгоритм (обычно очень сложный) можно на картинке выбрать несколько точек (например найти самые контрастные разные цвета на картинке). Дальше запоминаем расположение точек относительно друг к другу. В итоге у каждой картинки есть некоторое уравнение, описывающее расположение этих точек, сравнивая уравнения всех имеющихся у нас картинок можем найти похожую. У этого способа есть большой плюс - мы можем выявлять деформированную картинку и находить "баяны", когда картинка будет использоваться в другой, но этим способом мы можем пропустить очень похожие картинки (например если это будет фотосессия какой-нибудь модели, в которой она меняет свои позы, мы найдём только 1 фото)
Поиск по цвету.
Здесь всё просто в плане идеи - находим самые повторяющиеся цвета(чем больше, тем лучше), запоминаем, находим их на других картинках. В плане реализации всё намного сложнее. Очевидно, что мы можем найти очень много похожих картинок, но совершенного другого наполнения. К тому же этих повторяющихся цветов обычно на картинке оказывается слишком мало, что затрудняет поиск.
Для лучшего поиска нужно использовать смесь этих подходов.