Updated June 2026, covers the product editor SEO fields and meta-title patterns in PrestaShop 1.7, 8 and 9.

You have a product called "Aurora." It is a beautiful name, it matches your branding, and your customers love it. But Google has no idea what "Aurora" is. A lamp? A dress? A piece of software? A perfume? Without context, the product name tells search engines nothing, and on its own it will never rank for the queries your customers actually type. The instinct is to rename the product to "Aurora Rechargeable LED Desk Lamp," but now the name looks cluttered in the cart, the invoice, the order email and every category tile. This post is about the third option: an indexable SEO subtitle that sits on the product page and feeds your meta title, while the product name stays exactly "Aurora."

That is a narrow, specific job, and PrestaShop has no field called "subtitle" out of the box, so getting this right means knowing which existing field to repurpose, where it lives in the database, and how to surface it on the page and in the <title>. For the broader craft of the product name itself, see writing product titles that work for both Google and humans; for the body copy, how to write product descriptions that rank and convert. This guide stays on one thing: the secondary keyword line.

Why the product name alone leaves rankings on the table

A blank white product tag on an orange string beside a magnifying glass, suggesting searchable keywords added to a product label
A bare product name is a blank tag. A well-written subtitle adds the searchable keywords shoppers actually type.

Store owners live with a constant tension between branding and search. Branded names, Aurora, Eclipse, Zenith, look professional and build identity. Descriptive names, "Rechargeable Portable LED Desk Lamp with Adjustable Colour Temperature", rank, but read like a barcode. Most stores split the difference by stuffing keywords into the name itself: "Aurora, Rechargeable LED Desk Lamp." Then they discover what that costs in PrestaShop specifically:

  • The full name prints into the cart summary, the order confirmation email, the PDF invoice and the delivery slip, all of which read from ps_product_lang.name. A 70-character name wraps badly on a thermal invoice.
  • Category and home tiles truncate long names with a CSS ellipsis, so the keyword you stuffed in is often the part that gets cut off on a phone.
  • PrestaShop builds the product's link_rewrite (the friendly URL slug) from the name on creation. Bloat the name and you bloat the URL, or you forget to fix the slug and end up with /12-aurora-rechargeable-led-desk-lamp.html baked in permanently.

So what? A subtitle gives you a clean separation. The name stays "Aurora", short in the cart, tidy on the invoice, sane in the URL. A separate subtitle carries "Rechargeable LED Desk Lamp, Adjustable Colour Temperature, USB-C Charging," visible under the name and indexed by Google. Each field does the one job it is good at.

The field PrestaShop already gives you (and its limits)

