← Back
← Back Quick search Hide

Ecommerce SEO Audit

Sample Report

Prepared for: [Ecommerce Store - Retail / Shopify]

Audit Overview

This SEO audit was conducted for an Ecommerce store running on Shopify. The store sells physical products across multiple categories and targets customers in multiple languages. The audit covers all layers that affect organic search performance: technical setup, on-page structure, mobile experience, structured data, local presence, backlink profile, and conversion-related UX signals.

All findings are based on a manual review combined with data from Google Search Console, Google PageSpeed Insights, Screaming Frog, SEMrush, and W3C validators. URLs and brand names have been removed from this sample report.

Project Objectives

  1. Technical SEO Audit
  2. Check crawlability, indexation, redirect chains, duplicate content, broken links, and code validation errors.

  3. On-Page Optimization Review
  4. Analyze title tags, meta descriptions, heading structure, internal linking, and page relevance signals across key page types.

  5. Mobile Performance Assessment
  6. Measure Core Web Vitals on mobile and desktop. Identify render-blocking resources, image issues, and UX problems on small screens.

  7. Structured Data & Schema Markup
  8. Check for missing or broken Schema on product pages, category pages, and the homepage. Map out what's needed for rich results.

  9. Local SEO Review
  10. Verify NAP consistency, Google Business Profile completeness, and local ranking signals.

  11. Off-Page Profile Analysis
  12. Review backlink quality, Authority Score, and how the site compares to direct competitors in the same niche.

  13. Ecommerce UX Signals
  14. Check conversion-related signals on product pages: delivery time visibility, trust badges, return policy placement, cross-sell structure.

📊 SEO Health Score

Overall SEO Health: 44/100 - Multiple critical issues across technical, on-page, and mobile layers. The site has a solid content base and a competitive backlink profile, but both are currently undermined by structural and performance problems that limit how Google can crawl and rank the store.

SEO Health Score

🚨 Top 10 Critical Issues

# Issue Impact Priority
1 Mobile PageSpeed score: 12/100 Google uses mobile-first indexing - this score directly pulls down rankings ⚠️ CRITICAL
2 Schema markup completely absent No rich results, no product ratings in SERP, no structured data for Google Shopping ⚠️ CRITICAL
3 Duplicate titles and H1 tags across 40+ pages Dilutes relevance signals; Google may not know which page to rank for a given query ⚠️ CRITICAL
4 No canonical tags on product variant URLs Each color/size variant gets indexed as a separate page, splitting ranking signals ⚠️ CRITICAL
5 2 broken pages (404) still linked internally Wastes crawl budget; creates dead ends for users and bots ⚠️ HIGH
6 Missing meta descriptions on most pages Google generates its own snippets - typically worse CTR than a written description ⚠️ HIGH
7 Duplicate text pages and collection pages targeting the same keyword Neither page is strong enough to rank on its own - they compete against each other ⚠️ HIGH
8 Product images have no ALT tags Zero visibility in Google Image Search; accessibility violation ⚠️ HIGH
9 Hreflang broken across multilingual pages Wrong language version may be served to users; rankings split between locales 🟡 MEDIUM
10 No www → non-www redirect configured Both domain versions are accessible - Google may index duplicate content and split ranking signals between www and non-www 🟡 MEDIUM

📈 Expected Impact Timeline

Quick Wins (Weeks 1-2)

Expected improvement: crawl efficiency restored, CTR improvement within 3-4 weeks as Google re-indexes updated pages.

SEO Foundation (Weeks 3-6)

Expected improvement: rich results begin appearing in SERP within 4-6 weeks of schema deployment; page load time improvement visible in Search Console Core Web Vitals report.

Performance & Growth (Weeks 7-16)

Expected improvement: organic traffic growth of 25-40% within 3 months of full technical cleanup; conversion rate improvement from UX fixes.

SECTION 1: TECHNICAL SEO

Technical SEO AUDIT

