This changelog is according to Keep a Changelog.
All notable changes to this project will be documented in this file. We will follow Semantic Versioning.
- Dropped support for TYPO3 10
- Dropped support for PHP 7
- Removed
DbalService
which was used to support olderdoctrine/dbal
versions for TYPO3 10 - Removed
ArrayPaginator
which was used to support TYPO3 10 - Changed the structure of the overview filters for the
Overview
backend module- Instead of registering it in the
EXTCONF
the filters are now registered through theServices.yaml
- Extra methods have been added to the
OverviewDataProviderInterface
as a replacement of the array configuration - DataProviders are now initialized with a new
DataProviderRequest
DTO object
- Instead of registering it in the
- Support for TYPO3 13
- Upgrade wizard to migrate the dashboard widget "Pages without meta description" to the core widget
- Update ddev configuration with latest changes from https://github.com/a-r-m-i-n/ddev-for-typo3-extensions
- Added
ddev composer-install-dashboard $VERSION
andddev composer-remove-dashboard $VERSION
commands to simplify testing dashboard widgets - Added
ddev composer-update-all $VERSION
to update all composer dependencies to the latest version
- Added
- Prevent undefined array key warning within
LinkingSuggestionsService
- Missing label of the tx_yoastseo_prominent_word table
- Removed exclude=true from tx_yoastseo_prominent_word fields, table already has hideTable
- Use
websiteTitle
of site configuration within snippet preview, previously this was only taken from site languages instead of the site itself
- Updated mentions of the premium extension within the documentation
- Show warning on linking suggestions when the language cannot be retrieved from the content element, use the default language in case "All Languages" is selected
- Added extra checks within the metatag generators in case fields do not exist (opengraph, twitter, robots)
hasSitemapFields
now correctly returns thesitemapFields
instead ofyoastSeoFields
- Filter the columns to import from the old premium database table before inserting in the new table within
MigratePremiumFocusKeywords
access
fromuser,group
touser
within the configuration for backend modules (Configuration/Backend/Modules.php
)
- Content Security Policy issues in CMS12 by adding extra parameter within BackendYoastConfig and removing unnecessary inline code within FocusKeywordAnalysis.html
- Removed loading of
extended-list-widget.min.css
withinPageOverviewWidget
doctrine/dbal
2.10 support by addingDbalService
which checks for the TYPO3 major version, if 10 then use the oldfetch
methods- Loading state of internal linking suggestions when the bodytext is empty (e.g. new content element)
- Avoid exceptions because of broken showitem tt_content types
- PHP warnings within several Form classes due to non-existing doktype index within databaseRow array
- Favicons with relative urls or urls with a port
- Caught InvalidArgumentException within BreadcrumbStructuredDataProvider when the current site language does not exist
- Dropped support for CMS9
- API for
overview_filters
has changed, instead ofgetData
providers should have agetResults(array $pageIds)
method (seeOverviewDataProviderInterface
) - Removed
get_focus_keyword
hook, was not used anymore
- Support for CMS12
- New feature to automatically activate Yoast SEO functionality on custom records
- Upgrade wizard for migrating premium redirects to
sys_redirect
- Features from the premium version:
- Related keyphrases with their own synonyms
- Insights to show prominent words on a page
- Internal linking suggestions within content elements based on the prominent words
- Crawler backend module to update Yoast data for complete sites
- Orphaned content view within the Overview module
- Advanced robots: nosnippet, noimageindex, noarchive
- Typoscript functionality for Structured Data
- Dashboard widgets for Orphaned content and pages without meta description
- Upgrade wizards for migration premium focus keywords and redirects
- Introduced custom ModeSwitcher to create a different Mobile/Desktop switcher within the preview
- Restructured backend modules to work with CMS10, CMS11 and CMS12. Introduced
legacy
actions for CMS10 - Simplified
ext_localconf
andext_tables.php
- Removed
TYPO3_MODE
checks - Introduced
ConfigurationUtility
which provides the default configuration and nodes for the formEngine and - Merged adding the
YoastConfig
javascript and backend CSS into oneBackendYoastConfig
hook
- Removed
- Introduced
SnippetPreviewService
which bothPageLayoutHeader
andSnippetPreview
use to render the snippet preview - Optimized
SnippetPreview
by removing unnecesary code and raw html - Simplified
PageLayoutHeader
, moved all html to separate fluid template, removedAbstractPageLayoutHeader
andPageLayoutHeaderService
- Simplified all the FormEngine node classes
- The backend module
Overview
now needs a valid page selected from the tree, this is to retrieve the languages from the currently selected site - Updated
AdditionalPreviewData
, removed old methods to check forgetWebsiteTitle
(always available now) - Updated dev-dependencies to latest (usable) versions and fixed CI build
- Removed old
linkingSuggestions.js
fromdist
- Removed upgrade wizards for old canonical and seo title fields
- Simplified
.gitattributes
- Updated and removed old grunt configuration, fixed sass build
- Premium backend module
- All references for premium including all related javascript modals
- Dropped support for PHP <7.4
- New feature to automatically activate Yoast SEO functionality on custom records
- All javascript related build configuration (grunt, webpack) has been moved to the
grunt
directory - All build related files (phpstan, phplint, php-cs-fixer) has been moved to the
.Build
directory - Removed ext_icon.png, Extension.svg already present in
Resources/Public/Icons
- Updated all code with typed properties and arguments, minor cleanups
- Github CI pipelines by adding the correct "allow-plugins" to composer.json
- Lists within the Overview module now take the "DB Mounts" of a user into account
- Optimized pagination of Overview module
- Fixed PHP8 error when the metatag
x-yoast-title-config
(for some reason) cannot be read from the frontend - Added extra try-catch block to catch guzzle exceptions within
PreviewService
- Path to the Yoast Backend CSS for the new composer mode
- Support for new TYPO3 composer mode
- Replaced javascript React classes with functional components
- Updated a lot of npm packages
- Updated documentation structure
- Adjusted analysis calls when there is more than 1 related keyphrase due to bug in "yoastseo" npm package
- PHP8 fixes:
- Prevent 'undefined array key' warnings with PHP8 when
EXTCONF
allowedDoktypes missing - Warning within
FocusKeywordAnalysis.php
- Notice exceptions within
SnippetPreview
andPreviewService
- Prevent 'undefined array key' warnings with PHP8 when
- Ignore hidden pages within
BreadcrumbStructuredDataProvider
- CGL issue within
YoastUtility
- Wrong PHP array Syntax within StructuredDataProvider documentation
- Deprecated extension name usage within ext_tables.php
- Loading issues with the title and description progress bar
- Display issue with the title progress bar within CMS11
- Usage of deprecated cache name within
StructuredDataProviderManager
- PHP8 Support (for CMS11)
- Fully updated the documentation
getPreviewPageId
now always returns an integer (used for custom records analysis)- Removed old include of
constants.typoscript
- Fatal error from
PageLayoutHeader
when you select "All Languages" in CMS11 is now gone - Composer
branch-alias
is updated .gitattributes
is updated to exclude more files/directories- Added
min-height
to the preview container to prevent (most of the) layout shifting while preview is loading additionalGetVars
are now url-decoded before generating the preview uri (used for custom records analysis)
- Dropped CMS8 support
- All AJAX requests are now done through the Backend AjaxRoutes
- Canonical and XmlSitemap functionality has been removed, provided by
EXT:seo
- Support for
pages_language_overlay
is removed
- Dropped the
urlToCheck
hook forPageLayoutHeader
which was introduced by moving thegetUriToCheck
, this is now only available forUrlService
(as it was before) - Without a meta description, only a placeholder is being shown in the snippet preview. Previously content from the page was being shown, but this hurts the analysis.
- CMS11 support
- Introduced strict typing and return-types to all classes
YoastConfigInlineJs
hook to make it possible to add to the YoastConfig JSON from multiple classes- Replaced the
widget.paginate
viewhelper call with within the Overview functionality with the Pagination API, added backport classes for CMS9 - Placeholders for the Premium functionalities "Insights" and "Advanced robots"
- Updated underlying yoastseo javascript libraries
- Restructured
PageLayoutHeader
hook by introducingAbstractPageLayoutHeader
andPageHeaderService
to save generated information - Removed RouteEnhancerError check within
PageLayoutHeader
because all AJAX requests are now done through Backend AjaxRoutes - Moved
getUriToCheck
method toUrlService
- Updated Premium information within backend module and all modals
- Removed
linkingSuggestions
javascript from extension, unused and caused an extra 2.5MB on the extension size - Huge cleanup of whole extension
- Check if the content returned by the HTTP request for the snippet preview is not
false
- Removed unused
$invert
functionality withinstripTagsContent
inPreviewService
- Removed semicolon from generated LD+JSON
- Changed
break
tocontinue
withinStructuredDataProviderManager
to prevent only first provider rendering from cache - Set TCA fields without a database column to
type=none
TYPO3_MODE=FE
checks added to the pageRenderer hooks to prevent errors in other extensions- Re-added
worker.js
to Javascript build - php-cs-fixer configuration
- additionalGetVars are working again for CMS8 (used for record analysis)
- Removed accidental
git
keyword within content reducer to avoid javascript console errors locale
extraction, which is used to determine the language for analysis, now works for locales with a hyphen (e.g.en-US
) and for html tags with extra attributes
- Removed XSS possibilities within snippet preview and structured data
twitter:card
is now rendered for CMS8- Records with language setting "All" (
-1
) have a fallback to language id0
now urltoCheck
hook works again, regression fix as the url-generation had been moved toAjaxController
- Minor updates in various javascript-dependencies
- Passing through the completely generated uri as an
uriToCheck
parameter has been removed, url generating now happens within AjaxController based on page and language parameter
- Possibility to use stdWrap within sitemap typoscript
- Regular expression to parse body content is optimized
- The default favicon.ico is now loaded on subpages
- The preview page id for translated records (like EXT:news) is now correctly set
- Excluded some more unnecessary files and folders from the TER release
- Changed comment for TER release and mention this changelog
- Excluded unnecessary files and folders from the TER release so it is not to big to publish
- Added missing extension key for TER release script
- If your site is secured with basic auth, we have you covered now. You can set the username and password in the settings so you are able to analyse pages that are secured by basic auth. Please be careful with adding credentials to your repository!
- Special characters in the title of a page are now rendered correctly in the snippet preview
- Added automatic deployments to the TYPO3 Extension Repository
- A warning is added to the documentation that the Sitemap of EXT:yoast_seo should only be used in TYPO3 v8.
- It should not matter if a backend user has backend access to the page which is used to preview. This is mainly when using Yoast SEO for records other than pages and the detail page itself is not accessible for the backend user.
- The script adding additional information for the preview now checks if the getWebsiteTitle method exists before calling it. This prevents errors in TYPO3 v9 as this method is not availalbe there.
- Cast value of cookie to a string to prevent errors in log
- Make sure both strings and integers can be used when setting allowed doktypes
- Use the site title of the site configuration when this property is set.
- Removed usage of $_EXTKEY in ext_tables.php to prevent other extensions to crash.
- Changed the link to TypoScript file in documentation
- The JSON-LD tag will only be rendered when structured data is available
- Make sure the path to the backend CSS is always available to show a modal. This should fix the problem of a not being able to edit a content element after updating to 7.0.2
- Removed hardcoded links to typo3conf/ext folder
- Fixed fontsize of text width measurement to ensure we get same calculations as in the WordPress plugin of Yoast SEO
- Added a placeholder to seo_title field to show the user what the value will be if no specific SEO title is set
- Removed negative margin to avoid issues with other plugins
- Updated dependencies
- When changing tabs in the page properties, tje preview keeps working
- We removed the possibility to set the doktypes that needs to be analysed from within TypoScript. The doktypes are needed during the TCA setup and by using TypoScript some installations did crash when no database connection was already in place. The feature was never documented but it was possible so this is marked as a breaking change. Please set your allowed doktypes in your ext_localconf.php as described in the documentation.
- A DDEV setup is now included in the repository to make it easy to contribute to this project and check the results in TYPO3 v8, 9 and 10. We added some information in the documentation as well.
- To be able to alter the URL that should be analysed, we introduced a hook after the link is generated. With this hook, you have the possibility to add your own logic to determine which URL to analyse. More information can be found in the documentation.
- There was a library included which was not used anymore so we removed the dependency to the nimut/testing-framework package.
- Moved from Travis to GitHub actions for the CI process
- Removed include of empty TypoScript file which caused errors in TypoScript Object Manager when installed in non-composer-mode.
- Add missing return true to executeUpdate function in CanonicalFieldUpdate.php.
- The canonical and title fields are now rendered correctly in frontend again in TYPO3 v8
- Removed wrong information about usage of EXT:realurl in the documentation
- Fixed issue in output of structured data that caused warnings when more inline javascript was added to the frontend.
- The canonical link in TYPO3 v8 is now checking the right GET parameters while building the canonical
- We fixed the error in the Upgrade Wizard in CMS 9 and 10.
- You can use Yoast SEO now with TYPO3 v10 LTS. We did the update without losing support for TYPO3 v8. So this update is available for TYPO3 v8, v9 and v10.
- Added word form support for Dutch (Yoast library)
- Added the transition word assessment for Hungarian (Yoast library)
- Updated Snippet Preview layout (Yoast library)
- Visually updated snippet preview to match latest changes on Google.
- Favicons visible in mobile snippet preview
- Added proper error message when server is not able to access the page it wants to analyse.
- You can set the doktypes that Yoast should analyse now by
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['yoast_seo']['allowedDoktypes']
in stead of TypoScript. It will still have a fallback to the old TypoScript configuration. (#283) - Altered the documentation a little bit.
- Restored the compatibility with PHP 7.0 (#266)
- Prevent caching of page when analysing a page that is disabled. (#272)
- When the base in site configuration is only
/
, the absolute URL (which is needed by the analysis) will now be based on the current domain. #279 - Made sure that if you set the allowed doktypes via
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['yoast_seo']['allowedDoktypes']
, the doktypes will always be available when defining which fields in the page properties. (#283) - The right URL to analyse the content is now generated when you have a multi-site setup
- Updated Yoast libraries
- Added configuration to exclude certain doktypes in the structured data output for breadcrumbs
- Fixed problems with overview module in CMS8
- Made sure the extension also works with PHP 7.0
- Resolved problems with the upgrade wizard in CMS8
- Removed message in console about translations
- Fixed styling issues with modal in page module
- Preview URL generation in page module is now only done on allowed doktypes making sure you don't get an error on the not allowed doktypes.
- Basic schema.org integration helping you to give structured data to search engines. In this basic version, we will help you with your breadcrumbs and your general site information.
- Possibility for extension developers to create their own schema.org data providers
- Focus keyword is now renamed to Focus keyphrase. You can find more information about the difference on https://yoast.com/difference-between-keyword-and-keyphrase/
- All latest features now available for TYPO3 CMS v8LTS and v9LTS
- New single H1 assessment to check if only one H1 is used within the text
- For various languages, we’ll now filter out function words that precede the keyphrase in the title when analysing your title. This means that if you use words like [the], [on] or [what] before your keyphrase in the title, it won’t affect your score.
- The keyword density assessment now takes the length of the focus keyphrase into account, because it can be much harder to use a longer keyphrase in your text. In this new version, you’ll need to use your longer keyphrase less often in the text than a shorter keyphrase to get a green bullet.
- When you have no outbound links on your page, you will get a red bullet instead of an orange one.
- Check if your keyphrase is used in the alt attributes of your images.
- All the technology behind the integration is rewritten so we are future proof and can handle new updates of the Yoast SEO libraries.
- Fixed problem with analysing pages when using a quote in your focus keyword
- When you have larger pages to analyse it could happen in previous versions that your browser crashed. Because we have rewritten the technology to analyse your content, your browser should not crash on large amounts of content anymore.
- Added possibility to view snippet preview on disabled pages.
- Add check if route-enhancers are configured.
- We fixed some multi-domain and SSL related bugs.
- Fixed HTML markup in modals in the page view.
- The sitemap will now also show mountpoints and other expected pages and will not show pages that are not available.
- Fixed problem with RealURL auto configuration that might override earlier set configuration.
- Added support for TYPO3 CMS 9LTS
- In the v4.x branch, we dropped support for 7LTS and 8LTS. The v3.x will still support 7LTS and 8LTS
- The update of YoastSEO.js caused some errors that needs to be investigated more. For now we reverted the update of YoastSEO.js
- Fixed error about wrong value hidden when saving a page
- Error when creating a page via the context menu is fixed now
- Fixed the last_mod date for page records of the sitemap.xml
- Updated YoastSEO.js to version 1.38.1
- Fixed missing links in documentation to Sitemap XML documentation
- Added documentation for Sitemap XML feature
- Updated YoastSEO.js to version 1.36.0
- We removed the configuration for EXT:news and EXT:cal. It worked for people with these extension installed, but for several other people it was giving errors and warnings. If you are using EXT:news or EXT:cal, please see our manual to get info on how to configure EXT:news or EXT:cal to use Yoast SEO for TYPO3.
- A feature a lot of people been waiting for: a sitemap.xml feature. Please check the manual how to configure it for your situation.
- For older TYPO3 versions, we added a PNG icon for the extension.
- We filter out script and style tags in the content for the snippet preview so you won't see any inline JavaScript or CSS anymore in your snippet preview.
- Updated YoastSEO.js to version 1.35.5
- We did some cleanups in the TypoScript configuration
- Added some template for issue and pull request creation on GitHub
- Updated license with additional terms
- It is now possible to have quotes in your title or description without getting warnings.
- When you have a multi language site, the preview URL of your translation will now be determined correctly.
- When you configure Yoast SEO for TYPO3 on your own records, it is now possible (but not recommended) to have the title field on another tab as the snippet preview.
- A stupid mistake: the overview of pages without description was actually checking if a SEO title was filled. We fixed that!
- We added some database fields to prevent errors in the database migration tool.
- Also for translated pages the og:image and twitter:image is working correctly now.
- The module icons are now also working correctly in Internet Explorer
- You can now mark a page as cornerstone content. Cornerstone content have more strict analysis because it are the most important pages on your website.
- Added documentation how to set fallback social images based in multisite setups
- Updated backend modules and added Premium information
- Added some missing backend labels
- Before showing the snippet preview in the Page module, we will now check if the user has the permissions for the right backend module
- Fixed some linting issues causing some CI processes to fail
- You can now set fallback images for social sharing again
- Fixed TypoScript config to make it easier to override width and height of images for social sharing
- Possibility to integrate Yoast SEO for TYPO3 in records of third party plugins
- Added integration with EXT:news
- Render more social metatags
- Backendmodule is split up in multiple modules to have a more clear menu and the possibility to add new modules quit easily.
- Changed way of defining metatags from template based to TypoScript to make it possible to use the core features to render metatags.
- Show score of analysis in icon and text for accessibility reasons
- Prepared several fields to be named the same as it will be in CMS9.
- Updated YoastSEO.js to version 1.29.0
- The title prepend and append will not be saved in the databased anymore when saving the SEO title of the field.
- Fixed syntax of Twitter cards
- Remove title prepend and append when saving the title in the snippet preview.
- Added translations for backend fields
- Updated YoastSEO.js to version 1.28 which contains several enhancements. The most important is "The upper boundary of the meta description length has been changed from 156 to 320 characters"
- We now make sure you can't insert a too long title and description for your Twitter cards.
- TypoScript is now always loaded at the right time
- Added possibility to hide the analysis in Page module in your user settings
- It is now possible to disable the redering of SEO tags by the Yoast plugin in frontend on a specific page
- Add language selector in backend module so you can switch languages in the analysis
- We improved the notifications when something went wrong analysing the content. It will close automatically after 5 seconds now and will give you more detailed information.
- Don't use default rendering of title tag from TYPO3 when the Yoast plugin is enabled
- Cleanup class PageMetaRenderer
- Added missing SEO-Title field in Page Language Overlay
- Disable snippet preview in backend, if plugin is disabled at page
- Fixed bug with merging other page fields when uploading social image
- Disable snippet preview does now also work in localized pages
For older changelogs, check the releases on GitHub