How We Fixed 30,000+ Product Discoverability on Google

How We Fixed 30,000+ Product Discoverability on Google

“Google can’t find our products.”

That’s exactly what a client told me last month. They run an eCommerce business selling tractor parts, with thousands of SKUs across multiple brands and models.

The issue was alarming:
When customers searched for something as specific as “John Deere 4020 parts”, their website simply did not appear.

The products were there.
The demand was there.
But Google couldn’t see them.

The real problem was discoverability.

The Root Cause — A Search Engine Blind Spot

After auditing the site, the issue became clear very quickly.

What Google Was Seeing

  • Over 30,000 equipment models in the database
  • Only ~200 pages indexed by Google

What Was Missing

  • No sitemap
  • No logical URL hierarchy
  • No crawlable structure for search engines

From Google’s perspective, most of the catalog simply did not exist.

The Solution — An SEO-First Parts Finder Architecture

Instead of adding more content or plugins, we focused on structure.

We built a hierarchical Parts Finder designed specifically for SEO.

URL Hierarchy We Implemented

Equipment Type → Brand → Model → Parts

Each level was given its own clean, crawlable URL, such as:

  • /type
  • /type/tractor
  • /type/tractor/brand/john-deere
  • /type/tractor/brand/john-deere/model/4020

This allowed:

  • Clear topical relevance
  • Logical internal linking
  • Proper crawl depth for Google

The Real Game-Changer — Dynamic Sitemap Generation

The most critical piece was the dynamic sitemap system.

Instead of manually managing URLs, we created sitemap generators that automatically:

  • Crawl the live database
  • Detect every valid equipment–brand–model combination
  • Generate URLs on the fly

The Technical Core (Simplified)

Here’s a simplified example of how the sitemap logic works:

@staticmethod
def sitemap_types(env, rule, qs):
    for equipment in env['tractor.model'].search([]):
        yield {
            'loc': 'type%sbrand%smodel%s' % (...)
        }

Why This Matters

  • This function runs every time Google requests sitemap.xml

  • URLs are generated from real-time data

  • New models automatically appear without manual work

In short:
The sitemap stays perfectly in sync with the database.

The Results — Fast, Scalable, and Maintenance-Free

Within days, the impact was visible.

Measurable Outcomes

  • 30,000+ pages added to the sitemap

  • Automatic updates for new models

  • Zero manual maintenance

  • Google began indexing new pages within 48 hours

Final Takeaway

Sometimes, the best SEO solutions are not about:

  • Adding new features

  • Writing more content

  • Chasing algorithms

They’re about making existing content discoverable.

If search engines can’t find your pages, they might as well not exist.

Your Turn

What’s your biggest SEO challenge with dynamic or database-driven content?

Book a consultation and let’s make your content discoverable.

For more insights into Odoo Web Development, check out our other blogs at Byte Legions Blog.

How We Fixed 30,000+ Product Discoverability on Google
How We Fixed 30,000+ Product Discoverability on Google

“Google can’t find our products.”

That’s exactly what a client told me last month. They run an eCommerce business selling tractor parts, with thousands of SKUs across multiple brands and models.

The issue was alarming:
When customers searched for something as specific as “John Deere 4020 parts”, their website simply did not appear.

The products were there.
The demand was there.
But Google couldn’t see them.

The real problem was discoverability.

The Root Cause — A Search Engine Blind Spot

After auditing the site, the issue became clear very quickly.

What Google Was Seeing

  • Over 30,000 equipment models in the database
  • Only ~200 pages indexed by Google

What Was Missing

  • No sitemap
  • No logical URL hierarchy
  • No crawlable structure for search engines

From Google’s perspective, most of the catalog simply did not exist.

The Solution — An SEO-First Parts Finder Architecture

Instead of adding more content or plugins, we focused on structure.

We built a hierarchical Parts Finder designed specifically for SEO.

URL Hierarchy We Implemented

Equipment Type → Brand → Model → Parts

Each level was given its own clean, crawlable URL, such as:

  • /type
  • /type/tractor
  • /type/tractor/brand/john-deere
  • /type/tractor/brand/john-deere/model/4020

This allowed:

  • Clear topical relevance
  • Logical internal linking
  • Proper crawl depth for Google

The Real Game-Changer — Dynamic Sitemap Generation

The most critical piece was the dynamic sitemap system.

Instead of manually managing URLs, we created sitemap generators that automatically:

  • Crawl the live database
  • Detect every valid equipment–brand–model combination
  • Generate URLs on the fly

The Technical Core (Simplified)

Here’s a simplified example of how the sitemap logic works:

@staticmethod
def sitemap_types(env, rule, qs):
    for equipment in env['tractor.model'].search([]):
        yield {
            'loc': 'type%sbrand%smodel%s' % (...)
        }

Why This Matters

  • This function runs every time Google requests sitemap.xml

  • URLs are generated from real-time data

  • New models automatically appear without manual work

In short:
The sitemap stays perfectly in sync with the database.

The Results — Fast, Scalable, and Maintenance-Free

Within days, the impact was visible.

Measurable Outcomes

  • 30,000+ pages added to the sitemap

  • Automatic updates for new models

  • Zero manual maintenance

  • Google began indexing new pages within 48 hours

Final Takeaway

Sometimes, the best SEO solutions are not about:

  • Adding new features

  • Writing more content

  • Chasing algorithms

They’re about making existing content discoverable.

If search engines can’t find your pages, they might as well not exist.

Your Turn

What’s your biggest SEO challenge with dynamic or database-driven content?

Book a consultation and let’s make your content discoverable.

For more insights into Odoo Web Development, check out our other blogs at Byte Legions Blog.

Comments are closed