Можешь попробовать приводить все входящие данные url к одному виду(canonical) и хранить этот вид в базе в отдельной колонке.
Допустим, сперва определяешь сколько уровней домена.
ecco.ru - 2 уровня (ecco и ru),
men.ecco.ru - 3 (men, ecco, ru),
www.men.ecco.ru - 4 (www, men, ecco, ru)
Сделать это можно как-то так:
$urls = "www.ecco-shoes.ru
www.ecco-shoes.ru
http://ecco-shoes.ru
https://www.ecco-shoes.ru/
www.ecco-shoes.ru/
ecco-shoes.ru
www.ecco-shoes.ru/?
www.ecco-shoes.ru/#
www.ecco-shoes.ru/index.php";
$urls = explode("\n", $urls);
foreach ($urls as $url) {
$hostname = parse_url($url, PHP_URL_HOST);
$domains = explode('.', $hostname);
echo $url."<br/>";
echo $hostname."<br/>";
foreach ($domains as $domain) {
echo $domain."<br/>";
}
echo "<br/><br/>";
}
Затем конструируешь из этих частей урла нужный вид, например игнорируя www, и сохраняешь это в базе в доп. колонке. Желательно все эти части привести к одному регистру, допустим к нижнему.
И всё, затем проверяешь был ли уже такой урл простым запросом в бд по колонке с каноничным урлом.