Introduction
PrestaShop has a distinctive URL structure that differs significantly from other e-commerce platforms. Its approach to product IDs, category paths, and friendly URLs creates unique SEO challenges and opportunities that require specialized regex filters in Google Search Console.
This guide provides regex patterns specifically designed for PrestaShop's architecture, helping you segment traffic, identify technical issues, and discover optimization opportunities that generic filters will miss.
Understanding PrestaShop URL Structure
PrestaShop uses several URL patterns depending on your configuration:
Default URL Patterns (with IDs)
-
Products:
/product-name-123.htmlor/123-product-name.html -
Categories:
/category-name-45or/45-category-name -
CMS Pages:
/content/3-about-us -
Manufacturers:
/manufacturer/12-nike -
Suppliers:
/supplier/8-supplier-name
SEO-Friendly URLs (without visible IDs)
-
Products:
/product-name.htmlor/category/subcategory/product-name.html -
Categories:
/category-nameor/parent-category/child-category
Common System URLs
-
Cart:
/cart?action=show -
Checkout:
/orderor/order-confirmation -
Authentication:
/authentication,/password-recovery -
Search:
/search?s=keywordor/search?controller=search&s=keyword -
Pagination:
?p=2or?page=2
Product Filters
All Product Pages (ID-Based URLs)
Use case: Find all products when your store uses ID-based URLs.
Regex: -\d+\.html$|/\d+-[^/]+\.html$
What it matches: Product URLs like /blue-shirt-123.html or /123-blue-shirt.html.
Why it's useful: Quick way to isolate product performance from categories, CMS pages, and other content types.
Pro tip: If products aren't performing well, check if category pages are stealing their clicks (cannibalization).
All Product Pages (Friendly URLs)
Use case: Find products when using SEO-friendly URLs without visible IDs.
Regex: \.html$
What it matches: All URLs ending in .html (typically products in PrestaShop).
Why it's useful: In PrestaShop, .html usually indicates product pages when friendly URLs are enabled.
Important: This might also catch some CMS pages. Cross-reference with your actual URL structure.
Products with Category Path
Use case: Identify products that include full category path in URL.
Regex: /[^/]+/[^/]+/[^/]+\.html$
What it matches: URLs like /electronics/phones/iphone-13.html with category breadcrumb in path.
Why it's useful:
- Better for SEO (more contextual URL)
- Can create duplicate content if same product appears in multiple categories
- Check if canonical tags properly consolidate variants
Product Combinations/Attributes in URL
Use case: Find products with attribute parameters that might create duplicates.
Regex: \.html\?|\.html.*#/
What it matches: Product URLs with attributes like /shirt-123.html?color=blue&size=L or fragment identifiers.
Why it's useful: PrestaShop can generate different URLs for product combinations. These should:
- Be canonicalized to the main product
- Use URL fragments (#/) when possible (not indexed)
- Be handled via URL parameter configuration
Action: If these are indexed, verify canonical tags and consider using fragment identifiers for attributes.
Category Filters
All Category Pages (ID-Based)
Use case: Analyze category performance with ID-based URLs.
Regex: /\d+-[^/\.]+/?$|/-[^/]*-\d+/?$
What it matches: Category URLs like /45-electronics or /electronics-45.
Why it's useful: Categories are crucial landing pages for e-commerce SEO. This filter helps you:
- Identify top-performing categories
- Find categories with low impressions that need content
- Detect categories ranking for wrong keywords
Subcategory Pages
Use case: Isolate subcategories from main categories.
Regex: /[^/]+/\d+-[^/]+/?$|/[^/]+/[^/]+/?$
What it matches: URLs with at least two path segments like /electronics/phones/.
Why it's useful: Subcategories often need more content and internal linking than main categories. This filter helps prioritize optimization efforts.
Category Pagination
Use case: Find paginated category pages that may be indexed.
Regex: [?&]p=\d+|[?&]page=\d+
What it matches: Paginated category URLs like /electronics?p=2.
Why it's useful:
- Excessive pagination indexation wastes crawl budget
- Check if rel="next/prev" or canonical tags are properly implemented
- Consider implementing "Load More" instead of traditional pagination
Best practice: Canonicalize paginated pages to page 1 or use rel="next/prev" tags.
Filtered Category URLs
Use case: Identify faceted navigation creating potential duplicate content.
Regex: [?&](id_attribute|q|orderby|orderway|manufacturer|supplier|price)=
What it matches: Category URLs with filters like /shoes?id_attribute=1&price=0-50.
Why it's useful: PrestaShop's layered navigation creates numerous filtered URLs that can:
- Dilute crawl budget
- Create duplicate content issues
- Confuse Google about which page to rank
Solution: Use noindex meta tags or robots.txt to block filtered URLs, or canonicalize them to the main category.
Manufacturer & Supplier Pages
Manufacturer Pages
Use case: Track brand/manufacturer page performance.
Regex: /manufacturer/\d+-|/brand/\d+-|/marque/\d+-
What it matches: Manufacturer pages like /manufacturer/12-nike or /brand/5-adidas.
Why it's useful:
- Brand pages can rank for "[brand] + [category]" queries
- These pages need unique content to perform well
- Check if they're thin content competing with product pages
Optimization tip: Add brand stories, bestsellers, and unique value propositions to manufacturer pages.
Supplier Pages
Use case: Monitor supplier/vendor page visibility.
Regex: /supplier/\d+-|/fournisseur/\d+-
What it matches: Supplier pages like /supplier/8-global-supplies.
Why it's useful: If you use the supplier feature, these pages might be indexed. Evaluate if they add SEO value or create thin content issues.
Technical SEO Filters
Controller Parameters (System URLs)
Use case: Find URLs with PrestaShop controller parameters that shouldn't be indexed.
Regex: [?&]controller=|[?&]id_product=|[?&]id_category=
What it matches: URLs with explicit controller parameters like ?controller=product&id_product=123.
Why it's useful: These are PrestaShop's non-friendly URLs and should NEVER be indexed if you have friendly URLs enabled. Finding these indicates:
- Friendly URLs not properly configured
- Internal links pointing to wrong URL format
- Duplicate content issues
Critical fix: Enable friendly URLs in PrestaShop settings and fix internal links.
Session IDs in URLs
Use case: Detect session-based URLs that create duplicate content.
Regex: [?&](PHPSESSID|token|cookie|session)=
What it matches: URLs with session identifiers.
Why it's useful: Session IDs in URLs create infinite duplicates and should never be indexed. If found:
- Check PrestaShop session configuration
- Verify cookies are working properly
- Use canonical tags as safety net
Cart and Checkout Pages
Use case: Ensure transactional pages aren't indexed.
Regex: /cart|/order|/order-confirmation|/panier|/commande
What it matches: Cart, checkout, and order confirmation pages.
Why it's useful: These should NEVER appear in organic search. If they do:
- Add noindex meta tags
- Block in robots.txt
- Check for proper canonicalization
Multilingual note: Include translations (panier=cart, commande=order in French).
Authentication and Account Pages
Use case: Verify user account pages aren't exposed in search.
Regex: /authentication|/my-account|/identity|/password-recovery|/mon-compte|/addresses|/order-history
What it matches: Login, account, and password pages.
Why it's useful: Personal account pages should be:
- Noindexed
- Protected from crawling
- Not linked from public areas
Search Results Pages
Use case: Track internal search pages and discover what users can't find.
Regex: /search\?|[?&]s=|[?&]search_query=
What it matches: Internal search result pages.
Why it's useful: If search pages rank organically:
- Users can't find products through normal navigation
- You're missing category or product pages
- Site architecture needs improvement
Action: Extract popular search queries and create dedicated category/landing pages for them.
Print and PDF URLs
Use case: Find printer-friendly or PDF versions that might be indexed.
Regex: [?&]content_only=1|/print/|\.pdf$
What it matches: Print versions and PDF files.
Why it's useful: These create duplicate content. Ensure they have noindex tags or canonical tags pointing to the main version.
Multi-Store and Multi-Language
Language-Specific URLs
Use case: Segment traffic by language version.
Regex for English: /en/|/\d+-.*-en\.html$
Regex for French: /fr/|/\d+-.*-fr\.html$
Regex for Spanish: /es/|/\d+-.*-es\.html$
What it matches: URLs for specific language versions.
Why it's useful:
- Analyze performance by language/market
- Verify hreflang implementation
- Identify which markets need more SEO attention
Important: Customize these patterns to match your language URL structure.
Multi-Store URLs by Domain/Subdomain
Use case: Track performance across different stores if using multi-store.
Regex: ^https?://(store1|store2|shop)\.|^https?://[^/]+/(store1|store2)/
What it matches: Different stores by subdomain or subdirectory.
Why it's useful: If running multiple PrestaShop stores, analyze each separately to allocate resources effectively.
Query Pattern Filters
Brand + Product Searches
Use case: Identify high-intent brand-specific searches.
Regex: Replace with your brand names: yourstore|yourbrand
What it matches: Queries containing your store or brand name.
Why it's useful:
- Measure brand awareness
- Track branded vs. non-branded traffic ratio
- Identify products users associate with your brand
Product Specification Queries
Use case: Find searches for technical specifications common in e-commerce.
Regex: spec|specification|dimensions|weight|size|capacity|compatibility|requirements
What it matches: Specification-focused queries.
Why it's useful: These searchers are in research phase but close to purchase. Ensure:
- Product pages have complete specifications
- Specifications are in structured data
- Tech specs are prominent in descriptions
Price Comparison Queries
Use case: Track price-conscious searches.
Regex: price|cost|cheap|cheapest|affordable|budget|how much|compare price|best price
What it matches: Price-focused queries.
Why it's useful: These users are comparing options. To capture them:
- Ensure competitive pricing
- Display prices prominently
- Use price schema markup
- Show "lowest price" or price match guarantees
Availability Queries
Use case: Find searches related to product availability.
Regex: in stock|out of stock|available|availability|restock|back in stock|when available
What it matches: Stock availability queries.
Why it's useful:
- Shows demand for out-of-stock items
- Indicates need for better stock indicators
- Opportunity for "notify when available" features
Optimization: Add stock status to product titles/descriptions, use schema markup for availability.
Shipping and Delivery Queries
Use case: Capture shipping-related searches.
Regex: shipping|delivery|ship|free shipping|shipping cost|delivery time|how long|livraison
What it matches: Shipping-related queries (including French "livraison").
Why it's useful: Shipping concerns block conversions. For ranking pages:
- Highlight free shipping offers
- Show delivery times prominently
- Create detailed shipping policy pages
Review and Rating Queries
Use case: Identify trust-seeking searches.
Regex: review|reviews|rating|ratings|opinion|avis|testimonial|feedback
What it matches: Review-seeking queries (including French "avis").
Why it's useful: Users want validation before buying. To optimize:
- Enable and promote review modules
- Implement review schema markup
- Feature top-reviewed products
- Create review-rich content
CMS and Content Pages
CMS Pages
Use case: Isolate static content pages from e-commerce pages.
Regex: /content/\d+-|/page/|/information/
What it matches: CMS pages like /content/3-about-us or /page/terms.
Why it's useful: CMS pages (About, Contact, Terms, Shipping) support conversions even if they don't directly sell. Track their performance separately.
Blog Posts (if using blog module)
Use case: Track blog performance separately.
Regex: /blog/|/article/|/news/
What it matches: Blog articles if you're using a blog module.
Why it's useful:
- Measure content marketing ROI
- Identify top-performing blog topics
- Find opportunities for internal linking to products
Advanced PrestaShop Patterns
Module-Generated Pages
Use case: Find pages created by PrestaShop modules.
Regex: /module/|/modules/
What it matches: URLs generated by installed modules.
Why it's useful: Some modules create pages that:
- Might be indexed unnecessarily
- Could have duplicate content
- May have performance issues
Action: Review module-generated pages for SEO value and noindex those that don't contribute.
Image URLs Being Indexed
Use case: Detect if product images are being indexed as pages.
Regex: /img/|/images/.*\.(jpg|jpeg|png|webp|gif)$
What it matches: Image file URLs.
Why it's useful: Image URLs should never be indexed as pages. If found:
- Check robots.txt blocks /img/ directory
- Ensure X-Robots-Tag: noindex header on images
- Verify theme isn't creating links to images
AJAX and API Endpoints
Use case: Ensure AJAX endpoints aren't indexed.
Regex: /ajax|/api/|[?&]ajax=true
What it matches: AJAX calls and API endpoints.
Why it's useful: These should be blocked from indexation via:
- Robots.txt
- X-Robots-Tag headers
- Proper URL structure
Old URL Formats (if migrated)
Use case: Find old URL patterns that should be redirected.
Regex: /product\.php|/category\.php|\.php\?
What it matches: Old PHP-based URLs from previous versions or migrations.
Why it's useful: If you migrated to PrestaShop or upgraded, old URLs might still be indexed. Set up 301 redirects to new friendly URLs.
Practical Workflows
Identifying Duplicate Content Issues
Step 1: Use controller parameter filter to find non-friendly URLs
Step 2: Use product combination filter to find attribute variations
Step 3: Check if products appear in multiple category paths
Step 4: Verify canonical tags consolidate all variants to preferred URL
Step 5: Use URL parameter handling in Search Console
Optimizing Category Structure
Step 1: Filter for main categories vs. subcategories
Step 2: Identify categories with <50 impressions/month
Step 3: For low performers:
- Add unique category descriptions (300+ words)
- Feature bestsellers
- Build internal links from high-traffic pages
- Consider consolidating very thin categories
Fixing URL Structure Issues
Step 1: Use controller parameter filter
Step 2: If non-friendly URLs are indexed:
- Enable friendly URLs in PrestaShop (Shop Parameters > Traffic & SEO)
- Regenerate .htaccess file
- Set up 301 redirects from old to new format
- Fix internal links
Step 3: Submit updated sitemap to Search Console
Cleaning Up Filtered URLs
Step 1: Use filtered category URL filter
Step 2: Export list of filtered URLs
Step 3: Decide strategy:
- Add noindex meta tags to filtered pages
- Canonicalize to main category
- Block in robots.txt (less preferred)
- Use URL parameter handling in GSC
Step 4: Monitor Index Coverage report to ensure filtered URLs get removed
PrestaShop-Specific SEO Tips
Essential PrestaShop SEO Settings
- Enable Friendly URLs: Shop Parameters > Traffic & SEO > Set Friendly URL to "Yes"
- Schema.org structured data: Use native or module-based structured data
- Canonical URLs: PrestaShop adds these automatically, but verify theme doesn't break them
- XML Sitemap: Use a reliable sitemap module (gsitemap or similar)
- Robots.txt: Configure properly to block sensitive areas
Common PrestaShop SEO Mistakes
- Not enabling friendly URLs: Leaving controller-based URLs is a critical error
- Thin category descriptions: Categories need substantial unique content
- Duplicate products in multiple categories: Creates URL variations without proper canonicals
- Poor internal linking: PrestaShop's default navigation is often insufficient
- Ignoring multi-language hreflang: Essential if you serve multiple countries/languages
- Module bloat: Too many modules slow the site and create indexation issues
Module Recommendations
- SEO Expert: Comprehensive SEO control
- Pretty URLs: Advanced friendly URL management
- Google Sitemap: Proper XML sitemap generation
- Rich Snippets: Structured data implementation
- 301/302/303 Redirects: Redirect management
Monitoring Checklist
Use these regex filters monthly to maintain healthy indexation:
- [ ] Check for controller parameter URLs being indexed
- [ ] Verify cart/checkout pages remain unindexed
- [ ] Monitor product combination URL indexation
- [ ] Review filtered category URLs
- [ ] Check for module-generated pages being indexed
- [ ] Track language-specific performance
- [ ] Monitor pagination patterns
- [ ] Verify session IDs aren't appearing in URLs
- [ ] Check for old URL formats that need redirects
Troubleshooting Common Issues
Issue: Products Have Multiple Indexed URLs
Cause: Products accessible via different category paths or with/without category in URL
Solution:
- Choose canonical URL format (with or without category path)
- Set canonical tags to preferred version
- Use 301 redirects for alternate versions
- Update internal links to use canonical format
Issue: Friendly URLs Not Working
Cause: .htaccess misconfiguration or mod_rewrite not enabled
Solution:
- Check if mod_rewrite is enabled on server
- Regenerate .htaccess via PrestaShop back office
- Verify file permissions (644 for .htaccess)
- Check for conflicting rules from other applications
Issue: Filter Parameters Creating Thousands of Indexed Pages
Cause: Layered navigation without proper noindex configuration
Solution:
- Add noindex meta tag to filtered pages
- Configure canonical tags to point to main category
- Use parameter handling in Search Console
- Consider using AJAX for filters to avoid URL changes
Conclusion
PrestaShop's URL structure presents unique challenges, particularly with its ID-based URLs and category path variations. These regex filters help you navigate PrestaShop's complexity and maintain clean indexation.
The most critical issues for PrestaShop stores are:
- Ensuring friendly URLs are properly enabled and working
- Managing duplicate content from multiple product URL variations
- Controlling filtered category URL indexation
- Properly handling multi-language implementations
Start with the technical SEO filters to audit your URL structure, then move to query analysis to understand user intent and optimize accordingly. Regular monitoring with these filters will keep your PrestaShop store's indexation healthy and your organic traffic growing.
Customize these patterns to match your specific PrestaShop configuration, and remember that every store's setup is unique based on theme, modules, and customizations. Use these as a starting point and refine based on your actual URL patterns discovered in Search Console.