// CASE-STUDY

B2B ecommerce SEO case study: enzymes.bio GSC audit

7,950 organic clicks/mo, 557,000 impressions/mo, and 591,000 not indexed pages was the shape of the problem. The audit also found 16,100 indexed pages, 35 languages, and 0 external backlinks, so the ceiling was technical before it was content.

The numbers

Clicks / month
BEFORE 2,770 May 2025
AFTER 7,950 May 2026
+187%
Impressions / month
BEFORE 392K May 2025
AFTER 557K May 2026
+42%
Indexed pages
BEFORE 8,400 May 2025
AFTER 16,100 May 2026
+92%
Avg. position
BEFORE 21.4 May 2025
AFTER 11.8 May 2026
+9.6 positions
Open case study spread showing Enzymes.bio organic clicks and SEO impact metrics

What the audit found

On May 2026, enzymes.bio was pulling 7,950 organic clicks/mo from 557,000 impressions/mo in Google Search Console. That sounds healthy until you pair it with a 1.4% sitewide CTR, avg position 12.4 across the account, and 16,100 indexed pages sitting beside 591,000 not indexed.

That gap is the story. The site had 943 orders to date, $240,809 lifetime revenue, and a $255 AOV, so the commercial base was real. But the technical ceiling was obvious: 0 external backlinks in Links › External links meant Google had almost no off-site trust signals to help poor crawl efficiency or weak query coverage.

This was a gsc audit case study first, not a content rewrite exercise. The first pass used Performance › Search results, Indexing › Pages, Indexing › Sitemaps, Enhancements › Breadcrumbs, Enhancements › Product snippets, and Settings › Crawl stats before touching page templates. The page-level patterns were clearer than any export from a third-party crawler.

Screenshot note: the key charts are the GSC Performance › Search results and Indexing › Pages views, plus a sample from the report set in /images/screenshot-gsc-sample.png.

Why GSC was the source

Query demand was already there

Performance › Search results showed enough impressions to prove demand. The issue was not discovery; it was capture. A 1.4% CTR against a 12.4 average position means pages were getting seen, but not enough were winning the click.

Indexing was detached from scale

Indexing › Pages split the site into 16,100 indexed pages and 591,000 not indexed. That ratio told me Google could find huge amounts of URL space, but it was choosing not to keep most of it in the index.

The site had language complexity

With 35 languages via TranslatePress, this was a multi language seo case study as much as an ecom audit. Language alternates, canonical logic, and sitemaps all had to line up or Google would keep reprocessing the same templates.

Trust signals were thin

Links › External links showed 0 external backlinks. That is the rate-limiter. If internal architecture and index hygiene are weak, zero backlinks leave you with no external pressure to refresh crawl paths or improve URL prioritization.

Snippets were under-specified

Enhancements › Breadcrumbs, Enhancements › Product snippets, and Enhancements › FAQ exposed schema coverage that was incomplete relative to the page inventory. The result was fewer rich-result pathways on commercial pages.

Hand-drawn SEO audit summary comparing before and after metrics for enzymes.bio in May 2026

Indexing signals at a glance

FieldObservedWhy it mattered

Organic clicks / mo

7,950

Traffic was growing, but position and CTR were still limiting.

557,000 impressions / mo

There was enough demand to work with; the problem was conversion from impression to click.

1.4% sitewide CTR

Snippet quality and ranking distribution were both suppressing clicks.

Avg position

12.4 overall; 11.8 in May 2026

Most valuable queries were sitting on page 2.

Indexed pages

16,100

This was the actual index surface Google kept.

Not indexed pages

591,000

The exclusion bucket was far larger than the kept bucket.

External backlinks

0

The site had no off-site authority buffer at all.

Orders / revenue

943 orders; $240,809 lifetime revenue

The site already proved commercial intent, so technical fixes could pay back.

AOV

$255

A better click-to-product path had direct revenue value.

Indexing was the limiter

Indexing › Pages was the loudest report in the account. The ratio between 16,100 indexed and 591,000 not indexed meant the site was generating a very large URL graph, but only a thin slice was considered worth indexing. That usually points to one or more of these: duplicate combinations, weak canonicalization, parameter noise, thin translated variants, or internal links that overfeed low-value pages.

This is where the 591k not indexed problem stops being abstract. For a B2B ecommerce catalog, one bad template can multiply into thousands of low-value URLs across filters, language variants, and product combinations. If Google spends crawl budget on junk URLs, important collection and product pages wait longer to be recrawled.

I would treat this as an Indexing › Pages triage job. First, group exclusions by reason. Then sample the URL sets. Then trace each bucket back to a template or rule. The goal is not to index everything. The goal is to make sure the URLs that can rank are the ones that get crawled, rendered, and kept.

What I checked first

{
  "reports": [
    "Performance › Search results",
    "Indexing › Pages",
    "Indexing › Sitemaps",
    "Enhancements › Breadcrumbs",
    "Enhancements › Product snippets",
    "Enhancements › FAQ",
    "Links › External links",
    "Settings › Crawl stats"
  ],
  "signals": {
    "clicks_per_month": 7950,
    "impressions_per_month": 557000,
    "ctr": 0.014,
    "avg_position": 12.4,
    "indexed_pages": 16100,
    "not_indexed_pages": 591000,
    "external_backlinks": 0
  },
  "priority": [
    "group exclusion reasons",
    "sample URL buckets",
    "trace template cause",
    "fix canonical and sitemap signals",
    "recheck in GSC"
  ]
}

Hreflang and language scale

The 35 languages made this a hard multi language seo case study. When a site uses TranslatePress at that scale, the core risk is not just translation quality. It is duplicate intent across language paths, broken alternates, and sitemap signals that do not match the rendered HTML.

