SEO Technical Pack: setup and help
Quick start
- Install the ten component ZIPs separately on a compatible PrestaShop version.
- Choose one owner for URL routing, canonical, hreflang, schema and sitemap output before enabling overlapping components.
- Open SEO Revolution Configuration and review Enable SEO Revolution, SEO Features, social and pagination settings.
- Configure the chosen Hreflang and Schema owners and inspect one translated product page.
- Review Friendly URL patterns and redirects, then test an old URL and its destination.
- Configure Sitemap Builder content/crawler options and generate the first sitemap; copy its actual Cron URL if scheduling it.
- Set Lazy Tags exclusions, create a restricted Internal Linking group and place any H1/subtitle/CMS labels.
- Inspect storefront source, generated sitemap files, redirect statuses and scheduled execution logs.
Requires PrestaShop 1.7.6 or later and PHP 7.1 or later.
Setup manual
Install and assign output ownership
Upload and install the ten component ZIPs separately through Modules > Module Manager > Upload a module. The pack contains SEO Revolution, Sitemap Builder, Hreflang, Schema, Friendly URLs, Lazy Tags, Internal Linking, Custom Category H1, SEO Subtitles and CMS Display Names. Each has its own configuration/admin pages. There is no single pack configuration screen.
Configure one test shop/language first. Save your current URL patterns and redirect data before changing established URLs. Assign one owner to canonical tags, hreflang, structured data, sitemaps and URL routing. Several components overlap with features inside SEO Revolution. An installed component does not mean you should enable every duplicate output.
Configure SEO Revolution
Open SEO Revolution > Settings > Configuration in one shop context. Enable SEO Revolution defaults on and SEO Features defaults on. Keep SEO Features on for SEO processing.
General, links, pagination and social output
| Current field | Default | What you do |
|---|---|---|
| Trailing Slash Handling | none | Choose a consistent URL policy and test redirects. |
| Friendly photo deep-link URLs (/product/photo/N) | No | Enable only if you use this gallery URL feature. |
| Add nofollow to external links | Yes | Change when your link policy requires different rel behavior. |
| Open external links in new tab | Yes | Choose the desired external-link target behavior. |
| Add noopener to external links | Yes | Keep the protection for new-tab links. |
| Whitelist domains | Empty | Add domains you want exempted from the external-link policy. |
| Add rel="next/prev" | Yes | Control pagination link output. |
| Canonical to first page | No | Change only after reviewing your pagination policy. |
| Noindex paginated pages | No | Enable when your indexing policy requires it. |
| Enable Open Graph tags | Yes | Keep on only for the chosen social metadata owner. |
| Enable Twitter Cards | No in the configuration fallback | Review the saved shop value; the older installation seed used Yes. |
| Twitter handle / Default social image | Empty | Add your real account and image URL. |
| Maximum stored 404 rows | 10000 | Limit stored monitor rows. |
| 404 retention days | 0 | Set a retention period if required. |
| Ignore exploit probes | Yes | Keep common probe traffic out of the monitor. |
| Ignored 404 URL patterns | Empty | Add patterns you deliberately do not want recorded. |
Use the dedicated screens described here.
Metadata and page overrides
Use Content > Meta Tags and the page lists to set titles/descriptions for products, categories, CMS pages, brands and suppliers. Use templates with the tokens shown later. Review entity overrides for H1, canonical, robots and social output where the current page editor exposes them. Check the saved page and actual output before processing more entities.
Use Redirections > All Redirects for redirect rules and 404 Monitor to inspect incoming failures. Rules support 301/302 redirects and 410 responses. Review the source path, destination and status before saving. Redirects and 404 monitoring are enabled by default. Review the individual rules before using them.
Robots, canonical and sitemap handling
Open Technical SEO > Robots.txt to review rules, generated preview and publication status. The current screen is a rule/file manager, rather than one ROBOTS_CUSTOM text setting. Verify the public /robots.txt after publishing. File output requires write access to the target location.
The SEO components share canonical settings. Its defaults enable canonical output, force lowercase, leave forced trailing slash off, keep pagination parameters, and strip utm_source,utm_medium,utm_campaign,utm_term,utm_content,fbclid,gclid,msclkid. Verify each public canonical URL and any page-level policy override.
SEO Revolution also has its own Technical SEO > Sitemap workflow and sitemap settings. Its current content defaults include products/categories/CMS/core/blog content; manufacturers and suppliers are off. Its current verifier concurrency default is 1. Choose this workflow or the standalone Sitemap Builder workflow below and configure only the intended generator/schedule.
Structured data and hreflang inside SEO Revolution
Use Content > Structured Data for the suite's structured-data settings. If using the standalone Schema component, confirm which renderer owns the final page and avoid duplicated graphs.
Use Hreflang > Configuration for Generate hreflang tags, Include x-default, Default language, Page types and Exclude pages and languages. Use its Groups for publication rules. The suite now uses the shared hreflang publication implementation. The standalone Hreflang settings below do not override a suite-owned set.
AI generation
Open the AI generation settings screen and select your provider.
- Primary Provider (
AI_PROVIDER). Selects the AI provider for assisted meta generation; default:openai. - OpenAI API Key (
AI_OPENAI_KEY). Stores the OpenAI API key for AI-assisted generation; default: empty. - OpenAI Model (
AI_OPENAI_MODEL). Selects the OpenAI model name; default:gpt-4. - Anthropic API Key (
AI_CLAUDE_KEY). Stores the Claude API key for AI-assisted generation; default: empty. - Claude Model (
AI_CLAUDE_MODEL). Selects the Claude model name; default:claude-3-sonnet-20240229. - Gemini API Key (
AI_GEMINI_KEY). Stores the Gemini API key for AI-assisted generation; default: empty. - Gemini Model (
AI_GEMINI_MODEL). Selects the Gemini model name; default:gemini-pro. - Title generation prompt (
AI_TITLE_PROMPT). Custom prompt used for AI title generation; default: empty. - Description generation prompt (
AI_DESC_PROMPT). Custom prompt used for AI meta description generation; default: empty. - Max title length (
AI_TITLE_LENGTH). Target title length for AI generation; default:60. - Max description length (
AI_DESC_LENGTH). Target meta description length for AI generation; default:160. - Writing style (
AI_STYLE). Writing style used by AI generation; default:professional.
Save credentials through the actual secret fields. A blank secret field keeps stored credentials; use its remove control when you intend removal. Generate a preview and review text before applying it.
Indexing, backlinks and audit work
Open Indexing API > Settings to enter the provider credentials before enabling the Google or Bing integration. Both indexing switches and their automatic submission switches start off. The module decides which URLs are submitted automatically; Google and Bing decide what they index.
Automatic backlink checking is on by default, with a seven-day interval and a batch limit of 50. It runs as a scheduled task. Internal link audits default to 2000 source pages, 50 target pages and a refresh age of 168 hours. Some of these values are internal defaults rather than visible settings. Review scheduled task execution and audit results; the checks do not all run on each page visit.
LLM files
Open Technical SEO > LLMs.txt. Review the preview, save settings and use Generate to publish:
- Enable llms.txt (
LLMS_ENABLED). Enablesllms.txtgeneration; default:0. - Also generate llms-full.txt (
LLMS_FULL_ENABLED). Enablesllms-full.txtgeneration; default:0. - Language (
LLMS_LANGUAGE). Selects the language used for LLM files, where0means shop default; default:0. - Description (
LLMS_CUSTOM_DESCRIPTION). Custom store description used in LLM files; default: empty. - About (
LLMS_CUSTOM_ABOUT). Custom about text used in LLM files; default: empty. - Categories (
LLMS_INCLUDE_CATEGORIES). Includes categories in generated LLM files; default:1. - Products (
LLMS_INCLUDE_PRODUCTS). Includes products in generated LLM files; default:1. - CMS Pages (
LLMS_INCLUDE_CMS). Includes CMS pages in generated LLM files; default:1. - Blog Posts (
LLMS_INCLUDE_BLOG). Includes supported blog content in generated LLM files; default:1. - Manufacturers (
LLMS_INCLUDE_MANUFACTURERS). Includes manufacturer pages in generated LLM files; default:0. - Max products (
LLMS_MAX_PRODUCTS). Limits products included in generated LLM files; default:50. - Max blog posts (
LLMS_MAX_BLOG_POSTS). Limits blog posts included in generated LLM files; default:30. - Product sort (
LLMS_PRODUCT_SORT). Selects product ordering for generated LLM files; default:sales. - Exclude CMS IDs (
LLMS_EXCLUDE_CMS_IDS). Comma-separated CMS IDs excluded from generated LLM files; default: empty. - Custom sections (
LLMS_CUSTOM_SECTIONS). Custom sections appended to generated LLM files; default: empty.
Verify the generated public /llms.txt and, if enabled, /llms-full.txt. The PHP user needs write access to the artifact location.
Configure standalone Sitemap Builder
Open Sitemap Builder > Settings > Configuration. The tabs are Content, Options, Crawler and Security.
- Products (
MPRSITEMAPBUILDER_INCLUDE_PRODUCTS). Includes product URLs in generated sitemaps; default:1. - Categories (
MPRSITEMAPBUILDER_INCLUDE_CATEGORIES). Includes category URLs in generated sitemaps; default:1. - CMS Pages (
MPRSITEMAPBUILDER_INCLUDE_CMS). Includes CMS page URLs in generated sitemaps; default:1. - Manufacturers (
MPRSITEMAPBUILDER_INCLUDE_MANUFACTURERS). Includes manufacturer URLs in generated sitemaps; default:0. - Suppliers (
MPRSITEMAPBUILDER_INCLUDE_SUPPLIERS). Includes supplier URLs in generated sitemaps; default:0. - Core Pages (
MPRSITEMAPBUILDER_INCLUDE_CORE_PAGES). Includes core pages such as contact, stores, and sitemap; default:1. - Include image sitemaps (
MPRSITEMAPBUILDER_INCLUDE_IMAGES). Adds image sitemap entries for product images; default:1. - Include hreflang links (
MPRSITEMAPBUILDER_INCLUDE_HREFLANG). Adds hreflang alternate links to XML sitemap entries; default:1. - Priority for Homepage (
MPRSITEMAPBUILDER_PRIORITY_HOME). Sets homepage sitemap priority; default:1.0. - Product Priority (
MPRSITEMAPBUILDER_PRIORITY_PRODUCT). Sets product sitemap priority; default:0.8. - Category Priority (
MPRSITEMAPBUILDER_PRIORITY_CATEGORY). Sets category sitemap priority; default:0.7. - CMS Priority (
MPRSITEMAPBUILDER_PRIORITY_CMS). Sets CMS page sitemap priority; default:0.5. - Manufacturer Priority (
MPRSITEMAPBUILDER_PRIORITY_MANUFACTURER). Sets manufacturer sitemap priority; default:0.4. - Supplier Priority (
MPRSITEMAPBUILDER_PRIORITY_SUPPLIER). Sets supplier sitemap priority; default:0.3. - Core page Priority (
MPRSITEMAPBUILDER_PRIORITY_CORE_PAGE). Sets core page sitemap priority; default:0.3. - Frequency for Homepage (
MPRSITEMAPBUILDER_FREQUENCY_HOME). Sets homepage change frequency; default:daily. - Product Frequency (
MPRSITEMAPBUILDER_FREQUENCY_PRODUCT). Sets product change frequency; default:weekly. - Category Frequency (
MPRSITEMAPBUILDER_FREQUENCY_CATEGORY). Sets category change frequency; default:weekly. - CMS Frequency (
MPRSITEMAPBUILDER_FREQUENCY_CMS). Sets CMS page change frequency; default:monthly. - Manufacturer Frequency (
MPRSITEMAPBUILDER_FREQUENCY_MANUFACTURER). Sets manufacturer change frequency; default:monthly. - Supplier Frequency (
MPRSITEMAPBUILDER_FREQUENCY_SUPPLIER). Sets supplier change frequency; default:monthly. - Core page Frequency (
MPRSITEMAPBUILDER_FREQUENCY_CORE_PAGE). Sets core page change frequency; default:monthly. - Max URLs per File (
MPRSITEMAPBUILDER_MAX_URLS_PER_FILE). Splits sitemap files after this many URLs; default:50000. - Verify URLs (crawl each page) (
MPRSITEMAPBUILDER_VERIFY_URLS). Crawls URLs before adding them so 404, noindex, and canonical-mismatch pages can be skipped; default:1. - Concurrent Requests (
MPRSITEMAPBUILDER_CONCURRENT_REQUESTS). Sets parallel verification requests, capped by the verifier to protect the server; default:3. - Batch Delay (ms) (
MPRSITEMAPBUILDER_BATCH_DELAY_MS). Adds a delay between verification batches; default:500. - Request Timeout (s) (
MPRSITEMAPBUILDER_REQUEST_TIMEOUT). Sets HTTP timeout for each verification request in seconds; default:10. - Reuse Validation For (
MPRSITEMAPBUILDER_VALIDATION_REUSE_DAYS). Reuses fresh validation results for unchanged URLs; default:30. - HTTP Spot-check Sample (
MPRSITEMAPBUILDER_VALIDATION_SAMPLE_PERCENT). Spot-checks a percentage of otherwise reusable URLs during each generation; default:2. - Minimum Interval Between Generations (s) (
MPRSITEMAPBUILDER_MIN_INTERVAL). Skips cron generation when another generation finished too recently, in seconds; default:3600. - Ping Google after generation (
MPRSITEMAPBUILDER_PING_GOOGLE). Legacy Google sitemap ping option; uses a legacy endpoint; default:1. - Ping Bing after generation (
MPRSITEMAPBUILDER_PING_BING). Legacy Bing sitemap ping option; uses a legacy endpoint; default:1. - Generate RSS feed (
MPRSITEMAPBUILDER_GENERATE_RSS). Generates an RSS feed when enabled; default:0. - Generate HTML sitemap (
MPRSITEMAPBUILDER_GENERATE_HTML). Generates an HTML sitemap; default:1. - Cron Token (
MPRSITEMAPBUILDER_CRON_TOKEN). Protects the cron endpoint with a generated token; default: generated during installation.
Content has the entity switches and the Priority & Frequency matrix. Options contains images/hreflang, URL verification, HTML/RSS and legacy ping options. Crawler contains request/load controls. Security provides the generated token and Cron URL. The standalone form does not have the previously listed SPLIT_FILES switch. The generator writes per-shop index/part files and splits by the URL limit.
Start with three concurrent requests or fewer; the verifier caps concurrency at 3. Lower it or increase Batch Delay (ms) if verification overloads your shop. Verification excludes non-200 responses, noindex pages and canonical mismatches. A cache reuse period can prevent unchanged URLs from being recrawled every run.
Run the first generation from the module dashboard after URL/output settings are ready. Inspect its generation log and excluded/error URL records. The output directory is modules/mprsitemapbuilder/sitemaps/; it must be writable by the web PHP user. The index is named sitemap_index_SHOP_ID.xml. Use the generated public URL rather than assuming /sitemap.xml is the standalone output path.
Copy Cron URL into your scheduler. Its token is generated during installation; regenerate it only when you can update the scheduler. The minimum interval prevents too-frequent generations. The legacy ping controls send requests to the old Google and Bing ping endpoints, so submit the sitemap index in Google Search Console and Bing Webmaster Tools yourself.
Configure standalone Hreflang
Open Improve > Hreflang > Configuration and select one shop. Generate hreflang tags and Include x-default default on. Default language defaults to Shop default language, stored as 0. Page types initially includes homepage, products, category, CMS, brand and supplier pages. Exclude pages and languages starts empty. Save with Save shop settings.
Native alternates use available translations in that shop. The module omits search, filters, pagination beyond page 1 and module pages. It does not create translations or sitemap alternates. Native output needs multiple language destinations. Groups can map selected sources to entity/custom URL targets and form shared sets across shops. Lower group priority values run first; empty source selection matches nothing.
Automatic connections can connect related storefronts with the same entity type/ID. It defaults off. Select Related storefronts, resolve duplicate codes with Preferred destination, choose Shared x-default if needed and click Save automatic connection. All participants need access/licensing and equivalent content. Manual groups take precedence. Inspect every reciprocal URL in source.
Configure Schema Rich Snippets
Open the Schema module Configuration. The tabs are Schema Types, Organization, Social Profiles, Product Schema, Shipping and Returns.
- Product Schema (
enable_product). Generates Product structured data with price, availability, brand, and reviews; default:1. - Organization Schema (
enable_organization). Outputs Organization or LocalBusiness data on the homepage; default:1. - WebSite Schema (
enable_website). Adds WebSite schema with SearchAction; default:1. - Breadcrumb Schema (
enable_breadcrumb). Generates BreadcrumbList data; default:1. - Category Schema (
enable_category). Outputs CollectionPage schema on category pages; default:1. - CMS Article Schema (
enable_cms). Generates Article schema for CMS pages; default:1. - Remove Microdata Attributes (
clean_microdata). Removesitemscope,itemtype, anditempropattributes to avoid duplicate markup; default:1. - Remove Existing JSON-LD (
clean_existing_jsonld). Removes other JSON-LD blocks from the final HTML while preserving this module’s blocks and marked Smart Breadcrumbs output; default:1. - Organization Type (
org_type). Selects the business schema type; default:Organization. - Organization Name (
org_name). Sets the organization name, with empty value falling back to shop name; default: empty. - Phone Number (
org_phone). Sets the organization phone number; default: empty. - Contact Email (
org_email). Sets the organization email; default: empty. - Logo URL (
org_logo). Sets the full logo URL, with empty value falling back to shop settings; default: empty. - Street Address (
org_address_street). Sets the organization street address; default: empty. - City (
org_address_city). Sets the organization city; default: empty. - Postal Code (
org_address_postal). Sets the organization postal code; default: empty. - Country (ISO code) (
org_address_country). Sets the two-letter country code; default: empty. - Region / State (
org_address_region). Sets the region or state; default: empty. - Facebook URL (
social_facebook). Adds a Facebook profile URL tosameAs; default: empty. - Twitter / X URL (
social_twitter). Adds an X/Twitter profile URL tosameAs; default: empty. - Instagram URL (
social_instagram). Adds an Instagram profile URL tosameAs; default: empty. - YouTube URL (
social_youtube). Adds a YouTube profile URL tosameAs; default: empty. - LinkedIn URL (
social_linkedin). Adds a LinkedIn profile URL tosameAs; default: empty. - Pinterest URL (
social_pinterest). Adds a Pinterest profile URL tosameAs; default: empty. - TikTok URL (
social_tiktok). Adds a TikTok profile URL tosameAs; default: empty. - Brand Source (
product_brand_source). Chooses where product brand data comes from; default:manufacturer. - Default Product Condition (
product_condition). Sets the fallback product condition URL; default:https://schema.org/NewCondition. - Include Reviews (
product_reviews_enabled). Includes AggregateRating and individual reviews from product comments; default:1. - Show Variant Offers (
product_show_variants). Generates individual offers for product combinations; default:1. - Max Product Images (
product_image_limit). Limits product images included in schema; default:5. - Include Shipping Details (
shipping_enabled). Adds OfferShippingDetails to product offers; default:1. - Handling Time Min (days) (
shipping_handling_min). Sets minimum handling time in days; default:0. - Handling Time Max (days) (
shipping_handling_max). Sets maximum handling time in days; default:1. - Transit Time Min (days) (
shipping_transit_min). Sets minimum transit time in days; default:2. - Transit Time Max (days) (
shipping_transit_max). Sets maximum transit time in days; default:5. - Shipping Countries (ISO) (
shipping_country). Sets comma-separated two-letter shipping destination countries; empty uses the shop country; default: empty. - Include Return Policy (
returns_enabled). Adds MerchantReturnPolicy to product offers; default:1. - Return Window (days) (
returns_days). Sets the return window in days; default:14. - Return Policy Type (
returns_type). Sets the return policy type; default:https://schema.org/MerchantReturnFiniteReturnWindow. - Return Fees (
returns_fee). Sets the return fee policy; default:https://schema.org/FreeReturn. - Return Method (
returns_method). Sets the return method; default:https://schema.org/ReturnByMail.
Store Brand Name is empty by default and is used when you select a store-brand source. Variant Properties starts empty; color groups can supply color and other attribute groups need an explicit mapping for their schema property. Check variants in the generated graph.
This screen has no FAQ editor or identifier-type selector.
Shipping and returns
Shipping Countries (ISO) accepts a comma-separated country list such as PL,DE; empty uses the shop country. Select Carriers for Shipping Rates, which defaults empty. Without a carrier, shipping details are omitted. The calculator chooses the lowest eligible selected carrier quote per destination where it can calculate one; unsupported/ambiguous cases can be omitted. There is no current shipping_currency field.
Return Policy Placement defaults to every product offer. You can choose Organization, offer or both. Organization placement requires Organization schema enabled. Return Shipping Fee and Currency of the Return Shipping Fee start empty and are required as appropriate for a fixed shop-charged return fee. Review Products With Their Own Return Policy, Return Policy of These Products and Return Window of These Products (days) for exceptions; defaults are no selected products, Returns Not Permitted, and 0 days.
Match shipping/return values to your actual policies before publishing. The module generates markup; it does not implement your returns process. Remove Existing JSON-LD and Remove Microdata Attributes can remove other components' markup. Inspect the full page graph after changing them. Do not infer search-result eligibility from the existence of a JSON-LD block alone.
Configure Friendly URL Manager
Select one shop where required by the current form, then open Configuration.
| General / Performance field | Default | What you do |
|---|---|---|
| Module Enabled | Yes | Enable only for the intended URL owner. |
| Defer to SEO Revolution | Yes | Let the suite own URLs while active. |
| Default Redirect Type | 301 | Choose the fallback for URL changes. |
| URL Not Found Action | 404 | Choose 404, homepage or search handling as offered. |
| Log Redirects | Yes | Keep redirect history for review. |
| URL Cache | Yes | Cache resolved URLs. |
| Cache TTL | 86400 seconds | Change when resolution cache lifetime needs adjustment. |
Products, Categories, CMS Pages, Manufacturers and Suppliers have per-entity tabs. Enabled starts Yes, URL Pattern starts {rewrite}, URL Suffix starts empty, Collision Handling starts ID, Redirect on URL change starts 301, Redirect on Delete and Redirect on Disable start parent. Force Lowercase, Remove Accents and Strip Special Characters start on.
Products also expose Include parent categories, initially off, and Variant URLs, initially none. Other pattern storage defaults include category separator /, unlimited category depth (0), space replacement -, CMS-category inclusion off and a default-category product redirect target. They are not separate current Back Office fields.
Review patterns with the examples below. Test both old and new URLs, collisions and redirects before changing your whole catalogue. If changes have no effect, check Defer to SEO Revolution and the active suite URL configuration. Use Redirect History to inspect generated redirects.
Configure headings, subtitles and CMS labels
Custom Category H1
Open the module Configuration and set the following current labels:
- Enable (
ENABLED). Applies custom H1 overrides on category pages; default:true. - Show field on category edit page (
SHOW_CATEGORY_EDIT_FIELD). Adds the multilingual Custom H1 field to category edit forms; default:true. - Replace category name on category page (
REPLACE_CATEGORY_NAME). Replaces the category page name with the resolved custom H1; default:true. - Apply to product-listing label (
APPLY_LISTING_LABEL). Applies the resolved H1 to product-listing labels used by themes and AJAX flows; default:true. - Fallback to default language (
FALLBACK_DEFAULT_LANG). Uses the default-language H1 when the current language value is empty; default:true. - Fallback to all-shops override (
SHOP_FALLBACK). Uses an all-shops override when the current shop has no specific value; default:true. - Fallback to parent category override (
PARENT_FALLBACK). Uses the nearest parent category H1 when the current category has no custom H1; default:false. - Append page number automatically (
AUTO_APPEND_PAGE_NUMBER). Adds page number text on paginated category pages when the template does not already use a page placeholder; default:false. - Strip HTML from custom H1 values (
STRIP_HTML_TAGS). Removes pasted HTML from custom H1 values; default:true. - Normalize whitespace (
NORMALIZE_WHITESPACE). Collapses repeated spaces and line breaks before saving H1 values; default:true. - Heading tag hint (
HEADING_TAG). Exposes the preferred heading tag hint to custom templates; default:h1.
Edit a category's multilingual Custom H1 heading, or manage overrides in the module. Test parent/default-language/all-shops fallbacks before enabling them broadly. A heading tag hint does not rewrite every theme's heading markup by itself.
SEO Subtitles
- Default HTML Tag. Sets the default tag for subtitle output; default:
h2. Set it in SEO Subtitles → Configuration. - Default CSS Class. Adds an extra CSS class to subtitles; default:
mpr-seo-subtitle. - Display Mode. Shows only the highest-priority subtitle or all matching subtitles; default:
single.
Create an active subtitle with multilingual text, target entities/rules, HTML tag, CSS class and Priority. The default record priority is 10 and higher values win in single mode. Place displayMprSubtitle through the module's template tools or a manual theme hook. Without placement, a saved subtitle is not visible.
CMS Display Names
Open the module Configuration. Enter Display Name (headings, links) beside the preserved SEO title. An empty value uses the native meta_title. The current form renders inputs only for the shop default language. Names are saved separately for each CMS page, language and shop. Its save routine clears other language values that were not submitted; back them up if you maintain them separately.
Values live in the prefixed mprcmsnames table and apply to supported CMS headings/links without changing the stored CMS meta_title. Verify your actual navigation modules and theme output.
Template and content examples
SEO Revolution title and description templates can use real template tokens:
%product_name% by %product_brand% | %shop_name%
%category_name% - %category_products_count% products | %shop_name%
%manufacturer_name% products | %shop_name%
Common SEO Revolution template variables include:
%shop_name%
%site_name%
%year%
%month%
%currency%
%language%
%product_name%
%product_reference%
%product_price%
%product_brand%
%product_category%
%product_description_short%
%category_name%
%category_parent%
%category_products_count%
%page%
%cms_title%
%cms_meta_description%
%manufacturer_name%
%supplier_name%
Generated robots.txt content can include a sitemap declaration:
# robots.txt generated by MPR SEO Revolution
User-agent: *
Disallow: /cart
Allow: /
Sitemap: https://example.com/sitemap.xml
Friendly URL patterns use entity placeholders:
Product pattern: {category}/{rewrite}
Category pattern: {path}/{rewrite}
CMS pattern: {category}/{rewrite}
Manufacturer pattern: {rewrite}
Supplier pattern: {rewrite}
Supported Friendly URL placeholders include:
Products: {name}, {category}, {categories}, {brand}, {reference}, {ean13}, {supplier}, {rewrite}
Categories: {name}, {parent}, {path}, {rewrite}
CMS pages: {title}, {category}, {rewrite}
Manufacturers: {name}, {rewrite}
Suppliers: {name}, {rewrite}
Category H1 overrides can use category placeholders:
{category_name} for modern bathrooms{page_label}
{category_name} - page {page}
SEO Subtitles can be rendered manually in a theme template with the module hook:
{hook h='displayMprSubtitle'}
{hook h='displayMprSubtitle' id_product=$product.id_product}
{hook h='displayMprSubtitle' id_product=$product.id_product tag='h3'}
{hook h='displayMprSubtitle' tag='h3' css_class='category-subtitle'}
Lazy loading can be skipped on a critical image with the configured exclusion class:
An Internal SEO Linker keyword group can be configured like this:
Name: Shower trays
Target URL: /shower-trays
Keywords: shower tray, walk-in tray, wet room tray
CSS selectors: .product-description, .page-content
HTML tags: p,li
Max links: 3
Link class: mpr-autolink
Link position: first
CMS Display Names stores labels separately from native CMS meta titles:
Table: ps_mprcmsnames
id_cms: 4
id_lang: 1
id_shop: 1
display_name: Delivery
These examples show syntax, not import files. Smarty hooks belong in theme templates. Generated robots and sitemap declarations must use your actual public sitemap URL. Schema shipping currencies and CMS label editing follow the current screens described above.
Verify output and troubleshoot
- Open one product, category, CMS, brand and supplier page. Inspect title/description, canonical, robots, social tags, hreflang and JSON-LD for the chosen owners.
- Open all alternate/canonical destinations. Check pagination, filtered listings and unavailable pages separately.
- Test an old URL after a pattern change. Confirm its HTTP status and final destination and check redirect history/404 logs.
- Generate the sitemap and open the actual index and part files. Review validation exclusions, canonical mismatches, failed requests and generation time.
- Inspect content image attributes and generated internal links. Check link limits, headings and your theme's content selectors.
- Check custom category H1, subtitle placement and CMS heading/link text in the active language. Test a listing AJAX refresh if your theme uses one.
- If output is missing, check shop context, module/license state, owner/defer settings and theme hooks. Run Integrity for the affected component. For file generation errors, verify PHP write access to the specific artifact directory and inspect the module logs.
- Set up a real authenticated cron trigger for the scheduled tasks you enable. Check the hit and execution logs and the next run times; front-office fallback traffic alone may not run the indexing, backlink or sitemap workers.
Disable or uninstall
Disable components individually in Module Manager for a temporary stop. Remove or update scheduled URLs when retiring generators. Back up redirects, SEO overrides, link groups, subtitle placements and generated artifacts before uninstalling.
Friendly URL Manager restores route rules only when SEO Revolution is not active, then removes its configuration. Check old/new URLs after removal. Sitemap Builder preserves shared sitemap tables when SEO Revolution is installed; otherwise its uninstall drops the shared sitemap data tables. Generated files remain after uninstalling; review the published files separately.
Hreflang and Schema remove their own schema/settings. Internal Linking, Custom Category H1 and CMS Display Names remove their module data; back up anything you need. Subtitles preserves shared subtitle data and removes its settings. Without SEO Revolution it removes managed template placements; when SEO Revolution is installed, uninstall requires its active subtitle takeover and keeps those placements. Lazy Tags removes settings and stops attribute injection. Review SEO Revolution’s own removal separately because the suite owns shared services and public SEO output. Recheck the storefront and public files after changing ownership.
Compatibility
Requires PrestaShop 1.7.6 or later and PHP 7.1 or later.
Questions
1
Can I use your SEO Revolution Suite instead of buying individual SEO modules?
Yes, when its features cover your needs. Smart SEO Revolution Suite includes sitemap, structured-data, canonical and internal-linking tools in one module. Compare the required features and takeover settings before removing standalone modules.
Known Issues
No known issues
There are currently no open or resolved issues registered for this module.
Feature Requests
No feature requests for this module yet
Missing something? Suggest it, and follow its progress here.