<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: SmartShop AI</title>
    <description>The latest articles on DEV Community by SmartShop AI (@smartshopai).</description>
    <link>https://dev.to/smartshopai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F13142%2F8b956f97-5891-45fd-970b-59e3190f85ea.png</url>
      <title>DEV Community: SmartShop AI</title>
      <link>https://dev.to/smartshopai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/smartshopai"/>
    <language>en</language>
    <item>
      <title>The state of PrestaShop stores in 2026: what we learned scanning 130 of them</title>
      <dc:creator>Rafa Pastor</dc:creator>
      <pubDate>Thu, 23 Apr 2026 14:11:47 +0000</pubDate>
      <link>https://dev.to/smartshopai/the-state-of-prestashop-stores-in-2026-what-we-learned-scanning-130-of-them-27hf</link>
      <guid>https://dev.to/smartshopai/the-state-of-prestashop-stores-in-2026-what-we-learned-scanning-130-of-them-27hf</guid>
      <description>&lt;p&gt;A few weeks ago we shipped &lt;a href="https://audit.smart-shop-ai.com/" rel="noopener noreferrer"&gt;a free audit scanner for PrestaShop stores&lt;/a&gt; — 21 checks&lt;br&gt;
  across security, SEO, performance, platform hygiene, and internationalization. Before promoting it, we wanted to know:&lt;br&gt;
   &lt;strong&gt;where does the average PrestaShop store actually stand?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So we pulled 174 real stores from BuiltWith's public PrestaShop lists across Spain, France, Italy, Southern Europe,&lt;br&gt;&lt;br&gt;
  and the global tier. 130 of them responded to the scan (the other 44 blocked bots, had expired certs, or were dev&lt;br&gt;
  environments). Here's what we found.                                                                                  &lt;/p&gt;
&lt;h2&gt;
  
  
  The headline
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Median global score: &lt;strong&gt;50 / 100&lt;/strong&gt;. Only &lt;strong&gt;2 stores out of 130&lt;/strong&gt; cleared 75. Thirty-nine percent scored under 45 (the&lt;br&gt;
   red zone).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F43smhq5gwll0f3i67ik6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F43smhq5gwll0f3i67ik6.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's not a "few outliers drag the average down" story. That's the whole market.                                     &lt;/p&gt;

&lt;p&gt;The dataset isn't small-shop cherry-pick either — it includes stores from &lt;strong&gt;Repsol, Auchan, Michelin, Penguin Libros, &lt;br&gt;
  Pathé, Kickers, bpifrance, ADEME, Curie, CNES&lt;/strong&gt;, and the PrestaShop project itself. Enterprise-grade brands. Still&lt;br&gt;
  mid-pack.                                                                                                             &lt;/p&gt;
&lt;h2&gt;
  
  
  Methodology
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Source:&lt;/strong&gt; BuiltWith Trends public lists (&lt;code&gt;trends.builtwith.com/websitelist/PrestaShop/...&lt;/code&gt;), 5 geographies, top
stores by traffic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deduped&lt;/strong&gt; across overlapping country buckets → 174 unique domains.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scans ran from Cloudflare Workers&lt;/strong&gt;, server-side only. No third-party browser instrumentation. Core Web Vitals
come from Google's public PageSpeed Insights API (lab + field data when available).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;21 checks&lt;/strong&gt; per store: HTTPS, HSTS, CSP, X-Content-Type, X-Frame-Options, Referrer-Policy, PrestaShop detection &amp;amp; 
version, meta title, meta description, Open Graph, canonical, structured data, hreflang, multilingual, language
switcher, sitemap, LCP, CLS, FCP, and presence of a chatbot module.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Emails harvested&lt;/strong&gt; from homepage + &lt;code&gt;/contact&lt;/code&gt; style pages via regex (yes, there's a CSV; no, we're not spamming it
— the scanner CTA just points to &lt;code&gt;sales@smart-shop-ai.com&lt;/code&gt;).
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Category breakdown
&lt;/h2&gt;

