Skip to content

4SEO changelog

2021-09-09 16:58build 1118

2021-09-09Version 1.3.2

chgAdded a filter to disable injecting 4SEO cron pixel on a request
chgAdded a filter to disable injecting 4SEO cron pixel on a request
chgExcluded Acymailing pages from analysis
chgBetter detection of timeout and invalid TLS certificatse when crawling pages
chgAdded extra filtering of the external cache bypass variable as needed by some servers. Would prevent analysis to complete on these setups.
chgExternal cache (such as CDN) option is now enabled by default
bugRobots.txt content may be overwritten on very busy servers when adding the sitemap line automatically
bugEach update can add a new index on the errors or links database tables
bugWhen Bypass CDN is enabled, some pages may incorrectly be classified as duplicates instead of canonical on some servers
bugPossible PHP fatal error when crawling the site, can prevent analysis to complete on some sites.

2021-08-24Version 1.3.1

bugPossible failure on PHP less than 8 when generating FAQ Page structured data based on CSS selectors.
bugIf a product condition (used, new,...) is not present, structured data will have an null field instead of no field at all.


newAdded OpenGraph and Twitter cards image and content detection for Hikashop
newAdded OpenGraph and Twitter cards image and content detection for K2
newAdded support for com_k2 crawling
newAdded support for Hikashop crawling and structured data generation
newAdded display of a URL QRCode for all analyzed page in admin and frontend edit.
newYou can now limit the number of replacements made by any replacer rule
newAdded support the FaqPage element. Questions and answers can be selected with CSS, with short codes or entered manually for a page or a group of pages
newAdded an URL input to all Author inputs in Structured data rules as Google shows interest in having a dedicated author page.
chgAdded OpenGraph and Twitter cards image detection to Contact component support
chgDo not include ValidUntil and ValidThrough values in strucured data records if not set
chgWhen URL rewriting is not used, check existence of links that look like actual, physical files before adding the /index.php/ file prefix, can cause incorrect 404 reports for these links.
chgAdded workaround for Joomla not reporting same root URL depending on the URI class method used. Could prevent Redirect to main address option to work properly on some servers.
chgAdded a filter on the list of regular expressions used to clean-up microdata
chgAdded list of extensions 4SEO should never run on, saving time.
chgWHen saving with Ctrl+S a rule being created, always close the edit windows to ensure the underlying rules list is refreshed and creation is complete
bugSome links on embedded help pages are not working
bugWhen URL rewriting is not used, Allow directive of sitemap file in robots.txt was incorrect
bugStructured data published date may sometimes be replaced with modification date
bugActive item in main menu may not always be highlighted

2021-08-06Version 1.2.2

newAdded analysis option to bypass external caching systems such as CDN or server-level caching
newAdded sitemap exclusions/exclusions lists with wildcards characters
chgSpinner on rules editor is not hidden after save due to change in js framework
chgMore efficient Joomla structured data cleanup
chgAlso clean Joomla invalid structured data for logged-in users
chgSwitched to rollup-only build system, including hashing
chgSome system errors are now shown as one-off errors instead of being hidden under the notification icon.
chgStore display parameters per tab, with a global storage as well for when browser is closed
chgAdded data-speed-no-transform attribute to some script and pixel images, prevents 'optimization' by JoomUnited Speed Cache extension
chgNow also crawling local links found in hreflang link elements
chgNow also collecting links when they have a target=_blank attribute, despite this not being good practice
chgAdded attribute to soft cron noscript image to prevent mod_pagespeed to 'optimize' - and break - it
chgAdded pagination option to show 50 items per page
chg2 columns dashboard notifications layout for wider screens
chgNow showing a dashboard message if an Analysis reset is needed after an update.
chgInformation messages details panel now has a different background color
chgNow using weather-themed icons to signal OK/Warning/Error status in messages instead of just colors
chgAdded status role to messages on dashboard and other places
chgMoved compact mode button to sidebar, next to dark/light theme switcher
chgBetter compact mode, disabled on pages with no content to allow access to New button
chgLink support helpdesk button directly to 4SEO category rather than global helpdesk
bugUser set values for whether a page is canonical and sitemap inclusion can be forgotten if that page is recrawled after it has been modified in some way
bugStructured data and Open Graph meta data were not output if no address was provided for default organization
bugLatitude and longitude were inverted in automatic geo-location
bugCannot type in Website home address in settings without one or more / symbols being inserted by 4SEO automatically
bugThe ~ character required to enter regular expressions in page address exclusions/inclusions was not allowed in some input fields
bugRedirects, replacer and other SEO rules hits were not recorded
bugLong standing issue where 2 alert messages could be displayed at the same time and not be dismissed.
bugCRON job request URL obtained with the Copy button in System configuration is incorrect

