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 surfaceFaceted navigation (size, color, brand, price) that creates millions of crawlable URL combinationsSession IDs and parameter URLs that pollute the indexOut-of-stock and seasonal products that decay rapidlyStructured data complexity (Product, Offer, Review, AggregateRating, BreadcrumbList, ItemList)JavaScript-rendered product carousels and filters that don't always get indexedMassive duplicate content risk from product variations, sorting options, and paginationA 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/` pathsBlock parameter-only URLs (`?`, `&sort=`, `?color=` etc.) explicitlyDisallow staging, internal search results, and admin pathsConfirm XML sitemap is referenced in `robots.txt`Avoid blanket `Disallow: /` on JS or CSS that Googlebot needs to render pages1.2 XML Sitemap Health
Sitemap contains only canonical, indexable 200-status URLsNo noindex pages, no redirect chains, no 404s in sitemapSeparate sitemaps for products, categories, blog posts, and imagesEach `<lastmod>` reflects the actual content update timestampSubmit product sitemaps to Google Search Console after major catalog changes1.3 Index Bloat Audit
Pull a full list of indexed URLs from GSC → Pages → Indexed pagesCompare against sitemap count; if indexed count > sitemap count by 30%+, you have index bloatIdentify 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% bloat1.4 Crawl Budget Efficiency
For sites with 10k+ product pages, check `crawl stats` in GSCServer log file analysis: which bots hit the site, how often, and on which sectionsIdentify 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:31.5 JavaScript Rendering
Use `site:yourstore.com` and `Fetch as Google` (URL Inspection → Live Test) to confirm product pages render fullyCheck 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 pagesUse the Rich Results Test on product URLs to confirm structured data is server-rendered1.6 Canonical Tag Audit
Every product page has a self-referencing canonicalVariant pages (size, color) canonicalize to the parent productPagination uses either `rel=next/prev` (deprecated but still respected) or a `view-all` canonicalFaceted navigation URLs use `rel=canonical` pointing to the unfiltered pageNo 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 canonicalsEnsure 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 contentConvert these to true 404 or 410, or render unique contentGSC → 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 underscoresNo session IDs, no parameter-based sorting, no relative pathsURL length < 100 characters where possible1.10 Hreflang for International Stores
If selling in multiple countries or languages, every URL has self-referencing and reciprocal hreflangx-default points to the global or language-selection pageNo 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 region1.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 pageNo `noindex` in paginated category pagesUse GSC URL Inspection to spot-check 20 random product URLs1.12 Crawl Error Resolution
GSC → Pages → "Why pages aren't indexed" reviewed monthlyServer errors (5xx) fixed within 24 hours404s from broken internal links fixed by either restoring pages or updating linksRedirect 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 clicksAudit orphan products (zero internal links) using Screaming FrogAdd products to multiple relevant categories and collectionsCross-link related products, "customers also bought", "complete the look"2.2 Category Hierarchy
Categories are siloed: no cross-canonical between unrelated sectionsTop-level categories have descriptive, keyword-rich titles (not just "Products")Subcategories are 1-2 levels deep; avoid 4+ level deep nestingEmpty categories are either populated or 404'd — never left as empty indexable pages2.3 Breadcrumb Navigation
Every product page renders BreadcrumbList structured dataBreadcrumbs visually match the URL hierarchy exactlyBreadcrumbList schema includes the full path with absolute URLsThe 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), orUse `rel=canonical` to point filters to the unfiltered parent, orUse `Disallow` in robots.txt for filter-only URLsNever 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 anchorsProduct recommendation modules use descriptive anchors2.6 HTML Sitemap
For sites with 1,000+ SKUs, a paginated HTML sitemap helps users and crawlersCategories are organized by topic, not alphabetical (better for thematic authority)HTML sitemap is linked from the footerHTML sitemap mirrors the XML structure2.7 404 and 410 Pages
Custom 404 page with search box, popular categories, and featured products410 (Gone) used for permanently removed productsSoft 404 detection automated via Screaming Frog custom extraction404 broken-link report exported monthly from ahrefs/Semrush2.8 Redirect Map
All 301 redirects documented in a redirect map spreadsheetNo redirect chains > 1 hopNo redirect loopsProduct retirement uses 301 to closest category page, not just to homepage2.9 Out-of-Stock Strategy
Out-of-stock products remain live for 30-90 days with "Notify me" CTAAfter 90 days, either 301 to a related product or 410 the URLNever blanket noindex out-of-stock products — you lose accumulated authorityKeep the URL, title, description, images, and reviews — only swap the buy button2.10 Search Results and Tag Pages
Internal site search results: `noindex, follow`Tag pages: `noindex, follow` unless they have unique contentFilter combinations: see 2.4Sort options: never indexable, block in robots.txtSection 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 mobileHero images use `<Image priority>` (Next.js) or `fetchpriority="high"`Images are WebP or AVIF, sized to viewport, with width/height attributesCritical CSS is inlined, non-critical CSS deferredCDN 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 FIDMain thread is not blocked by long tasks (> 50ms)Third-party scripts (analytics, chat widgets, ad tags) are deferred or lazy-loadedEvent handlers are debounced/throttledUse Chrome DevTools → Performance → Web Vitals to measure real user flows3.3 Cumulative Layout Shift (CLS) - Target < 0.1
Every image and video has explicit `width` and `height` attributesWeb fonts use `font-display: swap` and preloadedDynamic content (banners, cookie notices) reserves space before loadAds and embeds have placeholder dimensions3.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 spacingFont size minimum 16px baseNo horizontal scroll on any viewport 320px+Lighthouse mobile score > 90 for the homepage and category pages3.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 breakpointsImage 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 interactionCode-split per route (Next.js does this automatically)Third-party tags loaded via Tag Manager with appropriate triggersBundle size < 200KB initial, < 1MB total3.7 CSS Performance
Critical CSS inlined in `<head>`Unused CSS purged (PurgeCSS, Tailwind's content config)CSS file size < 50KB gzippedNo render-blocking external CSS3.8 Third-Party Script Audit
Every third-party script (GA4, GTM, Meta Pixel, chat widget, review platform) is justifiedScripts load with appropriate defer/async strategiesMarketing tags fire on conversion events, not page loadHeavy widgets (chat, exit intent) load after 5s or on scrollSection 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, offersOffer block includes: price, priceCurrency, availability, url, priceValidUntilAggregateRating present if reviews are displayed on the pageMultiple offers (variants) properly nested4.2 Review Schema
Review schema matches visible on-page reviewsAggregateRating averages match the displayed star countReviewer names match the actual customer (no fake reviewer placeholders)reviewCount matches visible review count4.3 BreadcrumbList Schema
Every product page has BreadcrumbList matching visible UI breadcrumbEach ListItem has name, item (absolute URL), and positionItem URLs are canonical and 200-status4.4 Organization Schema
Organization schema on the homepage with logo, contactPoint, sameAsKnowledge 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 formatted4.6 FAQPage Schema
Visible FAQ sections on category or product pages have matching FAQPage schemaEach question in `mainEntity` matches a visible questionAccepted answers contain the full answer text, not truncated versions4.7 ItemList Schema
Category pages with product lists include ItemList schema`itemListElement` references product URLs (not category URLs)Position reflects actual ordering on the page4.8 LocalBusiness Schema (if applicable)
Physical retail stores add LocalBusiness schema to their contact/location pageIncludes address, geo coordinates, openingHoursSpecification, telephoneAggregateRating included if reviews are collected4.9 VideoObject Schema
Product videos include VideoObject schema with name, description, thumbnailUrl, uploadDateContent URL is a direct video file, not a YouTube/Vimeo embedFor embedded YouTube videos, use `contentUrl` pointing to the watch URL4.10 Schema Validation
All structured data passes Google's Rich Results TestSchema.org validator confirms valid JSON-LD syntaxNo 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 charactersPrimary keyword front-loadedNo keyword stuffingNo duplicate titles across products5.2 Meta Descriptions
Unique per page, 140-160 charactersIncludes primary keyword, a value prop, and a CTAMatches page content (no clickbait)Not the same across product variations5.3 H1 Tags
Exactly one H1 per pageH1 matches or closely aligns with the product nameH1 includes primary keyword naturallyH1 visually styled (no hidden H1s)5.4 Heading Hierarchy
Logical H1 → H2 → H3 nestingNo skipped levels (H1 → H3 without H2)Subheadings are descriptive, not generic5.5 Product Descriptions
300+ words unique per product (no manufacturer copy-paste)Includes use cases, specifications, sizing info, and FAQsNaturally incorporates semantic keyword variationsDifferentiates from competitor descriptions5.6 Image Alt Text
Every product image has descriptive alt textAlt text includes the product name naturallyNo keyword stuffing in alt textDecorative images use `alt=""`5.7 Internal Linking
3-5 internal links per product page to related products, categories, and contentAnchor text is descriptive, not genericNo orphan product pagesFooter and header link to primary category hubs5.8 URL Canonicalization
Each product has exactly one canonical URLVariant pages (color, size) canonicalize to the parentTrailing 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 useful5.10 Thin Content Detection
Identify products with < 100 words of unique contentEither expand or noindexAvoid 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 noindexedSKU-based variants use the same canonical as the parentSize/color swatches are not separate indexable URLs6.2 Parameter-Based URLs
Sorting parameters (?sort=price_asc) are not indexableTracking parameters (?utm_source=) are stripped via canonicalFilter combinations are noindex or canonicalized6.3 Print-Friendly and AMP Versions
AMP pages (if used) have canonical pointing to the non-AMP versionPrint pages noindex6.4 Staging and Preview URLs
Staging environments blocked via robots.txt and password protectedPreview URLs not linked from anywhere6.5 Cross-Domain Content
Marketplace listings (Daraz, Amazon) with duplicate descriptions are protected via canonical pointing to your own siteAffiliate 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 pageSelf-referencing hreflang on every pageHreflang in HTML head, not just sitemap7.2 Currency and Pricing
Schema Offer.priceCurrency matches the target regionLocal currency displayed in HTMLExchange 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 mixSearch Console properties configured for each version7.4 Content Localization
Translations are human-quality, not machine-translatedLocal cultural references and examples includedLocal units of measurement (cm, kg, BDT)7.5 Shipping and Tax Information
Local shipping options displayedTax/duty information accurate per regionReturns policy localizedRecommended Tools for the Audit
Screaming Frog SEO Spider — Full site crawl, schema extraction, custom extractionGoogle Search Console — Index coverage, crawl stats, Core Web VitalsGoogle PageSpeed Insights + CrUX — Real user CWV dataLighthouse (in Chrome DevTools) — Lab performance and accessibilityahrefs or Semrush — Backlink profile, content gaps, technical health scoreRich Results Test — Schema validationSchema.org Validator — JSON-LD syntax checkChrome DevTools → Performance — Real user INP measurementServer log file analyzer (Screaming Frog Log Analyzer) — Crawl budget analysisAudit 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.