Можно хранить в хэш корзинах только малое число указателей на страницы а те корзины где их получится слишком много просто не учитывать потому что скорее всего они соответствуют фрагментам текстов которые часто встречаются на многих разных сайтах типа "добро пожаловать" и другим стандартным фразам.
Как правильно отметил Interitus лучше брать частичные хэши а так как их много то для скорости проверять только счетчики тех страниц которые попадают в корзину одинаковых хэшей.
Зачем так сложно? Сделайте массив в котором на местах зависящих от хэша будут номера счетчиков и сравнивайте страницы в этих корзинах.
А если бы сделал META метками то уже давно бы все работало как надо без лишних хлопот, ...
А если бы еще письма о регистрации всем приходили то данный код поставили бы еще больше ресурсов, и вообще зачем так жестко привязываться к почте, вполне достаточно номера и кода с ним которые можно выдать на странице подтверждения регистрации, ...
Не так чтобы постоянно но время от времени разные сайты на разные почтовые адреса, а письма о регистрации не приходят, и в итоге регистрация которая в этом рейтинге жестко привязана к почте вообще не получается. Сейчас попробую зарегистрировать сайт и пришлю все что есть по этому поводу.
Про скорость я уже писал выше а ключевое слово здесь "обычно" и автор совсем не лукавит а правильно понимает задачу но вот где именно это "обычно" не может применяться как раз и есть знания которые не для широкой публики.
Без полной постановки задачи советовать что то по этому поводу нет смысла, это получается как в сказке пойди туда не знаю куда и принеси то не знаю что, и дело даже не столько в функции для хэширования сколько в правильности ее применения.
Шинглы например можно попробовать применить, почитайте тексты на Yandex корпоративном сайте, но это тоже не всегда помогает, ...
Кстати по поводу PROext рейтинга так ко мне от него почему то не приходят письма про регистрацию в рейтинге причем уже давно, ...
CRC любой разрядности предназначена для контроля целостности а не для хэширования и по определению не является равновероятной для случайной выборки данных а как раз наоборот есть существенный перекос который определяется магическим числом. Для шинглов лучше всего применять MD5 или другие подходящие для хэширования функции если эта слишком медленная для задачи. Но даже применение MD5 не гарантирует пригодность хэширования как метода вообще для всех задач а для некоторых задач результат может получиться очень забавным и совсем не таким который ожидается.