rsync will get you what you need. It's mostly used to make delta backups, but what's important (for you) is that it can be used to only transfer a file or file(s) when the remote copy has been changed. rsync
From the wget manual:
The time-stamping in GNU Wget is turned on using ‘--timestamping’
(‘-N’) option, or through timestamping = on directive in .wgetrc. With
this option, for each file it intends to download, Wget will check
whether a local file of the same name exists. If it does, and the
remote file is not newer, Wget will not download it.
If the local file does not exist, or the sizes of the files do not
match, Wget will download the remote file no matter what the
time-stamps say.
It should be doing what you're asking it to... right?