2021-07-22Version 1.2.1

newAdded compact mode toggle on some pages
chgNow caching identified search engines requests IP+UA for a week
chgDo not collect Core Web Vitals data on known search engines requests
chgCollect Core Web Vitals data more often by defaults, every 10 pages and 2 minutes instead of 100 pages and 5 minutes before.
chgAdded missing option to comply or not with noindex meta tag during crawl
chgMore messages can be dismissed: sitemaps alerts & robots.txt alerts
chgToo much vertical space between lines on sitemaps status page
bugSearch engines loading the index sitemaps may not be recorded (partial files visits were)
bugInitial configuration wizard last screen help button does not go to a valid help page
bugPossible javascript error 'Cannot read property DISMISS_TYPE_POSTPONABLE' after updating to version 1.2.0
bugFixed dashboard layout at low width
bugPossible fatal error on some com_contact pages after a redirect

2021-07-16Version 1.2.0

newAdded alerts dismissal system, messages and alerts can be permanently dismissed or be reminded later. Also added a system config button to bring back immediately alerts where 'Remind me later' has been selected.
newAdded full Dutch translation, thanks to Davy Renckens
newAdded detection of self-signed certificate causing error to alert user.
newAdded option to decide whether to log external 404 errors. Avoid robots requests cluttering the error logs.
newAuto-detect, rebuild and submit sitemap when canonical or robots tags changes in a page
newDo not collect links from pages with a nofollow meta tag
newAdded setting to enable/disable analyzing links with a nofollow attribute
newAdded setting to enable/disable applying robots.txt rules to exclude pages from analysis
newAdded sitemap support for excluding archived articles, either globally or using rules for partial exclusions.
newAdded sitemap control rules to exclude group of pages based on their URLs, categories or age (days since creation/modification)
newDo not crawl pages excluded by robots.txt file. Added a filter to override.
chgRemoved confusing errors count on Pages page
chgMade it clearer the numbers page title and meta description columns on Pages page represent number of pages with duplicates meta.
chgContent replacer now automatically avoids replacing inside of HTML elements when creating a link
chgDefault filter for Broken links page is to show only errors, not errors and redirects
chgMedia file manager, avoid layout shift when showing an error message vs regular message
chgUse content-base hashing for sitemaps identification, instead of random. Avoids resubmitting to search engines when sitemap is rebuilt but is actually the same as previous.
chgWider performance column
chgEnsure minimal delay (2 mn) between 2 consecutive sitemap submissions to search engines. Avoid flooding them if a lot of content expires for instance
chgCollect input variables from Joomla input instead of directly from router, avoids Itemid-only URLs
chgAlso record external pages linked through redirects instead of just internal ones.
chgAdded a search box in the image file manager
chgAdded more protection in case of invalid canonical URL found in existing page
chgAdded hardcoded option to change image detection method, can be modified using filters only
chgUpdated remote image size detection code, size of more images can be detected.
bugSometimes dismissing a notification can clear several

2021-07-01Version 1.1.1

newAdded replacement rule option to execute or not content replacement on links href/src attributes.
newFilter out more robots requests from 404s errors list
chgSimplified layout when viewing on details view of a single page.
chgAdded a couple of 404 logs excusions (WordPress requests)
chgInclude page number in item ids, else some pages may not be considered canonical. Except for multipage articles.
chgTake into account some query variables when finding out canonical URLs, do not rely on Joomla router.
chgAdded empty alt attribute on noscript cron trigger image
bugCrawler can be marked as 'in error' under some rare conditions even if there's one or more pages to crawl.
bugSome external requests can be stored as pages even if Collect Incoming Requests is disabled (under rare conditions)
bugSitemap can be empty due to to Incoming URL collection option not being set
bugSitemap URL copy button does not work
bugCollect incoming requests option added in last version was not properly initialized

2021-06-25Version 1.1.0

