Speyer is not on a main rail line, which is its main logistical inconvenience. Direct trains run from Mannheim (around 20 minutes) and from Schifferstadt (around 10 minutes), where you connect to trains from Kaiserslautern and the wider Palatinate network. From Frankfurt, Cologne, or Stuttgart, Mannheim is the natural interchange — it is a major junction on the ICE network and has frequent fast trains from all three cities.
By car, Speyer sits just off the A61/A65 interchange, well placed for anyone driving along the Rhine corridor. Parking near the old town is straightforward by German city standards. In summer, Rhine riverboats call at Speyer from Heidelberg and occasionally from further upstream — a slow but pleasant way to arrive if you are in no hurry.