Skip to content

Requirements and install

SEO Suite Pro installs like every other extension sold here. Follow the shared procedure rather than an SEO Suite Pro-specific one:

What is specific to SEO Suite Pro

One archive, one Install button, five screens. The suite appears once in Extensions → Extensions → Modules, as SEO Suite Pro. Installing it installs all five areas; there is nothing to install five times.

The permissions to tick

The suite has one route of its own and one per area. At step 3 of the shared procedure, tick these under both Access Permission and Modify Permission:

extension/seo/module/seo
extension/seo/seo/urls_and_meta
extension/seo/seo/markup
extension/seo/seo/alt_text
extension/seo/seo/redirects
extension/seo/seo/xml_sitemap

The group that installed the suite already has all six, granted at install so that the screen you land on is not a page of doors you are refused at. Every other user group is granted nothing, which is what the list above is for.

An area is a permission on its own deliberately. Give a marketer urls_and_meta and alt_text and nothing else, and they get the wording screens without the sitemap schedule or your redirect rules.

Two more routes are granted at install, extension/seo/customer/personal_data and extension/seo/customer/purge. They are this suite's half of the two data-protection screens under Customers. See what this holds about a person.

Turning the areas on

Installing changes nothing about what your shop serves. After the install:

  1. Switch SEO Suite Pro on from the suite's own screen. This is the switch OpenCart's extension list reads to show the suite as enabled.
  2. Open each area you want and switch its Status on too. All five arrive off, and an area's own Status is what decides whether that area does anything: switching the suite off does not stop an area that is switched on.

All six switches are off again after an upgrade, on every shop, the way a fresh install arrives. Everything else you set on the five screens comes back as you left it, and nothing the areas accumulated is affected. See what an update keeps.

Updating from 1.3.0 or earlier: note your settings down first. Versions up to 1.3.0 kept no copy of your settings, and it is the old version's uninstall that runs at the start of an update, before the new version can keep anything. So this one update still asks for every value you typed on the five screens again. Write them down, or take a screenshot of each screen, before you update. Every update after this one keeps them.

What it puts in your database

Four tables, all of which survive an uninstall on purpose:

Table Holds
oc_seo_redirects your redirect rules and the list of URLs that 404'd
oc_seo_alt_text the image descriptions, per product, image and language
oc_seo_markup_override your per-page canonical and robots-directive (noindex and the rest) overrides
oc_seo_setting a copy of what you saved on each screen, which is how an upgrade gives it back

They are kept at uninstall because an OpenCart upgrade is an uninstall followed by an install, and a table that came off with the module would take your work with it every time you upgraded to keep it. Removing any of it stays a deliberate act on a screen.

It also registers event rows and one hourly cron row, all of which are removed cleanly at uninstall.

What it puts in your web root

Only the XML sitemap area writes files, and only when you turn it on: robots.txt and the sitemap*.xml set (under other names if you change them on the XML sitemap screen), in your store's own document root. They have to be real files (see limits for why), and none of their names comes from a request.

Uninstalling removes the sitemaps and takes our block back out of robots.txt, leaving every other line in that file exactly as it stands.

Keeping the sitemap current on its own

Scheduled regeneration needs your store's cron to be running, and nothing else. SEO Suite Pro registers one hourly job on OpenCart's own scheduler, listed under Extensions → Cron Jobs, and that job asks the cycle you chose on the XML sitemap screen whether a run is due. If your host is not calling OpenCart's cron.php, nothing regenerates on its own, though the Generate button on the screen still works.

On OpenCart 4.1.0.4, use the command line. That release cannot run any scheduled task at all: its cron.php fails inside OpenCart itself, before any extension is reached, for every extension on the store. See 4.1.0.4. SEO Suite Pro's screen says so on that release, and everything else about it works.

The door that release leaves you is a command, run from your store's own directory:

cd /path/to/store
php extension/seo/seo.php

It does exactly what the hourly job would have done (asks your chosen cycle whether a run is due, and regenerates if it is), except that it runs to the end rather than stopping at the end of one wake-up, so a large catalogue is finished by the time the command returns. Give it to your host's cron panel, or a crontab line, on whatever timing you like:

0 * * * * cd /path/to/store && php extension/seo/seo.php

Three things worth knowing about it:

  • It takes no arguments. Anything typed after the filename is refused, so a mistyped flag stops rather than being ignored.
  • It exits 0 when your sitemap is current afterwards (regenerated, or already what your cycle says it should be) and 1 when it is not, so a monitoring check or a deploy pipeline can act on it.
  • It is a terminal command and not a web address. Asked for over HTTP it answers 404, and there is no address to paste instead. That is deliberate: a sitemap that regenerates a few hours late costs you nothing a search engine notices and is made up in full by the next run, which is not worth a secret living in a control panel, a browser history and a server log. If you have no shell on your hosting, press Generate on the screen instead. The result is the same document.