1.1 www / non-www Redirect - Not Configured

Status: 🟡 Issue Found
Priority: MEDIUM

Both www and non-www versions of the domain are accessible without a redirect between them. Google treats these as two separate URLs - meaning the same pages can be indexed twice, splitting ranking signals and link equity across duplicate versions of the site.

Fix: Set up a 301 redirect from the non-preferred version to the preferred one (e.g. non-www → www). Confirm the preferred domain in Google Search Console under Settings → Preferred domain.

1.2 Broken Pages - 404 Errors

Status: 🔴 Critical
Priority: HIGH

Two pages return 404 status codes but remain linked from active parts of the site - one from the footer, one from several product pages. Every internal link pointing to a dead URL wastes crawl budget and creates a dead end for users who follow it.

Pages affected:

Fix: Either restore the missing pages or set up 301 redirects to the correct live URLs. Remove or update all internal links pointing to these paths.

🖼️

crawl report showing 404 errors and linking pages

Screenshot placeholder

1.3 Duplicate Titles and H1 Tags

Status: 🔴 Critical
Priority: HIGH

40+ pages share identical <title> tags. Many product category pages also share the same <h1>. This is a Shopify template problem - the store is using a single title format across all pages without per-page customization.

Specific problems found:

Fix: Set up unique title templates per page type in the Shopify theme:

Titles should be 50-60 characters. H1 should match or closely reflect the page title - one per page, always.

🖼️

Screaming Frog export showing duplicate titles list

Screenshot placeholder

1.4 Missing Meta Descriptions

Status: 🔴 Critical
Priority: HIGH

The majority of pages - including key category and product pages - have no <meta name="description"> tag. When this tag is missing, Google generates its own snippet from page content, usually a random sentence that doesn't represent the page well. This directly impacts click-through rate from search results.

Fix: Create meta description templates per page type. For product pages, use the format: [Product Name] - [key feature or spec]. Free shipping on orders over €[X]. Order online today. Keep between 120-155 characters.

1.5 Missing ALT Tags on Product Images

Status: 🔴 Critical
Priority: HIGH

Product images across the store have empty or missing alt attributes. Google Images is a meaningful traffic source for physical product stores. Without ALT tags, these images are invisible to search engines, and the pages lose a relevance signal that would otherwise reinforce the product name and category keywords.

Fix: Build a naming template and apply it via the Shopify theme or a bulk-edit app: [Product Name] - [Color/Model] - [Brand]. This can be implemented once in the image upload workflow so all future uploads follow the same pattern.

1.6 Duplicate Content - URL Parameter Variants

Status: 🔴 Critical
Priority: HIGH

Multiple pages with near-identical content were found, primarily caused by URL parameter variants: ?sort=, ?page=, ?variant=. Google may index all of these separately, diluting link equity and potentially triggering thin content signals.

🖼️

duplicate content clusters from crawl report

Screenshot placeholder

Fix: Implement canonical tags on all paginated and filtered URLs, pointing back to the root collection URL. Review URL parameter handling in Google Search Console → Settings → URL Parameters.

1.7 Broken and Non-Responding Links

Status: 🟡 Issue Found
Priority: MEDIUM

Several internal and external links return non-standard response codes - including redirect chains (multiple 301s chained together), a 500 error on one partner page link, and timeouts on two external links. Redirect chains pass less link equity than a direct URL and slow down crawling.

Fix: Audit all links with a crawler. Replace redirect chains with direct final URLs. Remove or swap out external links that return errors.

1.8 External Links Without Nofollow

Status: 🟡 Issue Found
Priority: MEDIUM

Multiple external links - including footer partner links and a brand directory listing - are missing rel="nofollow" or rel="sponsored" attributes. Outbound link equity is not unlimited; sending it to third-party sites without qualification reduces the amount available for your own internal pages.

Fix: Audit all external links. Add rel="nofollow" to footer links, partner links, and any link that exists for commercial reasons rather than editorial ones.

