Smart SEO URL

Complete documentation to install, configure, and use the Smart SEO URL module in your PrestaShop store.

What is Smart SEO URL?

Smart SEO URL is the ultimate module to optimize the friendly URLs of your PrestaShop store. It allows you to fully customize the URL structure for products, categories, CMS pages, CMS categories, brands and suppliers, optimizing your SEO and user experience. It also provides tools to manage 301, 302, and 303 redirects, generate and manage sitemaps, edit robots.txt files, and perform on-demand backups of your configuration.

5.3.0
Version
PS 1.7.6+
PS 8.x
PS 9.x
Multistore
Multi-language

Main Features

Custom URL builder

Design custom URL patterns for your products, categories, CMS pages, CMS categories, brands and suppliers using an intuitive visual builder.

SEO Redirect Management

Create and manage 301, 302, and 303 redirects with bulk import from CSV files to maintain SEO after structural changes.

Automatic Sitemap Generation

Generate automatic XML sitemaps for categories, products, CMS pages, and more, with automatic regeneration via cron jobs.

Advanced robots.txt Management

Edit and customize your robots.txt file with AI bot blocking rules and automatic cron configuration for periodic maintenance.

System Requirements

Requirement Minimum Recommended
PrestaShop 1.7.6 Latest version
PHP 7.2 8.0+
Database MySQL 5.7 MySQL 8.0+

Installation

There are two methods to install the module in your PrestaShop store, depending on your server characteristics.

Method 1: Installation from Back Office

1
Access the Back Office

Log in to your PrestaShop store administration panel.

2
Navigate to Modules

Go to Modules → Module Manager in the sidebar menu.

3
Upload the module

Click "Upload a module" and select the downloaded ZIP file.

4
Install and activate

Once uploaded, the module will install automatically. Click "Configure" to begin.

Method 2: Installation via FTP

1
Extract the ZIP file

Extract the contents of the ZIP file on your local computer.

2
Connect via FTP

Use an FTP client (such as FileZilla) to connect to your server.

3
Upload the module folder

Upload the module folder to /modules/ in your PrestaShop installation.

4
Install from Back Office

Go to Modules → Module Manager, find the module and click "Install".

Possible Installation Issues

If you experience override errors when installing or activating the module, do not attempt to resolve it yourself if you lack technical experience. Contact our support team to receive personalized help and resolve the conflict safely.

Contact Support

General

This section contains the general configuration options of the module, allowing you to enable test mode, adjust the behavior of product URLs, and optimize the performance of batch updates.

Sandbox

When this option is active, the module enters test mode and only users with the configured IP addresses will be able to see the custom URLs. This allows you to test all the module functionality without customers seeing changes in the store.

IP

In this field you specify the IP addresses of users who will have access to the module while it is in Sandbox mode. You can add multiple separate IP addresses to allow multiple users to test the configuration simultaneously.

Remove hash from product URL

Enable this option to remove everything that appears after the # symbol in product URLs. For example, the URL /my-product#/19-size-40x60cm will become /my-product.

Omit default language ISO code in shop URLs

By enabling this option, your store URL for the default language will not include the ISO code prefix (e.g., "/en/"). All other languages will continue to display their corresponding prefix.

Batch size per request

Sets how many items are processed per request during bulk updates. Lower values reduce server load but require more requests. It is recommended to use 200 for large catalogs.

Auto-redirect deactivated products

When a visitor lands on a deactivated product, this option redirects them with a 301 to a fallback page instead of showing the 404 error page.

Redirect target

Appears when you enable the option above and decides where the visitor goes. You can choose between Default category of the product and Home page.

Enable diagnostic logs

Enable this option so the module writes trace messages (prefixed with [SSU-DEBUG]) to the "Advanced Parameters > Logs" section of PrestaShop. It is useful for diagnosing URL resolution issues.

Customize URL

This section allows you to fully customize the URL structure for different types of content in your store: products, categories, CMS pages, CMS categories, brands and suppliers. Here you can define friendly URL patterns that improve your SEO and facilitate the browsing experience for your customers. The module will guide you through a step-by-step configuration process to build and apply your new URL patterns.

URL Builder

The URL builder allows you to design the exact structure of your URLs by dragging available elements (such as product ID, name, category, etc.) into an input field, or by directly typing the desired pattern. You can create different patterns for each active language in your store.

List of available options

Shows all predefined elements you can use in your URL pattern. These include keywords such as {id}, {link_rewrite}, {ean13} and others specific to the type of content. You can drag these elements directly to the URL field or type them manually.

