Politisch war er ab 1912 als Beigeordneter der Zentrumspartei in Trier tätig. Am 15. Oktober 1920 wurde Schäfer Bürgermeister und Beigeordneter der Stadt Essen. Seitdem war er ständiger Vertreter des Oberbürgermeisters und hatte bei politisch bedingter Abwesenheit von Hans Luther und Franz Bracht die Verwaltung Essens geleitet. In der Zeit der französischen Ruhrbesetzung war Schäfer vom 14. Februar bis 23. Dezember 1923 inhaftiert. Wegen "Nichtbefolgens eines Requisitionsbefehls" war er durch ein französisches Militärgericht zu einem Jahr Gefängnis und zehn Millionen Rentenmark Geldstrafe verurteilt worden. Am 21. Dezember 1932 wurde er selbst, als Nachfolger von Franz Bracht, zum Oberbürgermeister ernannt und am 10. Januar 1933 in sein Amt eingeführt. Nach der Machtergreifung der Nationalsozialisten wurde er am 5. April 1933 durch Theodor Reismann-Grone ersetzt und tags darauf zunächst beurlaubt. Auf Empfehlung des städtischen Verfassungsausschusses vom 13. Juli 1933 folgte am 25. Juli des Jahres die Versetzung in den Ruhestand durch den Preußischen Minister des Innern.