1.9 Duplicate H2 Tags - Template Placeholder Not Replaced

Status: 🔴 Critical
Priority: MEDIUM

Many pages have an H2 tag that reads literally as #title# - a template placeholder that was never replaced during theme setup. Dozens of pages share this H2, which sends no relevance signal and looks broken to users who inspect the page source.

Fix: Update the theme template so the H2 pulls the correct dynamic value (section name, product type, or page-specific heading). This is typically a one-line change in the Liquid template file.

1.10 HTML and CSS Validation Errors

Status: 🟡 Issue Found
Priority: MEDIUM

Validation results:

Google doesn't penalize directly for validation errors, but certain HTML bugs - especially malformed structured data or unclosed tags near Schema scripts - can break how Googlebot parses the page.

🖼️

W3C CSS Validation report showing 35 errors

Screenshot placeholder

Fix: Run both validators on the homepage and main templates. Prioritize errors that affect Schema markup, canonical tags, or page structure. CSS errors in third-party libraries (carousel, lightbox) can be deprioritized.

SECTION 2: ON-PAGE OPTIMIZATION

ON-Page Audit

2.1 Duplicate URL Structure - Text Pages vs. Collection Pages

Status: 🔴 Critical
Priority: HIGH

There are pairs of pages targeting the same keyword - one as a plain text/content page, the other as a product collection. Neither page alone has enough signals to rank well: the content page has text but no products, the collection page has products but no editorial content. In practice, they compete against each other for the same query.

Example structure found:

🖼️

side-by-side of both pages

Screenshot placeholder

Fix: Merge both into a single page. Keep the /collections/ URL, add the editorial content below the product grid, then set a 301 redirect from the /pages/ URL to the collection. This combination of text + products on one page is what Google wants to see for category keywords with commercial intent.

2.2 Self-Referencing Links

Status: 🟡 Issue Found
Priority: MEDIUM

Several footer and navigation links point back to the same page the user is already on. This inflates the apparent internal link count without adding any crawl value, and can confuse navigation logic in assistive technologies.

🖼️

footer with self-referencing links highlighted

Screenshot placeholder

Fix: Remove self-referencing links or convert them to static text. Where the current page is part of a navigation menu, mark it with aria-current="page" instead of a live link.

2.3 Active Menu Item Not Highlighted

Status: 🟡 Issue Found
Priority: LOW

When a user navigates to a category page, the matching menu item shows no visual change. Users who browse multiple categories lose track of where they are. It's a small fix with a real UX impact, especially on stores with deep category structures.

🖼️

menu without active state

Screenshot placeholder

Fix: Add an active class to the current menu item via Shopify's Liquid logic. One-time theme change, no ongoing maintenance required.

2.4 Phone Number Disappears on Scroll

Status: 🟡 Issue Found
Priority: MEDIUM

The phone number is visible in the top header bar but disappears when the user scrolls down. On a store selling higher-ticket items, removing the fastest path to contact at the exact moment a customer is reading a product page is a conversion risk.

🖼️

top header vs. sticky header without phone number

Screenshot placeholder

Fix: Include a click-to-call phone icon in the sticky header that activates on scroll. Testing this element on similar stores typically shows a 5-12% lift in contact rate on product and checkout pages.

2.5 Incorrect Header Tag Usage

Status: 🔴 Critical
Priority: HIGH

Product names and sidebar labels are marked up with <h3> and <h4> tags where <div> or <p> should be used. Header tags send keyword relevance signals to Google. When they're used for visual styling rather than content structure, the actual section headings get diluted in a sea of decorative ones.

🖼️

page source showing H3 on product tile names

Screenshot placeholder

Fix: Replace decorative header tags with styled <p> or <span> elements using CSS classes. Reserve H3-H4 for actual content sub-sections.

2.6 Google Maps API Error on Contact Page

Status: 🔴 Critical
Priority: MEDIUM