newAdded documentation about and improved user interface when creating an external cron job to trigger 4SEO actions.
newAdded measurement and reporting of Google performance metrics: Core Web Vitals, part of the Page Experience Update
newRedirect rules can now use {$1}, {$2},... placeholders in redirect targets, avoids having to switch to regular expressions.
chgMore thorough automatic meta description cleanup
chgHardened soft cron pixel handling, browser console may show some errors depending on server config (errors do not affect operation anyway)
chgImproved handling of multipage articles, taking into account tabs and sliders formats - close #283
bugDefault organization logo width and height may not be properly computed when log is pasted in instead of selected from server

2021-06-18Version 1.0.3

chgAlso expand variables (4seo_xxx) in full page source, not just regular content and modules. Can be used inside of custom structured data rules for instance
chgEnforce a default structured data type for structured data rules creation, prevent saving if empty
chgTypo in Google Tag Manager id field caption
chgAdded option to only crawl links found inside website pages and discard external requests.
chgAdded option to only collect links found in page and not incoming requests
chgUpdated to latest strings javascript library, prevent some javascript errors
chgModified CSS for Joomla 4 RC2
chgDo not collect requests made with the ajax component
chgNow counting only analyzed pages when showing duplicate titles/meta description
chgNow removing aliases from articles and other native content types ids, for brevity and in case they are modified by user.
chgAdded more common tracking variables to be discarded from incoming requests
chgImproved dashboard design for clarity
chgOrder Errors and broken links display by number of hits
bugCustom meta description or title are set into page but not used in OGP or Twitter Cards
bugSometimes structured data rules may not be applied if there is no specific 4SEO plugins for the extension creating the page content
bugIn case of logged out user, message title is dark on dark background
bugMay create empty rows in the rules tables when structured data rules are executed.
bugDo not take into account empty or invalid SEO rules when displaying the list - #279
bugRemove useless rules created by mistake from the rules table.
bugBuilt-in SEO and structured data are not marked as built-in when created.
bugIncorrectly identifying external scripts as source of errors when displaying javacsript error message
bugFrontend 4SEO button is full page width on Firefox
bugUseless leading space in language string
bugBuilt-in articles structured data rules may not be applied on Joomla 4
bugMay collect pages with double or more /index.php/ prefix on multilingual sites with no URL rewriting

2021-06-10Version 1.0.2

chgDrop category id from single articles identifiers, prevents recognizing duplicates. Same with menu item as it cannot change page content.

2021-06-10Version 1.0.1

chgJoomla agglomerates Cookies variable in input, must separate cookies and post data when building page id. Can cause some pages to miss canonicals or other tags in case of cookies added by hosts such as Cloudflare or O2Switch
chgUpdated web-vitals library to 2.x
bugTypo in language file
bugIf a page in error is fixed, it was not detected and put back on the regular pages list after fixing unless manually deleted from Broken links page
bugTypo in Structured data type name

2021-06-03Version 1.0.0

newAdded full French translation
newAdded Core Web Vitals measurement under a feature flag
newAdded a filter for all configuration objects
chgDate/time replacer shortcodes made more consistent
chgBuilt-in shortcodes (site url, canonical, description,...) may not always be replaced
chgAdded border around embedded help widget
chgAdded more fine-grained help pages to structured data settings dialogs
chgType in language file
chgCreate a current page record on error requests as well

2021-05-28Version 0.11.1

