Try replacing the VSS, located on your transmission, right under the plastic air intake pipe. If that doesn't fix it, then your gauge is dead like mine. Instead of getring a new cluster, i installed a micro usb powered digital speedo that displays the an LCD reading of your speed. Pricey, but probably cheaper than getting a cluster and simple to set up https://www.amazon.com/dp/B005X4QCAA/ref=cm_sw_r_cp_apa_fabc_smMcGbB2MHH0B?_encoding=UTF8&psc=1
I bought this one, but there's cheaper ones that have good reviews if you just look up GPS HUD.
Edit: also if you could tell it does lag behind just a little bit. So it's accurate, but if you want a super accurate one, get the obd2 hud. They'll read off the car's speedometer.
here's the one i bought https://www.amazon.com/gp/product/B005X4QCAA/ref=ppx_yo_dt_b_search_asin_image?ie=UTF8&psc=1
link to product: https://www.amazon.com/gp/product/B005X4QCAA/ref=ppx_yo_dt_b_search_asin_image?ie=UTF8&psc=1
Apparently you can also project it to your windshield.
But usually you stick a polarized screen thing to the windshield so you can see it better.
Just get something like this
They are easy to install and use GPS for your speed.
Sorry im on mobile and couldn't format the link