Get Ranked On Top · Build booklet
Commerce SEO series · North America
Tinkerloft · Kids' coding course marketplace · Seattle
Building a marketplace of 900 kids' classes that search engines could actually crawl
- Months
- 11
- Classes
- 900
- Steps
- 11
+204%
organic class enrolments
Before you begin · check your parts
Half the box was missing.
Thousands of class listings expired weekly and filters created endless parameter URLs, so Google indexed stale or duplicate classes.
Tinkerloft lists about 900 coding, robotics and game-design classes for kids across Seattle. Each class runs as many dated sessions, and every session had its own URL. When sessions filled or ended, the pages stayed up. Filters stacked parameters on top. Google was spending its time on pages parents could never book, and the live classes were crowded out.
Where Googlebot crawled — month 1
Where Googlebot crawled — month 11
- Parameter URLs 64% → 6%
- Expired sessions 19% → 7%
- Duplicates 9% → 3%
- Live classes 8% → 84%
- A1
Soft-404 class pages
About 3,400 sessions expired every week but kept answering 200 with a 'sold out' banner.
- A2
Facet URL explosion
Age × day × topic × price × area filters produced 186,000 crawlable combinations from 900 classes.
- A3
Duplicate titles
61% of indexed listings shared their title with another session of the same course.
- A4
No structured data
Zero Course or Offer markup: no price, ages or availability in results.
- A5
Thin category pages
140 hubs with a 40-word intro and no links between age bands or neighbourhoods.
- A6
Stale sitemap
38% of sitemap URLs pointed at sessions that had already ended.
Parts list · the strategy
4 kinds of part, one sturdy build.
The build follows our Commerce SEO plan (ecommerce seo). The rule was simple: every URL Google can reach has to be a page a parent could book from. Each part below does one job toward that.
×900
Part B1
Course feeds
One canonical page per course, sessions streamed underneath from the booking database. Expired sessions redirect to the course; sitemaps and IndexNow update hourly.
×3
Part B2
Faceted navigation
Only three facets earn indexable paths: age band, topic and neighbourhood. Everything else filters without creating a URL Google can crawl.
×4
Part B3
Product schema
Four JSON-LD types (Course, Offer, AggregateOffer, Product for camp bundles), validated per template in CI so a deploy cannot break them.
×140
Part B4
Category pages
140 hubs rebuilt as genuinely useful guides: age-fit tables, FAQs, live 'starting soon' sessions and cross-links along the age ladder.
Build steps · 11 months
One brick a month, bottom up.
Foundations first: nothing else holds until crawling is under control. Step through the build to see each month's work and how much of the index was live, valid classes at that point.
Step 1 · Month 1 of 11
Inventory every URL
Crawled 214,000 URLs and joined them to the booking database to label each one live, expired, duplicate or parameter noise.
×1 Crawl map
- Valid indexed listings
- 31%
- Enrolments index
- 100
Finished model · results
+204% organic class enrolments.
Modelled scenario for a fictional business — not a client result. Rankings and traffic are never guaranteed; see our Terms.
Valid indexed listings
31% → 94%
valid at start added by month 11
Category pages ranking top 10
112
Organic revenue
+176%
Organic class enrolments, month by month
Index: month 1 = 100
Rankings, Seattle, Google desktop
| Keyword | Vol. | Before | After |
|---|---|---|---|
| summer coding camp seattle | 3,100 | 22 | 1 |
| coding classes for kids seattle | 2,400 | 18 | 2 |
| python camp for teens seattle | 720 | 41 | 3 |
| scratch coding class ages 8 | 880 | — | 4 |
| roblox game design class kids | 1,000 | 55 | 4 |
| minecraft coding course kids | 1,900 | 63 | 5 |
| kids robotics class near me | 6,600 | 27 | 6 |
| online coding class for 10 year olds | 1,300 | — | 8 |
Modelled positions; “—” means not in the top 100.
Build your own
Get a plan like this
Marketplaces, listings that expire, filters that multiply: if your catalogue moves faster than Google can keep up, we will map the parts and write the steps.