São Caetano localiza-se no interior do estado de Pernambuco, no agreste pernambucano. Está a uma altitude média de 552metros acima do nível do mar. O município abrange uma área territorial de 382,475 km². São Caetano faz limite com os municípios de Brejo da Madre de Deus ao norte, ao sul com Altinho e Cachoeirinha, com Caruaru a leste, e a oeste com Belo Jardim e Tacaimbó.
O município possui 36 626 habitantes (densidade demográfica de 95,76 hab/km²), segundo estimativas do IBGE em 2011. Em 1991 a população era estimada em 29.598 habitantes, ou seja, em vinte anos houve um aumento de 5.818 pessoas. Em 2000 o Índice de Desenvolvimento Humano era de 0,580, considerado mediano.
São Caetano está situado em uma área de clima tropical do tipo semiárido, mas que devido a altitude modesta apresenta um quadro de aridez menos severa.
Durante o inverno, há muitos dias nublados e chuvosos, mas a chuva geralmente é leve, então o acumulado não é grande. Devido a esses dias nublados, a temperatura pouco varia ao longo do dia. Às vezes, massas de ar atingem a região e faz a temperatura cair muito durante a madrugada.