The rule is: arrange the signal chain in the order you would in real life.
Each of the software-based processing components performs the task of one or more physical devices or components.
Convolving a signal with an impulse response recorded from a (linear) signal processing system (or component) such as a reverb effect, or an acoustic room, corresponds to running the signal through the actual system (or component) from which the impulse response was recorded.
As far as I understand, your question is, "In which order should I connect these things in a signal chain: (1) preamp, (2) effect, (3) power-amp, (4) cabinet? Should I put my effects between the preamp and power-amp, or should I run the cabinet microphone's signal through the effects?" This question could be answered just as well in a purely "real hardware" situation, where you only have actual physical hardware. How would you connect the components? You have to clarify to yourself the conceptual role of each of your software components.
(Theoretical mumbo-jumbo. If the components you call "effects" are linear and time-invariant, i.e. if they don't add any nonlinearities like distortion or modulate their parameters over time, then in theory, the order of processing should not matter, because convolution with an impulse response is a linear time-invariant system. And linear time-invariant systems can be connected in any order without affecting the final result. But if the effects are nonlinear or time-variant, i.e. if they add nonlinearities to the signal, or if they modulate their characteristics over time, then the order of processing does matter in theory. Whether any of this matters in practice however, is a different question.)
If the amp simulator that you imply is only used as a preamp (for overdrive/coloration) also includes cabinet simulation, then you are virtually running your signal through two cabinets in series. Which most probably sounds bad.