&lt;p&gt;Median score per category, across all 130 scans:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7tye7k0ad3rq7241t6zc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7tye7k0ad3rq7241t6zc.png" alt=" " width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Median&lt;/th&gt;
&lt;th&gt;What this means&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SEO&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;The best-performing area. Titles and canonical tags are handled; structured data is not.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PrestaShop hygiene&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;53&lt;/td&gt;
&lt;td&gt;Most stores expose their PS version. Some still run 1.7.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;48&lt;/td&gt;
&lt;td&gt;HTTPS is universal, but the header stack above TLS is usually absent.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Performance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;45&lt;/td&gt;
&lt;td&gt;Mobile PageSpeed median is 48. Over half of stores ship slower than 50.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;i18n&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;Almost nobody declares hreflang or ships a proper multilingual setup, even stores visibly serving multiple countries.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h2&gt;
  
  
  The top failures (sorted by how common they are)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feqr77kvr5iycod1v9tkk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feqr77kvr5iycod1v9tkk.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;th&gt;Stores failing or warning&lt;/th&gt;
&lt;th&gt;%&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Rich Search Results (structured data / JSON-LD)&lt;/td&gt;
&lt;td&gt;128 / 130&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;98.5%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Largest Contentful Paint&lt;/td&gt;
&lt;td&gt;124 / 130&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;95.4%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;First Contentful Paint&lt;/td&gt;
&lt;td&gt;124 / 130&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;95.4%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI shopping assistant present&lt;/td&gt;
&lt;td&gt;105 / 130&lt;/td&gt;
&lt;td&gt;80.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Content-Security-Policy&lt;/td&gt;
&lt;td&gt;97 / 130&lt;/td&gt;
&lt;td&gt;74.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;X-Content-Type-Options&lt;/td&gt;
&lt;td&gt;80 / 130&lt;/td&gt;
&lt;td&gt;61.5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open Graph tags&lt;/td&gt;
&lt;td&gt;80 / 130&lt;/td&gt;
&lt;td&gt;61.5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Meta description&lt;/td&gt;
&lt;td&gt;75 / 130&lt;/td&gt;
&lt;td&gt;57.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HSTS&lt;/td&gt;
&lt;td&gt;70 / 130&lt;/td&gt;
&lt;td&gt;53.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;X-Frame-Options&lt;/td&gt;
&lt;td&gt;68 / 130&lt;/td&gt;
&lt;td&gt;52.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sitemap.xml&lt;/td&gt;
&lt;td&gt;67 / 130&lt;/td&gt;
&lt;td&gt;51.5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Canonical URL&lt;/td&gt;
&lt;td&gt;66 / 130&lt;/td&gt;
&lt;td&gt;50.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A few of these deserve comment.                                                                                       &lt;/p&gt;
&lt;h3&gt;
  
  
  Structured data is the silent killer
&lt;/h3&gt;

&lt;p&gt;98.5% of stores don't emit proper JSON-LD for products. Google's product rich results — price, availability, star&lt;br&gt;&lt;br&gt;
  ratings in the SERP — depend on it. Without it your listings render as a plain blue link next to competitors showing&lt;br&gt;
  stars and a €. In 2026 that's leaving free conversions on the table.                                                  &lt;/p&gt;

&lt;p&gt;PrestaShop's default theme (&lt;code&gt;classic&lt;/code&gt;) ships &lt;em&gt;some&lt;/em&gt; microdata, but it's old schema.org syntax that Google increasingly&lt;br&gt;
   deprioritizes. Only 2 stores in the dataset had modern product-level JSON-LD we could parse.&lt;/p&gt;
&lt;h3&gt;
  
  
  Core Web Vitals are a massacre
&lt;/h3&gt;

