It seems like you could mitigate this a lot if you didn’t generate the preview until you were about to render the post for the first time. Surely the vast majority of these automated previews are being rendered zero times, and saving nothing. (This arguably links the fetch to a human action, as well.)
If you didn’t want to take the hit that would cause—since it would probably mean the first view of a post didn’t get a preview at all—you could at least limit it to posts that the server theoretically might someday have a good reason to render (i.e. require that there be someone on the server following the poster before doing automated link fetching on the post.)
It seems like you could mitigate this a lot if you didn’t generate the preview until you were about to render the post for the first time. Surely the vast majority of these automated previews are being rendered zero times, and saving nothing. (This arguably links the fetch to a human action, as well.)
If you didn’t want to take the hit that would cause—since it would probably mean the first view of a post didn’t get a preview at all—you could at least limit it to posts that the server theoretically might someday have a good reason to render (i.e. require that there be someone on the server following the poster before doing automated link fetching on the post.)