Categories in CMS page URLs

CMS pages have two keywords of their own for carrying their category in the address. {cms_category} adds only the category the page belongs to, and {cms_categories} adds the full path when categories are nested inside one another. On CMS categories, the equivalent keyword is {parent_categories}, which walks the categories above it. The more segments the address carries, the more it says about the page and the more it depends on you not reorganising the categories afterwards.

URL pattern per language

You can enable or disable URL configuration for each language in your store. Simply check the checkbox next to the language to include it in your new configuration, or leave it unchecked if you prefer to keep the previous pattern for that language. When you activate the checkbox, the field is enabled where you can drag keywords from the available list or directly type the custom URL pattern.

Combinations as URL parameter

Appears exclusively when the page type is product. It allows showing the product combinations (size, color, etc.) as a query parameter in the URL (for example ?combination=57909) instead of including them within the path. Enable the toggle to activate this mode.

Parameter name per language

When the toggle is active, a field appears for each language that has the checkbox enabled in the URL builder and that does not have a conflict with the {id_product_attribute} token. You can type the parameter name for each language (only letters, numbers, hyphens and underscores, starting with a letter) and see in real time how the URL will look, for example /en/your-product.html?combination=57909.

Duplicates

This step checks whether the new URL pattern you created will generate duplicate addresses with existing products, categories, or elements. If it finds conflicts, it offers tools to resolve them automatically or manually.

Duplicate detection

The module analyzes all elements in your catalog and generates the new URLs according to your pattern. If any of the new URLs match an existing URL (which would create a duplicate), it notifies you here.

Correct automatically

If duplicates are detected, you can click this button to have the module attempt to resolve conflicts automatically by adding ID numbers or making other minimal adjustments to duplicate URLs.

Fix

Each row in the duplicates table includes a Fix button that opens a dialog to resolve that conflict manually. The dialog shows the affected language and a form where you can directly edit the URL value of the conflicting element. Once corrected, click Save changes and update URL to apply the change and remove that duplicate from the list.

Skip duplicate check

This advanced option allows skipping the duplicate check and proceeding directly with the update. Use it only if you are sure that your data is consistent and there are no conflicts.

URL Check

In this step you can preview how your catalog URLs will look before applying the changes. The module shows a paginated table with the current URL and the new URL the defined pattern will generate, so you can review the result before going to production.

Preview table

Each row of the table shows four columns: the item (name and ID of the product, category, brand, etc.), the language, the current rewritten URL and the new rewritten URL that will be generated with the new pattern. You can navigate between pages to review every item in the catalog.

Refresh list

Reloads the preview table with the current catalog data. Useful if you have added or modified items while the wizard is open.

Go to Production

This is the final step where you apply the changes. Here you confirm that you want to apply the new URL pattern to your production store, or if you prefer to save the changes as a draft to apply them later.

Apply changes

By clicking this button, the module will immediately apply the new URL pattern to all configured elements. Your URLs will change in the store and customers will see the new addresses.

You do not need to create redirects for the previous addresses, nor to do anything else after this button. When you apply the changes, the module stores the pattern you replace; from then on, when an address with that shape comes in, it sends it with a 301 to the one that page has now. This works for products, categories, CMS pages, CMS categories, brands and suppliers, and it keeps working if you change the pattern again later, because the destination is worked out from whichever pattern is active at that moment.

Save as draft

If you prefer to apply the changes at a later time, you can save your configuration as a draft. This allows you to continue editing or review again before applying the changes to production.

Redirects

This section allows you to manage permanent, temporary, and HTTP method redirects. Here you can create individual redirects, import multiple redirects from CSV files, and view the complete list of active redirects.

This is where the addresses the module cannot work out on its own belong: a page you have renamed, a discontinued product you want to send somewhere else, or the addresses you bring over from a previous shop. When what changes is the pattern of a page type, you do not need to create anything: the wizard takes care of that, as explained in Go to Production.

Create Redirection

In this subsection you can create individual redirects by specifying the original URL and the new URL, as well as selecting the type of redirect you want to apply.

Original URL

Enter the original path you want to redirect here. You must write the path without the protocol or domain, for example: /old-product or /products/discontinued-item. The module will show you a complete preview with the domain and protocol as you type.

New URL

Specify the complete destination URL to which the redirect should point. You can include the full protocol and domain, for example: http://www.domain.com/new-products/new-item. This is the address where visitors will be redirected when they access the original URL.

Redirection Type