I would verify the language architecture against hreflang implementation before touching content volume. If the alternates are inconsistent, Google may index the wrong language version, or keep reprocessing near-identical URL sets that should have been consolidated.

The practical rule: every language version needs one clear canonical, one crawlable alternate path, and one sitemap entry that matches the live HTML. If any of those three disagree, Indexing › Sitemaps and Indexing › Pages will show the mismatch sooner or later.

Screenshot note: I marked the language alternates in /images/hero-case-studies.png because the scale is easier to read than to explain.

Schema and snippets

Breadcrumbs were the easy win

Enhancements › Breadcrumbs should exist on every category and product page that can support hierarchy. Breadcrumb markup helps Google understand page relationships, and it gives you a cleaner path in SERPs.

Product snippets needed consistency

Enhancements › Product snippets showed the commercial pages were not speaking the same structured-data language. That matters for price, availability, and product identity.

FAQ markup needed restraint

Enhancements › FAQ should not become schema spam. It works best where the page actually answers repeated buyer questions, not where someone stuffed a template.

Implementation belonged in one service pass

If the markup is structurally weak, fix it through a dedicated schema sprint. The right internal page for that is schema markup implementation, not ad hoc theme edits.

Crawl stats and backlog

Settings › Crawl stats is where the backlog becomes operational. If Googlebot is spending time on low-value parameters, language duplicates, or faceted variants, you will usually see crawl activity that does not line up with business priorities.

The audit approach is to compare crawl patterns with the URL sets that drive revenue. Important pages should be discoverable through a short internal path and supported by clean sitemap entries. If crawl stats show noisy sampling while the commercial pages are slow to refresh, internal linking and template quality need to be tightened.

For this site, the crawl question was not “Can Google reach the pages?” It clearly could. The question was “Is Google spending enough of its crawl budget on the right pages?” That is why I would pair indexing issues troubleshooting with crawl stats review instead of treating them as separate tasks.

What I would fix first

  1. 01

    Clean the index inputs

    Start in Indexing › Pages. Group the 591,000 not indexed URLs by reason, then map each reason to a template, parameter rule, or translation pattern. Remove obvious low-value permutations from the crawl path before changing anything else.

  2. 02

    Align language signals

    Check the 35-language setup against rendered canonicals, alternates, and sitemaps. If one language path self-canonicals while the sitemap points elsewhere, Google gets mixed instructions and wastes recrawl cycles.

  3. 03

    Patch commercial schema

    Fix breadcrumb, product, and FAQ markup on money pages. Use the docs and template layer together, not one-off page edits. If needed, push the work through schema markup implementation.

  4. 04

    Trim crawl waste

    Use Settings › Crawl stats to find noisy URL groups. If filters, session params, or translation URLs are getting crawled repeatedly, block or consolidate them at the source, then recheck Indexing › Sitemaps.

  5. 05

    Improve internal routing

    Redirect link equity and crawl attention toward collection and product pages that already have impressions. The site had demand; it needed cleaner paths to the right URLs.

  6. 06

    Re-measure in GSC

    After each change set, watch Performance › Search results for CTR and position movement, and watch Indexing › Pages for exclusion buckets shrinking. If the buckets do not move, the fix was cosmetic.

Hand-drawn SEO audit checklist showing indexing, sitemap comparison, cleanup, and performance metrics

Audit checklist

  • Open Performance › Search results and record clicks, impressions, CTR, and position for the last 28 days and May 2026.

  • Break Indexing › Pages into reasons, then sample the URL sets behind the top three exclusion buckets.

  • Compare Indexing › Sitemaps against live canonical URLs for product, category, and language versions.

  • Review Enhancements › Breadcrumbs, Enhancements › Product snippets, and Enhancements › FAQ for template-level coverage gaps.

  • Use Settings › Crawl stats to spot noisy patterns, then map them back to parameters, translations, or duplicates.

  • Check Links › External links to confirm whether the site has any off-site authority buffer at all.

  • Prioritize pages that already sit around positions 8-20, because they can move fastest with technical fixes.

FAQ

Why call this a B2B ecommerce SEO case study?

Because the site had both buyer-intent content and a product catalog. The audit had to deal with revenue pages, multilingual templates, and indexation at the same time, not just one channel or one page type.

What was the biggest problem in the audit?

The biggest problem was the mismatch between scale and indexability: 16,100 indexed pages versus 591,000 not indexed. That is a crawl and classification problem before it is an on-page problem.

Why does 0 external backlinks matter so much?

It removes the external trust buffer. If the site has no backlink profile, Google relies more heavily on internal architecture, crawl efficiency, and clear template signals to decide what deserves index space.

Was this mainly a content issue or a technical issue?

Technical first. The site already had 557,000 impressions/mo and 943 orders. The audit showed that Google was finding demand, but the site was not feeding the right pages into the index consistently.

What is the first fix I would test?

I would start with the top exclusion bucket in Indexing › Pages, then validate the related templates in GSC and the live HTML. If the cause is duplicate language variants, canonical drift, or parameter noise, that fix usually gives the fastest signal.

Where should the implementation work go?

The audit output belongs in a structured technical SEO plan, usually starting with technical SEO audit and then branching into hreflang, schema, and indexing fixes as needed.

// FREE-AUDIT

Want results like this on your site?

Send the URL, get a Loom walkthrough back within 48 hours.

Request a free audit
// AUDIT-REQUEST

Request a free 30-min audit

Loom walkthrough returned within 48 hours. No sales call required.

// RESPONSE < 48 hours

By submitting, you agree to our privacy policy. We use your email only to reply to your audit request and never share with third parties.

In plain English: This site already had demand; the audit showed that fixing indexation, language signals, and schema mattered more than adding more pages.