&lt;p&gt;95% of stores fail LCP and FCP. Median PageSpeed performance is &lt;strong&gt;48/100&lt;/strong&gt;, and 53% of stores score below 50. Causes&lt;br&gt;&lt;br&gt;
  we see repeatedly:                                              &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unoptimized hero images (no &lt;code&gt;&amp;lt;picture&amp;gt;&lt;/code&gt;, no WebP, no explicit dimensions → layout shift)
&lt;/li&gt;
&lt;li&gt;Blocking third-party scripts in &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; (chat widgets, analytics, Cookiebot)&lt;/li&gt;
&lt;li&gt;PrestaShop's combine-compress-cache toggle turned off in Performance settings
&lt;/li&gt;
&lt;li&gt;No HTTP/2 server push or preload hints
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these are hard to fix. Most of them take 30 minutes. Yet they're universal.                                   &lt;/p&gt;
&lt;h3&gt;
  
  
  CSP is missing everywhere
&lt;/h3&gt;

&lt;p&gt;74.6% of stores serve zero Content-Security-Policy. That's the one header that blocks script injection even if your&lt;br&gt;&lt;br&gt;
  admin gets compromised. It takes one line in &lt;code&gt;.htaccess&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight apache"&gt;&lt;code&gt;  &lt;span class="nc"&gt;Header&lt;/span&gt; &lt;span class="ss"&gt;set&lt;/span&gt; Content-Security-Policy "default-src 'self' https:; script-src 'self' 'unsafe-inline' https:; object-src
  &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="nc"&gt;none&lt;/span&gt;'"                                                                                                               
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start in report-only mode, watch the console for a week, tighten, deploy. Two hours of work, full mitigation.         &lt;/p&gt;

&lt;h3&gt;
  
  
  The chatbot gap
&lt;/h3&gt;

&lt;p&gt;80.8% of stores have no chat at all. Of the 11.5% that do, most ship &lt;strong&gt;Zendesk Chat&lt;/strong&gt; or &lt;strong&gt;Tawk.to&lt;/strong&gt; — support tools, &lt;br&gt;
  not commerce assistants. Only a handful ship actual AI product advisors. (We build one of these, so take the&lt;br&gt;
  observation with the appropriate grain of salt, but the raw number is what it is.)                                    &lt;/p&gt;

&lt;h2&gt;
  
  
  What's actually installed: the module leaderboard
&lt;/h2&gt;

&lt;p&gt;Across 130 stores, these were the most commonly detected PrestaShop modules:                                          &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Google Sitemap — 85 installs
&lt;/li&gt;
&lt;li&gt;Share Buttons — 70
&lt;/li&gt;
&lt;li&gt;Email Subscription — 68
&lt;/li&gt;
&lt;li&gt;PrestaShop Checkout (the official payment aggregator) — 55
&lt;/li&gt;
&lt;li&gt;PayPal — 54
&lt;/li&gt;
&lt;li&gt;PS Google Analytics — 46
&lt;/li&gt;
&lt;li&gt;Stripe — 24
&lt;/li&gt;
&lt;li&gt;Brevo (formerly Sendinblue) — 23
&lt;/li&gt;
&lt;li&gt;Klarna — 14
&lt;/li&gt;
&lt;li&gt;Page Cache — 14
&lt;/li&gt;
&lt;li&gt;Zendesk Chat — 13
&lt;/li&gt;
&lt;li&gt;Mollie — 10
&lt;/li&gt;
&lt;li&gt;Redsys — 9 (Spain-only, makes sense)
&lt;/li&gt;
&lt;li&gt;Pretty URLs — 8
&lt;/li&gt;
&lt;li&gt;Google Analytics (legacy) — 8
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;The tell&lt;/strong&gt;: 85 stores have the Google Sitemap module installed. But only 63 actually serve a valid &lt;code&gt;sitemap.xml&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
  Installing ≠ configuring.                                                                                             &lt;/p&gt;

&lt;h2&gt;
  
  
  Themes
&lt;/h2&gt;

