General information about Journal3 SEO Filter

The module is not an independent filter, but only complements the functionality of the standard filter in the Journal 3 theme. The module is compatible with Journal 3.1 and Journal 3.0.x on Opencart 3.0.x and 2.3.

The module is NOT compatible with the new Journal 3.2 theme and NOT compatible with Opencart 4.

The documentation uses screenshots and examples from the standard Opencart 3 interface in English.

Documentation is current for Journal 3 SEO Filter version 1.6.

Demo

Module settings
Login: demo
Password: demo

Installing Journal3 SEO Filter

  1. Download the installation package according to the version of Opencart: oc2.3 or 3.0.x.
  2. Log in to the admin panel of your site, go to the module installation section and install the received *.ocmod.zip.
  3. Refresh the modifications cache.
  4. In Opencart 3, additionally clear the TWIG cache
  5. Go to the list of modules Extensions -> Modules and activate the Journal3 SEO Filter.
  6. Go to the settings of the Journal3 SEO Filter module and enter data to activate the license: the place of purchase of the module and the order number.

Journal3 SEO Filter Update

  1. Make a backup copy of the site.
  2. Follow steps 1-4 of Module Installing.
  3. Go to the module settings and save the settings.

Interface and sections of the Journal3 SEO Filter module

The module interface is divided into separate sections for convenience. Section links are displayed in the Journal 3 general menu and in the navigation menu at the top right.

  • Setting – basic module settings;
  • SEO Slugs – seo url management of individual entities (attributes, options, etc.);
  • Landing pages – management of filter landing pages;
  • Sitemap – management of the sitemap module, which contains links to landing pages;
  • Crosslinking – control of the crosslinking module.

Setting up the Journal3 SEO Filter

The main ones

  1. Status – enables or disables the module.
  2. Filter root slug – part of the url that separates the main page address and the filter parameters. Must be unique.
  3. Links in filter. Journal 3 uses ajax requests to retrieve items and replaces the page content with the results. This option allows you to replace the standard algorithm with regular links to filter pages.
    The option has the following options:
    • Disabled – disabled, the standard algorithm is used.
    • Landing pages only – the link is displayed only for parameters that lead to the landing page, for all others the standard algorithm is used.
    • All – all filters are displayed as links. This option has additional Nofollow non-landing settings - the option allows you to adjust the indexing depth of filter pages that are not landing. This will be useful if there are many possible filter combinations. The Nofollow non-landing option has two options:
      • Number of filter groups – the maximum number of filter groups in the url at which page indexing is allowed. For example, if Number of filter groups = 2, then the page https://site.com/clothes/filter-root/color-red/size-s/ (2 groups: color, size) is allowed to be indexed, and the page https: //site.com/clothes/filter-root/color-red/size-s/brand-adidas/ (3 groups: color, size, brand) - not allowed, the attribute rel=”nofollow” will be set to this link.
      • Number of filter items – the maximum number of parameters in one filter group for which indexing is allowed. For example, if Number of filter items = 3, then the page https://site.com/clothes/filter-root/color-red~green~blue/ (3 parameters: red, green, blue) is allowed for indexing, and the page https://site.com/clothes/filter-root/color-red~green~blue~yellow/ (4 parameters: red, green, blue, yellow) is not allowed and will have the rel=”nofollow” attribute
  1. Meta tag Robots for nofollow links – the content of the robots meta tag on pages assigned the rel=”nofollow” attribute. Filled according to the Google specification https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag
    Example of a field value: noindex, nofollow - means "do not index the page and do not follow the links on the page."
  2. Meta tag Robots for landings and dofollow links – the content of the robots meta tag on pages that are allowed to be indexed. Example of a field value: index, follow – means "index the page and follow the links on the page"

Meta tags

In this tab, you can configure the generation of meta tags on non-landing filter pages using shortcodes. For each type of page, you need to configure meta tags separately. Basic information about shortcodes is described directly in this section of settings. With the help of shortcodes, you can also make meta tags unique for better perception by search engines.
For example, field content like “Buy {page_name} {filters} at {store_name}. In the sale of {product_total} products - page {page}" will be displayed as "Buy Apple Smartphones Model Iphone 14, Iphone 15 in the MegaShop store. In the sale of 28 products - page 1".

SEO Slugs

An SEO Slug is a url fragment that is assigned to a specific entity or its value. The final address of the page is formed from seo-slags. Seo slugs are set up in a separate section. Each seo slug must be unique. After installing the module, you need to generate slugs. Unfortunately, automatic generation of slugs when creating attributes, options, etc. is not supported yet, but this functionality will definitely appear in future versions.

Let's consider the elements of the interface:

  1. Generate slugs - here you can start the generation of slugs
    • Empty - empty only (eg new attributes, options, etc.).
    • Overwrite all - overwrite everything. All slugs will be generated anew.
    • Run – start generation.
    • Clear all – delete all generated slugs.

