Auditoría SEO técnica paso a paso

Ecommerce SEO audit: step-by-step setup

An SEO audit of an online store doesn’t look like an audit of a blog. The catalog introduces variables that an editorial site doesn’t have: product variants, faceted filters, changing stock, and sorting parameters that generate thousands of URLs. That’s why, when someone asks me where to start, my answer is always the same: don’t open Search Console to look at graphs. First set up a reproducible environment that lets you measure without noise. This article describes that exact sequence, in the order in which it should be carried out.

Step 0: prepare the environment before touching the store

Before auditing anything, you need three things set up. If you skip them, you’ll end up making decisions based on contaminated data.

1. A baseline crawl with a Googlebot user-agent

Configure Screaming Frog (or whichever tool you use) with the Googlebot smartphone user-agent and enable JavaScript rendering. On an ecommerce site with lazy-loaded images and prices loaded via AJAX, crawling without rendering returns empty templates and false duplicates. It’s the most common mistake I see: auditing with the default desktop crawl and concluding there’s duplicate content where there’s only incomplete rendering.

2. Separate properties in Search Console

Have a domain property and a URL-prefix property with the canonical version. Compare both. If the data differs significantly, you have a redirect or parameter problem that you’re not controlling.

3. Server log export

Ask the infrastructure team for at least 15 days of logs with IP, user-agent, requested URL, and status code. Without this, you can’t know what Google actually crawls, only what your tool thinks it crawls.

Step 1: freeze indexability and document the initial state

Before changing canonicals or adding noindex, save a snapshot of the current state: number of indexed URLs, submitted sitemap, robots.txt, and meta directives of the main templates (category, product, filters).