Select the HTTP code type for the redirect:

  • 301 - URL PERMANENTLY moved: the URL has moved permanently. Search engines update their indexes and move most of the signals to the new URL. It is neither immediate nor total: it depends on the destination being equivalent, on the redirection staying active, and on there being no chains or loops.
  • 302 - URL temporarily moved: the change is temporary. Search engines keep the original URL in their indexes.
  • 303 - GET method to retrieve information: redirects after processing a POST form.

Import Redirects

This subsection allows you to import multiple redirects at once using a CSV file, which is ideal if you need to create many redirects quickly.

Example of correct format

The module shows you a table with an example of the exact format your CSV file must have. The required columns are: original_url (the original path without protocol or domain), new_url (the complete destination URL) and type (the redirect type: 301, 302 or 303). You can download an example CSV file by clicking the "Download example" button.

CSV file separator

Select the separator character used in your CSV file. The options are comma (,) or semicolon (;). This ensures the module correctly interprets the columns in your file.

Select file and import

Drag your CSV file onto the upload area or click to select it from your computer. Once selected, you will see the file name and size. When you are ready, click "Import redirects" to process the file.

List of Redirects

This subsection shows all the redirects you have created or imported, allowing you to consult and delete them.

View redirections

The table shows the redirects with the following columns: original URL, new URL, redirect type, and creation date. The table is paginated and has a refresh button to reload the data.

Download redirects list

You can export your complete list of redirects to a CSV file. Select the separator you prefer (comma or semicolon) and click Download to download the file with all your current redirects.

Delete redirections

Each row has a Delete button to remove that redirect individually. You can also select multiple redirects using the checkboxes and delete them in bulk using the bulk delete button.

404

In this tab you can monitor in real time the URLs that are generating 404 errors in your store, identify sources of suspicious traffic, and manage redirects directly from the same panel.

Statistics cards

When you open the tab you will see four cards with metrics from the last 30 days: Total 404 (total number of failed requests), Unique URIs (distinct paths requested), Unique IPs (unique IP addresses) and Suspicious (percentage of requests classified as scanner, bot, or automated tool).

Top URIs

Ranking of the paths that have generated the most 404 errors in the analyzed period, with the accumulated number of hits for each one. It is useful for identifying which URLs need to be redirected most urgently.

Top IPs

Lists the IP addresses with the most erroneous requests, along with their hit count. It allows detecting repeated accesses from specific IPs that may require blocking.

Detailed list

Paginated table with details of all recorded not-found paths. You can filter by URI to locate a specific path. The available columns are: requested URI, total hits, unique IPs, last IP, agent category (human, scanner, bot, tool), HTTP method, new redirect URL (if configured), and redirect type.

Row actions
  • View occurrences: opens a dialog with the complete history of that URI. Includes a summary (total hits, unique IPs, first and last visit) and two tabs: By IP (breakdown of hits by IP address with option to ban) and Chronological (paginated list of each request with date, IP, category, method, user agent, and referer).
  • Ban this IP: appears only if the row has a registered IP. Bans that IP directly from the security panel.
  • Create redirection: appears when the URI does not yet have a redirect configured. Opens the creation form with the source URL already pre-filled.
  • Delete redirection: appears instead of the previous button when the URI already has a redirect configured. Deletes it directly.
Clear list

The trash button in the header deletes all records from the table at once. It only appears when there are records.

Security

This section provides tools to protect your store against malicious traffic. It allows you to manage which IPs are currently blocked, maintain a list of trusted addresses that will never be banned, and configure automatic blocking rules.

Blocked IPs

Shows the list of all IPs currently banned in your store. You can filter the table by IP address, by blocking origin (manual, auto-category, auto-rate), or enable the active-only view to exclude already expired blocks. The cleanup button in the header automatically removes all expired records to keep the table organized.

Whitelist

Manages the IP addresses that will never be blocked by the system, regardless of their behavior. To add an entry, type the IP address and an optional description in the upper fields and click "Add to whitelist". Localhost IPs (127.0.0.1 and ::1) are added automatically during module installation. You can delete any entry using the button in the actions column.

Configuration

Here you configure the behavior of the IP ban system. All options are nested under the main switch and are only accessible when it is enabled.

Enable IP ban system

Master switch that enables or disables the IP blocking system entirely. When disabled, no blocking rules are applied even if they are configured.

Auto-ban by User-Agent category

Allows selecting which user agent categories trigger an automatic ban on the first 404 error detected. The available options are: Scanner (Nikto, sqlmap, etc.), Bot (Googlebot, Bingbot and generic crawlers), and Tool (curl, wget, python-requests).