Before you reach for anything custom, know what core ships. On every product, under Catalog → Products → [your product] → SEO (it's the SEO section of the product editor), PrestaShop exposes three fields stored in ps_product_lang:

FieldDB columnWhere it showsIndexable?
NamenamePage H1, cart, invoice, tiles, default <title>Yes, but it's your branding, you don't want to bloat it
Meta titlemeta_titleBrowser tab / SERP <title> only, never on the visible pageYes, but invisible to on-page visitors
Meta descriptionmeta_descriptionSERP snippet onlySnippet, not a ranking title

Notice the gap: meta title changes what Google's listing says but is invisible on the page, and the name is visible but is your brand. There is no native field that is both on-page and keyword-free-of-branding. That missing middle field is exactly the "SEO subtitle", and you have two honest ways to create one.

[SCREENSHOT: PrestaShop product editor open on the SEO section, showing the Meta title and Meta description fields with the "friendly URL" slug below. Annotate that the visible Name field lives on the Basic settings tab, not here.]

Route 1, repurpose the meta title as a pattern (no extra fields)

If you only care about the SERP and not about showing a second line on the page, you don't need a new field at all. Leave the visible name as "Aurora" and write the meta title as the keyword-rich version. The trick is to stop writing meta titles one at a time. A good SEO module lets you define a meta-title pattern once and apply it to hundreds of products at once, for example:

  • [name], [category] | [shop_name] → "Aurora, Desk Lamps | YourStore"
  • [name] [features:Material] [features:Wattage] → pulls structured Feature values you already entered.

So what? You write the rule once, and every product inherits a search-optimised title built from data you already maintain. Update a Feature and the title follows. The honest limit: this lives in the <title> tag only, a visitor scanning the page still sees just "Aurora." If your goal is purely to win the click in search results, that's enough. If you also want the keywords on the page. Which helps both the visitor and the on-page keyword signal. You need Route 2.

Route 2, a true on-page subtitle, hooked into the template

A real subtitle is a second line of text rendered right under the <h1> on the product page, inside the indexable body. PrestaShop has no field for it, so you add one. Two clean ways, in rising order of effort:

Use a Feature as a quiet subtitle source

Create a Feature called "Subtitle" under Catalog → Attributes & Features → Features, give each product a custom value, and print it in the theme. In a child theme, the cleanest place is the product page template area around the H1, override the actual theme partial that renders the product title (in many themes the title lives in product.tpl or a name partial it includes), printing your value right after the name block (where $product.features is populated):

{foreach $product.features as $feature}
  {if $feature.name == 'Subtitle'}
    <p class="product-subtitle">{$feature.value}</p>
  {/if}
{/foreach}

So what? Zero new database schema, it's editable from the standard back office, and because it renders in the page body it's fully indexable. The catch: Features also appear in the Features/Data sheet tab by default, so you may want to filter that one value out there to avoid showing "Subtitle: …" twice.

Add a dedicated field via a module hook

The cleaner long-term answer is a small module that uses the product form builder modifier hook (actionProductFormBuilderModifier) where it's available for your target PrestaShop version, and falls back to legacy hooks/tabs or plain module configuration where it isn't. To add a "Subtitle" input to the product form, stores it (a column on ps_product_lang keeps it multilingual), and renders it on the front. (Heads-up: displayProductExtraContent is the wrong hook for a line under the H1, it renders its content as a separate Bootstrap tab lower on the page, not inline beneath the name.) So what? It's a first-class, translatable, per-language field, and storing it in your module means the data survives theme changes, but the front-office placement under the H1 still has to be integrated per theme unless an available hook puts it where you want it. This is the route to take if you sell across several languages, because a subtitle that isn't language-aware will show English keywords on your French store.

Writing a subtitle that earns its place

Lead with the term a buyer actually searches. Open Search Console → Performance → Queries, filter to the page, and read the real phrases people used to reach it. Those go first. "Aurora" competes with millions of results; "rechargeable LED desk lamp USB-C" is a specific, ready-to-buy query with far less competition.

Be concrete, not decorative. "Great product for your home" is wasted space. "Wool-Blend Throw Blanket. 150×200 Cm, Machine Washable" gives Google and the shopper specific, matchable facts.

Don't echo the name. If the product is "Classic Oxford Shirt," the subtitle should not repeat "shirt." Add what the name doesn't say: "100% Cotton, Slim Fit, 12 Colours."

Keep it to roughly 80 characters. Short enough to display cleanly under the H1, and short enough that when it feeds a meta-title pattern the combined name, subtitle still fits inside the ~60-character SERP cutoff before Google truncates it.

Write it once per language. A subtitle is keyword copy, and keywords don't translate literally, research the German and Polish search terms separately rather than running the English line through a translator.

How the subtitle fits the rest of the product page

A subtitle is one keyword surface, not the whole strategy. It pulls its weight when the page around it is doing its job too:

One caution on combinations

If a product has variants, sizes, colours, materials, resist the urge to bake those into one global subtitle. The subtitle describes the product; the variant axis is handled by combinations, which simply change the selected attributes on the same product page rather than creating separate, independently indexable pages. Mixing the two produces a subtitle that contradicts the selected variant. If each variant genuinely needs its own SEO landing page, use separate products or a specialised module instead. Keep them separate: product combinations and variants: when your store needs them.

Frequently asked questions

Where does the subtitle go in the database. Is it a new column?

It depends on the route. The Feature route stores nothing new: the value lives in ps_feature_value_lang and is joined to the product through ps_feature_product, so it's already multilingual and editable from the back office. The dedicated-field route adds a column to ps_product_lang (one row per language), which is what keeps the subtitle translatable. Either way the visible product name in ps_product_lang.name is left untouched, which is the entire point.

Will a subtitle under the H1 hurt my page's heading structure?

No, as long as you render it as a <p> (or a <span>), not a second <h1> or an <h2>. A page should have one H1, the product name. The subtitle is supporting body text that sits visually under it; keeping it a paragraph means Google reads the keywords without you breaking the heading hierarchy.

Does the subtitle change my friendly URL?

No. The link_rewrite slug is generated from the product name and is only regenerated if you edit the slug yourself. Adding a subtitle through a Feature or a separate field never rewrites the URL, so you can keep /12-aurora.html clean while still carrying the keyword line on the page.

I sell in several languages. Will one subtitle show across all of them?

Only if you build it wrong. A subtitle stored as plain text in the theme, or in a non-multilingual column, will show your English line on every store. Use a multilingual Feature value or a _lang column so each language carries its own researched keywords, German and Polish buyers search different phrases, and a literal translation rarely matches what they actually type.

Can I bulk-edit subtitles instead of one product at a time?

Yes. If the subtitle lives in a meta-title pattern (Route 1), you set it once and it applies catalogue-wide. If it's a Feature value, the standard Advanced Parameters → Import tool updates it in bulk via CSV. A dedicated subtitle field is bulk-editable the same way, provided the module exposes it to import.

The short version

PrestaShop makes you choose between a name that's good for branding and a name that's good for search, but only if you treat the name as the only title you have. It isn't. The meta title already lets you write a keyword version for the SERP without touching the brand, and a small bit of theme or module work gives you a visible, indexable subtitle on the page itself. Keep "Aurora" clean in the cart, the invoice and the URL; give Google "rechargeable LED desk lamp, USB-C, adjustable colour temperature" exactly where it counts. That's the whole trick, two fields doing two jobs, instead of one field doing both badly.

Share this post:
David Miller

David Miller

Founder, mypresta.rocks

David Miller is a PrestaShop specialist with over a decade of hands-on experience and the founder of mypresta.rocks, a software studio in Tychy, Poland. He builds and maintains a catalogue of 152 PrestaShop modules, including 21 "Revolution" suites spanning SEO, checkout, security, performance, marketing, search, support, and warehouse operations, that improve real stores every day, all tested against PrestaShop 1.7.8, 8.x, and 9.x. He also acts as caretaker for production stores turning over millions in annual sales, so his work is judged on live revenue, not demos. His experience runs the full breadth of ecommerce, performance, security, SEO, and marketing, and reaches beyond PrestaShop to WooCommerce, Shopify, and custom-built systems. On the blog he writes about the code-aware side of PrestaShop: what the platform really does under the hood, what breaks in production, and which fixes hold up.

Comments

No comments yet. Be the first!
Enjoyed this article?

Get our latest tips, guides and module updates delivered to your inbox.

You may unsubscribe at any moment. For that purpose, please find our contact info in the legal notice.

Loading...
Back to top