How to get customers with programmatic SEO

You don't need an audience or a marketing budget to get visitors. Here's how to grow a startup for free when you're a solopreneur who loves coding.

Imagine making money while you sleep… with 0 followers and $0 in marketing.

Sounds like I’m selling you a get-rich-quick course. Hold on!

This is just a guide about how I get 300 visitors a day from Google, for free, using programmatic SEO.

What’s Programmatic SEO?

Programmatic SEO (pSEO) is a marketing strategy to rank on Google for a group of long-tail keywords related to 1 main keyword.

You use programming to build a skeleton. And you fill it with content, usually generated programmatically too. In other words, SEO for features-addict developers.

That’s how I got

I built them once and never touched them again. All free traffic from Google.

1. Find 1 keyword

Let’s use a real example.

Our business is a directory of rage rooms — like TripAdvisor — to help people find the best place to smash away stress.

The business model?

  1. Get traffic on autopilot

  2. Show ads and profit

  3. Move to Bali

Let’s skip the last part and focus on getting traffic with pSEO.

First, you need 1 keyword with:

  • Keyword Difficulty (KD) lower than 20. It requires 10 backlinks or less required to rank on Google

  • Search volume superior to 500 per month in 1 country (3x this for worldwide searches)

Ahref's free keyword generator tool shows you exactly that. And guess what? The keyword “rage room” is (almost) perfect.

KD is a bit high for a start, it’s just an example

Second, we need numerous long-tail keywords (at least 20).

There’s a high volume of searches for  “rage rooms in [city]” and a low keyword difficulty. Let’s build around these keywords.

2. Build a webpage empire

We want to create 1 webpage per long tail keyword.

There are 333 cities with over 100,000 people in the USA. Let’s assume there are 1000 rage rooms (random guess).

Here’s what our website structure looks like:

  • / → main welcome page (1 webpage)

  • /[city] / → all rage rooms in [city] (1 skeleton, 333 webpages)

  • /rage-room/[rage room name] → a rage room page (1 skeleton, 1000 webpages)

a. Create a skeleton

A skeleton is an HTML mold. Add some data, and you have a unique webpage.

My product WorkbookPDF has 1 skeleton for 25 pages: https://workbookpdf.com/free/[language]

For instance, the skeleton for the /[city] route (the 333 webpages with all rage rooms in [city]) would look like this:

  • H1: “The [total] best rage rooms in [city]”

  • Description: “Explore [city]’s top rage rooms! Find the perfect spot to smash away stress and have a blast. From [district_1] to [district_2], we've got you covered. Let the fun begin!”

We want to build as many valuable pages as possible. Pretend you’re searching for a rage room in New York. What do you want to see?

  • The list of rage rooms, sorted by Google Maps stars

  • The price per hour and the type of objects you can break

  • A button to book a rage room

The list goes on. Search for patterns while crafting the experience of the end-user. By building 3 HTML skeletons, we can have 1334 web pages ranking on Google.

BooksCalculator has 100+ pages ranking for “How long to read [pages_number]?”

b. Collect good data

We need rich data to build valuable web pages and rank on Google. For example:

  • 333 cities

    • City name

    • City photo

    • Popular districts

  • 1000 rages rooms

    • Business name

    • Starting price

    • Reviews

Most of our data could be obtained using Google Maps API.

To get richer data, outsource the data collection for a few hundred dollars and/or use ChatGPT for some parts, like the meta description.

For GamifyList, I spent $150 to collect the best 600 gamification apps from a VA

c. Optimize your SEO

Once you have 1334 webpages built with your skeleton and the data, make them SEO-friendly

  • The long tail keyword should be in the title and <h1> tags, at least

  • The images should have an alt text, good size, and lazy loaded

  • Links and buttons should have titles

Lighthouse (Google Chrome) is your best friend.

Optimize for the long tail keywords, and add them at different strategic locations.

Don’t stuff keywords though. Only add them where it matters for users.

Other marketing channels to get customers and grow your micro startup:

3. Rank on Google

We need around 10 backlinks to start ranking on Google.

a. Launch

The easiest way to start is to launch on Product Hunt which gives you a follow link, regardless of the upvotes. Nice!

LogoFast was reshared in many newsletters after the launch

Platforms like Hacker News, Twitter & Reddit work too. It’s a nofollow link, but people might reshare the website in their newsletter or blog.

If you’re serious about the project, investing in backlinks is a great way to kickstart the ranking.

You can either purchase a listing in a popular directory, like TIAAFT, or buy a listing of sites to submit yours, like BACKL.IO

c. Submit to Search Console

Verify your domain name in the Google Search Console.

Then manually request for a few page indexing. It makes Google index your website faster.

Search for a URL and click “Request Indexing”

Now, wait. Indexing is fast, but ranking for keywords takes 3 to 6 months.

You will get traffic from Google on autopilot, for free. Monetize it with a product or ads and you make money when you sleep.

If you’re a developer who loves coding too much (like me) check out my guide about growing a startup with free tools.

PS: Thanks to Danny who taught me everything about pSEO. My article is a wrapper around his knowledge. Thanks to Elias who kickstarted the SEO for one of my projects.

Whenever you're ready, there are 5 ways I can help you:

  1. ShipFast: Ship startups in days, not weeks with the NextJS boilerplate loved by 1,800+ developers.

  2. LaunchViral: Grow your startup with viral launch videos.

  3. IndiePage: Join 3,000+ solopreneurs and showcase your startups.

  4. PoopUp: Turn your visitors into customers with wake-up call popups.

  5. ZenVoice: Stripe invoices, without the fee.

Join the conversation

or to participate.