This page short URL: kkaf

sh404SEF is a Joomla-3 only extension. It will be/has been discontinued on August 17, 2023.

You can switch from sh404SEF to 4SEF for SEF URLS and 4SEO for an all-in-one Joomla SEO extension, which both run on Joomla 3 and Joomla 4.

Please refer to the sh404SEF FAQ page for more details.

2023-07-26 13:19build 4352

2023-07-26Version 4.24.7

chgAdded discontinuation reminder panel in admin with link to more information

2022-11-17Version 4.24.6

bugUndefined constant fatal error on PHP 8 under some circumstances
bugStyle and script html tags may not be removed when building automatic meta description
bugPossible PHP warnings Array to String conversion when non-sef urls with multiple arrays are used
bugPossible PHP warnings when using simple encoding on some component.

2022-08-29Version 4.24.5

chgAdded banners on backend and frontend Google Analytics reports pages to announce October 3, 2022 deprecation of these reports.
chgAdded handling backward-incompatible changes in Virtuemart 4.x

2022-07-20Version 4.24.4

2022-07-18Version 4.24.3

bugSome parts of last version not compatible with PHP 5.6. NB: Minimal PHP version for sh404SEF has now been changed to PHP 7.1.0 for all future versions after the one including this fix.

2022-07-15Version 4.24.2

chgAdded hook for pagination chrome file loading. Allows adding a filter to fix templates (such as T3-based from Joomlart) breaking pagination by having their own JPagination class override.

2022-05-31Version 4.24.1

bugAdded Chronoforms to list of extensions needing $_GET workaround
bugPossible fatal error when creating SEF URLs programmatically from the admin

2022-01-12Version 4.24.0

chgDisplay Whatsapp sharing icon regardless of device size
chgClarified Joomla and php message on version requirements in install script.
chgUpdated pagination class to allow templates layout overrides for pagination
chgRemoved Offline mode plugin, not needed in a long time due to Joomla handling offline status code properly
chgHooks to modify page title and custom description can now be ran even if Joomla caching is enabled
chgDepart from Twitter colors on static sharing buttons to give them enough contrast ratio
chgMake sure all static buttons have a unique id attribute for accessibility
bugPossible PHP warning on rare URLs configurations (JReviews)
bugPossible PHP warning when using canonical alias rules

2021-08-20Version 4.23.3

chgSwitched from to to generate QRCodes
bugPossible PHP warning about open_basedir restriction in effect on some servers

2021-06-09Version 4.23.2

chgImproved cleaning of Breadcrumbs structured data links provided by Joomla
chgAnalytics graphs show errors. Bug in Google Chart, forced using version 49 to workaround.
chgPrevent K2 structured data breaking the page when sh404SEF tags are used to insert social buttons
bugThere may be 2 URLs selected as main for custom URLS after performing a 404 errors purge operation. Longest standing bug in sh404SEF, thanks Andrea!
bugWrong page number on category blog page titles if number of leading items per page is not default
bugPossible fatal error when creating SEF URLs programmatically from the backend
bugPage title is not translated on 404 error page when using the Joomla error page instead of the sh404SEF one.

2021-03-05Version 4.23.1

bugFatal error on sites running PHP below 7.2

2021-03-05Version 4.23.0

newSupport for Google Analytics version 4 snippets
newFull Turkish translation by Mehmet Taş
chgAdded a filter to bypass SEF URL creation just before it happens
chgAdded a hook just before a 404 error is rendered
bugCannot search for terms with underscores

2020-12-03Version 4.22.1

bugFatal error on sites running PHP less than PHP 7

2020-12-02Version 4.22.0

newUse sh404sef_qrcode anywhere on your site to display a QRCode of current or any other URL
chgAccept non-sef URLs with language tags instead of normal language code - workaround for YooTheme Pro
chgPrevent deprecation warning when running under PHP 8
chgRemoved OGP meta and Twitter Cards meta self-closing tags, meta should not be closed.
chgPrevent warnings when illegal characters are used in IP blocking
chgAdded fbclid to the list of automatically stripped query variables
chgAdded a specific id and class to QRCode inserted into pages
chgAdded sh404sef_url_before_store filter to modify URLs on the fly before they are stored to the database
chgwbAddHook function removed from wbLib, added own copy for backward compatibility
chgUse legacy wblib api slug
chgRemoved superfluous type attributes on style and script tags
chgAdded removal of iGallery tags in content when automatically building meta description
chgBetter handling of Joomla errors other then 404, now passing them back to Joomla error display in all cases.
chgMijoshop still using Joomla 2 routing, causes password reset to fail. Added workaround.
bugIncorrectly formed script tag in head when social tracking is enabled
bugSEO management features can sometimes remove some parts of the HEAD section of a page

2020-06-26Version 4.21.0

newAdded 3 filters, sh404sef_meta_page_title, sh404sef_meta_description and sh404sef_meta_robots to allow programmatically updating page title, meta description and meta robots on the fly
newAdded support for sh404sef_social_buttons_disable tag which blocks display of social sharing buttons if found in a page
chgEnforcing strict PHP 5.6 minimal version. Won't install with a lower PHP version
chgDo not use getHostByAddr to build security log files, can cause PHP warnings
chgOnly apply Joomla router strict mode to extension that actually are configured to use Joomla router
chgOnly use Joomla router strict mode for com_content
chgOnly use the Share API on actual mobile devices. Some desktop browsers offer it now but sharing experience is bad with nearly no sharing targets available
chgSmaller padding around sharing buttons
bugAnalytics Top URLs not displayed if some pages are reported by Google but have zero views
bugPossible fatal error if creating a link to a category which has been deleted permanently
bugPossible error in browser developer console when analytics reports are enabled but no data is available due to using wrong account
bugPossible PHP warning when fetching analytics reports data if incorrect account is used
bugPHP warning on 404 errors page when sharing buttons are enabled

2020-04-16Version 4.20.3

bugIf Show publishing options is disabled on Joomla edit page, characters counter in page title and meta description fields are not displayed but cause a javascript error
bugThe duplicate URL management popup is empty when opening in the backend.

2020-04-08Version 4.20.2

chgStrict minimal Joomla version is now 3.9.0
chgRestrict safer use of Joomla router to only built-in Joomla extensions, several 3rd-party cannot operate with this mode
bugRare errors on when running PHP 5.3.29 - support for PHP 5.3 will stop soon
bugPossible PHP notice when displaying duplicates of an URL in admin
bug404 for components set to Use Joomla router if URL rewriting (.htaccess) is not used

2020-04-03Version 4.20.1