Custom User-Agent patterns

Text field to define custom patterns that trigger an automatic block. Enter terms separated by commas; any user agent containing any of them (case-insensitive) will be banned. For example: nikto, my-bot, internal-scanner.

Auto-ban duration (minutes)

Defines for how many minutes the ban remains active when triggered by category or custom pattern. The value 0 applies a permanent ban. The default value is 1440 (24 hours).

Auto-ban by rate (hits per window)

When this option is enabled, any IP that exceeds the configured 404 error threshold within a defined time window is automatically banned temporarily.

Rate threshold (hits)

Maximum number of 404 errors allowed before triggering the rate-based block. If an IP reaches this number within the configured window, it is automatically banned.

Rate window (minutes)

Time window in minutes during which hits from an IP are counted to calculate the rate.

Rate ban duration (minutes)

Duration of the block applied when an IP exceeds the rate threshold. A value of 0 means a permanent block.

Robots

This section lets you control how search engines, AI bots, and crawlers access your store through the robots.txt file. From here you decide the behavior toward artificial intelligence bots, add your own rules, review backups of previous versions, and schedule automatic regeneration via cron. The section is organized into three sub-tabs: Configuration, Backups, and Cron.

Configuration

In this sub-tab you adjust the entire behavior of the robots.txt. The options are grouped into three blocks (AI bots, Catalog and languages, SEO crawling), followed by your custom rules and a preview of the resulting file.

Robots.txt File URL

Shows the direct URL of your robots.txt file. It has two buttons: one to copy the URL to the clipboard and another to open it in a new browser tab.

AI bots mode

Controls how ChatGPT, Claude, Perplexity, and other AI bots access your content. You can choose between four modes:

  • Allow citation (no training): asks AI bots to be able to cite and show your store in their answers, but not to use your content to train their models. This is the recommended mode and the one enabled by default.
  • Allow all (maximum exposure): allows both citation and training. Offers the highest possible visibility in AI tools.
  • Block all AI bots: asks any artificial intelligence bot not to access your content.
  • Disabled (no AI blocking): does not add any AI-specific rules to the file.

Content-Signal

Declares how AI-powered search engines may use your content via the Content-Signal directive. The available options are: Disabled, Search yes, AI training no, and Search yes, AI training yes.

Catalog images

When this option is active, it allows crawlers to index your product, category, and manufacturer images (/img/p/, /img/c/, /img/m/). If you disable it, those paths are blocked.

Rules per language prefix

When you enable this option, your private rules are automatically replicated for each active language prefix of the store (/es/, /pt/, etc.).

Social bots

Allows Facebook and Twitter/X to fetch link previews of your pages when they are shared on social networks.

Crawl delay for SEO crawlers

If you enable this option, a pause is added between requests from crawlers that honor it, reducing the server load caused by aggressive SEO bots. When enabled, two additional fields appear: Seconds (how many seconds of pause, 10 by default) and SEO crawlers (comma-separated) (the list of affected crawlers, by default AhrefsBot, SemrushBot, MJ12bot).

Add rule

Adds a new custom rule to the robots.txt. Each rule consists of a type selector (Allow / Deny) and a path field where you specify the URL or pattern affected. To delete an existing rule use the trash button in its row. If there are no rules configured, the message "No rules configured." is shown.

Save changes

Saves the robots configuration settings, regenerating only the blocks managed by the module. The button is only activated when there are pending changes and no validation errors.

Generate

Rebuilds the complete robots.txt file (PrestaShop base, your rules, and the sitemap) and automatically saves a backup of the previous version before applying the changes.

Robots .txt Preview

View in real time how your generated robots.txt file will look with all the rules and configurations you have established. If there are invalid directives, they are shown in an error block that you must fix before saving.

URL parameters

Decide, parameter by parameter, whether URLs carrying it stay blocked from crawling or become readable so search engines can see the canonical your shop already serves. The table shows three columns: Parameter, Crawling (Blocked or Allowed) and Page behind it, which tells you whether the parameter leads to a Real content page or to a Private page.

The parameters covered are the ones PrestaShop adds on its own: order, tag, id_currency and n on content pages, and search_query and back on private pages.

Private pages

Manages three separate signals for each private page of the shop: whether it is advertised in the sitemap, whether a crawler may read it, and whether you ask for it not to be indexed. The table has four columns: Page, In the sitemap, Crawling and Non-indexable.

The distinction matters because the three are often confused: a page can be out of the sitemap and still be crawled, and blocking its crawling does not stop it from showing up in the results if another page links to it.

Backups

