Keyframing a UV texture on a mesh isn't working as expected
At least as far back as 2.77, this wasn't directly possible.  At least, not without an addon.
It's possible to do indirectly, by copying UV from a different mesh, but it's more work than you'd probably like:

Duplicate your object.  Make your duplicate non-rendering.  Edit the UV of the duplicate.

Give the original a data transfer modifier, targeting the duplicate.  Set it to copy face-corner data, copying UVs, by topology.

At the frame you want to &quot;keyframe&quot; those UVs, instead keyframe the mix factor of the data transfer modifier (at 1.0 to copy those UVs, at 0.0 to not copy them.)  It will linearly interpolate your UV between your old UV and your duplicate's UV on the basis of the animated mix factor.


If there are multiple different UVs you'd like to keyframe, you need a fresh duplicate and data transfer modifier for each independent sets of UVs.
This is the broadest, most general purpose way of doing this.  A UV Warp modifier can be much simpler if it can do what you want.  Keyframing the values in a mapping node, in your materials, can also be much simpler.
Keymesh, recently released, may provide a different way to approach this-- I'm not sure, I haven't played with that feature much.  In the future, geometry nodes should provide a further way to animate UVs, but even in the 2.93 beta, they're not really there yet.