Like every Lithuanian city, Šiauliai is well accessible by bus but unlike many Šiauliai also enjoys good connections by rail. Trains go both to Klaipėda (via Telšiai, Plungė, Kretinga) and Vilnius (via Jonava, Kėdainiai, Kaišiadorys) as well as to Panevėžys.
Road connections to Šiauliai are not perfect as they are limited to 2 lane roads if you want to go anywhere further than several neighboring towns.
Šiauliai Airport has an international status but is actually operating as a NATO airbase with its civilian flights limited to cargo. The passenger airport most people of Šiauliai use is Riga International. Being only 100 km away it is closer than any of the major Lithuanian airports. If you arrive at Riga then Šiauliai (and the Hill of Crosses) are possible to visit en-route to either Vilnius or the Lithuanian seaside with a detour.
If you are not too fond of independent travel the Hill of Crosses is included in many tourism agency itineraries of Lithuania.