Every time you generate the robots.txt, the module saves a copy of the previous version. In this sub-tab you can view, download, restore, or delete those previous versions.

Previous versions (backups)

Table with all saved backups, showing the date and size of each one. Each row includes actions to view the content, download the file, restore that version, or delete it.

Cron

Lets you schedule automatic regeneration of the robots.txt so it stays up to date without manual intervention.

Cron URL

URL you must add to your crontab or your hosting's cron jobs panel. Each call to that URL regenerates the robots.txt immediately. Includes a button to copy it to the clipboard.

Last execution

Shows the date and time of the last cron execution. If it has not been executed yet, "Never" is shown.

Sitemap

This section allows you to generate and manage XML sitemaps to improve the indexing of your store in search engines. You can select which types of content to include (categories, CMS pages, manufacturers, suppliers, and pages), configure priority and update frequency by type, and configure automatic regeneration via scheduled tasks.

Automatic Regeneration (Cron)

Collapsible panel that allows configuring automatic regeneration of the sitemap via cron jobs, so it updates without manual intervention.

Enable automatic regeneration

Enables or disables automatic regeneration. When enabled, the remaining options in the panel appear.

Regeneration frequency

Sets how often the sitemap is automatically regenerated. The available options are: Daily, Weekly, and Monthly.

Cron URL

URL you must add to your crontab or hosting cron jobs panel so the server executes the regeneration automatically. Includes a button to copy it to the clipboard.

Last execution / Next execution

Shows the date and time of the last cron execution and when the next execution is scheduled. If the cron has not been executed yet, "Never" is shown.

Save changes

Saves the cron configuration (enabled/disabled and frequency). The button is only activated when there are pending changes.

Execute now

Runs the sitemap regeneration immediately without waiting for the next scheduled cycle. Only appears when automatic regeneration is enabled.

Generated Sitemap URL

Shows the URL of your already generated sitemap.xml file. From here you can copy the URL to the clipboard or open it in a new browser tab to verify the sitemap content.

Sitemap Configuration

Collapsible panel where you configure the priority and update frequency for each type of content included in the sitemap. The available types are: Products, Categories, CMS, Manufacturers, Suppliers, and Pages.

Priority

Numeric value between 0.0 and 1.0 that indicates the relative importance of this type of content within the sitemap. A higher value suggests to search engines that those pages deserve more attention. Adjust this value separately for each type of content.

Update Frequency

Indicates how often that type of content is usually updated. The available options are: Always, Hourly, Daily, Weekly, Monthly, Yearly, and Never. This value guides the crawler on the revision frequency, although each search engine interprets it at its own discretion.

Content Configuration

Within this section you will find collapsible subsections for each type of content: Categories, CMS, Manufacturers, Suppliers, and Pages. Each one works identically: it has two columns, one for enabled elements and one for disabled. Use the transfer buttons to move elements between columns depending on whether you want to include or exclude them from the sitemap. Both columns have a search box to quickly locate the content. For types with many elements, a "Load more" button appears to paginate the list.

Generate

Press this button to immediately generate the sitemap with the current content configuration. The system will process all enabled elements and create the sitemap.xml file on your server.

Your own URLs

Sub-tab where you declare content the sitemap cannot discover on its own, because it does not come from the PrestaShop catalog. It is organised in three blocks: your own URLs, the bulk import and the external sitemaps.

Your own URLs

Advertise pages that do not come from the PrestaShop catalog: a landing page, a section served by another application or a blog. Each URL is declared with its address and its language, and optionally its Priority, its change frequency and its Last modification, just like the rest of the sitemap.

Add several at once

Lets you register many addresses in a single operation, in three ways: by pasting a list of URLs, by uploading a CSV file, or from the contents of an XML sitemap. Each address is validated on the way in, and the module tells you how many were added and how many were discarded, with the reason for each discard: malformed address, unsupported scheme, too long, duplicate, or belonging to another domain.

External sitemaps

Point to a sitemap that another application already generates, a blog for example. Its URLs keep themselves up to date, with no need to copy them here. The table shows the Sitemap address and the Last check.

If the address you declare is a sitemap index, the module expands it and references its child sitemaps, because the standard does not allow an index to point to another index. If your shop generates a per-language index, each external source can be assigned to the language it belongs to so it enters the right index; in single-index mode this is not needed.

Schema

This section lets you emit Schema.org structured data (JSON-LD) in your store so search engines can show rich results: prices, ratings, breadcrumbs, search box, FAQ, and local business. Everything is controlled from a single panel organized into cards.

Schema types