The contact page displays a Google Maps error - "This page can't load Google Maps correctly" - caused by an invalid or unrestricted API key. A broken map on a contact page signals to customers that the site isn't actively maintained.

🖼️

Google Maps error on contact page

Screenshot placeholder

Fix: Option A - Regenerate the Maps API key and restrict it to the domain. Option B - Replace the API-based map with a static iframe embed (no API key required, always reliable).

2.7 Meta Tags Not Localized Correctly

Status: 🔴 Critical
Priority: HIGH

The store has multilingual content, but title and description tags are inconsistent across languages. Some English-language pages have titles written in Dutch. Some pages use a single-word title. This hurts Google's ability to match the right page to the right language query.

Fix: Build a per-locale meta tag template system in the Shopify theme. Review all hreflang annotations to confirm correct language-to-URL mapping. Every alternate language version needs a reciprocal hreflang tag, plus an x-default designation on the primary version.

2.8 Category Navigation Incomplete

Status: 🟡 Issue Found
Priority: MEDIUM

Not all active products appear under the corresponding navigation categories. A customer browsing by category will miss products that exist in the store but aren't properly tagged to a collection. This is a quiet conversion leak - the product exists, the customer exists, but they never meet.

Fix: Audit all product tags and collection assignments. Every active product should belong to at least one navigable collection. Set up a Shopify filter or report to surface unassigned products automatically.

SECTION 3: MOBILE PERFORMANCE

Mobile PageSpeed Score: 12/100 - Critical

Status: 🔴 Critical
Priority: CRITICAL

Google uses mobile-first indexing - the mobile version of the site is what determines rankings, not desktop. A score of 12 means the store is failing Core Web Vitals across all three metrics. The gap between mobile (12) and desktop (65) also suggests the mobile template has additional render-blocking issues that the desktop version doesn't share.

🖼️

PageSpeed score - Mobile vs Desktop

Screenshot placeholder

Core Web Vitals Breakdown:

Metric Current Target Status
Largest Contentful Paint (LCP) ~6.8s < 2.5s ❌ Fail
Cumulative Layout Shift (CLS) 0.31 < 0.1 ❌ Fail
Interaction to Next Paint (INP) ~620ms < 200ms ❌ Fail

Root causes identified:

Fix plan:

3.1 Phone Numbers Not Clickable on Mobile

Status: 🔴 Critical
Priority: HIGH

Phone numbers are displayed as plain text and don't respond to a tap on mobile. This is a one-line fix with a direct impact on contact rate.

Fix: Wrap all phone number instances in <a href="tel:+[number]">.

3.2 Form Fields Missing Persistent Labels

Status: 🟡 Issue Found
Priority: MEDIUM

Search and contact form fields use placeholder text only - no visible label. Once a user starts typing, the placeholder disappears and the field has no label. On mobile, where users frequently lose their place in a form, this increases abandonment.

Fix: Use a floating label pattern or a static label placed above the field. Placeholder text should supplement a label, not replace it.

3.3 Footer Truncated on Mobile

Status: 🟡 Issue Found
Priority: MEDIUM

The footer collapses on narrow viewports, hiding contact details, legal links, and payment icons. Users who look for this information on mobile - often at the end of a purchase decision - can't find it.

Fix: Implement an accordion footer on mobile: collapsed by default per section, expandable on tap. All content remains accessible without horizontal scroll.

3.4 No Back-to-Top Button

Status: 🟡 Issue Found
Priority: LOW

Category pages are long on mobile. There's no way to return to the top without scrolling all the way back up. On pages with 40+ products, this creates a friction point at the exact moment users might want to refine their filter or navigate to a different category.

Fix: Add a floating "back to top" button that appears after 300px of scroll. This is a small JavaScript addition (~10 lines) and requires minimal CSS.

3.5 Oversized Logo in Sticky Header

Status: 🟡 Issue Found
Priority: MEDIUM

