Generally, you shouldn't redirect to an entirely separate page or display an obtrusive "popup" to outdated browsers unless maybe the site/application is entirely inaccessible to those on the "outdated browser".
On most informational websites the content should still be accessible, even though it may not look as intended or be "broken" in places. If the content can still be consumed then an unobtrusive banner (on the same page) would be far more preferable.
Redirecting to a separate page (or displaying an obtrusive popup) can deliver a bad user experience and alienate the user. Particularly with today's auto-updating and update-notifying browsers, if a user is using an outdated browser it may be for good reason as they have likely taken additional steps to prevent the browser from updating. Or they are using older hardware (older OS) that does not support the newer browsers. And users in a corporate environment often don't have control over their browsers/machines so cannot simply update it.
So, if a user is using an outdated browser it is often because they can't or don't want to update it. They should still be able to consume the content if possible.
Try opening this very same website in IE
AFAICT this website only displays an "unobtrusive banner" to IE11 and early versions of Edge. Other "outdated browsers", including earlier versions of IE do not get any notification. (Maybe because it is deemed that users of these browsers should be able to update via Windows Update?) The website content can still be consumed on even ancient browsers.
I check the client browser and return a 302 redirect to ...
... the "outdated" popup is extra html that I prefer to keep out of my pages.
If you are returning a "302 redirect" then you must already be performing the browser check server-side, in which case any additional "outdated banner/popup" HTML/JS should only be served to those browsers that actually "need" it. This "extra HTML" does not need to be present in the page that is served to everyone else if you are performing this test server-side to begin with.
SEMRUSH crawler gets redirected
This would certainly seem to be an error in your browser detection script. The default action needs to be "no banner/popup". And, as @StephenOstermiller mentioned in comments, bots certainly need to be excluded.
update.min.jsthat the HTML snippet downloads is nearly 10KB? (And that HTML snippet is nearer 360 bytes.) But the downloaded script is cached and served by Cloudflare. @StephenOstermiller @Steve