bugFatal error with version 4.20.0 on sites which have upper case folders in their path if a component is set to Use Joomla router

2020-03-31Version 4.20.0

newNow using xlsx file format for all import operations. Much easier and reliable than previous CSV file format.
newFrontend Analytics reports can now be accessed with a secret access key in the URL instead of having to log-in
newAnalytics reports can now be viewed from the front end, compliant to Joomla ACL (authorization)
newRedesigned and extended Analytics reports in sh404SEF control panel home and dedicated Analytics page
chgNow adding a sample functions file in /libraries/weeblr to demonstrate cde customization
chgBetter detection of layout (blog vs list) for category pages. Should create less pages with 'table' prefix for list view while the page is a blog and should not have that prefix (the page was working fine nevertheless)
chgSafer use of Joomla router for some components of the site: can now be enabled while retaining proper 404 errors handling
chgSafer automatic redirects from Joomla SEF URLs to sh404SEF URLs: can now be enabled while retaining proper 404 errors handling
chgAdded a filter to enable protection of document format in case of rogue plugins that call Factory::getDocument() before onAfterRoute, causing RSS feeds and PDF files to be turned into HTML document
chgNow using Google Analytics reporting API version 4 for all reports
bugPinterest button link is HTTP instead of HTTPS
bugOutbound links symbol does not show if link is https
bugLanguage string for static sharing buttons may not be loaded in the correct language on multilingual sites.
bugShould not insert sharing buttons automatically when on an AMP page
bugSecurity logs are not deleted if Joomla logs are stored under the /administrator directory

2020-01-29Version 4.19.0

newAdded Internal rewrite to the aliases feature: display another Joomla page without the URL changing
newAdded support for Web Share API on mobile device when using static sharing buttons
newAdded optional minimal javascript to static sharing buttons for better user sharing experience
newAdded fully static social networks sharing buttons for best performance and less user tracking
chgAdded purge 404 URLs and home page meta data buttons to main control panel toolbar
chgPurge button label is ambiguous in Italian - close #545
chgAdded purge button on main control panel - close #518
chgK2 does not correctly clean spaces and new lines in content when using its K2Splitter content tag, causing wrong CSS class to be assigned and possible visual issues - added a workaround.
chgAdded filter, sh404sef_social_buttons_tags_process_mode, to decide whether sharing buttons tags in content should be converted to actual button or not, on a page by page basis
chgDo not include image in OGP data if its dimensions are zero
chgAlso cache dimensions check for external remote images when the images do not exists - closes #517
chgDo not convert sharing buttons custom tags on front-end edit pages - closes #495
chgAdded link to social sharing buttons plugin from main configuration page
bugPHP warning displayed on analytics graphs on PHP 7.3.x and more recent
bugFor extensions building SEF URLs from the backend, and relying on menu item aliases, those aliases may not always be properly retrieved (SPPageBuilder for instance)
bugSh404sefClassPageinfo::$pageDescription PHP notice may be displayed or found in logs
bugMissing zh-CN language file message can be displayed upon installation despite the file being present.

2019-12-23Version 4.18.2

chgMeta data database table: change raw content storage to MediumText from varchar
chgAdded comments around custom raw content for clear identification of source
chgGroup all meta data table creation into one instruction, in case some mysql users do not have ALTER authorization.
bugRaw content per URL is not saved

2019-12-19Version 4.18.1

2019-12-19Version 4.18.0

newAdded ability to insert custom raw text at top and bottom of HEAD and BODY tags. We have a global value for each, which can be overriden per individual URL.
newAdded a filter, sh404sef_should_insert_article_id_in_title, to enable/disable inserting item id in page browser title
newNow using a single update key: easier, compatible with Joomla 4 keys manager and services such as Watchfuli
newAdded filters to customize the 404 auto-redirect process: block auto-redirect, change target or change/remove message.
chgRemove warnings and notices when running under PHP 7.4+
chgAlso display a QR code for home page
chgEnforce www/non-www and HTTPS redirection in one go instead of relying on Joomla to redirect to HTTPS - close #540
chgAdded manifest tags for update key, in preparation for Joomla 4
chgJCH Optimize behaves differently than Joomla caching, breaks automatic OGP image and description
chgSome 3rd-party Virtuemart extensions may break SEF URL building logic for the cart page. Added a workaround for them.
chgDisplay 404 requested URLs also as non-latin caracters on error page
bugWhen adding aliases to a URL, we may sometimes create a duplicate record if it already exists
bugAutomatically computed page title may not be shown for an article if parent category has a menu item and a browser title has been set in Joomla options for that menu item.
bugPHP warnings may occur when logging of URL blocking is enabled
bugWhen enabling User router.php with menu item for a component, under some circumstances, the menu item alias may not be inserted in the SEF URL

2019-09-30Version 4.17.0

newNow adding a robots meta tag for all pages to comply with new Google/EU opt-in requirements to fully appear in search results
chgPrevent authentication errors on some Google Analytics servers by using Joomla HTTP client to make requests
chgAdded a filter, sh404sef_ogp_image_excluded_search_contexts, to let integrators exclude some content types from automatic OGP image search
chgChange encoding of description and meta data when using full page cache, can cause styling issue with some components (K2)

2019-06-04Version 4.16.1

newAdded full sh404SEF translation for Chinese, zh-CN and zh-TW - Thanks to Deng ChangBin
bugUnder rare circumstances alias may not automatically created when customizing a URL
bugCannot customize a URL in backend when running MYSQL 8.0+
bugWhen Joomla caching is enabled, some before content or after content sharing buttons may not be displayed
bugWhen forcing menu item id in URLs, the string com_sh404sef_always_insert_itemid_prefix can sometimes be inserted instead of the expected translated string 'menu id'
bugAnalytics reports authorization procedure may fail depending on which protocol Google uses in its response

2019-04-02Version 4.16.0

newRemoved support for Google+
chgPrevent warnings on some invalid, query strings only URLs
chgAdded a filter just before URL parsing starts in sh404SEF
chgPinterest pin button may not be displayed when using sh404SEF button tags inside content.
chgAdded a filter on the global configuration object.
bugAutomatic meta description is not generated when using Joomla cache on articles with multiple pages
bugUnder some circumstances article meta decription entered in Joomla may not be taken into account and instead automatically generated description may be used.
bugUsing Joomla cache can sometimes lead to page corruption when OGP data image tag is enabled.
bugMessage saying that Google Analytics is not properly configured is displayed when using Google tag manager.
bugFont file for drawing Analytics graphics was damaged during packaging.