Here you enable structured data emission and choose which types to publish. The switches are saved automatically when you change them.

Enable structured data

Master switch that enables or disables all structured data emission. While it is off, the rest of the controls remain disabled.

Avoid duplicates automatically (recommended)

When this option is active, enabling a Schema type makes the module the single source for that type: if your theme was already emitting the same block, it is automatically removed from the page to avoid duplicates. The cleanup acts on the HTML the page generates, so a block that your theme or another module inserts afterwards through JavaScript is out of its reach: if you suspect duplicates remain, check it with Google's rich results test.

Available types

Each type is enabled with its own switch. The available types are: Organization, Website + search box, Breadcrumb, Product + offer, FAQ, and Local business.

  • Enabling Website + search box reveals the sub-option Emit website search box (Sitelinks Searchbox).
  • Enabling Product + offer reveals the sub-option Include product rating (from real reviews only), which adds the rating only when real reviews exist.
  • Enabling FAQ reveals the FAQ editor card.

Organization and social profiles

In this card you define your business identity that will be emitted as structured data, along with your social profiles. Unlike the switches, these fields are saved with the Save button.

Represent the store as

Select whether your store is represented as an Organization or as a Local business. This choice determines the main Schema type and which additional fields appear.

Organization details

Descriptive fields of your business: Description, Legal name, Founding year, Contact email, and Area served (for example, ES, EU, Worldwide).

Address and contact

Location and contact data: Address, Postal code, City / locality, Region, Country, and Phone.

Local business details

Appears when you represent the store as a local business. Includes the fields Opening hours, Latitude, and Longitude.

Social profiles

Fields for your profile URLs: Facebook, Instagram, X (Twitter), YouTube, LinkedIn, and TikTok. These addresses are published as your business's official links.

FAQ

Appears when the FAQ type is active. It lets you manage the questions and answers that will be emitted as FAQ structured data.

Add question

Opens a form to create a question. You can choose its Scope (Global, Product, Category, or CMS page), set a Position, activate or deactivate it, and write the Question and Answer in each language of your store.

Question list

Table with all created questions, showing the question, its scope, and whether it is active. Each row includes actions to edit or delete.

Preview and validation

Lets you preview the structured data that would be generated for a specific page and compare it with what your theme already emits, as well as validate it with the official tools.

Analyze live page

Choose the Page type (Home, Product, Category, or CMS page) and enter the Page ID when applicable. When you click Analyze, the module fetches the real page and shows a comparison table between what is already on the page and what this module can emit, with the status of each type (Duplicate, Suggested, Added by this module, or Theme / others only).

Validate in Google / Open schema validator

Buttons that open, respectively, the Google Rich Results Test and the official Schema.org validator with the analyzed URL, so you can confirm the data is valid.

AI SEO

This section allows you to optimize your store for artificial intelligence-based search engines like ChatGPT, Claude, Gemini, and other AI assistants. The module automatically generates llms.txt files following the proposal at llmstxt.org standard, allowing language models (LLMs) to better understand your catalog and business.

Automatic Regeneration (Cron)

Information panel showing the cron URL to automatically regenerate the llms.txt files. Unlike the sitemap, this function is always available and does not require manual activation.

Cron URL

URL that you must add to your crontab or hosting's cron jobs panel for the server to execute regeneration automatically. It includes a security token to prevent unauthorized access. Features buttons to copy to clipboard or open in a new tab.

Last execution

Shows the date and time of the last cron execution. If the cron hasn't run yet, it displays "Never". This information helps you verify that the scheduled task is working correctly.

Generated file URLs

This section shows the public URLs of the generated llms.txt files. AI crawlers will look for these files in your domain root.

Concise file (llms.txt)

URL of the main llms.txt file that includes the 100 most recent products and all selected content (categories, CMS, manufacturers, etc.). This file is ideal for quick AI queries.

Full file (llms-full.txt)

URL of the complete llms-full.txt file that includes ALL products in your catalog along with all selected content. Useful when AI needs comprehensive information about your inventory.

Business information

Collapsible panel where you configure your business's descriptive information that will appear in the llms.txt files. This information helps AI understand what you sell and how assistants can help your customers.

Language selector

Dropdown that allows you to switch between your store's active languages to enter business information translations. Each language generates its own translated llms.txt file.

Business description

Multi-line text field where you describe what your store sells. Example: "Sustainable fashion store specializing in organic cotton clothing, with shipping throughout Europe."

Store specialty

Multi-line text field where you describe what makes your store unique or what your specialty is. Example: "Handmade leather artisan products and personalized accessories."

