Есть сайт с огромным каталогом товаров.
огромный это когда несколько миллионов, у Вас крошечный.
Движек не справляется, нагрузка на базу очень большая
оптимизировать надо - "40000 товаров и 300 категорий" это вообще не о чем. Тут еще надо бы указать количество посетителей сайта. Так как нагрузка именно от них в большей части зависит, чем от размера базы.
В общем думаю разделить сайт на несколько на поддоменах с одним дизайном, но разными товарами и каталогами.
Это лечение головной боли гильотиной
стоит ли вообще или пытаться что-то оптимизировать.
конечно стоит, но оптимизация сайта и разделение его на несколько - это совершенно разные вещи. Какой движок?