Magento SEO Best Practices: The 2026 Guide We Use on Every Build
This is the SEO configuration checklist we apply to every Magento build. Not theory – these are the exact settings, architecture decisions, and technical implementations that we use on production stores.
Magento can be excellent for SEO. It can also be terrible. The default configuration creates duplicate content, bloated URLs, crawl traps, and performance problems that actively work against your rankings. Most Magento stores we audit have 5-15 SEO issues that are costing them traffic – and most of those issues are configuration problems, not code problems.
This guide covers everything from store configuration to infrastructure to schema markup. If you are running Magento and care about organic traffic, this is the reference.
Key priorities
Before getting into the details, here are the priorities that drive every decision in this guide:
- Eliminate duplicate content. Magento generates more duplicate content out of the box than almost any other platform. URL parameters, layered navigation, category paths in URLs, and store view configurations all create duplicate pages. Fix these first.
- Control the crawl budget. Google allocates a crawl budget to your site. If Googlebot spends its budget crawling faceted navigation URLs and parameter variations, it does not crawl your product and category pages. Direct crawl budget toward the pages that matter.
- Page speed matters more than ever. Core Web Vitals are ranking factors. Magento’s default frontend is heavy. Every optimization in this guide considers performance impact.
- Structure data for search engines. Structured data (schema markup) gives Google explicit information about your products, organization, and content. Implement it correctly and you qualify for rich results. Implement it incorrectly and you get ignored or penalized.
Store configuration
These are Magento admin settings that affect SEO directly. Configure these before anything else.
Base URL configuration
Use HTTPS everywhere. Set both the base URL and base link URL to HTTPS. Enable “Use Secure URLs on Storefront” and “Use Secure URLs in Admin.” If you have not done this already, implement HTTPS with proper 301 redirects from HTTP.
Trailing slash consistency. Choose whether your URLs end with a trailing slash or not, and be consistent. Magento’s default is no trailing slash. If you choose trailing slashes, configure them in the URL rewrite settings and ensure all internal links, canonicals, and sitemap URLs match.
WWW vs non-WWW. Choose one and redirect the other with a 301. Configure this at the server level (nginx or Apache), not in Magento.
Store view and language configuration
Hreflang implementation. If you have multiple store views for different languages or regions, implement hreflang tags. Magento does not do this natively – you need an extension or custom implementation. Without hreflang, Google may show the wrong language version to users and you will cannibalize yourself across store views.
Store code in URLs. Disable “Add Store Code to URLs” unless you have a specific reason to enable it. Store codes in URLs create additional URL paths that need to be managed for canonicalization.
Catalog SEO settings
Navigate to Stores > Configuration > Catalog > Catalog > Search Engine Optimization:
Product URL suffix. Set to .html or remove it entirely (empty field). Be consistent. Changing this after the store is live requires redirects for every product URL.
Category URL suffix. Same as product URL suffix. Match them for consistency.
Use Categories Path for Product URLs. Set to No. This is one of the most important Magento SEO settings. When enabled, Magento creates URLs like /category/subcategory/product.html in addition to /product.html. The same product is accessible at multiple URLs. This creates massive duplicate content. Set to No and your products have one URL each.
Create Permanent Redirect for URLs if URL Key Changed. Set to Yes. When someone changes a product URL key, Magento automatically creates a 301 redirect from the old URL to the new one. This prevents broken links.
Product meta data defaults
Product Meta Title. Set a template that generates reasonable titles automatically. Format: {product_name} | {brand} or {product_name} - {category_name}. Override on key products with manually written titles.
Product Meta Description. Set a template for auto-generation, but write custom meta descriptions for your top 50-100 products. Auto-generated descriptions from product descriptions are better than empty meta descriptions.
URL architecture
URL structure is foundational. Get it wrong early and fixing it later means redirecting thousands of URLs.
Product URLs
Keep product URLs flat. With “Use Categories Path for Product URLs” disabled, product URLs are flat: yourstore.com/product-name.html. This is cleaner, creates no duplicates, and is the approach we recommend for every Magento build.
URL keys should be descriptive and concise. Use the product name with hyphens separating words. Remove unnecessary words (a, an, the, and). Include the primary keyword if it fits naturally. Keep URL keys under 75 characters.
Good: /industrial-marking-machine-im-350.html Bad: /catalog/product/view/id/4752/s/the-industrial-marking-machine-model-im-350-by-acme-corporation.html
Handle duplicate URL keys. When two products have the same URL key, Magento appends a number (product-name-1.html). Avoid this by making URL keys unique. For products with similar names, differentiate by adding a model number, variant descriptor, or brand.
Category URLs
Keep the hierarchy logical but shallow. yourstore.com/category/subcategory.html works. yourstore.com/department/category/subcategory/sub-subcategory.html is too deep. Try to keep category URLs to two levels maximum.
Category URL keys should match the category name. /fasteners.html, /industrial-marking.html, /safety-equipment.html. Keep them short, descriptive, and keyword-relevant.
URL rewrites
Magento’s URL rewrite system generates rewrite rules for products and categories. Monitor the url_rewrite table – on large catalogs, it can grow to millions of rows and cause performance issues.
Clean up orphaned rewrites. When products or categories are deleted, their URL rewrites remain. Periodically clean up rewrites that point to deleted entities.
Avoid redirect chains. When a URL is redirected, and the destination is also redirected, you have a chain. Each hop in the chain costs crawl budget and passes less link equity. Check for chains and update them to point directly to the final destination.
Image SEO
Product images are ranking opportunities. Google Images drives meaningful traffic for ecommerce stores.
File names matter. Name image files descriptively before uploading. industrial-marking-machine-im-350-front.jpg is better than IMG_4752.jpg. Magento preserves the uploaded file name in most configurations.
Alt text on every image. Set the alt text attribute for every product image. Describe what the image shows, include the product name, and include a relevant keyword if it fits naturally. Keep alt text under 125 characters.
Good: IM-350 industrial marking machine front view showing control panel and marking head Bad: image or industrial marking machine industrial marking machine buy industrial marking machine
Image compression. Large, uncompressed images are the most common cause of slow Magento pages. Compress all images before upload. Use WebP format where supported (Magento 2.4+ supports WebP). Target image file sizes under 200KB for product photos without visible quality loss.
Lazy loading. Enable lazy loading for images below the fold. This improves initial page load time significantly on category and product pages with many images. Do not lazy-load the first visible image (LCP image) – that should load immediately.
Responsive images. Use srcset and sizes attributes to serve appropriately sized images for different screen sizes. A mobile user should not download a 2000px-wide hero image. Magento’s theme image configuration handles this if configured correctly.
Faceted navigation SEO
Faceted navigation (layered navigation in Magento) is the single biggest SEO challenge on Magento stores. Every filter combination creates a new URL. A catalog with 10 filter options and 5 values each can generate millions of URL combinations – all with similar or identical content.
The problem
When a user filters by “Material: Steel” on a fasteners category, Magento generates a URL like /fasteners.html?material=steel. If they add “Size: M10”, it becomes /fasteners.html?material=steel&size=m10. Each combination is a crawlable, indexable URL by default.
Google crawls these URLs, finds thin or duplicate content, and wastes crawl budget. In severe cases, this causes crawl budget exhaustion – Google never gets to your actual product pages because it is too busy crawling filter combinations.
The solution
Identify which filters create valuable pages and which do not. Some filter combinations represent genuinely useful landing pages. “Stainless steel fasteners” is a page people search for. “Fasteners sorted by price ascending” is not.
For valuable filter combinations: Create dedicated category pages or landing pages with unique content, unique title tags, and unique meta descriptions. These are real pages with real search value.
For everything else – block, noindex, or canonicalize:
- robots.txt. Block crawling of filtered URLs with parameter patterns in robots.txt. This is the bluntest approach – Google cannot crawl or index these URLs.
Disallow: /*?*material=
Disallow: /*?*size=
Disallow: /*?*price=
Disallow: /*?*sort=
Disallow: /*?*dir=
Disallow: /*?*limit=
Disallow: /*?*mode=
- Canonical tags. Set canonical tags on filtered pages pointing back to the unfiltered category page. This tells Google “this filtered view is a variant of the main category page” and consolidates ranking signals. This is the recommended approach for most Magento stores.
- Meta robots noindex. Add
noindex, followto filtered pages. Google will follow the links on the page (finding products) but will not index the filtered page itself. Use this when canonical tags alone are not sufficient.
- AJAX-based filtering. Implement filtering with AJAX so that filter actions do not change the URL. No new URL means no crawl budget waste. This requires frontend development but is the cleanest SEO solution.
Our recommended approach: Use canonical tags as the primary strategy. Supplement with robots.txt blocking for sort, direction, and pagination parameters. Use AJAX filtering if your development budget allows it.
Pagination
Category pages with many products generate paginated URLs (/category.html?p=2, /category.html?p=3). Handle pagination correctly:
- Use rel=”next” and rel=”prev” on paginated pages (while Google says they do not use these as indexing directives, other search engines do, and they signal intent)
- Canonical to self on each paginated page – do not canonical all pages to page 1
- Do not noindex paginated pages – products on page 5 need to be discoverable through crawling
- Consider “view all” pages for categories with fewer than 100 products, canonical paginated pages to the view-all page
Crawl optimization
Controlling what Googlebot crawls and how efficiently it crawls determines how well your important pages are indexed.
XML sitemap
Generate an XML sitemap that includes only indexable pages. Magento’s built-in sitemap generator (Marketing > SEO & Search > Site Map) creates sitemaps for products, categories, and CMS pages.
Configuration:
- Include only enabled, visible, in-stock products (configurable per store view)
- Include only active categories with products
- Include CMS pages that should be indexed
- Set change frequency and priority appropriately (do not set everything to “daily” and “1.0”)
- Enable sitemap splitting for large catalogs (Google recommends max 50,000 URLs per sitemap file)
Submit the sitemap in Google Search Console. Monitor the sitemap report for errors, warnings, and indexing coverage.
Update the sitemap regularly. Configure automatic sitemap generation on a daily cron schedule. New products, removed products, and URL changes should be reflected in the sitemap within 24 hours.
Robots.txt
A well-configured robots.txt prevents crawl budget waste:
User-agent: *
# Block admin and checkout
Disallow: /admin/
Disallow: /checkout/
Disallow: /customer/
# Block internal search results
Disallow: /catalogsearch/
# Block cart and comparison
Disallow: /checkout/cart/
Disallow: /catalog/product_compare/
# Block sort and filter parameters
Disallow: /*?*dir=
Disallow: /*?*limit=
Disallow: /*?*mode=
Disallow: /*?*sort=
Disallow: /*?*price=
# Block session ID parameters
Disallow: /*?*SID=
# Sitemap reference
Sitemap: https://yourstore.com/sitemap.xml
Test your robots.txt in Search Console using the URL Inspection tool to verify that important pages are not accidentally blocked.
Crawl depth
Products should be reachable within 3-4 clicks from the homepage. Deep crawl depth means Google discovers and indexes pages more slowly.
- Homepage links to main categories (1 click)
- Main categories link to subcategories (2 clicks)
- Subcategories list products (3 clicks)
- Product pages (3 clicks from homepage)
If your site structure puts products 5+ clicks deep, consider flattening the category hierarchy, adding featured products to higher-level pages, or implementing breadcrumb navigation that links back up the hierarchy.
Internal linking
Internal links distribute PageRank and help Google discover content. On Magento stores, these are the key internal linking opportunities:
- Breadcrumbs on every product and category page
- Related products, up-sells, and cross-sells on product pages
- Category page internal links in description text
- Blog content linking to products and categories
- Footer links to key categories (limited – do not stuff the footer)
For a systematic approach to internal linking, see our methodology for analyzing and improving internal link structures.
Schema markup
Structured data helps search engines understand your content and qualify for rich results in search. Here are the essential schema types for Magento stores.
Product schema
Every product page should have Product schema markup. At minimum:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "IM-350 Industrial Marking Machine",
"description": "High-speed industrial marking machine for permanent part identification",
"sku": "IM-350",
"brand": {
"@type": "Brand",
"name": "Acme Industrial"
},
"image": "https://yourstore.com/media/catalog/product/im-350.jpg",
"offers": {
"@type": "Offer",
"url": "https://yourstore.com/im-350.html",
"priceCurrency": "USD",
"price": "4500.00",
"availability": "https://schema.org/InStock",
"priceValidUntil": "2026-12-31"
}
}
Include reviews and ratings if you have them. AggregateRating markup enables star ratings in search results.
Include GTIN, MPN, or other identifiers when available. Google uses these for product identification and Shopping results.
Validate with Google’s Rich Results Test and fix any errors or warnings before deploying.
Organization schema
Add Organization schema to your homepage:
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Your Company Name",
"url": "https://yourstore.com",
"logo": "https://yourstore.com/media/logo.png",
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-555-123-4567",
"contactType": "customer service"
},
"sameAs": [
"https://www.linkedin.com/company/yourcompany",
"https://twitter.com/yourcompany"
]
}
This establishes your brand entity in Google’s Knowledge Graph and can generate a Knowledge Panel for branded searches.
BreadcrumbList schema
Breadcrumbs help Google understand your site hierarchy and display breadcrumb trails in search results:
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://yourstore.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Fasteners",
"item": "https://yourstore.com/fasteners.html"
},
{
"@type": "ListItem",
"position": 3,
"name": "Stainless Steel Bolts",
"item": "https://yourstore.com/stainless-steel-bolts.html"
}
]
}
Magento’s breadcrumb block can be extended to generate this markup automatically.
FAQ schema
If your product pages or CMS pages have FAQ sections, mark them up with FAQPage schema. This can generate expandable FAQ results directly in search:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is the marking speed of the IM-350?",
"acceptedAnswer": {
"@type": "Answer",
"text": "The IM-350 marks at speeds up to 200 characters per second depending on material and mark depth."
}
}
]
}
Do not overuse FAQ schema. Google has tightened eligibility. Only use it for genuine frequently asked questions with substantive answers.
Core Web Vitals
Core Web Vitals are confirmed ranking factors. Magento stores commonly fail all three metrics without optimization. Here is how to fix each one.
Largest Contentful Paint (LCP)
LCP measures how long it takes for the largest visible content element to load. Target: under 2.5 seconds.
Common Magento LCP problems:
- Hero images that are not optimized or not preloaded
- Render-blocking CSS and JavaScript
- Slow server response time (Time to First Byte)
- Third-party scripts loading before main content
Fixes:
- Preload the LCP image. Add
in thefor the above-the-fold hero image. - Optimize TTFB. Enable Varnish full-page cache. Configure Redis for session and cache storage. Target TTFB under 200ms for cached pages.
- Defer non-critical CSS. Load only critical above-the-fold CSS synchronously. Load the rest asynchronously.
- Optimize images. Serve WebP format. Compress appropriately. Use responsive images with correct sizing.
- CDN. Serve static assets (images, CSS, JS) from a CDN. Cloudflare, Fastly, or AWS CloudFront. This reduces latency for users far from your server.
Cumulative Layout Shift (CLS)
CLS measures visual stability – how much the page layout shifts during loading. Target: under 0.1.
Common Magento CLS problems:
- Images loading without defined dimensions (height/width)
- Web fonts causing text reflow (FOUT/FOIT)
- Dynamic content injected above existing content
- Ads or banners loading late and pushing content down
Fixes:
- Set width and height on all images. This reserves space before the image loads, preventing layout shift.
- Font display strategy. Use
font-display: swapwith well-matched fallback fonts that minimize reflow. Preload critical fonts. - Reserve space for dynamic content. If you have banners, promotions, or third-party widgets that load asynchronously, reserve their space with CSS min-height.
- Avoid inserting content above the fold after initial render. Cookie consent banners, notification bars, and promotional overlays should push from the top (not insert between elements) or overlay without shifting content.
Interaction to Next Paint (INP)
INP measures responsiveness – how quickly the page responds to user interactions. Target: under 200ms.
Common Magento INP problems:
- Heavy JavaScript execution blocking the main thread
- Complex DOM with thousands of elements
- Third-party scripts (analytics, chat, reviews) consuming main thread time
Fixes:
- Defer third-party scripts. Load non-essential JavaScript (analytics, chat widgets, review widgets) with
deferorasync. Load them after the main content is interactive. - Reduce DOM complexity. Magento’s default theme generates bloated HTML. Simplify templates where possible. Reduce nesting depth.
- Code split JavaScript. Do not load all JavaScript on every page. Load product page JavaScript only on product pages. Load checkout JavaScript only during checkout.
- Use web workers for heavy computation that does not need DOM access.
Infrastructure stack
The right infrastructure stack is essential for Magento SEO because it directly affects page speed, uptime, and crawlability.
Web server. Nginx is the recommended web server for Magento. Apache works but Nginx handles static files and concurrent connections more efficiently.
Full-page cache. Varnish is essential for production Magento. Without full-page cache, Magento page generation is too slow for good SEO (1-3 seconds TTFB vs. 50-200ms with Varnish).
Application cache and sessions. Redis for both. Configure separate Redis instances for cache and sessions. This keeps Magento’s application layer responsive.
Search. Elasticsearch or OpenSearch for catalog search and layered navigation. The built-in MySQL search is too slow for production use.
CDN. Cloudflare or Fastly for static asset delivery and edge caching. Reduces latency globally and offloads static file serving from your origin server.
PHP version. Use the latest PHP version supported by your Magento version. PHP 8.1+ provides significant performance improvements over PHP 7.x. Check Magento’s system requirements for compatibility.
OPcache. Enable PHP OPcache with appropriate settings. This caches compiled PHP code and dramatically reduces execution time for repeated requests.
International SEO
If your Magento store serves multiple countries or languages, these configurations are critical.
Hreflang tags. Implement hreflang tags on every page that has equivalents in other languages or regions. This tells Google which version to show to which audience.
<link rel="alternate" hreflang="en-us" href="https://yourstore.com/product.html" />
<link rel="alternate" hreflang="en-gb" href="https://yourstore.co.uk/product.html" />
<link rel="alternate" hreflang="de" href="https://yourstore.de/produkt.html" />
<link rel="alternate" hreflang="x-default" href="https://yourstore.com/product.html" />
URL structure options:
- Subdirectories (
yourstore.com/de/,yourstore.com/fr/) – easiest to implement on Magento using store views. Shares domain authority. - Subdomains (
de.yourstore.com) – separate store views on subdomains. More isolation but less shared authority. - ccTLDs (
yourstore.de,yourstore.fr) – strongest local signal but most expensive and complex to manage.
Translated content. Machine-translated product descriptions hurt SEO. Google’s algorithms detect thin machine translation and may devalue it. Invest in human translation for key pages. Use machine translation as a starting draft, then have a native speaker edit.
Currency and pricing. Display prices in local currency. Google uses pricing information from structured data – ensure Product schema shows the correct currency for each store view.
Internal linking strategy
Beyond technical configuration, internal linking strategy directly impacts how PageRank flows through your Magento store and how Google discovers and prioritizes pages.
Link from high-authority pages to important targets. Your homepage is your highest-authority page. Link directly from the homepage to your most important category pages. From those category pages, link to key subcategories and featured products.
Use descriptive anchor text. “Click here” passes no topical relevance. “Industrial marking machines” tells Google what the linked page is about. Use natural, descriptive anchor text for internal links.
Blog content as a linking hub. If you maintain a blog on Magento (via extension), blog posts are excellent vehicles for contextual internal links to product and category pages. A blog post about “choosing the right fastener material” naturally links to your stainless steel, titanium, and carbon steel product categories.
Avoid orphan pages. Every indexable page should be reachable through internal links, not just through the sitemap. If a page has no internal links pointing to it, Google treats it as low-priority. Check for orphan pages regularly.
Cross-link related categories. If “Fasteners” and “Anchoring Systems” are related categories, link between them. Category page descriptions are a natural place for these cross-links.
AI crawlers
In 2026, AI crawlers (GPTBot, ClaudeBot, Bard, etc.) are crawling ecommerce sites with increasing frequency. These crawlers operate differently from Googlebot.
Decide your AI crawler policy. Do you want AI models trained on your product data? If yes, allow their crawlers. If not, block them in robots.txt:
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Google-Extended
Disallow: /
Monitor AI crawler traffic. Check your server logs for AI crawler user agents. Some AI crawlers are aggressive and can impact server performance. Rate-limit them if needed at the server or CDN level.
Structured data benefits AI visibility. If you want your products to appear in AI-generated answers, well-structured schema markup and clear, factual product descriptions increase the likelihood. AI models prefer structured, unambiguous data.
SEO mistakes we have fixed on Magento stores
These are real issues we have found and fixed on production Magento stores. Every one of them was costing the store organic traffic.
Categories path in product URLs enabled. A store with 5,000 products and 50 categories had 250,000 product URLs instead of 5,000. Google was spending crawl budget on 245,000 duplicate URLs. Turning this off and implementing redirects recovered crawl efficiency within 2 weeks.
No canonical tags on layered navigation. A store’s layered navigation generated 2 million filter combination URLs. Google indexed 400,000 of them as thin content. Adding canonical tags and blocking filter parameters in robots.txt resolved the issue over 3 months as Google reprocessed the pages.
Missing alt text on product images. 3,000 product images with no alt text. Zero Google Images traffic. After adding descriptive alt text, Google Images traffic increased by 340% over 6 months.
Default meta descriptions everywhere. The store used Magento’s auto-generated meta descriptions which were truncated product descriptions that all started the same way. Custom meta descriptions on the top 200 products improved click-through rates by 15-25% for those pages.
Redirect chains from multiple URL changes. A product URL was changed three times over two years. The redirect chain: /old-url.html -> /middle-url.html -> /current-url.html. With 500+ redirect chains like this, crawl efficiency degraded. We flattened all chains to direct redirects.
SID parameters in URLs. Session ID parameters (?SID=abc123) were being appended to URLs and indexed by Google. This created infinite duplicate URLs. Disabling SID in URLs and blocking the parameter in robots.txt fixed it.
Missing XML sitemap. A store with 8,000 products had no XML sitemap configured. Google discovered products only through crawling links, missing hundreds of products that were poorly linked internally. Configuring the sitemap and submitting it to Search Console led to 400+ new pages indexed within a month.
Slow TTFB without Varnish. A store averaging 2.8 second TTFB on category pages. Google’s crawl rate was throttled because pages took too long to respond. Implementing Varnish dropped TTFB to 180ms and Google’s crawl rate tripled within a week.
SEO audit checklist
Use this checklist for any Magento store audit:
Configuration
- [ ] HTTPS enabled everywhere
- [ ] WWW/non-WWW redirect configured
- [ ] Trailing slash consistency
- [ ] “Use Categories Path for Product URLs” set to No
- [ ] “Create Permanent Redirect for URLs if URL Key Changed” set to Yes
- [ ] Product and category URL suffixes configured consistently
- [ ] Store code in URLs disabled (unless needed)
- [ ] Session ID in URLs disabled
Crawl and indexing
- [ ] XML sitemap generated and submitted to Search Console
- [ ] Sitemap includes only indexable pages
- [ ] Sitemap auto-updates on a cron schedule
- [ ] Robots.txt configured correctly
- [ ] Robots.txt blocks admin, checkout, search results, filter parameters
- [ ] No important pages accidentally blocked by robots.txt
- [ ] No redirect chains longer than one hop
- [ ] Orphan pages identified and linked
On-page
- [ ] Unique title tags on all indexable pages
- [ ] Unique meta descriptions on priority pages
- [ ] H1 tags on all pages, matching page topic
- [ ] Alt text on all product images
- [ ] Image file names are descriptive
- [ ] Images compressed and served in WebP
- [ ] Canonical tags on all pages (self-referencing or pointing to canonical version)
- [ ] Canonical tags on filtered/faceted navigation pages pointing to parent category
Structured data
- [ ] Product schema on all product pages
- [ ] Organization schema on homepage
- [ ] BreadcrumbList schema on product and category pages
- [ ] FAQ schema on relevant pages (not overused)
- [ ] All schema validated with Rich Results Test
Performance
- [ ] Varnish full-page cache enabled
- [ ] Redis configured for cache and sessions
- [ ] CDN configured for static assets
- [ ] LCP under 2.5 seconds
- [ ] CLS under 0.1
- [ ] INP under 200ms
- [ ] Images lazy-loaded below the fold
- [ ] LCP image preloaded
- [ ] Non-critical CSS deferred
- [ ] Third-party scripts deferred
International (if applicable)
- [ ] Hreflang tags implemented correctly
- [ ] Content properly translated (not raw machine translation)
- [ ] Currency-specific pricing in Product schema
- [ ] Locale-appropriate content and images
Recommended extensions
These extensions address common Magento SEO gaps. We have used all of them on production stores.
Amasty SEO Toolkit. Comprehensive SEO extension covering meta templates, rich snippets, cross-linking, and redirect management. Covers many checklist items in one extension.
Mageworx SEO Suite. Alternative to Amasty with strong canonical URL management, hreflang implementation, and HTML/XML sitemap generation.
Magefan Blog. Adds blogging to Magento with proper SEO support – URL structure, meta data, canonical tags, sitemap inclusion. Essential if you want content marketing on Magento without a separate CMS.
Yoast SEO for Magento. Port of the popular WordPress SEO plugin. Provides content analysis, readability scoring, and structured data management.
Elgentos / Hyva performance themes. If your Core Web Vitals are failing, consider Hyva Themes. Hyva replaces Magento’s heavy frontend with a lightweight, Tailwind-based theme that dramatically improves page speed. It is not an SEO extension per se, but its performance impact directly benefits SEO.
WebP image conversion. Extensions like Mageplaza WebP or Yireo NextGenImages automatically convert and serve images in WebP format without requiring manual re-upload.
Frequently asked questions
Is Magento good for SEO?
Magento can be excellent for SEO when properly configured. It offers granular control over URL structure, meta data, canonical tags, structured data, and crawl behavior. However, Magento’s default configuration creates SEO problems – duplicate content, crawl traps, and performance issues. Most of the “Magento is bad for SEO” perception comes from stores running default configurations that were never optimized.
How do I fix duplicate content on Magento?
The three biggest sources of duplicate content on Magento are: (1) category paths in product URLs creating multiple URLs per product, (2) layered navigation generating filter combination URLs, and (3) store view configurations creating language/region duplicates without hreflang. Fix the first by disabling “Use Categories Path for Product URLs.” Fix the second with canonical tags and robots.txt blocking. Fix the third with proper hreflang implementation.
Should I use .html URL suffix on Magento?
It does not matter for SEO. Google does not prefer one format over another. What matters is consistency – pick one format and stick with it. If you are building a new store, no suffix (clean URLs) is the modern convention. If your existing store uses .html, do not change it without implementing redirects for every existing URL.
How do I improve Magento page speed for SEO?
The highest-impact improvements are: (1) Enable Varnish full-page cache – this alone can drop TTFB from 2+ seconds to under 200ms. (2) Configure Redis for application cache and sessions. (3) Serve images in WebP format, compressed, with proper sizing. (4) Use a CDN for static assets. (5) Defer non-critical JavaScript and CSS. (6) Consider Hyva Themes if your current theme is the bottleneck.
Do I need an SEO extension for Magento?
Magento handles basic SEO natively – meta titles, meta descriptions, URL keys, canonical tags, XML sitemaps. An SEO extension adds advanced features like meta tag templates (auto-generate meta titles from product attributes), cross-linking automation, rich snippet management, hreflang support, and redirect management. For stores with more than a few hundred products, an SEO extension saves significant manual work and catches issues you might miss.
How do I handle out-of-stock products for SEO?
Do not remove or noindex out-of-stock products if they have search value. Keep the page live with a clear “out of stock” message and offer alternatives (related products, notify-when-available). If the product is permanently discontinued with no replacement, 301 redirect to the most relevant alternative. If there is no alternative, let the page return 404 naturally – do not keep it alive with no value.
How important is mobile SEO for Magento?
Critical. Google uses mobile-first indexing – the mobile version of your site is what Google indexes and ranks. If your Magento store has a poor mobile experience (slow, difficult to navigate, broken layout), it directly impacts your rankings on both mobile and desktop search. Test your store on real mobile devices and in Google’s mobile-friendly test. Ensure the responsive theme works correctly across screen sizes.
How do I implement hreflang on Magento?
Magento does not support hreflang natively. Options: (1) Use an SEO extension like Mageworx or Amasty that includes hreflang support. (2) Build a custom module that generates hreflang tags based on store view configuration and product/category mappings across store views. (3) Implement hreflang in the sitemap using the xhtml:link element in the XML sitemap – some extensions support this. Whichever approach you use, validate with Google Search Console’s international targeting report.
