I pick interesting solos that have techniques I want to learn, or certain patterns that still give me trouble, as opposed to using boring exercises.
I try to always warm up, starting with slow noodling, after which I'll stretch my hands & fingers a few times, then do some spider walks, since they help reinforce keeping my fingers close to the fretboard. I've seen real improvements in that aspect lately. I'm kind of amazed at how close my fingers stay poised over the notes. Pinky still has some work, but it's even improved a lot since I started really focusing on it. It's extra important to me since my finger speed isn't all that great.
I'm pretty disciplined about practicing to a metronome, especially with legato riffs, because of different fingers having different strength, it's real easy to not keep 2-finger pull-offs, or hammer-ons, in time. I'll practice as slow as needed to keep everything even, time-wise. I have to practice the 1-3-4 riffs a lot more than 1-2-4 ones. Because: pinky!
I also pay extra attention to keeping string changes clean, another area that has gotten a lot better lately. Mostly it's done with the tip of whatever finger staying against the adjacent string, other times it's letting the finger drape against the higher string. Always keeping my palm in play. And with pull-off riffs to an open string, that don't involve the pick at all, I'll rest one of my right hand fingers against the adjacent string.
Another "trick" I like to use to build speed is to do "speed bursts", where you play a riff 3x's at one tempo, then twice at double speed. The faster speed is never the problem, it's switching back to the original speed. So I actually have to practice these slower than I can play them at the faster tempo, by themselves. My thinking is that this helps with control.
Once I know I good and limber, I'll just go for it, playing whatever riffs I'm currently working on as fast as I can, just to push myself. But only for a bit, since I don't want to reinforce sloppy playing.
One other thing I've recently started doing is finding ways to keep open strings quiet. Like, if the first note of a string change is an open string, I'll use that brief "opening" to place an unused finger onto that string, right after the last note prior to the string change. Something I never ever paid attention to, until I started getting super-focused on playing any high-gain riffs as clean as possible. Even the briefest overlap of 2 notes sound like shit with high gain! I hear it, then I'm like, WTF is
causing that?? Then I figure out a way to stop it from happening.
Most of my practice involves remembering to do all these little tricks, because lately I'm really trying to get everything I play as accurate as possible. I just don't like sloppy playing.