I was a senior engineering manager once at a company that helps job seekers, and one of my teams owned organic growth. It was a (relatively) small team team of very capable engineers front and backend engineers responsible for driving ‘organic growth’ and traffic. On paper that meant getting more people to the site from Google.
But in reality, the team wasn’t doing that.
They were doing SEO infrastructure and maintenance. Generating sitemaps; keeping the services behind them running. Updating headings and title tags. Reviewing internal links. Owning the ‘header’ and ‘footer’. Owning some low value sections of the website that weren’t important to users (or the company). Inheriting work that other teams didn’t want e.g. keeping legacy WordPress servers running that were important all but once a year when the company ran its annual awards and increased the traffic many folds.
None of it was bad work - and somebody had to do all of it. But they weren’t driving anything. There was no number they owned, no goal they were chasing, and nothing coming up that anyone was excited about. The team was a long way from the customer and even further from any outcome they could point at and say we did that.
Getting the team closer to the outcome
I wanted to change what the team was pointed at. Not their skills, not their headcount, and not how hard they worked. Just what they were aimed at.
That meant three things:
- Get them closer to the customer
- Get them closer to the outcome, with a number that they actually owned
- Get them some wins, because a team that hasn’t shipped anything meaningful in a while stops believing it can
So I went to the VP who owned organic growth and asked a simple question: what are we actually trying to achieve here? Not what tickets need closing. Or how many sitemaps are indexed. What’s the goal?
The answer was traffic. Real traffic. We looked at the roadmap together and realized that most of the upcoming work was slotted for regular maintenace, SEO infrastructure, other teams’ requests and general hygiene. It was all important, but it wasn’t going to move the needle on traffic.
That led to the more useful question. Could we prioritize something that would get us more traffic? The number we are actually trying to grow?
Most of our search traffic wasn’t new
Search was already sending us a lot of visitors. But when we looked closely, much of it was branded - people typing the keywords + company name into Google and clicking the first result.
Those people were coming to us anyway. Google was just the door they happened to walk through.
So the real opportunity became: can we get more people to come to us who weren’t already looking for us? Could we get more non-branded traffic?
Interesting problem for the team to solve
Next day (ish), I told the team that we were going to try to get more non-branded traffic. Their first reaction was: ‘what about the sprint tasks we already have?’. Ahh, ‘Are there things that can wait?’ The answer was in the affirmative (I had already cleared it with the product team).
Next, the team brainstormed. Then someone who has been at the company for a while remembered: ‘a PM for the growth team who’s no longer with the company built a hackathon project that generated pages comparing two companies’. It was never shipped but he remembered it because it was built to capture traffic.
Great! We found it and as I looked at it, I started to see how it could drive a lot of traffic. It had potential.
Next step before commiting was to check whether there was actually demand for it. Were people searching for comparisons between companies? If not, it was a neat idea that would never work.
The team did the keyword research. That work would normally go to an analyst. I gave it to the engineers instead, because the person who understands why a page should exist builds a better page than the person who was handed a list of them. Ahrefs, SEMrush were new to them - and to me - but we learned it together. The demand was there - variations of “X vs Y”, month after month, for companies of every size.
At that point the project stopped being a hunch and became a plan. It was also their plan, because they were the ones holding the evidence for it.
The engineers presented their findings directly to the VP. They showed what they had found, asked their own questions, and got answers first-hand. No PM translation layer.
The objection that made the project better
The VP was skeptical: if we published tens or hundred of thousands of thin pages, those visitors would bounce straight back to Google. That would teach Google that our pages were low quality, and the damage wouldn’t stay contained to the new pages. It would spread to the whole domain.
He was right. And the hackathon prototype had that problem. The comparison it produced looked neat, but there wasn’t much on the page.
I proposed designing it out. What if these pages were genuinely worth landing on? We knew a great deal about these companies, and some of the most useful parts of it normally sat behind a sign-up wall. If we surfaced real, substantive content instead of a teaser, someone arriving from a search would actually get their answer.
That gave him confidence: if we could commit to pages that were genuinely useful, and to targeting the right keywords, we could go build it.
That was the green light.
The team took that commitment seriously. Instead of a PM handing down a spec, the engineers worked directly with the PM and the designers on the page itself. They tried different designs and ran sessions with real job seekers to find out whether someone landing there actually got what they came for. The page changed based on what they heard.
Not all demand is your demand
Someone searching “Uber vs DoorDash” may not be asking an employment question at all (employment was our domain). They might be a customer deciding where to order dinner. Matching a query is worthless if you can’t answer what the person actually wanted.
So we drew a line: if we couldn’t confidently say the searcher wanted what our page offered, we didn’t build the page.
This is where a lot of programmatic SEO goes wrong. It is cheap to generate every permutation you can and ship a million pages, and then watch a search engine quietly bury them all. Publishing pages nobody wants teaches a search engine that your site produces low-value content. We had an established domain with real reputation. Torching it for a short-term traffic bump would have been a terrible trade.
We went to the analytics team first and asked what it would take to classify intent properly. Their estimate was several weeks of research.
That was an honest answer to the question I had asked. It was also the wrong amount of time to spend before we knew whether any of this worked at all.
So we changed the question. We didn’t need the perfect keyword set. We needed one that was good enough to test the idea, and safe enough that it couldn’t damage the domain if we turned out to be wrong. Quality could be a problem for later, if the experiment earned a later.
Working with the analytics teams, we picked ten thousand keywords that cleared both bars. The list was ready in about a week.
Run the tracks in parallel
We didn’t do this sequentially. Engineers started building the page templates with design team, and the generation pipeline while the rest of us were still assembling and filtering the keyword list. To make sure the pages were useful, the engineers worked with design to run usability testing. They asked real job seekers to see if content is helpful.
The two tracks only needed to meet at the end. Waiting for a finished keyword list before writing any code would have doubled the timeline for no reason.
Ship in batches and watch
We shipped the first batch and then mostly watched.
Watching was part of the work, not an afterthought. We built custom dashboards for it, because the numbers we needed weren’t the ones anyone was already reporting.
Two things mattered. First, were the new pages getting indexed? Generating pages is free. Getting Google to keep them is not. Second, and more important, was the rest of the site okay? Overall traffic. Rankings on pages that had nothing to do with this project. A large batch of thin pages can drag down how a search engine sees your entire domain, and we had far more to lose on what already existed than we had to gain here.
Then we waited. We rolled out gradually and kept watching for well over a month before we were satisfied that nothing was being hurt.
Only then did we go hard at it.
Sitting on something that looks like it is working is uncomfortable, and it felt slow while we were doing it. But what we were risking was the domain’s reputation, and you don’t get that back on a schedule you control.
What it was worth
That one feature drove somewhere in the range of 3 to 4 million new visits a year.
Here’s the part I like better. It was, honestly, a hack. It was built quickly to go capture traffic a few years ago. And those pages are still up and still working today.
The traffic was the point, but it wasn’t the most valuable outcome.
The team stopped being the group that just ‘generated sitemaps’ and became the group that owned a growth number. They had done their own research, presented it to an executive themselves, sat with users, and shipped something that moved a number they cared about. They had something to chase and a win to point at.
When it was done, the lead engineers presented the project at the engineering all-hands, in front of the whole company. Aftet their presentation, they got a huge round of applause from the whole company. They had unlocked growth.
I think about that more than I think about the traffic. A few months earlier, these were the people keeping legacy WordPress servers running and fixing other teams’ title tags. Now they were up there explaining how they had found demand nobody was serving and built the thing that captured it. You could see they were proud of it.
The team was different after that, and the dynamics inside it were different too. Nothing about the people had changed. They had been pointed at something worth doing, and then allowed to be the ones who did it.