Video summary

I Built a Rank and Rent Style Directory from Scratch with Wordpress

Main summary

Key takeaways

Technology

Overview / Origin Story (Lead-Gen Directory “Rank & Rent” Idea)

  • The creator learned that business directories can be monetized via lead submission forms: a person is paid to place a lead form on every listing (short-lived deal, ~5 days).
  • The hypothesis: users who visit directory listings are willing to convert into leads.
  • They build an experimental WordPress directory to test whether blogs + directory listings can generate leads in a niche that’s typically hard to rank: carpet cleaning in California.

Niche Research + Why This Structure is “Hard”

  • Target niche: Carpet cleaning (California), framed as:
    • Huge search demand (millions for “carpet” questions; large local-intent volume).
    • A “trap niche” warning: despite volume, ranking is harder due to competition and many established players (e.g., Yelp, HomeGuide, Angi).
  • Strategy:
    • Use top-of-funnel informational blogs (e.g., “how to remove cat urine smell”) to drive users into the directory.
    • Monetize via lead capture embedded on listing pages.

Tools / Stack Used

  • WordPress + Elementor Pro + GeoDirectory (similar general stack to prior builds).
  • AI throughout the build:
    • ChatGPT/Claude Code for research, content cleanup, and data cleaning/enrichment.
    • An AI enrichment SaaS: EnrichDirectory (created by the creator and a collaborator).

Directory Page Model Decision (Pillar vs Listing Pages)

The creator decides based on:

  1. Keyword intent and competition patterns in SEO tools
  2. Competitor structure (many competitors rank with individual business listing pages)
  3. Manual checks via Google Maps branded queries

Conclusion: proceed with individual listing pages (not a pillar-page directory).

Domain / Hosting Setup (Hostinger)

  • Uses Hostinger “managed WordPress hosting” to:
    • Register domain
    • Install WordPress
    • Benefit from Black Friday pricing and features (SSL, templates, migration, etc.)

Data Scraping at Scale (Google Maps → Listings)

  • Scraper: OutScraper
  • Key fields captured:
    • Name, website, phone, full address, lat/long
    • Review count, photos, working hours
    • A Google Maps location link (used later for enrichment)
  • Scale:
    • Initially scraped very large datasets (eventually mentioned: 114,000 listings, costly).
    • Then filtered to California (about 5,200-ish before additional cleaning).

Data Cleaning Workflow (Heavy QA + AI-Assisted Cleanup)

1) Filter out irrelevant/low-quality entries

  • Remove “permanently/temporarily closed”
  • Remove businesses with no reviews
  • Remove missing critical fields (e.g., missing street)
  • Remove entities that aren’t truly carpet cleaners (e.g., Walmart/Home Depot; hardware/flooring/laundromats patterns)

2) AI-assisted cleanup

  • ChatGPT flags obvious non-matching businesses.
  • Claude Code generates/executes scripts to remove irrelevant rows.

3) Quality thresholding

  • Removes listings below a review-count cutoff (example: fewer than 10 reviews) to keep “best of the best.”

Result: dataset shrinks dramatically after multiple passes (down to thousands, and later further reduced by enrichment filters).

Data Enrichment (Turn Reviews into Structured “Why This Matters” Signals)

  • Enrichment goal: extract repeated review themes relevant to intent, such as price, smell, stains, pet odors.
  • Enrichment columns/questions include:
    • “Is pricing fair and transparent?”
    • “Does this remove bad smells?”
    • “Does it remove cat/dog smells and stains?”
  • EnrichDirectory outputs:
    • Per-attribute results split into:
      • boolean (true/false)
      • explanation (why the tool decided)
      • evidence snippet (often quoting the review fragment)

Important dependency: enrichment requires each record to include the location link.

“Troll” Hyper-Specialized Pivot: Cat + Dog Odor Proven Listings

After enrichment, they apply stricter filters:

  • Keep only listings where both cat and dog odor fields are true
  • Prompt Claude Code to remove anything not matching the criteria

Final dataset size stated: 395 listings with evidence for both cat and dog odor removal.