A detail you only learn through practice: in PrestaShop and in some WooCommerce setups with filter plugins, robots.txt blocks /*?orderby= but internal links still point to those URLs. The result: Google can’t crawl the page, but it does discover the link and accumulates signals on a blocked URL. Always check the consistency between what’s blocked and what’s linked.

Step 2: map the real architecture of the catalog

Not the one you designed, the one that exists. Export all crawled URLs and classify them into four buckets:

  • Canonical products
  • Navigable categories
  • Facets and parameters
  • System URLs (cart, checkout, account, internal search)

Count how many there are of each type. In mid-sized stores it’s common to find that facets outnumber products. That’s where most of the crawl budget goes.

A practical decision about facets

There’s no universal rule. Facets with real search volume (for example, color and size combinations in fashion) deserve to be indexed as landing pages. Those that only serve for navigation should remain accessible but not indexable. What doesn’t work: applying a blanket noindex to all facets and then discovering that some were bringing in long-tail traffic. Check Search Console before deciding, filtering by URLs with parameters and queries with impressions.

Step 3: configure canonicals, pagination, and variants

This is the point where most stores lose strength. Three specific configurations:

Product variants

If each size or color generates its own URL with nearly identical content, choose a canonical. In Shopify, variants by default don’t create a separate URL, but many themes generate them with parameters; in Magento it’s common to have URLs per variant. Decide whether the variant deserves a page (because it has its own demand) or whether it should point to the parent product.

Pagination

Page 2 of a category should be indexable and self-canonical. Don’t canonicalize it to page 1: you lose the crawl of the products that only appear there. And don’t block it in robots.txt, because then Google won’t see the links on that page.

Sorting and view

Sorting parameters (?orderby=price, ?view=grid) should canonicalize to the clean category URL. Verify that internal links don’t propagate them.

Step 4: product structured data, with nuances

Implementing Product and Offer schema is mandatory if you want rich results, but here it’s worth being honest about the limitations. According to Google’s official documentation, structured data doesn’t guarantee the appearance of enhancements in the results; it’s a necessary condition, not a sufficient one.

Mistakes that appear over and over again:

  • availability out of sync with real stock. A product marked as InStock that is actually sold out generates penalties in the enhancements and confuses the user.
  • price without a currency or with a local format (19,99 € instead of 19.99 with priceCurrency: EUR).
  • Aggregate reviews that are invented or imported from a supplier. Google requires that they reflect real reviews from the site.

If your store has thousands of SKUs and the ERP updates prices every hour, syncing the schema is a development project, not a template tweak. Plan it as such.

Step 5: measure performance with field data, not lab data

Core Web Vitals in ecommerce has a structural problem: product templates that are heavy with images and third-party scripts. Lighthouse gives you a lab snapshot; what counts is the field data in Search Console, in the Experience section.

First check which templates concentrate the problems. In many stores, the homepage passes the thresholds and it’s the product pages with many images that fail on LCP. Optimizing the homepage doesn’t move the needle. Prioritize by template and by traffic.

An important nuance: if your catalog changes price and availability via third-party JavaScript (recommenders, chat, payment gateways), INP can be affected and isn’t always under your direct control. Document which scripts are dispensable and which aren’t before removing anything.

Step 6: internal linking and faceted navigation

Check how many clicks Googlebot needs to reach a product from the homepage. In deep catalogs, products on page 5 of a category can be four or five clicks away. Add blocks of internal links (related products, sibling categories, featured items) that shorten that distance.

And check the menu: links to facets from the main menu are a strong indexing signal. If you don’t want a facet to be indexed, don’t put it in the menu.

Step 7: category content and thin content

Categories with only a product listing compete poorly. Adding descriptive text helps, but not just any text. Generic descriptions copied from the manufacturer create duplication across stores. According to industry studies, ecommerce sites that work on their own content in main categories obtain better organic performance, although correlation doesn’t imply causation and it depends heavily on the niche.

A specific case I often come across: categories with hundreds of products where the text is inserted at the end and is identical across all subcategories. Google detects it as internal duplicate content. Solution: differentiated content per subcategory, at least in those with search demand.

Step 8: dashboard and verification

Close the audit with a panel you can review every month:

  • Indexed URLs vs. those submitted in the sitemap
  • Distribution of status codes in the crawl
  • Queries with impressions but no clicks (title and meta opportunities)
  • Templates with the worst field LCP
  • Sold-out products and how they’re handled (301, 410, or keep with a notice)

On sold-out products: there’s no single answer. If the product is going to come back, keep the URL with a notice and updated availability. If it’s permanently discontinued, redirect to the category or to a substitute. Redirecting everything to the homepage is a practice that dilutes signals and confuses the user.

What this audit doesn’t solve

Being transparent matters. A technical audit doesn’t fix a catalog without demand, doesn’t replace a pricing strategy, and doesn’t guarantee rankings. Nor can it compensate for a poor shopping experience: if the checkout fails on mobile, organic traffic won’t convert. And there are practical limits: in stores with thousands of SKUs and a legacy ERP, perfect structured data synchronization can take months, and it’s better to prioritize the SKUs with the most traffic rather than chasing 100% coverage.

The audit is the diagnosis. Phased execution, with metrics per template, is what moves results.

Sobre el autor

Deivi Sanz

Soy David, conocido como Deivi Sanz, especialista en SEO y marketing digital con más de 15 años de experiencia ayudando a negocios a destacar en el mundo online.

Mi pasión es transformar ideas en estrategias digitales efectivas, combinando análisis de datos, creatividad y las últimas tendencias en posicionamiento web. En este blog comparto mis conocimientos sobre SEO técnico, content marketing y growth hacking, siempre con un enfoque práctico y resultados medibles.

Cuando no estoy optimizando webs o escribiendo artículos, me encontrarás explorando nuevas herramientas SEO, analizando casos de éxito o disfrutando de un buen café mientras planifico la siguiente estrategia viral.

También me gusta implementar ideas creando plugin para WordPress o aplicaciones para Android.

Firma:

Con dedicación y estrategia,

David "Deivi Sanz"
🔍 Especialista SEO
🌐 Creador de Contenidos Digitales
🚀 Transformando visitas en oportunidades

¿Necesitas ayuda con tu proyecto digital?
¡Hablemos en los comentarios! o en contactar
Deivi Sanz

Ver más artículos de Deivi Sanz