4SEO changelog
2024-12-20Version 6.3.1
chgIncreased fuzziness of update access key display in system configuration for more privacy
chgEnsure no spaces around update access key, in case the key is entered through Joomla update site page
chgAddded option to enable/disable structured data generation on SP PageBuilders pages
bugFinnish translation uses in a single string, can prevent 4SEO admin to work if using a template that adds CSS classes to body element also in the admin
bugPossible javascript fatal error when there's a Structured data misconfiguration warning on new installation of 4SEO
bugPossible PHP warnings on SPSPage Builder pages
2024-11-28Version 6.3.0
newBasic structured data support for SP Page Builder
chgAdded optional fallback strategy to find a canonical URL for a page by removing any query string. Disabled by default.
chgRemoved option as it is now always enabled (on J4+ websites)
chgAvoid risks of filename collisions for servers with opcache.use_cwd option disabled by prefixing all include_once files with a full path
bugUnder some circumstances, possible javascript fatal error on the dashboard when connected to Search Console but no data is available
bugWhen URL for a page is modified (in other extensions or in Joomla), and associated metadata are later modified, the old metadata may still be displayed on the site, while the new ones are shown in the admin
bugPossible PHP deprecation warning when using some custom fields with no value set in structured data rules
bugManually set structured data course offerPrice is always output at zero
2024-10-03Version 6.2.0
newAdded warnings in some settings and options pages that modifying said settings may require resetting analysis data et running a new full analysis.
bugPossible PHP fatal error when creating Event type structured data if event has an OfferPrice value
bugFixed roles and aria attributes on new version available icon
bugPossible occasional PHP notice when no sitemaps has already been sent to Google Search Console
bugPossible fatal error on PHP 8+ when using a combination of settings for an Event type structured data rule
bugPossible fatal error when Joomla internal date display format is modified through a language override to a non-standard date/time format and a structured data rule uses a Joomla Date custom field
2024-09-16Version 6.1.0
newAll types of rules can now execute based on the domain used to access a page: redirect, metadata, inject content, analytics, error pages, content replacement,...
newAll types of rules can now execute based on visitor user groups, as well as IP addresses: redirects, inject content, analytics, error pages, content replacement,...
chgEasier to use confirmation popups, do not change page scroll position when opening or closing
chgPrevent deprecation notices being logged to file by Joomla on Joomla 5+ (getInput)
chgAllow J2Store native views to be analyzed
chgWhen auto-linking a keyword with a replacer rule, the created link now has a CSS class added, that includes the rule number, for debugging purpose
chgAdded 24 new AI robots user agent strings to the list of crawlers to be blocked in robots.txt with the feature
chgPerformance: result of dimensions check for externally hosted .svg images are now also cached. SVG don't have dimensions so there's no need to try again and again.
chgPerformance: dimensions of local images are now cached, to avoid repeated work (only remote images dimensions were cached previously)
chgNow removing the query string from an image URL before trying to identify .svg images (in case parameters are added for images CDN for instance)
chgAllow any type of Joomla custom fields to be used throughout 4SEO. Added checks in cases user selects fields lacking require information for their purpose, to avoid PHP warnings
chgWhen using a custom field for a date value in a structured data rule, enforce the Show Time custom field parameter usage
chgWhen no time is provided for a date in a structured data property, truncate the output to only show year-month-date instead of using 00:00:00
chgAdded Performinggroup as an option to Event structured data Performer type property
chgRemove Performer field in Event structured data if in custom mode and no performer was provided in rule configuration
chgAdded a separate Address input field to Event structured data record, to better distinguish between online, in-person and mixed event attendance modes location
chgNow stripping all HTML content from custom fields when using them in structured data properties
bugDisconnection from and by Google Search Console are not correctly identified and displayed on the Integrations configuration page
bugAccessibility: alternate table view of Google Search Console data chart on 4SEO dashboard can't be focused and therefore scrolled with keyboard
bugAdding aliases to very long URLs does not work, the alias redirect to an invalid target
bugAvoid low-contrast colors combination when displaying an error message in some circumstances
bugRules triggered for URLs containing a %20 string (coding for a space) are not executed
2024-05-27Version 6.0.0
newNew Movie structured data rule type
newNew ProfilePage structured data rule type: use for About us or author profile pages to help search engines understand who's writing on your site
chgReworked accessibility aria markup for all tab switchers
chgAllow automatically computed meta description to be used even when Joomla progressive or conservative cache is active
chgRemoved display of FID metric on Pages page after it's officially removed from Google's Core Web Vitals list
chgMultiple changes to account for Google Universal Analytics shutting down permanently on July 1st, 2024. Includes warning on dashboard, stop rendering snippet and inability to add new Universal analytics rules on that date
chgImproved aliases data entry: automatically fix missing leading slash and remove website root URL if present. Also block saving when invalid data is present
chgAdded message suggesting to use the auto-clear notification feature on sites where it's not enabled. Displayed randomly every few notifications.
chgAdded dashboard notification to apply ProfilePage structured data rules to About us or Author pages
chgMake it clearer when connection to Google Search Console was lost and needs to be authorized again
chgUpdated code to read current user information for future-proofing against Joomla platform changes
chgAdded some support for J2Store ratings
chgEnsure website home address URL is entered as a lower-case string
chgAdded support for new Offers and CourseInstance properties to the Course structured data type
chgIf user-provided custom Structured Data code is invalid, do not insert it in the page
bugPossible PHP deprecation warning when a structured data rule item has a null value
bugRedirecting sh404SEF legacy URLs to Joomla SEF URLs may not work
bugPossible PHP warnings if Joomla pagebreak or vote plugins are disabled
bugTyping a sub-page address in the browser address bar is sometimes not respected, last sub-page is shown instead
2024-03-14Version 5.4.1
chgWindows Defender may sometimes flag 4SEO 5.4.0 as a malware
2024-03-12Version 5.4.0
newAll rules definitions now have a Notes free text field to log changes and details about the rule
chgPerf: only load API response handler on API requests
bugIf an error happens when saving an alias to the database, the error message is not logged nor displayed
bugPossible fatal error when viewing the dashboard Search Console data if no data is cached or present
bugSitemap not submitted to Google when submission is triggered manually from the user interface
bugOn the Pages page, long URLs are correctly truncated but cause the icon and the URL to be displayed on 2 lines
2024-02-20Version 5.3.1
chgFixed Polish translation for Search Console CTR - thanks Chris
bugOn larger sitemaps, with multiple sitemaps subfiles, some URLs may sometimes not be included
2024-01-30Version 5.3.0
chg4SEO frontend icon may not be visible on some YooTheme template, added some styles
chgBuilt-in shortcodes are now also replaced in all structured data text fields
chgProtect against SEF plugin having option custom domain option filled-in, may cause pages to be considered non-canonical
chgAvoid encoding & signs found in invalid URLs when adding them to sitemaps
bugPosisble PHP deprecation warning on recent PHP versions when viewing the sitemap (creation of dynamic property)
bugContent replacement does not happen if Hn titles protection option is enabled and there are multiple identical Hn titles on the page
bugWhen redirecting a non-SEF URL to its SEF equivalent, if the target is also a non-SEF for some reason, 4SEO should not redirect at all
bugMeta description is encoded once too many, causing & sign to be output as &
bugDon't try to submit just generated sitemap to Google if not connected to Search Console
2023-12-07Version 5.2.1
chgOn Broken links page, when the `Errors` selector is active, also show pages that have no error status. Previously, they were only shown when selecting `All`
bugCore Web Vitals data not stored to database due to addition of INP metric
2023-12-05Version 5.2.0
newSitemaps are now submitted to Google using the Search Console connection, if present. Manual submission also possible from within the Sitemaps page.
newRedesigned Sitemaps page. When connected to Google Search console, now shows details of sitemaps registered with Google, including pages and images submitted
newAdded content replacer rule option to prevent replacement to happen in title tags content (H1, H2, H3, etc)
newAdded new type of redirect rule, to redirect one or more non-SEF URLs to their SEF version
newAdded support for upcoming `INP` Google Core Web Vitals metric to Performance measurement
chgAdded help text to Aliases page, that they are created using the Aliases tab of any page
chgRemoved some logging instructions that may cause sometimes memory errors
chgEnforce links protection in replacer rules if replacement is set to Metadata
chgAdded ability to extract images that are lazy-loaded with javascript, reading the image URL by default from the data-src attribute. Also added a filter to add more attributes as needed
chgFor all rules, if `When to run` URL starts with `/index.php?`, the `Disregard query string` is now automatically disabled
chgWhen analyzing external pages, do not send the 4SEO security key. If the other site also runs 4SEO, it will respond with a 404 even if the page actually works, because the security cron keys don't match
bugNotification icon misses a title
bugKeywords list on Dashboard Google Search Console display is not keyboard-accessible
bugText color for red background warnings lacks contrast on small text
bugWhen rendering error page on Joomla 4 and 5, some events may not be triggered
bugAdd/refresh page dialog is not full height
2023-11-16Version 5.1.0
chgAccept more than one URL in sitemaps for the same content id. Allows use manual override to include several pages for the same canonical content
chgDo not URL-encode URL reserved characters when adding them to sitemaps, as they are sometimes used as is in URLs
chgDefault value for Disregard case when creating any type of rule is now Yes
chgNow defaulting to not checking Joomla com_redirect before triggering a 404 on Joomla 3, as this prevents error pages to operate. Can use corresponding filter to enable back if needed.
chgAdded forseo_collect_zero_status_urls filter to avoid storing as errors pages where the crawler cannot load the page but does not have a clear reason as to what happened
chgAliases now also operates in Debug mode or if the site is offline.
chgBetter cleanup of com_tags non-sef URLs when creating a page content id for canonical identification
chgEnsure CDN cache bypass variable is always removed from redirect targets when crawling. They otherwise may appear in the Errors | Redirects list
chgBackground cron trigger pixel image URL changed to avoid collisions with actual words that may trigger security systems
bug status selector does not work on Recorded Errors page
bugAliases and redirects are not executed on Joomla 5 when they concern non-existing URLs
bug4SEO does not allow selecting Structured data images when location of the images media folder has been changed from the default
2023-10-17Version 5.0.0
chgAccomodate pages where some custom javascript code has been added that includes invalid html tags in text strings, thus breaking cron or performance measurements pixels injection
chgRemoved use of int(nn) in SQL tables declaration or update
chgSuppress button press highlighting by some browser on mobile devices
chgUpdated ESBuild config to use actual file content hashes (esbuild hashes are not content hashes)
chgAdded CCBot to , to prevent the CommonCrawl crawler to use your site data to train their model. After the update, you must re-apply the feature for the Common Crawl bots to be added to your robots.txt exclusions
chgAdded Google-Extended to , to prevent Google Bard and VertexAI bots to use your site data to train their model. After the update, you must re-apply the feature for the Google AI bots to be added to your robots.txt
chgMinor tweaks for Joomla 5 compatibility
chgAdded ability to add translation for new languages, or override existing translations, by dropping a json file in a subdirectory of /libraries/weeblr
chgIf Joomla Debug system is enabled, 4SEO won't display user-configured error pages anymore
bugWhen customizing a URL in 4SEF, if the custom URL is an existing one, the metadata in 4SEO was lost
bugPossible fatal error when using a custom field to configure a structured data date (publication, modification, etc) and a custom date format is in use through modifying DATE_FORMAT_LC* Joomla language strings
bugMultipages articles are not properly canonicalized, based on whether the Show All option is enabled or not
bugPossible fatal error when using a date custom field for structured data or otherwise, when the output format is personalized in certain ways.
bugInserting a local image into an error page through the editor does not show either in the admin or on the frontend
bugSeveral language files have incorrect translation for button title
bugCanonical pages that have been excluded from sitemap by a rule or otherwise can sometimes be put back in the sitemap
bugMatomo noscript tag gets a double-slash
2023-08-22Version 4.9.2
bugRecently added new languages translation files are not packaged with the extension
2023-08-18Version 4.9.1
chgAdded caption to per page title and meta description fields, to clarify their use
chgAdded option to configure the desired approximate length of auto-generated meta description
chgAdded option to list only non-canonical pages, in addition to existing 'Only canonical' option
chg(Tiny) performance increase by using better MYSQL count function
chgAdded tmpl=form to the list of automatically excluded URLs
chgDo not convert single quotes when output in title, meta description and OpenGraph and Twitter Cards meta
bugAliases are not properly executed on multilingual sites, except on default language
bugPossible deprecation warning when outputting TwitterCards tags if Twitter account is not filled in
2023-08-10Version 4.9.0
newAdded feature and alert to optionally block IA robots such as those from ChatGPT to crawl the website
newAdded ability to create aliases: another type of redirect which is easier to create, faster to execute but limited in trigger conditions and target URLs
newAdded option to override Joomla full page cache plugin when applying redirects rules
newAdded full translation to Arabic, Finnish, Greek, Hungarian, Norwegian, Romanian, Swedish and Chinese
chgWhen conservative or progressive caching is enabled in Joomla global configuration, 4SEO can now detect and use for social networks sharing the 'Intro' and 'Full' com_content articles images, as soon as the page is analyzed. Before, it would fall back to using the largest image on the page.
chgRemoved calls for translators from admin app footer
chgAdded workaround for Joomla 4 issue adding layout=blog to pages, may result in incorrect canonical link
chgNow escaping title and meta description before output else invalid characters may break the page output
chgNow including site host hash and current version in subscribers update authorization request
chgNow using official schema.org notation for dayOfWeek instead of community shortcuts
chgWorkaround for Joomla 4 turning spaces in images file names into %20 for local images when used as article images, breaking local image size detection
bugOn frontend editing, IndexNow panel spills over footer
bugThere should not be a custom field selector input field on the Default person tab of structured data settings
2023-07-11Version 4.8.1
bugSome redirects are not executed after adding view selection rules parameters in last release
2023-07-06Version 4.8.0
newAdded a series of shortcodes about Joomla articles, such as article_title, article_category. Can be used with replacer or in metadata SEO rules for instance
chgAdded notification on system configuration page if a function file is found
chgMultiple input fields are now textareas (multiple rows) for easier entry of longer content
chgCan now include or exclude component views on the When to run tab for any rule defined in 4SEO
chgExcluded URLs can now be specified on the When to run tab for any rule defined in 4SEO
chgAdded filter to customize automatically generated canonical links
chgReverted to prioritising canonical computed by 4SEO after full site analysis over dynamically computed one
chgFor Joomla articles, only consider article id to identify canonicals and duplicates
chgBetter handling of invalid json in custom rules entered by user, may cause fatal errors under some circumstances
chgAdded a filter to disable the 4SEO generator tag
chgAdded option to disregard URL case when deciding if a rule (any type of rule) should run or not
chgRemoved option: Collect incoming URLs
chgNow trimming leading and trailing spaces from Update key in case it's entered through Joomla update site page
chgUpdated Google search results preview to current Google display
chgWhen importing redirects for a non-sef URL, from sh404SEF, default to taking query string in consideration so that they are not interpreted as non-sef to sef redirects
chgAdded forseo_ogp_data and forseo_tcards_data filters to let user customize programmatically OpenGraph and Twitter Cards data before they are injected into the page.
bugRel canonical links have double & if canonical URL has a query strings with an & character
bugUnder some circumstances, pages with a URL containing some non-ascii characters can be considered non-canonical
bugNot redirecting old sh404SEF URLs to Joomla SEF URL in case of 404 even if configured to do so.
bugTwitter Cards meta tags are invalid, not using proper syntax
bugOn sites installed in a subfolders, redirects rules using regular expressions go to a faulty URL target
2023-05-02Version 4.7.0
newAdded Czech translation
newAdded Portuguese translation
chgClarified message shown when no import from sh404SEF can take place
chgMinor styling adjustments to image preview and toggle selector components
chgAdded support for Error pages to apply to Joomla unauthorized access messages
bugWhen replacing a text with a link, existing links were only partially protected against the replacement, sometimes resulting in broken HTML
bugIcon linking to home page on Pages list goes to /null instead of /
bugRedirecting to lowercase may cause some URLs to be excluded from the pages list and sitemap on sites using non-latin characters in their URLs
bugNumber of execution of structured data rules is not recorded
2023-03-17Version 4.6.0
newAdded submission to IndexNow from the frontend
newAdded submission to IndexNow from Pages page in 4SEO admin
chgAdded global API accessor for hook system, allowing listening easily to extension events
chgAlso update recorded pages URLs of duplicates when a URL is customized in 4SEF
chgAdded tooltip on all rules title input fields mentioning title is the only searchable field and should be meaningful
chgRefresh date/time when checking tasks to run, instead of using the initial request time
chgNow showing a warning if the URL used to access the admin is not the same as the one configured for the website home address
chgAlways use the configured main site address to build sitemap addresses instead of currently loaded sitemap address
chgRestored display of Bing last visit to load the sitemap
chgReworked sitemap generation, more efficient, will more often serve stale sitemap until new sitemap is ready, reducing / service unavailable / errors for search engines
chgUpon resetting analysis, 4SEO now keeps serving any available sitemap from a previously completed crawl until the new one is ready
chgAdded setting for delay between 2 consecutive sitemaps automatic rebuild, change default from 5 to 30 minutes
chgDisabled automatic retrieval of GPS coordinates in Organization structured data, was exceeding GoogleMaps quota and failing too often. GPS coordinates should only be retrieved with the Find coordinates button in the Stuctured Data settings.
chgChanged API endpoint address to /index.php/_wblapi. Also always include nolangfilter=1 in API requests, to prevent language filter redirects
chgToolbar and local menu options to delete a page record now disabled for home page
chgManual add/refresh page now re-analyze page, even if it was previously excluded from analysis
chgNever add the home page to the list of URLs excluded from analysis
chgRemoved link to Twitter sharing tester page, no longer fully active
bugTypo in rel=noopener attribute on some external links
bugPHP error when triggering updates through the Joomla 4 command-line application
bugImages with a protocol-relative src attribute are not properly extracted from content, resulting in incorrect image link and possibly false-positive broken links
bugInput field to edit robots.txt and custom sitemap is not full width
bugsh404SEF importer does not import all redirects/canonicals, including those with external redirects targets
bugFrontend metadata and social networks edit popup can only be closed once, requires a page reload otherwise.
bugTracking of search engines loading sitemap was only working as expected for index sitemap, not for partial sitemaps
bugWhen checking Joomla Redirect component for redirects in case of a 404, the 4SEO error page will not be displayed if a redirect exists n the form index.php?Itemid=123, and the menu item with ID 123 does not exists
bug404 error page is not displayed on sites which had sh404SEF when 4SEO was installed, but sh404SEF database tables were deleted since 4SEO installation
bugPossible deprecation warning on PHP 8.x in medata helper for some values of the meta description
bugOn Google Search Console Pages opportunities, home page is displayed as empty instead of /
bugPossible PHP warning on Hikashop product pages if product has no rating
bugWrong link to requirements page on warning displayed on unsupported browsers
bugPHP fatal error when generating structured data for Hikashop when it is configured to let users sort comments and reviews on the frontend
bugPossible deprecation warning when creating structured data on PHP 8
2023-02-15Version 4.5.1
chgHikashop: do not default to using the website publisher if a brand is not specified for a product
chgMore thorough clean-up of Hikashop own generated microdata on product pages
chgRemoved sitemap partial file reading progress
chgNow forcing application/json content type on all POST/PUT/PATCH/DELETE fetch requests, should reduce mod_security incorrectly blocking requests
chgAutomatic redirect from mixed-case URLs to lower case URLs is now disabled by default.
bugDo not try to log execution of built-in rules (firewall or others), this fills up the log files with useless error data
bugHikashop structured data records always use default currency instead of actual
bugAutomatic redirect to lowercased URLs does not work on multilingual sites if it is only the language code that has the wrong case
bugAutomatic redirect to lowercased URLs only works in J4 is a 4SEO custom error page is enabled
bugSearch Console integration Connect button is disabled and error message displayed if access key has dashes (-) in it.
bugOn multilingual sites, OpenGraph OG:locale value is incorrect, uses default language
2023-02-09Version 4.5.0
newAdded ability to analyze a single page immediately rather than waiting for the background process to analyze it. Trigger analysis from the admin or the frontend. Use on newly created page, or refresh data for already analyzed pages.
newAdded option to redirect uppercase, or mixed-case, URLs to their all lowercase counterpart. Enabled by default but disabled if 4SEF or sh404SEF are running, as they already handle that situation better
newAdded content replacer ability to replace content only in Page title, meta description, OpenGraph title or description and Twitter Cards title or description.
newNow checking for any applicable redirects from the native Joomla Redirect component before processing error display rules.
newAdded new SEO metadata rule type: allows customizing page title, description meta, robots meta and canonical for an entire set of pages with one rule
newAdded support for entering custom OpenGraph (Facebook and others) and TwitterCards title and description per page. Both from admin and frontend.
newAdded new full translation to Lithuanian by Andrius Balsevičius
chgDo not inject frontend editing code on error pages
chgNow automatically excluding language switcher flag images from sitemap
chgNow defining 4SEO_IS_RUNNING PHP constant at startup
chgImage/file browser now sorts files and folder before displaying them
chgDetect when invalid access key has been entered on Joomla 4 Update sites pages and prevent starting a connection to Google Search Console if so
chgJ2Store product SKU, name, brand, price and description now available as dynamic variables usable in content or meta
chgTry to run our onContentPrepare handler as the last one, so that all other content plugins had a chance to run before. Allows better auto-meta description generation, among other things. May result in more frequent re-analysis depending on your content plugins actions.
chgPossible PHP warnings in Joomla code on error pages if PHP 8+
chgUpdated Core Web Vitals library to latest, takes into account Prerendering in Chrome 108
chgAdded link to open sitemap in a new tab on sitemap page
chgAdded site name display to mobile search page results preview widget
chgNow using /index.php as API endpoint, should reduce false positive and blocking by security systems on some servers
chgHikashop product SKU, name, brand, price, description and condition now available as dynamic variables usable in content or meta
chgBlur update key when input field not focused
bugSitemaps images exclusions rules are not always applied
bugPrevent javascript error happening in the admin on Rules display (any type of rule) in case malformed data is provided by the server.
bugRegular expressions target in redirect rules cannot be entered unless they start with http(s)://
bugFatal error on some rare configuration of article home pages
bugLong links are not broken/ellipsized on list pages
2022-12-21Version 4.4.1
chgBetter CSS at low width for Joomla 4
chgAccept HTML in Google updates detailed description
2022-12-14Version 4.4.0
newNew Danish translation by Ronny Buelund
chgWorkaround Joomla not being able to add a canonical and an hreflang for the same URL, can cause hreflang to disappear
chgBetter protection for the content replacer when JCH Optimize is in use and compresses the page content. Some odd behaviors found on some websites.
chgPrevent app not starting in admin if CURL PHP extension is not available
chgNow requiring PHP 7.2.5 or higher
bugPossible warning Duplicate key type_ordering on first-time installs (with no adverse effect except the message)
2022-12-02Version 4.3.1
chgTypos in French translation (thanks GFCom)
bugError page title may have ' symbol instead of apostrophe displayed under some circumstances
bugPossible Duplicate entry error message displayed after installing previous version (without negative consequences)
2022-11-24Version 4.3.0
chgAdded a warning when trying to connect to the Google Search Console not using the website configured main address (typically, www vs non-www mismatch)
chgRewrote rules management system, no more limits in the global number of rules
chgBetter display of admin page if an error occurs (system plugin is disabled for instance)
chgAdded a language filter on the Pages page
bugRules drag-n-drop re-ordering may not be available when going from a page with one row to another with multiple rows. Conversely, a fatal error may happen when trying to move a row when that row is the only one on a page
bugSome Google Search Console data is not retrieved when using a Domain type search console property
bugSometimes, undefined can be displayed instead of an error details message
2022-11-17Version 4.2.2
chgAdded a filter to pass additional options to the HTTP client used when communicating with Google Search Console. May help for websites which servers are blocked by Google.
chgInject site name in home page structured data and OpenGraph records. Site name is now used more often by Google in search results, this will help Google get the name right.
chgOn sites which started using 4SEO early on, the fake Facebook application id automatically added to OpenGraph may be missing. Not having an app_id is normal but the Facebook debugger has a bug (!) and it shows the lack of app_id as an error - which it is not.
bugImages with encoded spaces in their path (%20) are properly processed but incorrectly added to sitemap, resulting in a broken link
bugImages with very long URLs may be truncated when inserted in the sitemap
bugstyle and script tags are not removed from content when automatically building a meta description
bugLeading zeros must be preserved in postal codes when generating Structured data
2022-10-19Version 4.2.1
chgAdded handling of more extensions that use the same item on multiple languages (JomShopping)
bugIn redirects, the Append back query string option only works as expected for rules with wildcard characters
bugBuilt-in rules to block some spammer robots access are not applied if they have a question mark in the URL specification
bugMissing text for HTTPS required to connect to Search Console, only error code is displayed
2022-10-14Version 4.2.0
chgNow detecting and rejecting rules URL specification that have incorrectly UTF8-encoded specifications
chgChanged crawler user agent string as some rare servers can block the previous one for 'security' reasons
chgDefault to using HTTP 1.1 for crawling the website. Allows crawling with some not so well configured servers.
chgChanged crawler requests headers names as some rare servers can block the previous ones for 'security' reasons
chgPerformance improvement: use HEAD requests on external links instead of regular GET. Can be disabled with a filter
chgAdded simple activity breadcrumb recorder to global error handler
bugWhen URL rewriting is not in use, there may be a double /index.php/ in the canonical URLs automatically injected
bugWhen multiple URLs are listed to trigger a single rule, only the first URL is taken into account
bugPossible Data too long for column content_id error when analyizing pages with very long URLs
bug(wbLib) Some types of links with specific query variables can sometimes be reported as 404 while they are not
2022-10-06Version 4.1.1
bugDouble URI encoding of some requests to server may cause Admin Tools-generated .htaccess to block fetching data from Search Console
bugReverted change in last version, not compatible with Joomla 3. Could prevent page analysis to progress.
2022-10-05Version 4.1.0
newAdded a Purge all button on the Broken links page.
chgBetter, more informative display if an error occurs while communicating with Google API
chgRenamed search results 'evolution' to Keyword and Page trackers
chgDisplay Google connection error message to user instead of just logging it to a file
chgAdded a bit more logging to Search Console connection process
bugIncorrectly report links with non-ascii characters in query variables as 404, while they may be actually working
bug4SEO can freeze if Google Search Console refuses to renew access token for any reason.
2022-09-28Version 4.0.1
chgRemoved settings group title in Replacer and Redirects settings for consistency
bugSEO Insights-related help buttons are not showing the proper documentation pages content
bugError loading data from server when enabling the Gearch console integration when using a domain level property
2022-09-28Version 4.0.0
newAdded an integration with the Google Search Console. Includes one-click connection to Google account, a dashboard pages and keywords report and 3 SEO Insights reports with information not available directly from the Search Console itself, identifying pages and keywords opportunities. All 4SEO Search Console reports use the API, bypassing the 1000 data rows limitation when using the Search Console website directly.
newCan now use multiple simple URLs in the When to run field of any rule, simplyfying the creation of multiple redirects when wildcards or regular expressions cannot be used
chgAdded noindex header to background task trigger image, avoids possible Soft404 warning in Google Search Console
chgBetter layout at very low width
chgAvoid useless redirects by the Joomla Language Filter on each load of the soft cron pixel
2022-08-29Version 3.1.0
chgMake rules URL specification match when entered URL-encoded.
chgRemoved deprecated tags from images sitemaps: caption, geo_location, title, license
chgThe sh404SEF import process requires that sh404SEF is installed and enabled. Alternatively, 4SEF can be used instead of sh404SEF - but sh404SEF data must still be present.
chgAllow AdWords-style IDs in Google Analytics and Google Tag manager rules
chgUse lambda function for all cron tasks scheduling, reduce memory footprint
chgAdded more cleaning up of CSS selector used for structured data FaqPage question and answers detection, now making sure selector is made up of valid identifiers (no leading numbers in class names, no double-hyphens, etc)
chgRemove more HTML elements in questions for FAQPage structured data
bugWHen using Google Tag manager, an incorrect property ID is injected in the noscript version of the tag
bugWhen using Google Tag manager, an incorrect property ID is injected in the noscript version of the tag
bugUniversal Analytics does not report data if adsFeatures are disabled
bugSearch function in analytics snippets list does not work
bugWhen creating or modifying a Structured data rule, it is marked as modified when viewing the What to do tab, even if not change is made
2022-07-19Version 3.0.2
bugCannot create a new rule for some types
2022-07-18Version 3.0.1
bugPossible fatal error on Single newsfeeds page under Joomla 3
bugExact search option does not work on some list pages.
2022-07-15Version 3.3.0
newAdded support for Joomla native custom fields to provide per item custom values for all Structured Data fields that support it
newAdded support for Joomla native custom fields to be used to enter custom code for all Analytics providers that support it
newAdded support for Joomla native custom fields to serve as a target for canonical link SEO rules
newAdded support for Joomla native custom fields as a condition for all types of rule throughout 4SEO
chgWhen no custom structured rules has been created, make it clear that built-in rules exist and are applied, or disabled by user if so.
chgKeep menu item id in URL when computing dynamic canonical URL
chgTiny tweaks to user interface, fixed panels sliding in not always working when editing an item
chgImage structured data record now use image alt text as description field, and caption as caption, when present.
chgRules running conditions are now collapsable for less cluttered interface and easier access.
chgChanged user interface keep alive URL from /ping, which is sometimes blocked by mod_security
chgIncreased sections spacing in (most) forms for clarity
chgMake all input fields the same width on structured data settings page
chgAdded support for global identifier in Product structured data
chgNow caching in browser categories, languages, extensions, custom fields and extensions list for better user interface performance
bugCustom images folder set in Joomla media manager is not taken into account when showing 4SEO image browser
bugUniversal analytics snippets are inserted at bottom of head element instead of top, breaks reporting when used together with Analytics version 4
bugEditing Replacer rules always show them as modified despite no change having been applied
2022-06-22Version 2.2.1
bugPossible fatal error on Single contact page on Joomla 4
2022-06-22Version 2.2.0
newAdded custom structured data fields to both default organization and default author
chgImport selector is only displayed at start of import, should always be available
chgRemoved setting for Facebook App ID in OGP tags (not used in a long time). Also, now outputting a default, sample fb:app_id value in Open Graph tags to prevent false positive warning in Facebook debugger.
chgUpdated and largely expanded list of common tracking query variables that should be discarded from links (Facebook, Google Analytics, Matomo, Hubspot, Mailchimp, Klaviyo,...
chgAdded PriceRange field for LocalBusiness structured data
chgIf Collect external 404s URL is disabled, do not log ANY external 404. Before, we would still collect images external 404s.
bugMeta data for home page not correctly identified when importing from sh404SEF
2022-06-10Version 2.1.0
newDynamically compute canonical link for com_content articles and category pages instead of relying on first-found page to be the canonical.
chgErrors during sh404SEF metadata and redirects import are now caught and logged to file, before any error would stop the import process
chgRefactored sh404SEF metadata and redirects import to share mode code
chgAdded protection against 3rd-party extensions causing fatal errors when rendering a 4SEO error page
chgCan now bypass nofollow meta tag effect during analysis. Added a new option under Pages | Settings | Site analysis to toggle this bypassing.
bugsh404SEF import of metadata fails when an item has a OpenGraph image set
bugSome imported sh404SEF redirects are not converted to SEF when non-SEF
bugNofollowed pages should be included in sitemap
2022-06-07Version 2.0.0
newWorking meta data, redirects and canonical import from sh404SEF
chgAvoid extracting home page links multiple times, or its minor variations such as missing trailing slash
chgFooter now hidden in compact mode, shows a bit more data on list pages
chgMain menu active now highlighted with accent color
chgWhen a SEF URL is customized in 4SEF, propagate the change to all recorded data in 4SEO for that SEF URL.
chgPermanently remove Bing sitemap submission, as they stopped the service officially May 13 and even if the alternate endpoint appears to still be working.
chgDo not take into account presence of a category id in the URL when deciding whether a single contact page is canonical, as it may or may not be present without changing the page content
chgAdded side outline to drop-down sections of main menu
chgOptimized query that counts total number of URLs before displaying the main pages list
bugCannot close popup or try saving again a rule if an error happens on the server during first save attempt, have to reload the page
bugSome external links with redirects may be reported as 404 instead while they are valid
bugSome external links with redirects may be reported as 404 instead while they are valid
bugHikashop structured data not output on all Hikashop versions
bugRestricting a rule to some components may not work for some component, rule is never executed
bugProperly encoded spaces in links found in pages are reported as 404
bugConsider URLs with Unicode slugs and their URL encoded version as the same for triggering URL-based rules, such as redirects
bugFatal mysql error in Hikashop integration when a product has reviews
bugUpdate access key may be lost from Joomla 4 update sites page list on some sites.
2022-04-14Version 1.8.0
newAdded option to auto-clear informational notifications after a delay. Off by default to maintain accessibility.
newAdded option to auto-clear informational notifications after a delay. Off by default to maintain accessibility.
newFull translation to Russian by Алексей Хорошевский
chgImproved resilience to short internet connectivity loss during long running tasks such as site analysis. 4SEO will retry several times before stopping work.
chgConsider URLs with Unicode slugs and their URL encoded version as the same for crawling purpose
chgAdded WhatsApp to list of domains to exclude from crawling
chgDo not store update key on Joomla 4 when in development mode
chgEnsure no-cache header is sent on 404 error page, some hosts may cache them
bugPossible PHP warning when rendering a 404 error page with similar pages suggestions
bugPossible PHP warning when rendering a 404 error page with similar pages suggestions
bugAll broken links are incorrectly also shown as originating from the home page
bugPossible PHP warning when crawling content for some 3rd-party extension
bugUsing the replacer to automatically link text to another page breaks if Whole words only option is selected
2022-03-31Version 1.7.1
chgCtrl+S shortcut to save a rule now does not trigger browser saving the entire page when data has not been modified
chgBrowsers encode non-latin URLs, resulting in frontend meta data and OpenGraph tags editing pop-up window not displayed
chgAdded nocache headers to sitemap files to bypass some hosting companies proxy caching.
chgAdded closing ; after injecting 4SEO admin config. Other extensions may otherwise conflict with it and prevent 4SEO language strings to be loaded.
bugOn error pages, do not use HTML classes starting with a number, they cannot be styled with CSS
bugPossible fatal error when recording fatal errors on the site
2022-03-04Version 1.7.0
newAdded configuration to exclude images from sitemap by domain name.
chgAdded structured data caching when Joomla own caching is enabled, else structured data may not be generated
chgSome faulty extensions can cause 4SEO error page to display as raw HTML code instead of a normal page. Added an attempt at a workaround.
chgK2 uses 0000-00-00 00:00:00 for null data, can cause invalid structured data when an item has not been modified
chgAdded sanity test for dates used in lastmod sitemap field
chgRemoved unneeded Db query to read configuration sections that have not been configured yet.
chgMoved sharing image selector at the top of page edit window, validator at the bottom
chgEnabled back pinging Bing with sitemaps, with an updated ping URL after they silently removed the previous one.
chgStyled scrollbars for chromium-based browsers
chgNow auto-detecting Article structured data Headline field for non-Joomla content
chgNow catching errors generated by the Vimeo player
chgAdded clean-up of wrongly stored WAF rules that may have been added to the rules table incorrectly by early beta versions.
chgCompatibility issue with YooTheme template on Joomla 4 can cause PHP warnings to be displayed.
bugPlace the rule after... field offers only up to 10 rules instead of the full list when modifying any sort of rule
bugOption to disable built-in structured data rules does not disable regular Joomla article ones.
bugProtocol-relative images URLs on other domains are not properly made absolute when included in the sitemap.
2022-01-12Version 1.6.0
newMerged full German translation by Elisa Foltyn
newAdded structured data generation for J2Store, both on real J2Store pages and when included in a regular Joomla article
chgRemoved sitemaps submission to Bing after they stopped that service.
chgRemoved duplicate meta data filter from Pages page, can be too slow on sites with many pages.
chgAdded a filter to modify or suppress the stylesheet applied to sitemaps
chgAuto-canonical determination now removes common tracking vars (utm_*, fbclid,...) when figuring out canonical
chgAllow installation of default error pages for Dutch language
chgAllow for zero prices in Product structured data
chgBetter layout for Help page
chgRe-check title and meta data a second time as some 3rd-party extension may set them later than best practise.
chgDisable JCH Optimize image lazyloading feature when analyzing pages to access actual images more easily
bugSome non-latin characters in default error page messages are not properly displayed
bugPossible PHP warning relatd to structured data generation on some pages
2021-11-16Version 1.5.1
chgOn error pages, do not suggest non-canonical pages or pages with pagination
chgJoomlart T4 templates on Joomla 4 do not load styles on custom error pages.
2021-11-15Version 1.5.0
newAdded support for Virtuemart canonicalization, sitemap inclusion and image detection
newAdded support for J2Store canonicalization, sitemap inclusion and image detection
newDisable Joomla canonical link injected when a address is entered in the SEF system plugin parameters.
newAdded Polish translation by Marcin Równicki
newAdded Italian translation by Guido Tedaldi
newAdded error pages management: handle different kinds of errors with rules, display custom content within your regular template and suggest similar pages in case of 404.
newAll rules (structured data, redirects, replacer, SEO, analytics,...) can now also be based on content language
new4SEO can now automatically redirect sh404SEF URLs to their Joomla SEF equivalent
newAdded configuration section for extensions
chgAdded clearer message when trying to select too small an image for a structured data logo
chgSome PHP warnings may be logged to file when doing structured data cleanup if page has invalid UTF-8 characters.
chgAllow collection and safe processing of malformed relative links, for instance with multiple .. and . segments, in the same way as a browser would.
chgOptimize rebuilding of sitemaps: less frequent but still catch all changes
chgNow stripping all HTML tags before comparing pages content to watch for changes. Full analysis reset is recommended.
chgBetter detection of sitemaps updates needed when adding or removing pages
chgBetter detection of pages becoming an error or being fixed, being no-indexed or indexed back: update sitemaps and records automatically
chgAdded priority analysis: links with some assets-like extensions (.pdf, .txt, .png, .jpg, ...) will be crawled and analyzed after regular pages. Helps on some site with large numbers of linked images to prioritize actual content and speed up discovery
chgHikashop structured data now includes textual reviews present on the page if they have an author and a rating
chgWhen identifying 404 media files requests, compare both lower and uppercase versions of file extensions
chgAdded exclusions of images from Google translate module
chgNow showing manual site analysis progress in the browser tab title, to easily view progress when one navigates away during analysis
chgAdded configuration option for Hikashop to enable/disable built-in structured data generation.
chgClearer message on structured data page when no custom rule has been defined yet
chgXML sitemap stylesheet now also counts images and unique images in each file.
chgClarified text saying that analysis is performed in the background
chgAdded stylesheet to sitemaps files for easier viewing and navigation in a browser
chgWhen checking links to external sites, pages with invalid TLS certificates do not stop a manual crawl anymore. They are now reported as Broken links, with a status code of 421.
chgAdded authorUrl tag in package manifest, needed by some management platforms
bugMultipage articles were not properly canonicalized
bugNow extract intro/full image articles on Joomla 4, previously was broken by Joomla 4 special URL format
bugK2 image detection code is not used on K2 pages
bugExclude 4SEO cron image when extracting images from pages, cause a discrepancy between crawled pages and regular loads, causing uneeded re-analysis
bugIncorrectly limiting images listed in sitemap to 1000 per individual sitemap
bugWhen checking if images are excluded by robots.txt, should not use URL rewriting prefix
bugIn Structured data business types list, types groups labels are not translated
bugCannot enter a domain with a dash (-) when listing domains excluded from analysis
bugXML sitemap may have invalid characters in them, preventing parsing by browser
bugMissing error message when entering invalid URL in sitemaps exclude/include input fields
bugIn Joomla 4, some popups are partially hidden by Joomla sidebar
bugHikashop built-in structured data are not output on Joomla 4
bugExisting structured data in content are cleaned up even if structured data cleanup is disbled
bugTypo in frontend message if page has not been analyzed yet.
2021-10-12Version 1.4.2
chgReplaced width by dimension in help message as it's used now in both contexts, width and height
chgIgniteGallery, exclude menu item from content id to detect duplicate pages better
chgExclude (fake) single-image Ignite Gallery pages from sitemap
bugCaption and titles in images sitemaps are not properly encoded
bugNot properly checking if an image has already been seen before trying to store it
2021-10-05Version 1.4.1
newAdded support for automatic collection of Phoca Gallery images into sitemap
newAdded support for automatic collection of Ignite Gallery images into sitemap
newAdded text editor to create or modify custom sitemaps entries file
newAdded manually adding sitemaps entries through text or xml file
newAdded support for image sitemaps
chgShow number of unique images in sitemap on sitemap dashboard
chgRemove hash from sitemap partials names, prevent Google from requesting outdated files resulting in 404s.
chgExpanded text area input fields to be wider
chgAdded a filter on the list of sitemaps to be submitted to search engines, allows adding your own.
chgAdded display of total number of items on all pages, before was only displayed on analyzed pages page.
chgDo not stop backend manual analysis in case database error appears due to concurrency between backend analysis and frontend or cron-triggered analysis.
chgJoomla language files with invalid syntax or otherwise invalid can crash 4SEO admin
chgURL analysis exclusions rules are now also taken into account when a redirect happens.
chgDisplay non-ambiguous message when user stops a manual analysis in backend, previous message seemed to indicate an error happened.
bugExplicitly allow sitemaps partials in robots.txt, instead of just the main sitemap file
bugOn dark themed sites, frontend metadata edition popup text is not visible, written in white on white color
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.
2021-08-20Version 1.3.0.1076
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 schema.org 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 weeblr.com
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
2021-03-03Version 0.9.5.506
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
2021-03-02Version 0.9.5.504
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
2021-02-26Version 0.9.4.502
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
2021-02-21Version 0.9.4.500
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.
2021-02-12Version 0.9.3.494
chgRemoved jumps when displaying available update in footer
chgImproved build and release process
2021-02-12Version 0.9.3.487
chgRemoved help toggle from sidebar
chgUpdated logo colors and switch based on light/dark theme
2021-02-09Version 0.9.3.486
chgAdded icons by default to single toggles
bugWrong color on Google SERP preview title
2021-02-09Version 0.9.2.482
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