Case study · technical audit + keyword plan + link budget

347,177 URLs. 659 visits a month.

A US industrial and MRO distributor with a full e-commerce catalogue — 340,981 product pages, 3,471 categories, 2,587 brand pages. In search terms, almost none of it exists.

Scope 28-URL sample + full sitemap analysis Data crawl + rendering check + Ahrefs, October 2026 Access none — external data only

1The number that matters

340,981
product pages published
99
keywords ranking anywhere
39%
of traffic is the company name

A catalogue this size should be a search asset — every part number is a query someone types. Instead the site earns fewer visitors than a well-run ten-page business site, and four in ten of those visitors already knew the company.

2The cause, in one test

We fetched 28 URLs the way a crawler does, then opened the same URLs in a real browser.

What a crawler receives

  • Identical 126,007-byte shell on every URL — home page, category, product, brand page
  • No title tag
  • No meta description
  • No H1
  • No canonical
  • Zero words of body text

What a browser shows after scripts run

  • Title appears — the raw part description
  • Product specifications and copy appear
  • Category listings appear
  • Still no H1 on product pages
  • Still no Product structured data
  • Home page still has no meta description
The entire catalogue is client-side rendered. Google can render JavaScript, but it does so in a second pass, on a budget, and it decides how much of a site deserves that budget. At 347,000 URLs, a site asking for rendering on every page is asking for more than it will get — and the evidence is in the ranking count.

The proof that this is the binding constraint and not the market: the site holds #1 for "lab supplies" — 1,300 searches a month. One category where the page carries real text ranks first. The other 3,470 categories do not.

3What else the audit found

FindingScaleWhy it costs money
Product pages have no H1all sampled Even after rendering. The part name — the exact thing people search — is never marked as the page heading.
No Product structured datacatalogue-wide No price, availability or review markup anywhere. In a category where competitors show price and stock directly in results, this site cannot be shown at all.
Home page: no meta description, H1 reads "Explore available brands", no H2s1 The most linked page on the domain describes itself to Google as a brand directory.
Category pages: 146 words, description duplicates the H13,471 Nothing to rank with. This is the layer that should capture "band saw blades" and "industrial fasteners".
An error page is listed in the sitemap1 /UnhandledError returns HTTP 500 and is submitted to Google for indexing.
Account pages submitted for indexing~40 Create-account, cart, checkout, quick-order, RFQ. Two were verified live: "create account" and "your password reset link has expired" both return 200 and are marked indexable.
Duplicate URLs inside the sitemap24 Small, but it is the signal of a sitemap that is generated without validation.
Non-www redirects with a 302, not 301sitewide A temporary redirect on the canonical host decision, in place indefinitely.
Images without alt text on the home page6 of 42Minor next to the rest, listed for completeness.

4The demand they are missing

US monthly search volume for categories already present in this catalogue.

SearchPer monthDifficultyCost per clickStatus
welding supplies3,30029$0.80not ranking
band saw blades3,1001$0.90#12
safety supplies1,40032$2.50not ranking
lab supplies1,30039$1.90#1
industrial fasteners1,1000$1.50not ranking
mro supplies1,0000$1.50not ranking
abrasives supplier20068$0.45not ranking
masking tape bulk1000$0.90#6
industrial hose clamps700$1.20#6
hard hats bulk401$1.40not ranking
11,690 searches a month in the head terms alone — before counting the part-number searches that a 340,000-product catalogue should own outright. "Band saw blades" sits at #12 against difficulty 1: a category page with real copy moves that onto page one.

The plan, in order

  1. Serve HTML that contains the page. Server-side rendering or pre-rendering for category and product templates, so title, description, H1, canonical and body copy exist before JavaScript runs. Nothing else in this plan produces a result until this is done.
  2. Give product pages an H1 and Product markup — part name as heading, price and availability as structured data. One template change across 340,981 pages.
  3. Write the top 50 category pages — 300-600 words of buying guidance, specification help and cross-links. Prioritised by the demand table above; "lab supplies" is the proof this works.
  4. Clean the sitemap — remove the 500 error page, the account and checkout URLs, and the duplicates; noindex the account area; make the generator validate what it publishes.
  5. Fix the 302 on the canonical host.
  6. Then scale to part numbers. With rendering fixed and a product template that carries headings and markup, the long tail of 340,000 part numbers becomes reachable — that is where a catalogue of this size eventually earns its traffic.

5Link profile — not the problem

31
domain rating
859
referring domains (live)
1,020
live backlinks

Authority is respectable for the sector — acquisitions and trade press have earned this domain real links. It is not what is holding the site back.

CompetitorAuthorityTrafficKeywords
Tooling manufacturer747,2171,137
Small online tool retailer203,3812,396
Regional supply distributor161,3951,104
This distributor3165999
The second row is the whole argument. A retailer with authority 20 against this site's 31 ranks for 2,396 keywords and takes five times the traffic. Its pages are server-rendered HTML with headings and text. No amount of link building closes a gap that is caused by pages a crawler cannot read.

Link budget

ItemVolumeWhy
Nothing, until rendering is fixed0Links pointing at pages with no title, no H1 and no text are spend with no mechanism to pay off.
Afterwards: manufacturer and distributor-locator links20-40Brands this distributor carries maintain "where to buy" directories. Relevant, free, and rarely claimed.
Trade press around acquisitionsongoingPress-release pages already rank for acquired company names — the pattern works, it simply is not being used deliberately.
Supplier and association directories10-20Industry bodies and safety associations; standard, durable B2B citations.

6What is not in this report