chgDon't stop the app if another extension causes a javascript fatal error, just log it to the console.
bugAnchors links (eg #top) can cause non-existing links to be extracted from a page, generating extra crawling and showing false 404s
bugGarbage text in a language string

2021-05-26Version 0.11.0

newAdded count of pages pending analysis on the Pages page
newAdded Exact match option on all search boxes. Can search now for short generic strings such as / or en/
chgCenter icons on tables column titles
chgBetter display at low width on pages with tables
bugPreserve search term on links errors referrers dialog

2021-05-24Version 0.10.3

newNow automatically excluding pages from sitemap if they are disallowed from robots.txt
newAdded automatic purge of errors records and system config to select how long to keep them
newAdded purge button on the Errors page to delete all errors in one go
chgAdded check on invalid home website address, defaults to automatically detected address if missing or invalid.
chgMake errors page time-range selectors labels translatable
chgAdmin site analysis now has excess speed control, will pause for a few seconds instead of stopping with an error message if server is overloaded.
chgChanged crawler failed requests garbage collection delay from 5mn to 15 seconds
chgChanged default pages sorting to per item instead of per URL
chgDo not display layout as part of the Item name on Pages page for regular content article
chgAdded _JEXEC defined check on all files missing it, as JED checker does not accept other constants that 4SEO was using.
bugDisplay error message on website home address when it is empty
bugError messages are not cleared when closing and re-opening settings dialogs
bugWrong import in Structured data Event editor
bugWebsite home address can be overriden when other settings are modified in Pages configuration
bugDeletion confirmation dialog can get stuck if page is reloaded while it's displayed
bugAdmin site analysis speed slider value is not preserved when reloading the page

2021-05-19Version 0.10.2

2021-05-19Version 0.10.1

newAdded disabling of Joomla internal caching on 4SEO crawler requests.
newAdded handling of 3rd-party full page caching (JotCache, SpeedCache). Also added a filter to allow disabling unwanted plugins on crawler requests.
chgNow excluding print version of pages from being collected and listed on the Pages page.
chgShorter and safer item id displayed on Pages page
chgDo not collect and include in sitemaps co_mailto links
chgPrevent PHP notices when common extensions create invalid records at onContentPrepare (GSD)
chgSkip common domains such as social networks when checking external links errors
chgRecord search engines visits only for current sitemap version

2021-05-14Version 0.10.0

chgEnsure website home address always has a trailing slash
chgChanged sitemap file name from sitemap.xml to sitemap-4seo.xml, avoids conflict with possibly pre-existing sitemaps
chgLowered max crawl concurrency from 10 to 3
bugFacebook app_id not correctly output in Open Graph tags
bugPages from 3rd-party extension may not be properly included in sitemaps depending on their non-sef URLs structure
bugCrawling does not work or stops too early when Joomla full page caching is engaged

2021-05-13Version 0.9.13

chgIncreased wait time between 2 requests from 0.5 to 2 seconds when crawling from backend, avoid some hosting company limiting resources
chgImproved accessiblity on disabled buttons, now using aria-disabled instead of disabled attribute
chgPropagate features flag through context instead of import
chgIcons in toolbar are not vertically aligned with button text
chgChanged older browser detection method as common one seems to trigger a bug in AVG antivirus on Firefox (!)
chgDo not display welcome message when uninstalling the extension
chgRefactored stores to get rid of global config dependency
chgUpdated 4SEO svg logo to using path instead of text
bugEnabling Debug system in admin breaks 4SEO
bugTab number is not centered within its background on wizard-style dialogs
bugClearing a notification can cause a page reload
bugNotification icon may not be aligned with data loading spinner
bugWrong key name, description is not displayed at first install

2021-05-07Version 0.9.12

newAdded initial configuration wizard
newAdded auto-redirect to main site address, for instance http to https or non-www to www
bugNot properly sanitizing files path when reading images

2021-05-06Version 0.9.11

chgFront-end button may not show 4SEO logo depending on site template CSS
bugUpdate key field in system config does not accept older keys with dashes

2021-05-04Version 0.9.10

chgAdded support for Home and End keys when using keyword in multi-select drop-downs
chgExtensions using old versions of MooTools can break 4SEo javascript, causing a fatal error. Added protections and workarounds.
chgMake sure to use canonical URL as possibly set in Joomla SEF plugin options when crawling and identifying images
chgAdded warnings on dashboard when adding sitemap to robots.txt or submitting to search engines is disabled
chgRemoved skip content link on embedded help iframe
chgAutomatic sitemap addition to robots.txt and submission to search engines now disabled by default.
bugWhen using keyboard in multi-select drop-downs, wrong items may be selected

2021-05-01Version 0.9.9

newAdded footer prompt for translation help
chgNow only using Vimeo to host embedded help videos
chgWrong link to documentation site in update manifest
bugIf sh404SEF or wbAMP is present, can have a fatal error in admin component
bug4SEO logo not displayed on post-installation thank you screen

2021-04-23Version 0.9.8

chgUpdated getting started videos embeds to latest version of the video
chgUpdated getting started videos embeds to latest version of the video

2021-04-23Version 0.9.7

newNow generating full Recipe structured data
newNow generating full Product structured data
newAdded UI to create Product structured data rule
newNow generating full Event structured data
newAdded UI to create Event structured data rule
newAdded UI to create Course structured data rules. Added corresponding json generation.
newAdded built-in rules to create Article and VideoObject markup for default Joomla content
newNow outputting LocalBusiness structured data
newAdded VideoObject structured data builder
newAdded UI to create VideoObject structured data rule
newUI for Article structured data rules and Structured data configuration
newAdded full structured data configuration feature, includin using Google Maps APi to geocode location and display location maps
newAdded support for Recipe structured data type
newAdded support for Product structured data type
newAdded support for Event structured data
newAdded support for Course structured data
newAdded support VideoObject
newAdded basic support for ratings
newAdded hook to store finalized page content by plugins
newAdded support for image in Article schema
newAdded support for rules-based structured data creation for article. Includes default author, business, publisher, location.
chgUpdated help system to fetch content from
chgMoved robots.txt editor to tools from configuration
chgAdded error message on dashboard if SD is enabled and org logo is missing
chgAdded bottom border to separate inline help from main page
chgNot all rules execution are logged
chgUpdated dashboard to reflect structured data state
chgRemoved aggregateRating field for Articles, not supported by Google
chgMake sure only one rule per type is executed
chgAdded ability for plugins to decide not to add SD data, unless a rule is entirely custom
chgRemoved some unused component props
chgBetter detection of modification date for com_content structured data
chgSimplified structured data plugins code
chgDo not enforce minimal width on detected images as there is not a single value that applies to all content types
chgDo not enforce minimal pixel count on article structured images as it's only 'for best results'
chgMoved computing and injection of Structured Data to onBeforeCompileHead to increase chances of having all data available
chgAdded a specific action to collect current page data by plugin or 3rd parties
chgStricter clean up of existing microdata in content: now removing them all. Should revisit.
chgMultiselect should only catch ESC key if list is open
chgBetter dashboard styling
chgRemoved useless analytics v4 options
chgDisabled by default cookies consent check. Will require 3rd-parties to use filter to enable (@TODO]
bugMain logo not linking to dashboard
bugMissing Analytics rule title language string
bugWrong logic when checking for errors in Structured data settings, settings are never saved
bugShow on map does not react to available geo coordinates
bugVideoObject structured data was inserted even if missing some required fields
bugFixed jankiness in settings slide down effect by reducing slots nesting levels.
bugBad logic when plugins checks if a rule can be executed on a page. Also faster now, cutting through right away if cannot run.
bugVarious SD options not doing commanding what they should. Updated some SD settings wording.
bugNow properly integrating user custom code from structured data rules
bugStructured data image field included even on non-Article page types
bugPrevent drag and drop re-ordering of rows when there's only one row, fatal error
bugIf OGP, Twitter Cards or Analytics is disabled, may have a fatal error.
bugDo not output breadcrumb structured data record if breadcrumb items list is empty


chgEmbedded help pages have wrong styling at low width and height
chgBetter prevention of reloading the page if unsaved changes to robots.txt editor
chgrobots.txt editor area is too small on mobiles
chgA few dialogs have wrong spacing between input and labels, or labels in the wrong order
bugSome direct 404 errors may be recorded as links instead of just errors
bugrobots.txt edition save button is sometimes disabled when it should not


newAdded robots.txt editor with one-click optimization
chgRemoved padding in pagination input field to show more pages
chgPagination input box should not have clear icon


newAdded links to Facebook debugger and Twitter tester
chgAdded Facebook appId support
chgAlso filter size of images for social sharing on frontend editing
chgPrevent selecting too small an image for social network sharing, with explanatory message
chgDisplay proper message when no rule has been added yet in a section
chgAdded small transition to alert on dashboard, refactored title block
chgReworked inclusion of video on dashboard, save space for actual data


newInitial Spanish translation (Carlos Camara)
chgAdded setting to disable automatic meta description
chgMade the softcron svg path random client-side instead of server-side, better caching avoidance
chgUpdated logos svg files
chgCleaned up license files and copyright statements
chgHide build number and duplicate date on release notes
bugAutomatically detected relative page images are not properly made absolute
bugFixed label displayed after setting instead of before on some toggles
bugFrontend editing language should be that of the logged-in user, not the current page being edited.


chgRemoved jumps when displaying available update in footer
chgImproved build and release process


chgRemoved help toggle from sidebar
chgUpdated logo colors and switch based on light/dark theme


chgAdded icons by default to single toggles
bugWrong color on Google SERP preview title


newAdded API for 3rd-parties to block injecting analytics scripts that could use cookies, based on user acceptance
newAdded update key setting
chgBetter styling of changelog in update notification
bugCannot enable/disable analytics rules from analytics rules list page