Использовать ID в адресах точно не стоит, так как в процессе работы сайта ID разделов и товаров могут измениться, и у вас появится куча нерабочих страниц в поиске, и нужно будет настраивать 301 редиректы, чтобы направить на актуальные страницы.
Я сам использую обычно такие адреса, поскольку мне они кажутся более логичными:
/catalog/category/subcategory/
/catalog/category/subcategory/item-code/
Периодически встречаю такие правила формирования адресов:
для разделов
/catalog/category1/
/catalog/category2/
/catalog/subcategory1/
/catalog/subcategory2/
для элементов
/catalog/goods/item-code/
/catalog/item-code/
/goods/item-code/
Для элементов использовать
/goods/item-code/
может быть удобнее, если один товар может находится в разных разделах, и если символьные коды у них однозначно не будут дублироваться. У товара в этом случае есть один фактический адрес, чтобы не создавать дубликаты страниц и не указывать канонические ссылки.
Но если даже один товар может находиться в разных разделах, то с точки зрения посетителя вроде как удобнее видеть, в каком сейчас разделе он просматривает товар, т.е. чтобы элемент был доступен по адресам:
/catalog/category/subcategory1/item-code/
/catalog/category/subcategory2/item-code/
Для отсутствия дублей в поиске нужно прописывать канонические url.
Итого, рекомендую такую структуру
/catalog/category/subcategory/
/catalog/category/subcategory/item-code/
если товар может быть привязан к нескольким категориям, я использую
/catalog/category/subcategory/
/catalog/category/subcategory1/item-code/
/catalog/category/subcategory2/item-code/
и ссылку на товар subcategory1 использую в качестве канонической
Этот вариант также допускает возможность иметь в разных разделах подразделы и товары с одинаковыми символьными кодами.
P.S. Может, seo-специалисты считают иначе и выскажут свое мнение.