Back to Blog
Technical SEO Shoaib Santo

Technical SEO Audit for E-commerce (2026)

Technical SEO Audit for E-commerce (2026) — SEO Blog by Shoaib Santo

A technical SEO audit is the foundation of any successful e-commerce SEO strategy. For online stores in Bangladesh — whether you run a Daraz storefront, a Shopify shop, a WooCommerce catalog, or a custom Next.js commerce build — getting the technical fundamentals right can mean the difference between page 1 and page 10. This 2026 checklist distills five years of e-commerce SEO consulting in Bangladesh for brands like Walton and HATIL into a prioritized 60-point audit you can run quarterly.

Why Technical SEO Matters More for E-commerce Than Any Other Vertical

E-commerce sites face unique SEO challenges that B2B or media sites rarely encounter at the same scale:

  • Thousands of SKUs with unique product pages, each a potential ranking surface
  • Faceted navigation (size, color, brand, price) that creates millions of crawlable URL combinations
  • Session IDs and parameter URLs that pollute the index
  • Out-of-stock and seasonal products that decay rapidly
  • Structured data complexity (Product, Offer, Review, AggregateRating, BreadcrumbList, ItemList)
  • JavaScript-rendered product carousels and filters that don't always get indexed
  • Massive duplicate content risk from product variations, sorting options, and pagination
  • A single misconfigured facet rule can multiply your crawl budget waste by 100x. A missing canonical on product variants can cause keyword cannibalization across hundreds of pages. This checklist covers every major technical risk for an e-commerce site in 2026.

    Section 1: Crawlability & Indexation (12 Checks)

    1.1 Robots.txt Configuration

  • Verify `robots.txt` allows crawling of `/product/`, `/category/`, and `/collections/` paths
  • Block parameter-only URLs (`?`, `&sort=`, `?color=` etc.) explicitly
  • Disallow staging, internal search results, and admin paths
  • Confirm XML sitemap is referenced in `robots.txt`
  • Avoid blanket `Disallow: /` on JS or CSS that Googlebot needs to render pages
  • 1.2 XML Sitemap Health

  • Sitemap contains only canonical, indexable 200-status URLs
  • No noindex pages, no redirect chains, no 404s in sitemap
  • Separate sitemaps for products, categories, blog posts, and images
  • Each `<lastmod>` reflects the actual content update timestamp
  • Submit product sitemaps to Google Search Console after major catalog changes
  • 1.3 Index Bloat Audit

  • Pull a full list of indexed URLs from GSC → Pages → Indexed pages
  • Compare against sitemap count; if indexed count > sitemap count by 30%+, you have index bloat
  • Identify and either canonicalize, noindex, or 404 the bloat (filter URLs, search results, internal admin paths)
  • E-commerce sites with 10k+ indexed pages often have 30-50% bloat
  • 1.4 Crawl Budget Efficiency

  • For sites with 10k+ product pages, check `crawl stats` in GSC
  • Server log file analysis: which bots hit the site, how often, and on which sections
  • Identify low-value URL patterns consuming crawl budget (search results, tag pages, session IDs)
  • Compare Googlebot crawl rate vs organic traffic — a healthy ratio is ~1:1 to 1:3
  • 1.5 JavaScript Rendering

  • Use `site:yourstore.com` and `Fetch as Google` (URL Inspection → Live Test) to confirm product pages render fully
  • Check whether product titles, prices, and reviews are visible in the raw HTML response (not just after JS execution)
  • For React/Next.js stores: verify Server-Side Rendering is enabled for product detail pages
  • Use the Rich Results Test on product URLs to confirm structured data is server-rendered
  • 1.6 Canonical Tag Audit

  • Every product page has a self-referencing canonical
  • Variant pages (size, color) canonicalize to the parent product
  • Pagination uses either `rel=next/prev` (deprecated but still respected) or a `view-all` canonical
  • Faceted navigation URLs use `rel=canonical` pointing to the unfiltered page
  • No canonical chains (canonical pointing to a page that itself canonicalizes elsewhere)
  • 1.7 Pagination

  • Either implement `view-all` canonical to a single page, or use paginated canonicals
  • Ensure pagination pages have unique title tags and meta descriptions (`Page 2 of 5 - Blue Shirts`)
  • Block low-value pagination (page 50+) from indexing via `noindex, follow`
  • Internal link pagination with descriptive anchor text (`Blue Shirts - Page 2`), not just "Next"
  • 1.8 Soft 404 Detection

  • Identify URLs returning 200 status but rendering empty / "no results" / error content
  • Convert these to true 404 or 410, or render unique content
  • GSC → Pages report flags these under "Soft 404"
  • 1.9 URL Structure

  • Product URLs follow a flat hierarchy: `/category/product-name` not `/category/subcategory/subsubcategory/product-name`
  • URLs use hyphens, lowercase, no underscores
  • No session IDs, no parameter-based sorting, no relative paths
  • URL length < 100 characters where possible
  • 1.10 Hreflang for International Stores

  • If selling in multiple countries or languages, every URL has self-referencing and reciprocal hreflang
  • x-default points to the global or language-selection page
  • No mismatched hreflang (page A links to page B, but page B doesn't link back to A)
  • Currency and pricing structured data reflects the target region
  • 1.11 Noindex Audit

  • No accidental `meta name="robots" content="noindex"` tag on product or category pages
  • `X-Robots-Tag` HTTP header is not set to `noindex` on any product page
  • No `noindex` in paginated category pages
  • Use GSC URL Inspection to spot-check 20 random product URLs
  • 1.12 Crawl Error Resolution

  • GSC → Pages → "Why pages aren't indexed" reviewed monthly
  • Server errors (5xx) fixed within 24 hours
  • 404s from broken internal links fixed by either restoring pages or updating links
  • Redirect chains > 1 hop eliminated (use direct 301s, not chained redirects)
  • Section 2: Site Architecture & Internal Linking (10 Checks)

    2.1 Three-Click Depth

  • Every product page is reachable from the homepage within 3 clicks
  • Audit orphan products (zero internal links) using Screaming Frog
  • Add products to multiple relevant categories and collections
  • Cross-link related products, "customers also bought", "complete the look"
  • 2.2 Category Hierarchy

  • Categories are siloed: no cross-canonical between unrelated sections
  • Top-level categories have descriptive, keyword-rich titles (not just "Products")
  • Subcategories are 1-2 levels deep; avoid 4+ level deep nesting
  • Empty categories are either populated or 404'd — never left as empty indexable pages
  • 2.3 Breadcrumb Navigation

  • Every product page renders BreadcrumbList structured data
  • Breadcrumbs visually match the URL hierarchy exactly
  • BreadcrumbList schema includes the full path with absolute URLs
  • The breadcrumb is also visible in the page UI (not just JSON-LD)
  • 2.4 Faceted Navigation Discipline

  • Either `noindex, follow` on filter combinations (preferred for SEO), or
  • Use `rel=canonical` to point filters to the unfiltered parent, or
  • Use `Disallow` in robots.txt for filter-only URLs
  • Never allow unlimited facet combinations to be indexed (creates bloat)
  • Prioritize which facets get indexed based on search volume (size, brand, color for apparel)
  • 2.5 Internal Link Anchor Diversity

  • Use keyword-rich anchors in body content ("blue cotton t-shirt" not "click here")
  • Avoid over-optimized exact-match anchors (looks manipulative)
  • Footer and header links use brand-neutral anchors
  • Product recommendation modules use descriptive anchors
  • 2.6 HTML Sitemap

  • For sites with 1,000+ SKUs, a paginated HTML sitemap helps users and crawlers
  • Categories are organized by topic, not alphabetical (better for thematic authority)
  • HTML sitemap is linked from the footer
  • HTML sitemap mirrors the XML structure
  • 2.7 404 and 410 Pages

  • Custom 404 page with search box, popular categories, and featured products
  • 410 (Gone) used for permanently removed products
  • Soft 404 detection automated via Screaming Frog custom extraction
  • 404 broken-link report exported monthly from ahrefs/Semrush
  • 2.8 Redirect Map

  • All 301 redirects documented in a redirect map spreadsheet
  • No redirect chains > 1 hop
  • No redirect loops
  • Product retirement uses 301 to closest category page, not just to homepage
  • 2.9 Out-of-Stock Strategy

  • Out-of-stock products remain live for 30-90 days with "Notify me" CTA
  • After 90 days, either 301 to a related product or 410 the URL
  • Never blanket noindex out-of-stock products — you lose accumulated authority
  • Keep the URL, title, description, images, and reviews — only swap the buy button
  • 2.10 Search Results and Tag Pages

  • Internal site search results: `noindex, follow`
  • Tag pages: `noindex, follow` unless they have unique content
  • Filter combinations: see 2.4
  • Sort options: never indexable, block in robots.txt
  • Section 3: Core Web Vitals (8 Checks)

    3.1 Largest Contentful Paint (LCP) - Target < 2.5s

  • LCP element (usually hero image or H1) loads within 2.5s on 75th percentile mobile
  • Hero images use `<Image priority>` (Next.js) or `fetchpriority="high"`
  • Images are WebP or AVIF, sized to viewport, with width/height attributes
  • Critical CSS is inlined, non-critical CSS deferred
  • CDN serves static assets (Cloudflare, Fastly, Bunny CDN)
  • 3.2 Interaction to Next Paint (INP) - Target < 200ms

  • INP replaced FID in March 2024 — measure INP, not FID
  • Main thread is not blocked by long tasks (> 50ms)
  • Third-party scripts (analytics, chat widgets, ad tags) are deferred or lazy-loaded
  • Event handlers are debounced/throttled
  • Use Chrome DevTools → Performance → Web Vitals to measure real user flows
  • 3.3 Cumulative Layout Shift (CLS) - Target < 0.1

  • Every image and video has explicit `width` and `height` attributes
  • Web fonts use `font-display: swap` and preloaded
  • Dynamic content (banners, cookie notices) reserves space before load
  • Ads and embeds have placeholder dimensions
  • 3.4 Mobile Performance

  • Mobile LCP and INP tracked separately (mobile is 100% of Google's crawl as of 2024)
  • Tap targets are at least 48x48px with 8px spacing
  • Font size minimum 16px base
  • No horizontal scroll on any viewport 320px+
  • Lighthouse mobile score > 90 for the homepage and category pages
  • 3.5 Image Optimization

  • All product images use WebP or AVIF (with JPEG fallback)
  • Lazy-load below-the-fold images (`loading="lazy"`)
  • Responsive images use `srcset` with appropriate breakpoints
  • Image CDN handles on-the-fly resizing (Cloudflare Images, imgix, Cloudinary)
  • Decoded image dimensions match container size (no oversized images)
  • 3.6 JavaScript Performance

  • Critical JS inlined or loaded with `defer`
  • Non-critical JS loaded with `async` or after user interaction
  • Code-split per route (Next.js does this automatically)
  • Third-party tags loaded via Tag Manager with appropriate triggers
  • Bundle size < 200KB initial, < 1MB total
  • 3.7 CSS Performance

  • Critical CSS inlined in `<head>`
  • Unused CSS purged (PurgeCSS, Tailwind's content config)
  • CSS file size < 50KB gzipped
  • No render-blocking external CSS
  • 3.8 Third-Party Script Audit

  • Every third-party script (GA4, GTM, Meta Pixel, chat widget, review platform) is justified
  • Scripts load with appropriate defer/async strategies
  • Marketing tags fire on conversion events, not page load
  • Heavy widgets (chat, exit intent) load after 5s or on scroll
  • Section 4: Structured Data for E-commerce (10 Checks)

    4.1 Product Schema

  • Every product page has Product JSON-LD with: name, image, description, sku, gtin/mpn, brand, offers
  • Offer block includes: price, priceCurrency, availability, url, priceValidUntil
  • AggregateRating present if reviews are displayed on the page
  • Multiple offers (variants) properly nested
  • 4.2 Review Schema

  • Review schema matches visible on-page reviews
  • AggregateRating averages match the displayed star count
  • Reviewer names match the actual customer (no fake reviewer placeholders)
  • reviewCount matches visible review count
  • 4.3 BreadcrumbList Schema

  • Every product page has BreadcrumbList matching visible UI breadcrumb
  • Each ListItem has name, item (absolute URL), and position
  • Item URLs are canonical and 200-status
  • 4.4 Organization Schema

  • Organization schema on the homepage with logo, contactPoint, sameAs
  • Knowledge Graph signals align (Wikipedia, Wikidata, social profiles)
  • Logo follows Google's logo guidelines (square or wide, no transparency issues)
  • 4.5 WebSite Schema with SearchAction

  • WebSite schema includes a SearchAction potentialAction
  • `target.urlTemplate` points to a working internal search URL
  • `query-input` is properly formatted
  • 4.6 FAQPage Schema

  • Visible FAQ sections on category or product pages have matching FAQPage schema
  • Each question in `mainEntity` matches a visible question
  • Accepted answers contain the full answer text, not truncated versions
  • 4.7 ItemList Schema

  • Category pages with product lists include ItemList schema
  • `itemListElement` references product URLs (not category URLs)
  • Position reflects actual ordering on the page
  • 4.8 LocalBusiness Schema (if applicable)

  • Physical retail stores add LocalBusiness schema to their contact/location page
  • Includes address, geo coordinates, openingHoursSpecification, telephone
  • AggregateRating included if reviews are collected
  • 4.9 VideoObject Schema

  • Product videos include VideoObject schema with name, description, thumbnailUrl, uploadDate
  • Content URL is a direct video file, not a YouTube/Vimeo embed
  • For embedded YouTube videos, use `contentUrl` pointing to the watch URL
  • 4.10 Schema Validation

  • All structured data passes Google's Rich Results Test
  • Schema.org validator confirms valid JSON-LD syntax
  • No deprecated types (HowTo, SpecialAnnouncement, CourseInfo, ClaimReview)
  • Section 5: On-Page SEO (10 Checks)

    5.1 Title Tags

  • Every product page has a unique title: `[Product Name] - [Spec/Benefit] | [Brand]`
  • Length 50-60 characters
  • Primary keyword front-loaded
  • No keyword stuffing
  • No duplicate titles across products
  • 5.2 Meta Descriptions

  • Unique per page, 140-160 characters
  • Includes primary keyword, a value prop, and a CTA
  • Matches page content (no clickbait)
  • Not the same across product variations
  • 5.3 H1 Tags

  • Exactly one H1 per page
  • H1 matches or closely aligns with the product name
  • H1 includes primary keyword naturally
  • H1 visually styled (no hidden H1s)
  • 5.4 Heading Hierarchy

  • Logical H1 → H2 → H3 nesting
  • No skipped levels (H1 → H3 without H2)
  • Subheadings are descriptive, not generic
  • 5.5 Product Descriptions

  • 300+ words unique per product (no manufacturer copy-paste)
  • Includes use cases, specifications, sizing info, and FAQs
  • Naturally incorporates semantic keyword variations
  • Differentiates from competitor descriptions
  • 5.6 Image Alt Text

  • Every product image has descriptive alt text
  • Alt text includes the product name naturally
  • No keyword stuffing in alt text
  • Decorative images use `alt=""`
  • 5.7 Internal Linking

  • 3-5 internal links per product page to related products, categories, and content
  • Anchor text is descriptive, not generic
  • No orphan product pages
  • Footer and header link to primary category hubs
  • 5.8 URL Canonicalization

  • Each product has exactly one canonical URL
  • Variant pages (color, size) canonicalize to the parent
  • Trailing slashes consistent (or all redirect to the preferred version)
  • 5.9 Pagination Tags

  • Either `view-all` canonical or `rel=next/prev`
  • No-index on deep pagination (page 50+) when no longer useful
  • 5.10 Thin Content Detection

  • Identify products with < 100 words of unique content
  • Either expand or noindex
  • Avoid product pages with only image and price (no description)
  • Section 6: Duplicate Content (5 Checks)

    6.1 Product Variation URLs

  • Each product has one canonical URL; variations either canonicalize or are noindexed
  • SKU-based variants use the same canonical as the parent
  • Size/color swatches are not separate indexable URLs
  • 6.2 Parameter-Based URLs

  • Sorting parameters (?sort=price_asc) are not indexable
  • Tracking parameters (?utm_source=) are stripped via canonical
  • Filter combinations are noindex or canonicalized
  • 6.3 Print-Friendly and AMP Versions

  • AMP pages (if used) have canonical pointing to the non-AMP version
  • Print pages noindex
  • 6.4 Staging and Preview URLs

  • Staging environments blocked via robots.txt and password protected
  • Preview URLs not linked from anywhere
  • 6.5 Cross-Domain Content

  • Marketplace listings (Daraz, Amazon) with duplicate descriptions are protected via canonical pointing to your own site
  • Affiliate URLs use nofollow and `rel="sponsored"`
  • Section 7: International & Multi-Region (5 Checks)

    7.1 Hreflang Implementation

  • All language/region variants have reciprocal hreflang
  • `x-default` set to the global or auto-detection page
  • Self-referencing hreflang on every page
  • Hreflang in HTML head, not just sitemap
  • 7.2 Currency and Pricing

  • Schema Offer.priceCurrency matches the target region
  • Local currency displayed in HTML
  • Exchange rates not hard-coded (use a dynamic rate)
  • 7.3 ccTLDs vs Subdirectories

  • Either ccTLDs (`store.bd`, `store.in`) or subdirectories (`/bd/`, `/in/`) — don't mix
  • Search Console properties configured for each version
  • 7.4 Content Localization

  • Translations are human-quality, not machine-translated
  • Local cultural references and examples included
  • Local units of measurement (cm, kg, BDT)
  • 7.5 Shipping and Tax Information

  • Local shipping options displayed
  • Tax/duty information accurate per region
  • Returns policy localized
  • Recommended Tools for the Audit

  • Screaming Frog SEO Spider — Full site crawl, schema extraction, custom extraction
  • Google Search Console — Index coverage, crawl stats, Core Web Vitals
  • Google PageSpeed Insights + CrUX — Real user CWV data
  • Lighthouse (in Chrome DevTools) — Lab performance and accessibility
  • ahrefs or Semrush — Backlink profile, content gaps, technical health score
  • Rich Results Test — Schema validation
  • Schema.org Validator — JSON-LD syntax check
  • Chrome DevTools → Performance — Real user INP measurement
  • Server log file analyzer (Screaming Frog Log Analyzer) — Crawl budget analysis
  • Audit Cadence and Prioritization

    Priority
    P0 (Critical)
    P1 (High)
    P2 (Medium)
    P3 (Low)

    Run a full audit quarterly. Run the P0 and P1 checks monthly. Watch GSC's Page Indexing report weekly for new issues.

    From Audit to Action

    A technical audit without a follow-through plan is just a report. The next step is prioritization: pick the 3-5 highest-impact fixes and ship them in the first sprint. Then iterate. A technical SEO expert in Bangladesh can run this audit in 2-3 days and ship the first round of fixes within 1-2 weeks.

    See how a comprehensive SEO strategy helped Walton Group achieve 53,600+ keyword rankings through technical optimization and semantic content. For a comprehensive approach to search visibility, combine your technical SEO foundation with semantic SEO strategies and learn about how AI is transforming modern SEO. Need hands-on help? Hire an expert to manage your technical SEO. Explore my technical SEO services. For the mobile-specific CWV, mobile-first indexing parity, and 3G/4G-tuned rendering that ship the bottom of your conversion funnel, see my mobile SEO for Bangladesh guide.

    Ready to Implement These Strategies?

    Get hands-on help from a senior SEO expert in Bangladesh.

    Shoaib Santo - SEO Expert in Bangladesh

    About Shoaib Santo

    Shoaib Santo is a leading Semantic SEO expert in Bangladesh with 5+ years of experience helping brands like Walton and HATIL achieve top search rankings. Specializing in technical SEO, semantic content strategy, and data-driven growth.

    Read full bio →

    Want More SEO Insights?

    Subscribe to my newsletter for the latest SEO strategies and tips.