&lt;p&gt;Theme fragmentation is severe. Out of stores where we could identify the theme, the top 10 was:                       &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;classic&lt;/code&gt; — 11 (default)
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;warehouse&lt;/code&gt; — 8
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;warehousechild&lt;/code&gt; — 5
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;classic-rocket&lt;/code&gt; — 4
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ZOneTheme&lt;/code&gt; — 4&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;miin_ecco_bella&lt;/code&gt; — 4
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;sleedex-jdsports&lt;/code&gt; — 2
&lt;/li&gt;
&lt;li&gt;Various custom one-offs — the rest
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's a lot of custom builds. Custom themes are also where Core Web Vitals regressions usually live (untested image&lt;br&gt;&lt;br&gt;
  pipelines, inlined stylesheets, fonts loaded without &lt;code&gt;display:swap&lt;/code&gt;). The data seems to agree.                        &lt;/p&gt;

&lt;h2&gt;
  
  
  What a merchant should actually do, in priority order
&lt;/h2&gt;

&lt;p&gt;If you run a PrestaShop store and want to pick only three fixes:                                                      &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Fix LCP and FCP.&lt;/strong&gt; Enable combine-compress-cache in Advanced Parameters → Performance. Switch hero image to WebP 
with explicit width/height. Defer all non-critical JS. You'll typically gain 20–30 PageSpeed points in a single
afternoon.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add Rich Snippets via a JSON-LD module&lt;/strong&gt; (there are several free ones in Addons) or via a theme override. One
hour of work, potentially meaningful SERP click-through lift within 2–4 weeks.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add the security headers.&lt;/strong&gt; Three lines in &lt;code&gt;.htaccess&lt;/code&gt; for HSTS, X-Content-Type-Options, X-Frame-Options. Add CSP
in report-only mode and iterate. One line each, done forever.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you want the full list for your own store, it's free — &lt;a href="https://audit.smart-shop-ai.com/" rel="noopener noreferrer"&gt;scan it&lt;/a&gt;. No account&lt;br&gt;&lt;br&gt;
  required.                                                       &lt;/p&gt;

&lt;h2&gt;
  
  
  Caveats
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;44 of 174 stores timed out, 403'd, or returned non-HTML to our scanner. Those are missing from the dataset. The real
distribution is probably even skewed — stores with good perimeter defenses are overrepresented in the "unreachable"
bucket.
&lt;/li&gt;
&lt;li&gt;Some BuiltWith-listed stores actually run a non-PrestaShop frontend and proxy to a PS backend. Our scanner flags
these as "not confirmed PrestaShop" (73.1% of our dataset confirms as PS; the rest might be running a
WordPress/Next.js layer over a PS admin).&lt;/li&gt;
&lt;li&gt;Field performance data only exists for stores with enough Chrome UX Report traffic. Smaller shops fall back to lab
data only.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Raw data
&lt;/h2&gt;

&lt;p&gt;If you want to reproduce or extend: the scanner is at &lt;a href="https://audit.smart-shop-ai.com/" rel="noopener noreferrer"&gt;audit.smart-shop-ai.com&lt;/a&gt;. The&lt;br&gt;
   dataset files and analysis script live on the repo (private for now, will open-source the scoring once the baseline&lt;br&gt;
  stabilizes).                                                                                                          &lt;/p&gt;

&lt;p&gt;If you run a PrestaShop store and this post made you uncomfortable, that's the intended effect. Scan yours and fix the&lt;br&gt;
   top three. Two hours of work changes the score from 50 to 75.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This analysis was run on 2026-04-18 with SmartShop Audit. Methodology, dataset counts, and check definitions are&lt;br&gt;&lt;br&gt;
  reproducible with a single &lt;code&gt;curl&lt;/code&gt; against &lt;code&gt;https://audit.smart-shop-ai.com/api/scan&lt;/code&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>prestashop</category>
      <category>ecommerce</category>
      <category>webperf</category>
      <category>security</category>
    </item>
  </channel>
</rss>
