Как не попасть под аффилированность сайтов в Яндексе city.site.ru и site.ru?
Не должны попасть. Вы все сделали правильно. Еще указывайте во всех title страниц город и на страницах карточек товаров условия доставки и прочее что относится к городу. В остальном все будет ок 100%.
Еще добавьте все поддомены в вебмастер и присвойте нужный регион каждому.
Делаю в DNS
город.сайт.ру. CNAME сайт.ру.
отображается сайт.ру, в адресной строке город.сайт.ру - все как надо, но подтягивается сертификат от сайт.ру и не подходит к город.сайт.ру
Если сделаю через htaccess редирект, то в адресной строке уже будет домен сайт.ру