For private instances, you can get down to 0 scrapers by firewalling http/s ports from the Internet and using Wireguard. I knew it was time to batten down the hatches when fail2ban became the top process by bytes written in iotop (between ssh log in attempts and nginx logs).
The cost of the open, artisanal web has shot up due to greed and incompetence, the crawlers are poorly written.