Excluding localised duplicate content from search

Hi all, I’ve a Wordpress website that serves different versions of the same article based on a users geolocation.

For example, my URL scheme is setup as:

site.com/
site.com/uk/
site.com/ca/
site.com/au/
etc

I have an article say “best widgets” which use the href-lang tag. So the article is the same, with different widget recommendations and UK/US spelling depending on the geo.

When a user searches for “best widget” all 4 versions of the article show up in the search. However, I only want users to be able to find content targeted to their geo. So users in the UK should only see search results with the /uk/ subfolder and US users should find everything on the root domain, but all the regional subfolders should be disallowed.

Any idea if this is possible to setup?

Thanks!