I used to do this for many years at a very high level and was consulting for lots of major brands on this exact topic.

The SEO industry makes things sound a lot more complicated than things are in reality. That mostly comes from the fact that overwhelmingly most people in the industry aren't actually very technical at all and things that might seem obvious to an engineer are not at all to people with more marketing focused backgrounds.

I've not actively followed the industry for a few years now but I strongly recall that there was a lot of hand-wavey voodoo magic vibes to much of the advice out there because of the aforementioned technical skill gap.

Instead I would argue that the best way you can think of it is an engineer where you are crafting a set of input signals into an algorithm and you are then competing against other brands input signals.

Some big ones to keep in mind are:

* Start by understanding what kind of queries you are trying to rank for in the first place. Are you a content site? Are you an e-commerce? etc... I often see e-commerce brands for example throwing huge amounts of effort into mega blog posts that are loosely related to their core business and all that mostly does is drive traffic for people who are never going to buy from you to begin with.

* Think about how search engines crawl your website. Make sure you at a minimum aren't tripping them up with messy site structures, broken links, clear titles etc.

* Know that they are trying to judge you against a set of specific criteria. Some of these are direct signals that you can control and they will impact rankings. Speed is often famously quoted as one for example. But go and take a look at the specific criteria that Google use in order to feed their own machine learning algorithms regarding "what makes a great site" https://static.googleusercontent.com/media/guidelines.raterh...

* Think about how you can take your existing website and then mark it up with additional metadata to make things extremely fucking clear what you are talking about on each page. The schema.org website is a great website for this. Using it alone isn't going to "make you rank higher" but you are feeding in clearer signals into the algorithms that will ultimately be deciding what you are relevant for.

* Go and understand the landscape of who you are competing against. Start with who you are trying to reach and work backwards from there. I see unsophisticated people all the time starting with just a random set of keywords that they thought sounded vaguely relevant and spend all their time doing dumb shit like trying to rank for "clothes" because they have a clothing website and that keyword has a high search volume. Don't do this. Start by understanding your audience first, it will save you a lot of trouble.

* Think beyond your website alone. What other signals do you think could hint at the fact that you run a reputable website, are an expert in a topic. Do you have a real world presence? Things like Google Places are a great example of a bunch of real world signals Google has access to for brick and mortar places. Maybe spend some time there getting THAT in order and driving positive customer reviews. Are you a member of any business groups? Think about what communities you belong to etc.

* You are going to hear a lot of things about "links". This is roughly speaking true but a lot of the advice out there is garbage on many levels. You would be much better served in most scenarios like a public relations person than an "SEO".

* There is actually some semi-decent content out the now that is specifically aimed at the developer crowd on YouTube by Google. https://www.youtube.com/playlist?list=PLKoqnv2vTMUPOalM1zuWD... and https://www.youtube.com/playlist?list=PLKoqnv2vTMUN6lFDz6qMB... come to mind as good places to start.