Support information

Multi-line text field where you indicate how customers can get help. Example: "Email and chat support Monday to Friday 9am-6pm. Returns within 30 days."

FAQ URL

Optional field to add a link to your frequently asked questions page. If configured, it will appear in the resources section of the llms.txt file.

Support URL

Optional field to add a link to your contact or support page. If configured, it will appear in the resources section of the llms.txt file.

Content configuration

This section allows you to select which content types to include in the llms.txt files. Use the transfer lists to enable or disable specific elements.

Products

All products are automatically included. There is no individual selection option as products are the main content of your catalog. The concise file includes the 100 most recent products, while the full file includes all of them.

Categories

Collapsible panel with tree-view transfer list showing the category hierarchy. You can expand/collapse parent categories to see their children. Drag categories between the "Enabled" and "Disabled" columns or use the arrow buttons to move them.

CMS pages

Collapsible panel with transfer list showing all your content pages. Ideal for including informational pages like "About us", "Shipping" or editorial content that helps AI better understand your business.

Manufacturers

Collapsible panel with transfer list showing all brands/manufacturers of your products. Useful if you sell recognized brand products that users might search for through AI assistants.

Suppliers

Collapsible panel with transfer list showing all suppliers configured in your store. Enable this option if your business model is based on marketplace or dropshipping.

System pages

Collapsible panel with transfer list showing PrestaShop's legal and static pages (contact, terms, shipping, etc.). The module automatically excludes sensitive pages like login, cart, or checkout.

Search in lists

Each transfer list includes a search field at the top. Type to filter elements in real time. Search works in both columns (Enabled and Disabled).

Preview

The "Preview" button allows you to see the generated content before creating the final files. The preview doesn't write files to disk, it only shows what the result would look like.

Preview modal

When you click "Preview", a modal dialog opens showing the Markdown content of the llms.txt file for the selected language. It includes a "Copy to clipboard" button to easily get the content.

Content displayed

The preview shows the complete file structure: header with business information, product sections, categories, CMS, manufacturers, suppliers, system pages, and external resources (FAQ/Support).

Generate files

This section allows you to save the configuration and manually generate the llms.txt files.

Save button

Saves the current configuration (business information, external URLs, and content selection) without generating files. Changes apply to all store languages.

Generate button

Generates the llms.txt and llms-full.txt files for all active languages. The process uses batch processing to handle large catalogs without causing server timeouts.

Generation process

During generation you'll see a progress indicator. The module processes the catalog in configurable batches, generates one file per language, creates index files, and verifies that URLs are valid.

Result messages

Upon completion, a success message is displayed indicating which files were created. If there are warnings (invalid URLs, empty catalog, etc.), they're shown in the message so you can correct them.

Troubleshooting

Error: Root directory not writable

If you receive this error, the web server doesn't have write permissions in the PrestaShop root. Contact your hosting provider or set the root directory permissions to 755 or 775.

Files not updating

Verify that the cron is configured correctly on your server. Check the "Last execution" timestamp in the cron panel. If it shows "Never", the cron is not running.

Empty or incomplete file

Make sure you've enabled at least some categories, CMS, or manufacturers in the content configuration. If your catalog is very large, generation may require several batches; wait for the process to finish completely.

Incorrectly generated URLs

Verify the friendly URLs configuration in PrestaShop and that the Smart SEO URL module is configured correctly. The llms.txt files use the same URLs that the module generates for your store.

Translations

This section allows you to manage and customize the module translations in different languages. Here you can view, edit, and share the translations of all texts used by Smart SEO URL. Expressions containing the %s symbol are used to insert dynamic values and must not be modified.

Select a language

To start editing translations, you must first select a language from the available dropdown list. Once you choose the language, all translatable text strings for that language will be loaded automatically.

Actions

These buttons allow you to save your changes and share translations with the team.

Save

Press this button to save all changes you have made to the translations for the selected language. Changes are applied immediately to the module.

Save and download

By clicking here, translations are saved and simultaneously a file with all translations for the selected language is downloaded. This is useful if you need to make a backup or share the translations locally.

Share with us

Enable this option to send the translations you have completed to the PresTeamShop team. You contribute to improving the module's language support by sharing your custom translations.

View options

These buttons control how you view the translation files in the accordion.

Expand all

Press this button to open all translation files at once. It allows viewing all translatable strings simultaneously for a faster review.

Collapse all

Click here to close all expanded translation files. It helps keep the interface organized when you need a general view without details.

Backups

