Case Studies → Cars & Bids
TECHNICAL SEOINDEX OPTIMIZATIONE-COMMERCE2018

Cars & Bids — Automotive Platform
SEO Architecture Rebuild

Cleaned 8,432 garbage URLs from Google’s index and rebuilt site architecture for America’s leading automotive auction platform.

+50KMonthly Visitors
8,432URLs Cleaned
TOP-5Platform USA
350GBDatabase

THE CHALLENGE

Client’s Challenge

Cars & Bids is a TOP-5 car selling platform in the USA and #1 for direct buyers, powered by neural networks with a database exceeding 350 gigabytes and over 1,000,000 unique annual visitors.

The problem: aggressive product growth left thousands of garbage URLs in Google’s index — expired filters, duplicates, technical pages, old listings. Each wasted crawl budget and diluted site authority across the domain.

Additionally, the semantic core of 35,000+ keywords had never been properly clustered. New filter architecture was generating parasitic URLs daily without any control mechanism.

  • 8,432 garbage URLs indexed by Google (expired listings, duplicate filters)
  • Crawl budget wasted on non-converting technical pages
  • 35K+ keywords without clustering or silo structure
  • Filter combinations auto-generating infinite URL variations daily
  • Zero structured data for vehicle listings (missed rich snippets)
ClientCars & Bids (formerly Auto Auction Mall)
IndustryAutomotive / E-commerce
Year2018
Duration5 months
ServicesTechnical SEO, Architecture Rebuild, Link Building
StackPython, Screaming Frog, GSC API, Custom Crawlers

OUR METHODOLOGY

How We Solved It

01

Index Audit

Complete GSC data export combined with custom crawler to identify all garbage URLs. Mapped every indexed page against sitemap and business value.

02

Canonical Strategy

Deployed canonical tags for all filter variations, implemented proper parameter handling in GSC, and set up hreflang where needed.

03

Architecture Rebuild

New category structure built around make/model/year/price hierarchy. 450 landing pages with unique, valuable content for each segment.

04

Content Optimization

Created detailed vehicle category descriptions, buying guides, and comparison content targeting high-intent automotive keywords.

05

Link Building Campaign

85 high-authority backlinks acquired from automotive media including Car and Driver, Edmunds, and enthusiast publications.

PROOF OF WORK

Our Implementation




index_audit.py
# WebCoreLab — GSC Index Pollution Detector
import pandas as pd
import re
from googleapiclient.discovery import build

class IndexPollutioAuditor:
    GARBAGE_PATTERNS = [
        r'?.*sort=',           # Sort parameter URLs
        r'?.*page=[2-9]d*',   # Deep pagi
atio

        r'/listi
g/[0-9]+/.*',  # Expired listi
gs
        r'?color=.*&type=',    # Multi-filter combos
    ]

    def ide
tify_garbage(self, urls_df):
        urls_df['is_garbage'] = urls_df['page'].apply(
            lambda url: a
y(re.search(p, url)
                           for p i
 self.GARBAGE_PATTERNS)
        )
        urls_df['action'] = urls_df.apply(
            lambda r: '
oi
dex+ca
o
ical' if r['is_garbage']
                     a
d r['clicks'] == 0
                     else 'review' if r['is_garbage']
                     else 'keep', axis=1
        )
        return urls_df

# Total GSC URLs a
alyzed: 127,439
# Garbage URLs ide
tified: 8,432 (6.6%)
# Action: noi
dex + ca
o
ical → removed i
 6 weeks
# Crawl budget recovered: ~34%

THE RESULTS

Measurable Impact

Measured 90 days after index cleanup

+50K
Monthly Visitors
Unique organic visitors
8,432
URLs Cleaned
Removed from Google index
+34%
Crawl Efficiency
Budget recovered
TOP-3
280 Keywords
High-intent automotive terms
54→67
Domain Rating
Link building campaign

“WebCoreLab identified thousands of garbage URLs we didn’t even know existed. Their systematic approach to index cleanup and architecture rebuild directly translated to a 50K monthly visitor increase. The ROI on this project paid for itself within the first month.”

— D.K., Director of Digital, Automotive Platform (NDA)

Ready for Similar Results?

Book Free AI Audit →

/* This will be injected before — handled via separate file */