2018-12-20Version 4.15.2

chgUpdated Spanish translation
chgRegular expressions based redirects should use new syntax for redirect targets ({$1}, {$2} instead of previous {*}). Old format redirects will still work normally.
chgProtect against extensions using onContentPrepare on raw documents, can break some site features when automatic description generation is enabled
chgRemove style tags when automatically building meta-description. Thanks Peter
chgNow using base64 encode instead of json for embedding auto-generated descriptions and image tags, more reliable when shortcodes are used in content
chgAdded support for automatic description with UniteGallery
chgUpdated Facebook API version to 3.1
chgUpdated Facebook API version to 3.0
chgAdded Quix short code to list of shortcode to be removed when auto-generating meta description
chgOn redirects, do not append again query string if the redirect is an exact match
bugStructured data phone numbers may loose their required leading + sign
bugOn multilingual sites, if language code is inserted in default language URLs, the home page canonical is not correct
bugFacebook share buttons options are not correctly labelled in social plugin settings, still show Like

2018-08-22Version 4.15.1

chgPass all non-404 exceptions back to Joomla, better compatibility with 3rd-party extensions
bugUnder some rare circumstances, meta description can be written onto the page content instead of being hidden

2018-08-20Version 4.15.0

newAdded buttons to delete detailed recorded information about SEF URLs, aliases and shURLs
newInsert Analytics snippet based on access levels in addition to user groups.
chgOnly enforce www/non-www rules on front-end
chgWhen redirecting non-joomla, non-SEF URLs (ie magento, prestashop,...), query string is not appended anymore to the redirect target if it matches the redirect itself
chgRemoved hack that was required for com_mailto to operate with simple encoding, prior to Joomla 3.8
chgAdded ability to handle non-sef URLs with nested array variables up to 3 levels (up from 1)
chgAutomatically generated description is now compatible with Joomla caching.
chgOGP image detection now compatible with Joomla caching
bugWhen a page has restricted access, under some circumstances the URL to it can be deleted and/or multiple URLs can be recorded for it
bugAnalytics snippet may not be displayed if configuration is saved with default value of 'Public' in 'Disable Analytics for groups' setting
bugCustom canonical is not inserted if a fully qualified canonical of itself is used on a page
bugOGP image search for K2 content is ran even on non-K2 content

2018-05-16Version 4.14.0

newAdded rule-based URL blocking, comes with default common WordPress bots attacks rules. Fully customizable.
chgAdded a javascript console message if Facebook social buttons are not initialized (likely blocked by browser policy such as Firefox)
chgAdjusted saving of sh404SEF access permissions in backend to adapt to non-backward compatible changes in Joomla
chgAdded support for wildcards in aliases target for regular expressions aliases
chg301 redirect from Joomla SEF to sh404SEF now off by default.
chgAdded widgetkit shortcodes removal from automatically generated descriptions.
chgStop using JException when trowing errors.
chgPrevent fatal error in case of invalid errors being sent by template/extensions to the sh404SEF error handler
chgReduced trace column database size, avoid errors on some mysql servers.
chgAdded preview link for Canonical type aliases in Aliases manager
chgExtended all URLs database columns to 2048 caracters
bugRegular expressions in aliases not taken into account when having a wildcard in the target redirect
bugindex.php might be added at the end of og:urls OGP URLs for some K2 pages.
bugPossible fatal error if automatic OGP image detection enabled and article has empty content.
bugIncorrect language code can sometimes be used when saving meta data if 2 languages are installed with same main language code but different URL language codes (eg en-GB + en-US).
bugIncorrect language code can sometimes be used when manually creating a non-SEF/SEF record if 2 languages are installed with same main language code but different URL language codes (eg en-GB + en-US).
bug404 URLs may have an additional leading slash when recorded.
bugPossible notice error on com_contact pages
bugURL source recording database table was not updated to 2048 characters URL length
bugCanonical links cannot be deleted from the URL manager, must use the Aliases manager
bugOn first visit to the Aliases page, canonical aliases are not displayed.
bugPossible notice errors when generating automatically meta description, when using some extensions

2018-01-25Version 4.13.2

chgNow showing an information message when saving aliases from the SEF URL manager for a single record, and one of thoses aliases cannot be saved as it already exists.
chgDo not remove initial slash when recording a 404, may hide some useful information
chgCreate longer description when automatically generating meta description, around 250 characters.
chgRemove {field} and {fieldgroup} tags from automatically generated meta description
chgAnalytics IP exclusion now operates on servers behind proxies
chgWhen using Joomla router for an extension, remove any trailing slash on the path as can hit routing bugs in some extensions (DOCMan)
chgURL source recording now also records a new URL duplication rank
chgLimit alias index size on shURL database table, for systems which enforce index size limits
chgAdded back using JRequest for extensions not compliant with Joomla API such as Mijoshop.
chgAdded a filter on the data to be recorded when Record URL source is enabled. May be used to reduce/filter the volume of data recorded.
chgAdded more sanitization to the '301 redirect from Joomla SEF' feature, to account for Joomla router parsing invalid URLs.
bugCanonical URLs set to the same page are not inserted into the page.
bugCanonical created from the URL manager since version 4.13 may not be taken into account in some cases.
bugCan have 404 errors on some links on some components, if set to 'Use Joomla router', '301 redirect from Joomla SEF' is enabled and some combination of menu items configuration.

2017-12-22Version 4.13.1

bugHome page meta data is correctly saved but an error message is displayed
bugIf 301 redirect from Joomla SEF to sh404SEF is enabled, the 404 error page does not work.

2017-12-20Version 4.13.0

newAdded a filter on the list of query variables to strip before looking up custom meta data
newAdded back automatic redirect from Joomla standard SEF URLs to sh404SEF SEF URLs
chgIncreased allowed meta description maximum length to 512 characters.
chgNow handling spaces in aliases
chgRemoved analytics Facebook events tracking, API retired by Facebook early 2018.
chgRemoved last instances of using JRequest deprecated Joomla class
chgAdjusted import/export routines to new aliases format
chgAdded protection against entering aliases or redirects target with spaces
bugReverted last version hiding limit and limistart in article view, breaks some multipage articles URLs
bugFatal error when installing last version over a very old one
bugInstallation of last release may fail with Undefined class constant 'COM_SH404SEF_URLTYPE_ALIAS_CUSTOM' message
bugInstallation of last release may fail on servers without UTF8 mb4 character set support.
bugEnter a non-sef redirect URL for a 404 requests is broken since last update
bugNotice error when saving a SEF URL record

2017-11-15Version 4.12.0

