A general framework for structure-preserving model reduction by Krylov subspace projection methods is developed. The goal is to preserve any substructures of importance in the matrices L, G, C, B that define the model prescribed by transfer function H(s) = L∗ (G + sC)−1 B. Many existing structurepreserving model-order reduction methods for linear and second-order dynamical systems can be derived under this general framework.