An unused substitute in Birmingham's EFL Cup defeat on 6 August 2019, O'Keeffe joined League Two club Macclesfield Town three days later on loan for the rest of the season. He was a first-team regular throughout his stay, and had made 36 appearances in all competitions by the time the League Two season was first suspended and then ended early because of the COVID-19 pandemic. He was released by Birmingham when his contract expired at the end of June 2020.