Between 1874 and 1881 he had duty on board the USS Tennessee and USS Kearsarge followed by a tour at the Naval Torpedo Station, Newport, R.I. After serving as executive officer of Lancaster, flagship for the European Squadron, and Inspector of Ordnance at the Washington Navy Yard, Goodrich became Officer in Charge of the Newport Torpedo Station in 1886.
From 1891 until 1896, he commanded successively Jamestown, Constellation, and Concord before he spent a year as President of the Naval War College at Newport.
During the Spanish–American War in 1898, he commanded the USS St. Louis and Newark, and received the surrender of Manzanillo, Cuba, following that city's bombardment on 12 August.
In the years following, Goodrich commanded Iowa, Richmond, Minneapolis, and Puritan at sea and served as Commandant of the Philadelphia Navy Yard (1900) and the Portsmouth Navy Yard (1903) on land before his promotion to the rank of Rear Admiral 17 February 1904 and his appointment for 3 years as the Commander-in-Chief of the Pacific Squadron.
Goodrich was a member of the Naval Order of the United States and served as Commander of the New York Commandery from 1907 to 1908.