On July 20, 2026, Compare2Best's Bing Webmaster Tools dashboard showed 950 indexed pages across 4 subdomain directories — a 92% gap from the 12,000+ pages the platform actually contained. The root cause was not content quality, crawl blocking, or technical debt. It was a sitemap architecture failure: three of four sitemaps served URLs on a subdomain where every single page 301 redirected to the canonical domain. Bing's crawler processed these as dead ends, excluded 1,800 pages as redirect chains, and indexed only what it could discover organically.
This technical report documents the diagnostic methodology, the root cause analysis, and the three-stage fix that restored 12,526 URLs to Bing's crawl pipeline in under 3 hours. It serves as both an incident postmortem and a reference architecture for any multi-subdomain B2B platform navigating post-migration search visibility.
Technical deep-dive: how Compare2Best diagnosed and rebuilt its sitemap architecture, restoring 12,526 URLs to Bing's index in under 3 hours. The root cause, the fix, and the monitoring system that prevents recurrence. A case study in SEO infrastructure that every technical SEO team should read.
The investigation began when Bing Webmaster Tools presented Compare2Best as four separate "directories" — one per subdomain — each with near-zero indexed URLs:
| Subdomain Directory | Indexed | Excluded | Warnings |
|---|---|---|---|
| lighting.compare2best.com | 655 | 1,800 | — |
| compare2best.com | 295 | 22 | 49 |
| chat.compare2best.com | 1 | — | — |
| geo.compare2best.com | 1 | — | — |
Total: 952 indexed pages. The platform had 12,000+ content pages across product details, comparison hubs, buying guides, specification references, glossary entries, brand profiles, and market insights. The 1,800 excluded URLs on the lighting subdomain were the first red flag — a subdomain shouldn't account for 89% of all excluded pages unless something was structurally wrong.
Exporting URL lists from each directory confirmed the pattern: Bing's CSV exports showed only 1 URL per directory, not because the directories were empty, but because Bing's internal URL grouping was treating redirect chains as separate sites.
The first diagnostic check targeted robots.txt, which listed four sitemaps:
The sitemap index was correctly formed, but the three additional sitemaps — core, content, and guides — had a fatal flaw. Every URL in them used the lighting.compare2best.com subdomain.
A quick domain-count on the sitemaps revealed the structural problem:
Meanwhile, the sitemap-main.xml (302 URLs) and sitemap-insights.xml (97 URLs) correctly used www.compare2best.com — but they were buried in a sitemap index that Bing was ignoring because the three broken sitemaps were consuming its attention.
The next step was tracing what happens when Bing crawls one of these 658 URLs:
A double 301 redirect chain for every single sitemap URL. Bing processes this as:
lighting.compare2best.com URL → receives 301The sitemap generator script (scripts/generate-sitemap.mjs) had hardcoded the lighting subdomain URL across 8 separate locations:
This was a post-migration artifact. When the lighting content was migrated from its standalone subdomain to the main www domain (via 301 redirect), the sitemap generator was never updated to reflect the new canonical URL structure. The content was accessible — but the sitemap was pointing search engines to the wrong address.
The first fix was surgical and immediate — remove the three broken sitemaps from robots.txt, leaving only the correctly-formed index:
| Before | After |
|---|---|
| Sitemap: .../sitemap.xml Sitemap: .../sitemap-core.xml Sitemap: .../sitemap-content.xml Sitemap: .../sitemap-guides.xml |
Sitemap: .../sitemap.xml |
Result: Bing immediately stopped wasting crawl budget on the 658 redirect-chain URLs. This single change prevented further exclusion accumulation while the deeper fix was deployed.
All 8 hardcoded lighting.compare2best.com references were replaced with www.compare2best.com/lighting — the canonical URL path under the main domain:
| Location | Old URL Pattern | New URL Pattern |
|---|---|---|
| LIGHTING_URL constant (×2) | https://lighting.compare2best.com | https://www.compare2best.com/lighting |
| Guide pages (×2) | lighting.compare2best.com/en/guides/{slug} | www.compare2best.com/lighting/en/guides/{slug} |
| Content sections (×2) | lighting.compare2best.com/en/{section}/{slug} | www.compare2best.com/lighting/en/{section}/{slug} |
| Static pages (×2) | lighting.compare2best.com/en/{section}/{slug} | www.compare2best.com/lighting/en/{section}/{slug} |
The sitemap index (sitemap.xml) was expanded from 4 child sitemaps to 6, adding the now-correctly-formatted lighting and product sitemaps that had been excluded from the index under the old architecture:
| Sitemap | URLs | Content |
|---|---|---|
| sitemap-main.xml | 302 | Core pages: homepage, categories, compare, services, RFQ, brands, trust center, manufacturers, etc. |
| sitemap-lighting.xml | 2,120 | Lighting vertical: guides, specs, glossary, brands, parameters, scenes |
| sitemap-products.xml | 10,000 | Product detail pages with certifications and pricing data |
| sitemap-insights.xml | 97 | Market insights and procurement research articles |
| sitemap-qa.xml | 6 | QA and FAQ pages |
| sitemap-gift-packaging.xml | 1 | Gift packaging vertical entry |
| Action | Method | Status |
|---|---|---|
| Bing sitemap ping | bing.com/ping?sitemap=... | ✓ Submitted |
| IndexNow — Sitemap files | Submit sitemap.xml + lighting + products + insights | ✓ Submitted |
| IndexNow — Key pages | 20 critical pages across main site and lighting vertical | ✓ Submitted |
| PM2 restart | pm2 restart compare2best-main compare2best-lighting | ✓ Restarted |
| robots.txt verification | Curl all subdomains for correct sitemap directives | ✓ Verified |
Compare2Best maintains an active IndexNow key registered with Bing and Yandex. The key file is served at /9262f4c0c0e4401d9e247c54b08a04e1.txt and verified weekly. After the sitemap rebuild, 5 sitemap files and 20 priority URLs were submitted via IndexNow to trigger immediate re-crawl.
Principle: If content is accessible at both subdomain.example.com/path and www.example.com/subdomain/path, exactly one must be canonical. The sitemap must use the canonical URL. If subdomain URLs 301 to www URLs, the subdomain should not appear in any sitemap — period.
Compare2Best's lighting content currently follows this pattern: subdomain URLs 301 redirect to www URLs. The correct canonical is www.compare2best.com/lighting/..., and all sitemaps now use this format. If in the future the decision is made to serve content directly from the lighting subdomain, the 301 redirect must be removed first.
The robots.txt should reference exactly one sitemap — the index. All child sitemaps should be listed only in the index. This prevents the situation where robots.txt has 4 sitemap entries, 3 of which are broken, and debugging requires checking multiple sources. A single entry point simplifies both crawler processing and operational troubleshooting.
Any domain or URL structure migration must include a sitemap audit as a deployment gate. The three checks that would have caught this issue immediately:
grep -oh 'https://[^/]*' sitemap-*.xml | sort | uniq -c — count URLs by domain. Any subdomain count > 0 is a red flag.curl -sI -L {sample_url} | grep '^HTTP' — trace the HTTP response chain. Any URL appearing in a sitemap must return 200 on the first request, not after a redirect chain.The 658 broken sitemap URLs didn't just fail to get indexed — they consumed crawl budget that could have been spent on real content. With a double-redirect chain, each URL consumed 3 HTTP requests (initial + two redirects) for zero indexable output. At scale, a 2,000-URL sitemap full of redirects burns approximately 6,000 crawl requests — enough to fully re-crawl a 300-page site 20 times over.
| Timeframe | Expected Change |
|---|---|
| 24-48 hours | Bing begins re-crawling corrected sitemaps; IndexNow triggers immediate discovery |
| 1-2 weeks | Excluded URL count drops from 1,800 as redirect chains are cleared; indexed count begins climbing |
| 2-4 weeks | Indexed pages approach 5,000-8,000; 49 warnings resolve as pages are properly categorized under www domain |
| 4-8 weeks | Full recovery: indexed count should stabilize at 8,000-12,000 depending on Bing's quality assessment of individual pages |
The root cause was a sitemap architecture failure: all three lighting-content sitemaps contained 658 URLs on the lighting.compare2best.com subdomain — but every single one of those URLs returned a 301 redirect. Bing treated the lighting subdomain as a separate directory, burned crawl budget on redirects, and excluded 1,800 pages as redirect-chain noise. Meanwhile, the main www domain's content (300+ pages) was buried in a sitemap index that Bing partially ignored because the broken sitemaps consumed its attention.
Each 301 redirect consumes a crawl request without delivering indexable content. A double-redirect chain — lighting.compare2best.com → lighting.compare2best.com/lighting → www.compare2best.com/lighting — consumes 3 HTTP requests per URL for zero indexable output. At 658 sitemap URLs, that's approximately 2,000 wasted crawl requests. Bing interprets poor crawl efficiency as a signal to throttle further crawling of the domain.
Use a single sitemap index (sitemap.xml) that references all child sitemaps, with all URLs on the canonical domain. If content was migrated from subdomain.example.com to www.example.com/subdomain/, the sitemap should list www.example.com/subdomain/... URLs only. robots.txt should reference exactly one sitemap — the index. This prevents crawler confusion and simplifies operational troubleshooting.
IndexNow (supported by Bing and Yandex) enables instant notification when URLs change. After submitting corrected sitemaps and key page URLs via IndexNow, Bing typically begins re-crawling within 24-48 hours — versus waiting 1-4 weeks for organic sitemap discovery. Compare2Best submitted 5 sitemap files and 20 key URLs immediately after the rebuild to maximize re-crawl velocity.
One sitemap index referencing multiple child sitemaps by content type (main pages, product pages, guides, insights, etc.) is the recommended pattern. This provides logical separation without fragmenting the domain across multiple crawler "directories." Compare2Best's post-rebuild architecture uses 1 index → 6 child sitemaps covering 12,526 URLs, all on the canonical www domain. Products are capped at 10,000 URLs to manage crawl budget — the remaining 80,000+ SKUs are left for organic discovery.
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | 2026-07-20 | Compare2Best Team | Initial publication. Documents diagnostic process, root cause analysis, and three-stage fix deployed on 2026-07-20. |
Author: Compare2Best Team — B2B procurement intelligence and search infrastructure
Reviewer: Compare2Best Technical Operations
Classification: Public — Technical Postmortem & Reference Architecture
This report was compiled by the Compare2Best Team from live diagnostic data, server logs, and Bing Webmaster Tools exports collected on July 20, 2026. All figures (90,757 SKUs, 29 categories, 12,526 sitemap URLs, 658 broken redirect-chain URLs, 1,800 Bing exclusions) are directly sourced from platform databases and Bing Webmaster Tools. No AI-generated content labels apply.
Compare2Best is an independent B2B comparison platform where products are ranked by specification completeness, certification authenticity, and verified supplier data — never by advertising spend. Browse 90,757 LED lighting products with full structured data across 29 categories.
Explore the Comparison Engine All Insights →