When scrolling on mobile, the full-size header takes up 20-25% of the viewport. That's a significant amount of screen space dedicated to navigation chrome rather than product content.

Fix: Reduce header height on scroll to a compact version (~48px) showing only the logo mark and cart icon, with a click-to-call button added in place of the full nav.

3.6 Product Carousel Doesn't Loop

Status: 🟡 Issue Found
Priority: LOW

Product carousels on category pages stop at the last item - the next button disables. Most users stop browsing at that point rather than navigating back. A looping carousel keeps engagement on the page without requiring any navigation action.

Fix: Enable infinite loop on all carousel instances. This is a configuration option in most Shopify carousel plugins - typically one setting change.

SECTION 4: STRUCTURED DATA & SCHEMA MARKUP

Structured Data

4.1 Product Schema - Completely Missing

Status: 🔴 Critical
Priority: CRITICAL

No structured data exists anywhere on the site. For an Ecommerce store, this is a significant gap. Product Schema enables rich results in Google search - star ratings, price, availability - directly in the SERP. Stores with Product Schema consistently see 15-30% higher CTR than those without it, for the same ranking position.

Required Schema types for this store:

Recommended Product Schema (product page template):

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "@id": "https://[domain]/products/[product-handle]#product",
  "name": "[Product Name]",
  "description": "[Product description]",
  "sku": "[SKU]",
  "brand": {
    "@type": "Brand",
    "name": "[Brand Name]"
  },
  "image": [
    "https://[domain]/products/[image-1].jpg",
    "https://[domain]/products/[image-2].jpg"
  ],
  "offers": {
    "@type": "Offer",
    "url": "https://[domain]/products/[product-handle]",
    "priceCurrency": "EUR",
    "price": "[price]",
    "availability": "https://schema.org/InStock",
    "priceValidUntil": "2027-12-31"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "38"
  }
}
</script>
      

Implementation time: 3-5 hours to build the template; automatically applies to all products on publication.

Expected impact: Rich results in SERP within 2-4 weeks of deployment; CTR improvement of 15-30% on product pages.

4.2 Canonical Tags on Variant URLs

Status: 🔴 Critical
Priority: CRITICAL

When a product has color or size variants, each variant generates a URL with a ?variant= parameter. Without canonical tags, Google indexes each variant URL separately - splitting ranking signals across potentially dozens of thin pages that all describe the same product.

Fix: Add to every variant URL:

<link rel="canonical" href="https://[domain]/products/[product-handle]">
      

In Shopify, this is handled in theme.liquid using {{ canonical_url }} - verify this is outputting the base product URL, not the variant URL.

4.3 BreadcrumbList Schema

Status: 🔴 Missing
Priority: HIGH

Breadcrumb rich results in Google show the category path directly in the search snippet - for example: Store → Category → Product Name. This makes the result easier to scan and increases trust. Without BreadcrumbList Schema, Google may show a raw URL instead.

Recommended BreadcrumbList Schema (product page):

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://[domain]/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "[Category Name]",
      "item": "https://[domain]/collections/[category]"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "[Product Name]",
      "item": "https://[domain]/products/[product-handle]"
    }
  ]
}
</script>
      

SECTION 5: LOCAL SEO

Local SEO Audit

5.1 NAP Consistency - Verified

Status: ✅ Correct

Name, Address, and Phone number are consistent across all directories checked. This is the most critical local SEO factor and the store has it right.

5.2 Google Business Profile - Incomplete

Status: 🟡 Needs Work
Priority: MEDIUM

Factor Status Priority
NAP consistency✅ Correct-
Google Business Profile active✅ Live-
FAQ section⚠️ Minimal (2 entries)Medium
Photos (office, products, team)⚠️ Few uploadedMedium
Services listed with descriptions❌ MissingHigh
Customer reviews⚠️ Low volumeHigh
Facebook Business Profile linked❌ Not connectedLow