Slugs are generated using Slugify. Automatic transliteration is supported for most languages.

  1. Common SEO slugs - here you can view and edit slugs. Consider the columns:
    • Code/Value – the value or internal code used by the filter to identify the entity.
    • Name – the name of the entity or value
    • SEO Slug – generated slugs for each language. Click on the value to edit it. The editing field contains two buttons:
      • Generate - Click to generate a slug.
      • Save - Click to save changes.
    • Action – two actions are available:
      • Open children - open the list of values of this entity.
      • Exclude – exclude the entity and all its values from editing. It is recommended to exclude all entities that are not used for filtering
  1. Excluded entities - a list of excluded entities, here you can include them again. After enabling, generate slugs for empty values.

Landing pages

For important filter pages, it is recommended to create landing pages with optimized meta tags and descriptions. The landing page management interface consists of:

  1. A list of landing pages where you can create, edit, delete or view the desired page. List sorting and filtering functions are also available.
  2. Landing page creation/editing forms.
    Consider the edit form fields:
    • url. Copy the part of the page address that follows the site URL into this field. For example, there is a page https://site.com/desktops/filter-root/brand_hewlett-packard/availability_in-stock - filter by brand and availability in the category You need to copy the part of desktops/filter-root/brand_hewlett-packard/availability_in-stock. Please note: in multilingual sites the address will be different, you need to copy the correct version of the url part for each language. You do not need to copy the language prefix in the url. For example, the same page in Ukrainian: https://site.com/uk/desktopy/filter-root/vyrobnyk_hewlett-packard/nayavnist_in-stock - you need to copy desktopy/filter-root/vyrobnyk_hewlett-packard/nayavnist_in-stock.
    • Alias. Alternative (possibly short) landing page address. For example hpdesk. Then the page https://site.com/desktops/filter-root/brand_hewlett-packard/availability_in-stock will be available at the short address https://site.com/hpdesk, and this short address will appear in the filter links. Alias can be the same for different languages.
    • Sort Order. The order of sorting of landings in the list in the admin.
    • Status. Enable/disable landing page.
    • Name, Description, H1, Meta tag Title, Meta tag Description, Meta tag Keywords are common fields that do not need explanation.
  3. How to display the description of the landing page if the page type does not support the display of the description? Let's consider the example of a filter on the promotions page. For example, there is a page https://site.com/specials/filter-root/brand-apple - filter promotions by brand Apple. Let's create a landing page for it https://site.com/specials-apple.
    However, the description on the page will not be displayed because the product/special page has no description display mechanism. So, how to display the description:
    • Go to Journal -> Modules -> Blocks and add a new module. Adjust its settings as needed.
    • Add a new block and in the Block Content section specify Content Type = Descripiton (Auto Layout). Save the module.
    • Go to Journal -> Layouts and open the page layout
    • Place the created module in the desired position and save the layout.
    • The landing page https://site.com/specials-apple now displays a description.

Sitemap

The functionality of the site map is implemented by a separate module of the feed type. The sitemap contains the urls of the created landing pages.

How to configure:

  1. Go to Extension -> Feeds and activate the Journal3 SEO Filter Sitemap.
  2. Go to the module settings:
    • Status – enable the module.
    • Add / at the end of URL – if enabled, filter pages in the sitemap will end with /. Coordinate this setting with the site's SEO module settings.
    • Data Feed URL – a direct link to the site map. However, Google will most likely not accept URLs in this format. You need to make small changes to the .htaccess file. Add the following ribbon in it:
      RewriteRule ^landing.xml index.php?extension/feed/journal3_seo_filter_sitemap [L]
      The sitemap will now be available at https://site.com/landing.xml - send this address in the console

Crosslinking module

The crosslinking module is designed to display cross-links between landing pages. The module does not display a page link to itself. Two options are possible:

  1. Related – the module displays only landing pages related to the parent page. For example, the page https://site.com/specials/filter-root/brand-apple will display all landing pages whose Keyword begins with brand-apple
  2. All - the module displays all existing landing pages.

How to configure and display the Journal3 SEO Filter Crosslink module:

  1. Go to Extensions -> Modules and activate the Journal3 SEO Filter Crosslink module.
  2. Configure the module.
    The module interface contains the following fields:
    • Status – enables or disables output of links.
    • Limit – the maximum number of links in a block.
    • Sort Order - order of sorting links.
    • Controller – the path to the method responsible for outputting links (cannot be edited, can only be copied).
  3. Go to Journal -> Modules -> Blocks and create a new block. Adjust its settings as needed. Since the Journal3 SEO Filter Crosslink module displays links in a simple list, it is recommended to create separate typography settings and specify them in Blocks Styles.
  4. Add a new block and in the Block Content section specify:
    • ContentType = Dynamic;
    • Controller Path = Controler field value.
  1. Go to Journal -> Layouts and place the module on the desired layout.