newAliases can now be re-ordered using drag-and-drop operations
newURL aliases can now use wildcards, to redirect/canonicalize many URLs in just one alias. Largely replaces .htaccess rules.
newURL aliases can now redirect/canonicalize to external URLs (on other sites)
newURL aliases can now be either a redirect or replaced with a rel=canonical link
newURL shortener (shURL) now works with all URLs, internal or on other sites
chgAdded a filter to change a page Itemid on the fly
chgDo not hide limit and limitstart parameters on com_content article view, some custom plugins do use them.
chgRemoved some leftover Joomla 2.x layouts
chgRemoved 'All' option from number of items per page select list - close #480
chgIncrease database table size for short urls target to 1024
chgKunena: now prepending menu item title to URLs when empty
chgStrip description of [[redacted]] tags from some extensions
chgStrip description of common extensions tags: Regular Labs, RsForms, PhocaGallery
chgAuto-generated description: also remove wbamp meta tags, not suitable for description
chgAdded a check on Twitter Cards description content, must not be empty so fall back to page title if empty.
bugNotice message on Virtuemart cart link (when creating them)
bugInternal: function to get front end live site URL may not always remove 'administrator' when called from admin
bugPage title with double-quotes may break OGP and Twitter cards data
bugMeta description may be replaced by automatically generated one when inserted in Joomla article publishing input field
bugInternal requests not always properly recognized. Stop relying on JUri::isInternal.
bugUnreadable error message when trying to update without having entered credentials

2017-09-26Version 4.11.0

newAutomatically generate description meta for articles when missing.
newAllow emoji in custom title and description
newAdded support for AMP Analytics Client ID API
newAdded a filter to modify created URLs before they are stored into the database.
chgJomSocial URLs for individual events are now fully SEF, instead of using event id
chgWhen set to Use Joomla router, URLs are not parsed due to change in J! 3.8
chgRemoved some possible duplicates on JomSocial URLs
chgWhen building OGP/TCards tags, default to using document description/title if not manually customized
chgNow also insert Twitter Cards on com_content category and categories pages

2017-08-09Version 4.10.0

newOffline code plugin now uses JLayouts, output can be overriden from template
chgWhen a component is using Joomla router.php, always remove the 'lang' query var from the resulting SEF URL - close #489
chgAdded a sh404sef_before_plugin_build filter before building URLs, allow fixing non-sef URLs for wrong Itemid or more
chgAdjusted Google Tag manager to latest insertion method - close #497
chgAdded protection to breadcrumb structured data when Joomla returns an empty id
chgNow also insert Twitter Cards on K2 categories
chgAdded support for mijoSEF/JoomSEF importer automatic updates
chgAdded multiple filters to routing process
chgOffline code plugin now displays information message when "Disable admin login" is enabled
bugAnalytics results are not displayed (Google api change, around mid-july 2017)
bugPossible fatal error when reading a jpg remote file dimensions

2017-06-01Version 4.9.2

bugDefault template might be selected, regardless of template assignment

2017-06-01Version 4.9.1

2017-06-01Version 4.9.0

newAdded filters on sef url creation.
chgAdded hooks for OGP and Twitter cards meta data - Allow data overrides in template.
chgReplace multiple h1 with h2 will now leave the first h1 found as h1.
chgReplace multiple h1 with h2 can now handle <h1> with classes and other attributes - close #466
chgProtect against fatal error if user deactivated shLib plugin
chgPrevent PHP notice on cron jobs on IIS servers
chgDo not apply user set aliases on POST requests
chgDefine JPATH_COMPONENT_* constants on 404 error page, to prevent com_banners to throw PHP notices, due to bug in com_banners model
chgDropped reference in sh404sefErrorPage signature, not needed anymore and cause PHP notices.
chgAdjusted Calendar selectors for analytics display to breaking changes in Joomla! 3.7
chgPrevent notice in admin if shMobile system plugin has been unpublished by user
chgNow reading contact element category if missing from non-sef URL (linked author)
chgRemoved Facebook namespaces when using sharing buttons, pages can now validate
bugVirtuemart categories URLs may end /results-1-0 with Virtuemart version > 3.2
bugReverted previous change, as not a bug: h1/h2 tags can be mixed up when replacing multiple h1 with h2
bugh1/h2 tags can be mixed up when replacing multiple h1 with h2
bugWrong Itemid used on some multilingual sites after Joomla 3.7.0/1 update
bugFixed "Insert current menu item if none", was not having any effect
bugUpdated pChart graphic library to prevent PHP 7.1+ warnings
bugPart of URL is stripped, n multilingual sites, when site is in a folder named after one of the languages, and an item title also starts with that language code
bugNotice errors on PHP 7.1 in backend in statistics display.

2016-12-20Version 4.8.2

chgAdded JomRes to list of extensions requiring extract to $_GET global variables - closes #474
chgBetter log-out URL - closes #477
chgAdjust to changes in category helper routing in Virtuemart 3.0.x, categories link on VM frontpage may be empty
chgNow searchging for OGP images directly in K2 items settings, instead of only in item contents, better OGP detection for K2
bugDo not use PRETTY_PRINT for json_encode on PHP 5.3
bugAutomatically created 301 redirect does not go to the correct URL when manually customizing multiple URLs - closes #476
bugOld, unused __404__ error page article can cause json erro in Smart search indexer if not deleted

2016-10-31Version 4.8.1

chgNow always using Full, then Intro image as OGP image, if they exist, and over automatic detection
chgReduced some database columns length
chgWorkaround for bug in J! language filter, breaks front end editing of modules
chgAdded separate URLs for logout menu item types, prevent issues if logout menu item is set to restricted access
chgSocial buttons are not displayed anymore on content featured view, when "Only canonical" option is selected
chgClearer separation between components on the "By-components" configuration tab - thanks Atelier51
bugVirtuemart: do not insert menu item alias when asked by VM, if the menu item is home page
bugBackend pagination don't show if user selected to display status bar at top of page instead of usual fixed at bottom - fixes #471
bugDo not run OGP image search on non-html document, waste of time
bugInvalid language code used if language code in URL (ie en) does not match actual first characters of full language tag (ie en-GB)
bugRegression: incorrect URLs created on multilingual sites using 4 letters language code
bugCustom Facebook Application Id is not used
bugFull article image may not be detected as OpenGraph image if there are other images on the page

2016-08-25Version 4.8.0