The backup system allows you to protect the module configuration and restore it when needed.

Generate new backup

Press this button to create a new backup of the current module. The module configuration, its data tables and the robots.txt file at that specific moment will be saved automatically. Useful before making important changes or as part of your maintenance routine.

Upload backup

If you have a previous backup file in .zip format, use this button to upload it to the system. It allows importing backups you previously downloaded or that have been shared with you.

Available backups

Here you will find the list of all available module backups. You can filter by date, refresh the list to see recent changes, and perform actions on each backup (restore, download, or delete).

Search by date

Use the date filter to find backups created in a specific range. When you select a date, the table updates automatically showing only the backups generated on that date.

Refresh list

Press this button to refresh the list of available backups. It synchronizes the interface with the most recent server data in case backups have been added or deleted from another session.

Actions

Each backup in the list has the following available actions:

Restore backup

Restores the state of the selected backup: the module configuration, its data tables and the files the backup includes.

Download backup

Downloads the backup ZIP file to your local computer.

Delete backup

Permanently deletes the backup from the server.

Troubleshooting

Common Issues

Verify that the module is correctly installed and activated. If the module has the debug mode option and it is active, make sure your IP is in the list of allowed IPs. Also clear the PrestaShop cache from "Advanced Parameters > Performance".

Verify that your PHP version is compatible (7.2 or higher). Check PHP and PrestaShop error logs. If the problem persists, contact technical support providing the error messages.

If you receive an override error during installation, it means another module is already using the same files. Do not attempt to resolve it manually. Contact our support team to receive personalized help.

If you configured a new URL pattern in the 'Customize URL' section but your store URLs have not changed, verify that you completed the entire process through the 'Go to Production' step and clicked 'Apply changes'. Remember that the process has four steps and URLs are only updated when you apply changes to production.

If the sitemap is not generated or appears empty after clicking 'Generate', verify that you have enabled at least one element in the 'Content Configuration' section. If all elements are in the disabled column, the sitemap will be generated empty. Also make sure that PrestaShop has the necessary permissions to write the sitemap.xml file to the server.

If when trying to import a CSV file of redirects you receive an error or the redirects do not appear in the list, verify that the selected separator matches the one used in your file (comma or semicolon). Also make sure that the CSV columns are named exactly original_url, new_url and type, and that the redirect type is one of the allowed values: 301, 302, or 303.

Frequently Asked Questions

Licenses and Purchase

The license includes updates and technical support for a determined period (6, 12 or 24 months depending on the chosen plan). Once finished, you can optionally renew to continue receiving updates and support.
The license includes installation on a production domain, access to all updates and technical support during the active license period.
You can view the live demo available on our website to learn about all the module features. We do not offer trial versions to install on your site.
The module will continue to work normally, but you will not receive new updates nor have access to technical support.

Installation and Compatibility

The module is designed to work with any theme that follows PrestaShop standards. If you experience any conflict with your theme, contact our support team.
Yes, your license includes installation in two environments: production and development/staging. This allows you to test updates and changes before applying them to your live store.
Yes, the module is designed to be compatible with other modules. In case of conflict with a specific module, our support team can help you resolve it.
No, the installation is very simple and is done from the PrestaShop Back Office. If you have any problem during installation, our support team is available to help you.

Updates

No, updates preserve all your configuration and data. You would only lose the configuration if you uninstall and reinstall the module, which is not necessary to update.
You can check new versions by visiting our website or accessing your account in our store. Soon we will add the option to check updates directly from the module panel.
It is not mandatory, but it is recommended to update to enjoy the latest improvements, new features and security fixes.

Technical Support

We normally respond in less than 24-48 business hours.
Yes, as long as you have active support within your license period, you have full access to technical support.
You can request help with installation, configuration, error resolution and general questions about the module's operation.
Yes, our support team assists in both Spanish and English.

Refunds and Warranty

We only apply a refund in the case that the module fails to work in your store after receiving technical support. Keep in mind that before purchase you have a demo to try the module.
We guarantee that the module works as described in the documentation. If you find any bug, we fix it at no additional cost.

Customization

Yes, we offer custom development services. Contact our support team to request a personalized quote.
It is not recommended to modify the module code on your own, as you would lose technical support and when updating the module you would lose the changes made. If you need additional features, we recommend requesting a custom development quote so that the changes are included in the module and maintained in future versions.

Support

If you need additional help or have any questions about the module, we are here to help you.

Email Support

Send us an email and we will respond as soon as possible.

support@presteamshop.com

Help Center

Visit our help center for more resources.

Visit Help Center