98 saturn

I have a 98 saturn 4 door car. It has single cam ,air,manual trans,no power steering with 170+ thousand miles. It does not use oil,car runs and drives good. My problem is when car is in motion the engine revs up. It can sit and idle fine all day(900-1000rpm). When it moves and I mean you can roll it down hill in neutral it revs up to around 1800-2000 rpm. When driving and you shift it might rev from 2500 to 2700 before dropping. I have put in a new idle control valve, thermostat, and checked and cleaned egr valve. I’ve taken it to 2 different mechanic’s.They’re computer’s don’t show anything, the check engine light is not on,there is no vacum leaks,One has checked catyltic converter and I think swapped it with another and still does not help. they have cleared computer and that has dropped rpm from 1800 to 1500. It is a pain when you come to a stop sign or just want to coast and your motor is reving. When you come to a complete stop then it drop back to around 1000rpm after 4-5 seconds. Could it be an O2 sensor? Would like help if possible . Thanks Bill

Most engines will bring the target idle speed up when the car is moving. This is done by opening the IAC (“idle air control”) valve. They do this to prevent the engine from stalling if you slam the throttle shut for some reason, the partially open IAC valve will allow enough airflow to keep the engine running and not “shock” the engine into stalling before the computer can make adjustments. Therefore a higher idle speed while the car is moving (I think above 3 MPH), is normal.

If I throw my Saturn into neutral while moving, it will hold about 1500 RPM then drop when the vehicle stops.

However 2500 - 2700 seems very high for a constant idle speed, even while the car is moving. How long does it stay at 2500 RPM, and what are the conditions that it will see 2500 RPM? Is that when you hit the clutch after accelerating? If so, and the speed eventually drops back down, I am not bothered by it.