Link building is the road to better rankings, and it is that way because Google was built on the idea that links are votes. The more votes a website has, the more important it must be. That was the thinking behind Larry Page and Sergey Brin's search engine, the algorithm was called PageRank, and it is still the foundation under the whole system. It was also what separated Google from the other search engines back then, which were really just link directories.
Which means you do not need an agency to get started. You need a list of places that accept submissions, a rhythm you can keep, and enough patience not to ruin it for yourself in week two.
Build the list first, not the links
The mistake I see most often from people starting out is that they open the first directory they find, spend three hours writing a description, and then never get any further. An hour spent collecting 30 places you KNOW accept submissions is worth more than three hours spent on one.
Once the list exists you can work your way down it instead of searching from scratch every time you have half an hour free. That is the whole difference between having a task and having a project that never ends.
Rhythm matters more than volume
When you start a campaign, the rate of incoming links needs to roughly match what the site normally gets. If your website usually picks up 2 or 3 links a month, do not start by building 100. It paints a very unnatural picture, and you risk having all of them devalued. It will not hurt you directly, but it wastes the time you just spent.
Build over a longer period and turn the volume up slowly instead. It sounds boring, and it is, but it is the only way it holds up long term.
Anchor text is where people go wrong
Say you run a site about dishwashers. You do not own dishwashers.com, so you have another domain, let us call it dishwasherking.com. Every time you build a link you use the anchor text "dishwashers", and you might already have a hundred links with exactly that text. The site takes off and climbs towards the top.
And then one day it stops. Exact match on a single word, repeated a hundred times, is the clearest pattern there is that someone is sitting and building links. Vary it. Use your brand name, use full sentences, use the bare URL, use "read more here". It looks messy in a spreadsheet, and that is precisely the point.
Ten links from ten places beat a hundred from one
If all your links come from the same kind of source, whether that is blogs, comments or social bookmarks, you do not have a link profile, you have a pattern. A natural profile has an even spread of different types, and if one type is clearly overrepresented, that is where the work starts.
The same goes for where on the site the links land. Most people point far too many at the front page. Spread them across subpages, categories and articles, because that is what it looks like when someone links because they want to, not because you asked them to.
Mentions without a link count too
Something people overlook: a mention of your brand without a hyperlink is still a signal. If you get named in an article with no link, you still got something out of it. Do not chase the link every time, and definitely do not send an annoyed email about it.
The work never stops
This is not a campaign you run for three months and then you are done. Links disappear, sites shut down, pages get deleted. Competitors keep building in the meantime. The moment you stop, you start sliding backwards, and getting back takes longer than getting there did.
That is the boring truth about doing it yourself. In return you keep every penny, and you learn what actually works on your own site instead of getting a monthly report you do not read anyway.