Listing Content Generation (AI Descriptions)

  • Re-generates GeoDirectory listing descriptions using review-derived context.
  • Starts with straightforward AI descriptions.
  • Then reprompts to add more storytelling/anecdotal evidence (avoiding plagiarism).
  • Output is intended to be aligned to the narrowed cat/dog odor intent.

GeoDirectory Implementation (Import Format Matching)

  • Installed WordPress plugins:
    • Elementor Pro
    • GeoDirectory (and optional extensions)
    • iCode to import a GeoDirectory-style demo/template
  • Customization steps:
    • Create a test listing and verify required fields, permalinks, and page rendering
    • Remove irrelevant custom fields from the “properties” post type (real-estate template → carpet cleaning niche)
    • Rename labels and slugs to match the niche (e.g., “carpet cleaners”)

Import Pipeline: CSV Formatting to Match GeoDirectory

  • They export a sample listing CSV from GeoDirectory to match required formats, notably:
    • HTML formatting in post content
    • Strict business hours JSON/timezone format
    • Column naming conventions (including lowercase column headers)
  • AI-assisted formatting fixes:
    • Working hours converted into GeoDirectory’s expected format using ChatGPT
    • Street addresses split into street and street 2 to avoid mapping/geocoding issues

Image Import Gotcha (Header/Featured Image Issue)

  • Problem: “header image” didn’t appear after import.
  • Cause: leaving media ID empty was required for new listings; including it broke image handling.
  • Fix:
    • Remove the media ID in the CSV image field
    • Re-import so the featured image displays properly

SEO + URL Improvements (Permalinks)

  • GeoDirectory default permalinks were too long.
  • They adjust GeoDirectory permalinks to create cleaner URLs, e.g.:
    • /carpet cleaner/cal/<city>/<postname>
    • California is emphasized through the location logic.

Theme Building in GeoDirectory (Templates)

Customized GeoDirectory templates:

  • GD single (individual listing page)
  • GD archive (search results / archive listing pages)
  • GD archive item (the card/box component)

Homepage changes:

  • Minimal SEO structure (main keyword like “carpet cleaning services in California”)
  • Blog section
  • FAQs
  • Internal links to locations

Lead Capture per Listing

  • Each listing includes an embedded lead form (built with Tally.so), designed to funnel prospects into centralized lead capture.

Location Pages + Indexing Concern

  • Dynamic location pages can have unfriendly slugs that may not be indexed.
  • Workaround:
    • Use GD template widgets (e.g., “edit GD locations”) to generate/find clean internal link targets to city pages.
  • They mostly link location pages internally to avoid “orphan pages,” accepting that location pages may not bring traffic.

Blog Production Pipeline (Keywords → AI Briefs → WordPress)

  • Target informational queries from Ahrefs (pet stains/odor questions).
  • Process:

    1. Export top ~1000 keywords to a CSV
    2. Use Claude Code to select best blog topics (stains/pets)
    3. Use Claude Code to write full SEO blogs
    4. Use a single reusable Elementor blog template to insert content into WordPress
  • Example blog topics created:

    • “How to get pee smell out of the carpet” (methods + DIY vs professional)
    • “How to get dog pee out of the carpet” (similar pet/biological stain topics)
  • Adds a CTA inside DIY sections for price quotes via the California professional network.

Analytics + Indexing Setup

  • Uses Google Site Kit for:
    • Google Analytics
    • Google Search Console
  • Submits sitemap:
    • wp-sitemap.xml
  • Encourages waiting for crawl/indexing.

Explicit Limitations / Expectation Setting

  • This is framed as an MVP / experiment, not a guaranteed “grand slam.”
  • Suggested improvement areas:
    • more thorough enrichment
    • stronger on-page SEO / keyword clustering

Main Speakers / Sources

  • Speaker/creator: YouTube author (first-person throughout the build), constructing a WordPress directory “from scratch.”
  • Tools/vendors mentioned:
    • Hostinger, OutScraper, GeoDirectory (and iCode)
    • Elementor Pro, EnrichDirectory (creator’s SaaS), Tally.so, Ahrefs
    • Claude Code, ChatGPT
    • Google Site Kit / Google Search Console / Google Analytics

Original video