newAdded Itemid override per component, allows forcing an Itemid - closes #434
newAdded Structured data Corporate Contacts support (phone number, areas served, languages)
newAdded Structured data Logos support
newAdded Structured data Social profiles support
newAdded support for Twitter summary large image cards - closes #460
newAdded Facebook app id management - closes #462
newAbility to filter 404s by time period, last hour, last day,... - closes #447
newAdded automatic detection of images for OpenGraph and Twitter Cards tags - closes #445
chgMoved OGP tags to a JLayout, also adding og:image:width and og:image:height when possible, so that image appears immediately on first FB share
chgMake sure the language filter plugin is located before sh404SEF system plugin. Change in J! 3.6.1 otherwise breaks multilingual sites, adding language code at end of URL - closes #464
chgUpdated to Twitter button async widget. Also put all social widgets script loading into JLayouts, for easy overriding - closes #455
chgUpdated Facebook API calls version to 2.6 - closes #457
chgIn case of missing update keys, now redirecting back to update page with a clear message.
chgNow using Joomla SEF plugin canonical domain if set - closes #438
chgAllow Flexicontent plugin to use 'showall' parameters, same as com_content - closes #440
chgHide Community Builder searchmode parameter when it has its default value - closes #443
chgPrevent notice error when fixing hreflang on home page, on some sites
chgRemove deprecation notice on pChart library on PHP7
chgFatal error on 404 if redirect plugin is enabled and using Joomla error page. Due to change in Joomla 3.5.0. Closes #439
chgChanged regular expression to accommodate RokBox plugin changing Joomla standard HTML, breaking links to stylesheets
bugTwitter cards description are not properly cleaned, can be cut-off if they have double-quotes
bugIn backend views, language selector do nothing in multiple views
bugRequests black listed by user agent are not showing in security stats, only in log files
bugSecurity statistics not updating after Joomla default log path changed to /administrator
bugOGP and Twitter cards images URLs are not fully qualified if entered manually in backend - fixes #453
bug404 errors are not fully decoded, poor display with some languages
bugShould not record index.php prefix for 404s when URL rewriting is disabled in Joomla
bughreflang can be sometimes added to home page, even if only one language on site - closes #450
bugEntering invalid non-sef redirect URL for a 404 does not trigger an error message - closes #337
bugInvalid UTF-8 character in category name breaks configuration popup with "String could not be parsed as XML message) - closes #448
bugWhen displaying input counters in backend, javascript and css can be linked twice
bugNotice in PHP logs if attacks logging is disabled
bugshLIb database driver throws an error when trying to delete an alias or 404 with ? in it
bugWrong pagination label on non-default language 2+ pages URLs

2016-03-15Version 4.7.3

newAdded an error message for attempts to one-click update and no credentials have been entered in configuration
newRefactored meta data, OpenGraph and Twitter cards handling, so that they can be used by other tools such as AMP plugins
chgNow creating hreflang tags on homepage, when language filter doesn't (multiligual sites)
chgAdjusted error handling to PHP7
chgFatal error on 404 pages, due to to internal change in Joomla 3.5 SEF plugin
chgAccess over https, avoid mixed-content warning in site admin
chgMoved post-install message to a Joomla notification
chgAnalytics reports display now off by default, avoid warning on control panel
bugVirtuemart ask a question feature may not have the full product link, depending on menu structure
bugJoomla may not show hreflang tags on home page of multilingual site if not using URL rewriting and insert language code in default language is enabled - fixes #432
bugCan have double-slash in URLs, causing 404s, when using sef_ext.php plugins, from the old days
bugNow checking for shURL colliding with language codes (ie /en, /fr, /de)

2015-12-23Version 4.7.2

chgAdded workaround for extensions (plugins) that still use JRequest API, breaking 404 page handling
chgVirtuemart: do not create URLs in database for some search
chgInclude "Unknown origin" 404s in the "External" count on the control panel, confusing otherwise
chgAdded workaround for language filter system plugin redirecting to another language when using shurl or aliases
chgAdded more checks on shared resource installer such as shLib
chgDon't use ShlSystemFactory during install, even on a sh404SEF-enabled site, as it may be a very old install, without this method
bugWrong French translation for Internal/External 404 selectors


