How to clear user’s browser cache after publishing a new post?

There are kind of two levels to browsing caching:

  1. Browser is provided with explicit information when page expires via response headers or 304 Not Modified response.
  2. Browser kind of assumes that page was loaded very recently and is still good for a while.

Respectively there are two possible things going wrong:

  1. Your server is replying with invalid caching information. That might happen on different stages of the process (PHP, web server, reverse proxy). You can use browser’s own tools or something like https://redbot.org/ to check for it.
  2. Browser is just of mind to cache aggressively. This seems to rarely be an issue outside of short time (minutes). Unfortunately it won’t be trivial to prevent, since WP has poor architecture for working with caching headers.

Overall you need to troubleshoot current headers to determine how it goes wrong.