Recommended actions:

SECTION 6: OFF-PAGE & BACKLINKS

Backlinks SEO Audit

6.1 Backlink Profile Overview

Status: 🟢 Solid Foundation
Priority: LOW (maintenance)

Authority Score: 35 | Total Backlinks: ~1,500

This is a healthy profile for a niche Ecommerce store. No obvious toxic link patterns were found. The site has more authority than three of the five competitors analyzed - which is a real advantage going into any content or link-building campaign.

6.2 Competitor Backlink Comparison

Site Authority Score Backlinks Notes
This store35~1,500Solid niche profile
Competitor A385,900Stronger - mainly directory volume
Competitor B19917Weaker profile
Competitor C675Very weak
Competitor D201,600Comparable
Competitor E3133,700High volume - brand and press links

Key gap: Competitor E has 20x more backlinks driven by brand recognition and press coverage. The priority for link building should be niche directory listings, product review placements, and category-specific press mentions - not general link volume.

6.3 Link Building Priorities

SECTION 7: ECOMMERCE UX SIGNALS

Backlinks SEO Audit

7.1 Conversion Signals on Product Pages

Status: 🔴 Weak
Priority: HIGH

Checked: delivery time display, stock indicators, return policy visibility, trust badges, payment icons. Key findings:

7.2 Internal Cross-Linking Between Related Products

Status: 🟡 Weak
Priority: MEDIUM

The "Related Products" section is present but shows semi-random results - not filtered by category, tag, or product type. A customer looking at Product A who sees unrelated Product B gets no cross-sell value. From an SEO standpoint, unfocused cross-linking also distributes crawl budget to low-priority pages rather than reinforcing key category clusters.

Fix: Build related product logic based on collection membership + shared tags. Products in the same category should cross-link to each other. This improves both average order value and the site's internal link structure.

7.3 Sitemap Quality

Status: 🟡 Issues Found
Priority: MEDIUM

The sitemap.xml includes URLs that return 404 errors and redirect targets. It also includes pages that should be excluded from indexing (internal search results, cart page, customer account pages). A sitemap with bad URLs tells Google to crawl pages you don't want indexed - wasting crawl budget on low-quality or private pages.

Fix: Regenerate a clean sitemap that includes only canonical, indexable URLs. Exclude: /cart, /account, /search, paginated URLs beyond page 2. Submit the cleaned sitemap to Google Search Console and monitor the coverage report for remaining errors.

IMPLEMENTATION ROADMAP & EXPECTED BUSINESS IMPACT

Phase 1: Critical Fixes (Weeks 1-2)

Priority: CRITICAL

Expected impact: crawl issues resolved; CTR improvement visible within 3-4 weeks as Google re-indexes updated pages.


Phase 2: SEO Foundation (Weeks 3-6)

Priority: HIGH

Expected impact: rich results begin appearing in SERP within 4-6 weeks of schema deployment; page load improvement visible in Core Web Vitals report.


Phase 3: Performance & Growth (Weeks 7-16)

Priority: MEDIUM

Expected impact: organic traffic growth of 25-40% within 3 months of full cleanup; measurable conversion rate improvement from UX changes.


Expected Business Impact

Metric Current State Target (3 months) Driver
Mobile PageSpeed 12/100 60+/100 Image optimization, script deferral
SERP CTR (product pages) Baseline +20-30% Rich results from Product Schema
Indexed pages with correct metadata ~20% 90%+ Meta description and title cleanup
Crawl errors in Search Console Multiple 404s, redirect chains Near zero Technical fixes Phase 1
Organic sessions (estimated) Baseline +25-40% Combined technical + on-page fixes

This store has real strengths to build on: content quality is good, the backlink profile is competitive within the niche, and the product range is solid. The fixes outlined in this audit remove the structural barriers that are currently preventing those strengths from translating into rankings and traffic.

Questions about this report or ready to start? Contact us at webaudits.dev