Varies from subreddit to subreddit. This is purely anecdotal but on a big subreddit it's usually like 1 in 100 submissions linking to external site get the to "serious traffic" level of traction. You can instead write the same content as a subreddit post and add a link to your site at the end, such posts will have a much higher chance of reaching the subreddit frontpage.
Most moderators are already wise to people doing this. I moderate a decent sized subreddit (50k users) and whenever I see a wall of text post with a link at the bottom I just remove it. 99% of the time what is written is garbage and adds no value to anyone.
It is hard to know what content will go viral for sure.
From my experience is pretty much correlated to the value you bring to the community.
If you're honest, transparent and teach something, relate your experience or your difficulties then you get engagement.