chgDon't reset Itemid for extensions which creates non-sef urls like ..&Itemid=&...
chgRemoved option to display share count on Twitter button (discontinued by Twitter on 15/11/20
chgMake sure Twitter cards always have a title and description, won't validate any longer otherwise
chgAnalytics reports display now off by default, avoid unrequired warning on dashboard on first install
chgshLib now using versioned, compressed js and css files
bugAppend/prepend to page title may be missing when no custom meta data/title is set
bugWe may create invalid records in the database, which generates 404 on some pages
bugOn Virtuemart multilingual sites, we may sometimes use home page Itemid instead of not enforcing any Itemid
bugVirtuemart on multilingual sites: We may not use the correct Itemid if the URL is passed as non-sef (view cart for instance)
bugVirtuemart meta data plugin missing from last release
bugIn rare situations (an item is deleted, then restored, and there are multiple visits in the mean time), the item could still generate 404 after being restored
bugNot always inserting language code in default language home page link
bugNot adding default language code in language switcher module link (regression)
bugMay have a fatal error if user disabled the shLib system plugin
bugPossible fatal error on some articles using page breaks
bugRegression: should not encode page title
bugError page not displayed if a ?format=feed or ?format=raw is added to the 404 URL


newAdded support for Google Analytics Enhanced link attribution
newReworked 404 error page display mechanism, not articles anymore, prevent showing in search and other issues. Simpler data entry, one place
newAdded support for Referrer policy meta tag
newOptional recording and displaying of source URL for each SEF URL, including where duplicates are found
newAdded filters on all views to show/hide URLs based on hits: list URLs that are most/never used
newShowing detailed statistics about shURLs: hits, date, referrer, IP, user agent and redirect target
newShowing detailed statistics about Aliases: hits, date, referrer, IP, user agent and redirect target
newShowing detailed statistics about 404s: referrer, IP, date & time, user agent
newNow showing if 404s originate from your site or from external sources
newNow give priority to meta data entered in Joomla! menu items and articles over automatically created. Page manager still has top priority
newAdded workaround for extensions incorrectly sending data to a relative URL through POST
newOption to prepend date to article URLs (/YYYY/MM/DD)
newFine grained permissions, allow granting access on each backend page individually
newAdded compatibility mode, producing Joomla URLs, but still storing them to database
chgAdded another check in case a non-sef link exists for a component that has been uninstalled
chgAdded some checks on file inclusion, in case of failed installation
chgRemoved URL rewriting setting. Now using directly the Joomla! global configuration setting instead
chgNow using a JLayout to display the 404 error page main content, allows overriding in template
chgOptimized the Pinterest sharing PNG file, from 3.9KB to 1.1.KB
chgNow testing for vmLang existence, in case of really, really outdated Virtuemart versions
chgUpdated to latest Facebook SDK loading code
chgNow clearing opcache upon installation
chgRemoved Classic Analytics mode, as all Google accounts have now been moved to Universal
chgDefault Facebook buttons to HTML5
chgAutomatic canonical when homepage/index.php is requested. Was manual before.
chgAdded control panel message center, with notifications about the site configuration and warnings
chgReturn to control panel menu link not working on Internet Explorer
chgRedesigned info messages on top of most pages, now collapsible
chgAlso override exceptions handler for 404 pages. In rare situations, we would not catch the 404s (using Joomla router, and an URL would match a menu item separator!)
chgAdded back hit counting on URLs
chgNow using bordered tables on all list, easier to read
chgBetter detection of current language, don't need Content language to be set
chgMultilingual sites: now adding language code in homepage URL to match Joomla. Compensating with a canonical to home page
chgUpdated installer code to also resist to users manually deleting some system DB tables and folders
chgAdded upgrading of aliases table when upgrading very old site missing the 'type' column
chgRemoved last use of JRequest::checktoken
chgCache remote config statically, in addition to Joomla cache, as Joomla cache can be slow if many links on a page. Closes #433, thanks redComponent
chgNow give priority to Joomla-created browser title over sh404SEF com_content page title if one exists
chgOnly remove Joomla-created canonical tag on com_content pages
chgSwitched to using alias instead of title for weblinks, avoids issues with default Joomla! .htaccess
chgAllow backslashes in custom page title
chgMove database table creation to installation script instead of sql file, safer in case user manually deletes table between updates
chgRemoved sh404SEF Facebook appId, sh404SEF not listed any more on shared links
bugIncorrect table used when deleting user data. Moved table names to constants
bugFatal error when using an extension router.php file which uses the
object format introduced in J! 3.3
bugDouble language code in rss feed URL on multilingual sites when
com_content featured view is home page and language code is not set to
be removed
bugHome page may not be recognized (and custom meta data not set) when page is accessed through tracking vars (ie utm_source, ...)
bugCustom non-sef with / are not properly saved
Fixes t908
bugError in source language file, trailing characters added to translations
bugLanguage code might be removed from uri - thanks redComponent
bugCustom canonical tag is not exported when exporting meta data to file, showing warnings when importing the file back in
bugUndefined variable when logging spammer visits caught by Project Hiney Pot
bugPathway not always overriden on 404 error page
bugSocial plugin shared URL is wrong when user specify a fully qualified URL in a custom tag
bugComponent permissions not properly saved, unusable ACL
bugTypo in layout, opacity parameter for 404 auto-redirect message not used


newImplemented json-ld Google markup for breadcrumbs
newSettings to control Virtuemart page title on products and category pages
chgWhen changing main URLs of a duplicates set, aliases are now also carried across to the new main URL, preventing manual work to redo them.
chgUpdated control panel Documentation page with up to date information
chgRestored ability to use custom template file when displaying 404 error page
chgAdded Mijoshop to the list of extensions not following Joomla 3 API. Also added some hack to account for it creating GET var when a POST request is made
chgBetter trimming of page titles, don't always remove surrounding quotes
bugAuto-redirects don't comply with the Use /index.php/ setting
bug404 errors have a leading / when stored, redirects don't work
bugWron manifest, new Virtuemart meta data plugin is present but not installed


newAdded ability to manually set canonical on home page. Used if home page can be reached through ads or remarketed links
newAdded support for Google Analytics "displayfeatures" plugin, for demographic data
newAdded plugin to create page title for Virtuemart on products and categories pages
newOptionally 301 auto-redirect 404 pages to closest similar URL (with optional message to user)
new404 page title and breadcrumb now in language strings, can be overridden
new404 error page handling: now setting the breadcrumb, avoid unwanted pages to be indexed
newAdded back some configuration options for Virtuemart products URLs: categories choices
newAdded Google sitelinks markup
newAdded Google sitename markup
newAdded option to disable Analytics collection for specific user groups
Closes #405
chgDon't create shUrls for URLs with query vars
chgNow displaying a list of menu items instead a numeric entry field to select error page menu item
chgNow exclude URLs with 'sh404sef-core-content' from similar URLs plugin results
chgLowercase URLs setting is now on by default
chgAllow array query variables to be set by URL plugins
chgFile suffix is now empty by default (previously was: .html)
chgRemoved support for Facebook channel URL method
chgRedirect non-sef to sef is off by default
chgUpdated Facebook OGP image size requirements in tooltip (now 200x200px)
chgNow turning per language page number custom string to lowercase if "All lowercase" setting is on
chgImproved Google Tag manager handing, now forced after opening body tag
chgImproved handling of languages, when default language is not setup as a "Content" language
chgBackend SEF URL creation API now also work on sites in a subfolder of web root
chgMake sure all string operations use UTF-8, in case it's not the default charset on the server
chgNow able to display sh404SEF custom 404 error page even when using Joomla! router for some extensions
chgImproved similar URL suggestions on some URL patterns
chgOpenGraph and Twitter Cards meta data now at end of , mitigate charset meta issue
chgAdded optional 'secure_url' OGP tag to help https sites Facebook sharing
chgMoved to Facebook 2.3 API version
Fixes #386
chgMinor perf. improv.: don't load Facebook SDK if there's no button on page
chgNow removes all query vars when computing Canonical URL of a J! article
chgMultilingual sites may not be able to change language on homepage if URLs have language code for default language
bugPrevious error message not removed when subsequent Save succeed on Title and meta manager
bugWe should include the "shortlink" head link tag even if new shURL creation is disabled
bugDon't link custom javascript and css when no social button is displayed on a page
bugShould not append html suffix to document type other than HTML (may cause issue with JSitemap)
bugFatal error on some old Kunena versions (not checking if KunenaRoute::$current exists)
bugCannot "Use Joomla router" for an extension on a multilingual site on J! 3.4.1+
bugJomSocial cron jobs requests may be redirect to Jomsocial homepage
bugForce Pinterest image links to be absolute
bugOn J! 3.4.1 multilingual sites, when default template is assigned per language, template may not be correct when switching back to home page language
bugNotice error when displaying shUrls manager
Fixes #403
bugCommunity builder plugin: user page URL can be empty (go to home page)


newAdded filtering of 404s and Duplicates on Meta data manager (fixes #397)
newNow using oAuth2 for Analytics authorization. Google will drop user/password login on 2015-04-20
chgAdded Twitter Cards url tag
chgOnly redirect from non-sef to sef if url has well-formed option query var (option=com_[redacted]) (fixes #388)
chgSwitched to QRCode generator, Google Chart stopping operation as of 15-04-20 (fixes #384)
chgAdded protection against missing Itemid in Virtuemart non-sef URL, may cause a notice error to be displayed
chgVirtuemart plugin: now prepending menu item to some user profile view
bugNot querying default language in backend, may result in notice error in language helper
bugNotice error with Community Builder if per user short URLs are enabled (fixes #395 - thanks Frank!)
bug404 error page may display in the wrong language if visitor doesn't have a cookie language set (ie first visit, or just switched from another language)
bugFacebook Channel URL handling was not disabled if SEF urls optimization was disabled
bugMore adjustments to new router and language filter plugin on Joomla 3.4.1: sometimes unable to switch languages (ML sites only)


chgUpdated all language files


newAdded universal Google Analytics social events tracking javascript
Fixes #373
chgRemoved useless parameters in configuration (old extensions)
chgMore adjustements to J! 3.4+ css: remove double display of configuration button at low width (phone)
chgAdjusted to CSS changes in J! 3.4.1 backend
chgRSS feeds now cannot have .html suffix, as this fools Joomla! document type detection
chgPagination links go to homepage on multilingual sites after upgrade to J! 3.4
chgReverted prefix modification
chgImproved handling of prefixes when using a component router.php and a prefix
chgAlways skip com_ajax
chgNow allowing separate Facebook Send and Share buttons, each with own settings
chgNow allowing separate Facebook Send and Share buttons, each with own settings
chgAdded Analytics connection errors information on screen, plus detailed optional logging to file
chgAdded debug information to Google Analytics querying process
bugNotice error display on configuration popup if shMobile plugin has been disabled by user
bugExporting urls from urls manager after sorting urls by duplicates displays error and fails
Fixes #394
bugWrong link in control panel when an update is available
bugStrict standards errors php 5.4+ on com_content meta data plugin
bugMissing category in virtuemart 2.x product url under some combination of menu items organization
bugNotice display when installing for the first time on a multilingual site
bugNow warning if a 404 url is redirected to a duplicate url, when using a SEF suggested by "similar urls" feature
bugUsing classic analytics id at connection even if universal analytics is selected, analytics graphics not displayed in backend
bugUpdated Jomsocial not using J! 3 API to allow login with JS module


bugRegression in 4.4.5, aliases not working


newIf article id is inserted in URL and title, select whether to add it before or after title
Fixes #361
newNow using Joomla! updater for commercial extensions. Requires J! 2.5.19+ or J! 3.2.3+
newAdded settings to extract query variables to the PHP $_GET global,
for extensions that are not Joomla! 3 compatible and still use $_GET
chgDutch language file update
chgDisabled all user-created / and index.php aliases, prevent self-inflicted homepage loops
chgRC support for Community Builder 2.x
chgUpdated array to js converter to handle systems where decimal separator is not a dot
chgAll urls are empty on multilingual site if not "All" language home
page is defined
bugAdding new content on frontend breaks on J!2.5
Fixes #364
bugType prevents some pages to refresh after closing a modal popup
bugUrls disk cache file may become corrupted when customizing a url
Fixes #359
bugFatal error upon installation following an uninstall when parameters are set to be preserved
bugUnable to get back to page 1 on kunena forum
Fixes #351
bugUnable to filter urls by language in Joomla 3
Fixes #352
bugPoorly formatted success message after manually redirecting a 404
(J! 3.x only)
bugRegression in workaround to Community Builder 1.x not compatible
with Joomla! 3 API, may break pagination


chgAdded back configuration saving betwen uninstall/install
Fixes #327
chgCanonical tag now includes leading scheme and host
See #342
bugMemcache cache driver may eat up all available memcache memory and
slow down
bugSocial buttons plugin gets published back on update (if user
manually disabled it)
bugMedium-level security issue for logged-in administrators only, on
Joomla! 2.x only, input not sufficiently sanitized
bugConfiguration for type of cache handler is not saved


bugFatal error on php versions less than 5.3, on multilingual sites


bugSome Virtuemart product details url may be blank under some
combinations of menu items linking to categories and products


newPer url Google publisher tag, in addition to the pre-existing
global publisher tag
newGoogle Analytics IP anonymization
chgMore css for Facebook buttons, handling more templates
chgClean internal caches upon installation, to avoid wrong new
versions display when switching between editions
chgAdded a workaround for bug in Community Builder, not using Joomla
API to fetch some request variables
chgHack to workaround Kunena custom routing method for some urls,
including pagination links, in Kunena 3.0.3+
chgAdded canonical url when exporting urls to file
chgMoved router encodesegments() method to a helper, avoid issues for
some extensions running onAfterInitialise event several times
chgAdded small bottom margin to social buttons, in case they wrap at
low width
bugVirtuemart product links can be wrong on multilingual sites under
some combinations of menu items direct links
Fixes #325
bugLinks to items in Joomla! fake "Uncategorised" category do not
comply with "insert menu item title" config setting
bugSocial buttons could be displayed on featured articles view even
for articles which category was excluded
bugSometimes Itemid-only links may have wrong language code in SEF
Fixes #323
bugCannot switch language when using /index.php/ and Joomla config
does not match sh404SEF config
Fixes #315
bugJoomla! language detection doesn't work anymore
Fixes #324
bugAliases for home page are saved and works, but are not displayed on
the edit url popup
bugInserted tags for social buttons are not replaced when 'Only on
canonical page' param is on
Fixes weeblr-dev/sh404sef-issues#319


newAdded Linkedin share button to social buttons list
newAdded warning messages on multilingual sites that Joomla!
languagefilter system plugin should now be enabled
newAnalytics snippets now in JLayout, can be overriden in site
newAdjust to changes in Joomla! routing API in J! 3.3
newNow checking Joomla! redirects table before declaring a 404, in
case some redirects existed prior to sh404sef usage
newSupport for Google+ authorship information
newAdded Twitter Cards support, global and per page
newAdded optional Facebook Share button to social buttons
Fixes 294
chgSimplified social buttons markup and css, better styling
chgMoved social buttons to JLayout, so that they can be overriden from
templates. Works in both J2.x and J3.x
chgPerformance: check if shurl exists only once
chgPagination doesn't work any more with Kunena 3.0.4
Fixes #310
chgBetter detection of content urls when displaying social buttons
(Twitter, Facebook, G+)
chgAdded toolbar access to configuration on all views
chgList of components to always leave as non-sef is now in remote
chgBetter 3rd-party extensions compatiblity when "using Joomla!
router" or "leaving as non-sef"
chgBetter multilingual compatiblity
chgUpdated German language files - Thanks Alex H.
chgUpdated Russian language files - Thanks Alex
chgUpdated Swedish language files - Thanks Kristian
chgUpdated language files (French, German)
chgUpdated French translation
chgIncreased tweet via account field in social plugin settings
chgCSS tweaking of social buttons
chgWarnings in Analytics manager, new in PHP 5.4
bugMay display PHP warnings rendering pagination on multilingual sites
bugDon't display \ in OpenGraph tag when page title has a $n
bugDuplicate urls may disappear from url manager display when
customizing main url
bugMissing files and folders are not displayed as errors on control
bugShowing error message upon url deletion, even though all went fine
bugWrong redirect from non-sef to sef on site using /index.php/
rewriting mode
bugFatal error when exporting meta data
Fixes #308
bugWarning displayed on some purge operations when file cache has not
been enabled yet
bugWrong path to javascript file in Analytics manager, result in
analytics not loading
bugRemote configuration not read anymore, wrong url


newAddes support for Google Tags Manager
newOne click update either through Joomla! updater or built-in
newAdded Google Analytics Universal snippet handling
chgAccount for upcoming Googlebot mobile user agent change
chgUpdated Dutch translation - Thanks JoomlaDownloads
chgUpdated Russian translation - Thanks Alex Smirnov
chgMake sure default ACL record is written to database upon
chgMake sure default ACL record is written to database upon
chgAdded back remote configuration option to configuration page
chgRemoved deprecated view code
chgMore explicit error messages when saving config, urls, duplicates
bugError message not displayed when server is not responding at all to
new version or security stats requests
bugSelect a redirect for 404 button is not working
Fixe #305
bug404 records may not be purged when using the purge button
bugUrls may not be purged when using the purge button
bugCustomizing url does not add old url to aliases list
bugVersion number of newly installed version is not always displayed
on main control panel
bugRedirect from /index.php/something to /something even if set to NOT
use mod_rewrite
Fixes #299
bugLogged in users are not allowed to view sites in offline mode
Fixes #240, fixes #297


bugIntroduced fatal bug in Joomla! versions pre-3.2 when preparing
release for Joomla! 3.2


newAutomatic 301 redirect when trying to access an existing url with
/index.php/ while url rewriting is enabled
chgJ! 3.2 backward compatibility break: ConfigModelComponent
refactoring, moving around, now requires to load a different file
chgAdded workaround for J!3.2 API backward compat break
chgAdd language information on urls created using "simple" mode, in
case it's missing and we're on a multilingual site
Fixes #216
chgLet Akeeba go through offline mode. Not as secure as could be.
chgAdded a workaround for bug in Virtuemart, creating fake request
variables, would prevent custom meta data to be inserted normally
Fixes #264
chgSkip versionning component to allow front end editing in J! 3.2+
chgStrict standards compliance, don't use JFilterInput statically
chgAdded version check to prevent method name conflict due to change
in J! 3.2 router
chgAdjustments to changes in Joomla! 3.2 API (JTable interface)
chgJoomla! 3.2 change in API
chgUpdated Pagination class to latest J! 3.1.x code
chgPagination not displayed in Joomla! 3 on some pages. Added back
HTML prev and next tags onto pagination links
Fixes #255
chgNow using consistently remote_addr.
Fixes #198
chgAdjust to Kunena deprecating kimport function, would cause fatal
chgJoomla! does not update cached values in JRequest, resulting
in incorrect input if JRequest is used to read the "task" input before
a component is rendered, if the controller.task syntax is used
chgJ3.1 changed name of items associations parameter
fixes #251
bugIncoming non-sef linking to a non-existing article is redirected to
home instead of letting Joomla! return a 404
Fixes #285
bugArticle submitted from frontend may not be stored in the proper
Fixes #291
bugManual custom url is not displayed in url manager if there is a 404
by the same name and the custom url already has duplicates
Fixes #273
bugNotice error display under some circumstances upon creation of some
Virtuemart urls
bugWrong default language read from Joomla! config, may result in
wrong language used to build sef urls, on multilingual sites
bugWrong default language detected with Joomfish on multilingual sites
Fixes #267
bugNot reading cookie path and domain to set language cookie on
multilingual sites
bugSpecifying a blacklisted IP with wildcards (*) blocks too many
Fixes #204
bugNot redirecting anymore from /index.php to /
Fixes #188
bugOnly partial analytics reports displayed in analytics manager on
Joomla! 2.5.x
Fixes #269
bugDoes not comply with LanguageFilter plugin setting "Use default
langauge" on multilingual sites
fixes #261


chgWorkaround for PHP bytecode cache systems that fail on valid PHP
chgWorkaround for backward compatiblity issue in
installer introduced in Joomla! 3.1
bugOn multilingual sites (J! 3.0+), hreflang tags are missing
bugAdded check to avoid error if sh404SEF system plugin has been
disabled by user
bugEnforcing www option does not work when site is in a subfolder


newCharacters counters are now also added to Joomla! backend pages
where page title and page description can be edited by users
newAdded characters counters on page title and page description fields
of all sh404SEF admin pages; will display recommended characters count
ranges and show remaining characters count.

2013-02-26Version 4.0.2-rc.1544

chgUpdated Bulgarian, German, Spanish, French,
Hungarian, Italian, Dutch, Romanian, Russian and Swedish translations
chgImproved canonical tag handling, to manage multiple tags that can
be inserted by Joomla! 3+ and other extensions. Added a configuration
setting to enable/disable this feature
chgProgram configuration is now overridable from remote configuration
bugFixed security issue in Open Graph implementation

2013-02-18Version 4.0.1 - Joomla! 3 compatible release candidate

chgMain control panel now only loads global visits graphic, other
infos are only in Analytics manager
chgAdded a check to similar urls plugin to prevent warnings appearing
under specific but undefined circumstances
Fixes #215
chgRemoved useless markup on control panel, under Access stats, when
Debug to log file is not activated
chgAllow aliases with % characters
Fixes #217
chgA canonical tag is now always included in com_content article
pages (removes tracking vars, print flag)
chgRemoved unused shSimpleLogger class
bugError message is not displayed when one tries to save a new SEF
identical to an existing one
bugSecurity stats are not updated correctly on main control panel
bugInstallable extension plugins are not loaded automatically
Fixes #208