You're on the right path -- the single most important thing you can do is have a different password for each site you log into. The key benefit is that if a site is hacked (they are, every day), sites using weak methods to obfuscate your password make it easier for your password to be cracked. Having the same password everywhere means if they know your password once, they know it lots of other places, too.
Complexity is important because it helps defeat the cracking methods. But schemes as you mention can be a little tricky, since there are other ways hackers get your password that don't need cracking.
So I strongly recommend password managers, and of all out there, 1Password is the one I trust most since their strategy is to never store your master password on their servers. Others password managers may do this, too -- so any good one is worth it. A password manager makes it feasible and convenient to have a long, complex, random and unique password for every site. The best ones do much more, too.
And for the most important sites, use their multi-factor authentication (MFA or 2FA). It's a total pain because you need to have something, typically a phone, that will provide a secondary code. But for the email account that will be the one used to confirm forgotten passwords, use it.
There are several ways bad people get passwords. They guess them from common uses like P@ssw0rd!, weakly encrypted passwords are stolen from breached sites then cracked using dictionary words. Your method solves these.
But there's a third: poorly secured or hacked sites, or phishing/social engineering scams get you to type in a password -- hackers now know it with very little effort. Sites serious about security protect against this, and monitor patterns that suggest breaches. But most don't. (Today, these methods are the most common way of effectively getting passwords).
If we assume that a hacker knows your password to a specific site, how secure is the method now?
Let's say the common part of the password is some long and complex string -- I'll use XXXX to represent it. But if you create a suffix or prefix based on something about the site, that is not complex or is guessable, like a SXXXX, using the first letter of "stackexchange", you're now at some risk. Make it longer, like sTaXXXX? Actually more guessable. Make it tricky, like sT@XXXX or atsXXXX ... getting warmer. Embed within, like XsXtXaX, better still, probably.
But this general technical is a widely promoted strategy because it's the only one humans can actually remember, so the people trying to hack it know what to look for.
So once your pattern is guessed, they have your email address, so try logging in there -- if Google, then XgXoXoX, right? And now, they change your Google password, and start resetting all of your other passwords. Now you're really sunk. How do I know? Almost happened to me in 2007, except I got lucky. And since then: 1Password.
Passwords are a terrible, terrible means of security. A physical key to your house is better: you need the key or a copy, and you need to be at the house! Generated random passwords from software like 1Password, especially combined with multi-factor authentication for the critical sites are the way to go. No two sites I have accounts on share a password, and I don't know a single one of them. The ones my family need are stored in a separate "vault" having a separate password, and I am the only person who knows the master, and I change it frequently.
Hope this helps!