NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #4577 most downloaded on Packagist
Yoast SEO for TYPO3
Last release 3 months ago
08 Jul 2026
Release timing varies
gaps range from 2 weeks to 10 months
Nearly every release is documented
notes for 57 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
69 releases · first in 2017
[BUGFIX] Optimize prominent words and linking suggestions performance, prevent prominent words to be copied when pages are copied by @RinyVT in #675
Full Changelog: 12.1.1...12.1.2
It may be possible that there are prominent words in the database that are corrupt (site=0, uid_foreign=0, tablenames='') due to copying pages, this easy query will clean this up:
DELETE FROM tx_yoastseo_prominent_word WHERE tablenames = '' AND uid_foreign = 0;
uid_foreign, tablenames and site have no TCA configuration and were dropped by the DataHandler, ending up with
their database defaults. A new ProminentWordCopyPreventionHook removes prominent word writes from the DataHandler
datamap so the copied page is re-analyzed on first use insteadfetchAssociative() instead of buffering them all in memorysetMaxResults/setFirstResultOne column per quarter.
[BUGFIX] Split up user setting field registration between 12/13 and 14 to fix exception by @RinyVT in #659
Full Changelog: 12.1.0...12.1.1
RecordCanonicalListener now mimics the url creation of core CanonicalGenerator instead of relying on TSFE->cObj
which doesn't exist anymore in TYPO3 14showWebsiteTitle is falseSiteServiceLinkingSuggestionsServiceUpdated all underlying Yoast and Wordpress libraries to the latest versions
Full Changelog: 12.0.0...12.1.0
⚠️ This release contains breaking changes. Please review the Breaking Changes section carefully before upgrading.
We're excited to announce the release of Yoast SEO for TYPO3 v12.0.0! This is a major release that brings TYPO3 14 support, powerful new analysis features, social media previews, and significant under-the-hood improvements.
⚠️ This release contains breaking changes. Please review the Breaking Changes section carefully before upgrading.
Yoast SEO for TYPO3 now fully supports TYPO3 14, ensuring compatibility with the latest version of the TYPO3 CMS.
Preview how your content will appear when shared on Facebook (Open Graph) and X (formerly Twitter) directly from the TYPO3 backend. Optimize your social sharing without leaving your editor.
A new inclusive language analysis is now available alongside the existing SEO and Readability analyses. This feature helps editors write more inclusive and welcoming content.
This analysis is disabled by default and can be enabled through a feature toggle, see the documentation.
The functionality for making requests to the frontend from the backend has been moved to a separate, reusable package: maxserv/frontend-request. This separation improves maintainability and allows other extensions to benefit from the same functionality.
The entire backend JavaScript codebase has been rewritten in TypeScript. The Yoast components are now consumed exclusively as web components, keeping the extension aligned with TYPO3 core practices and making it easier for external contributors to work on the codebase.
The previous "Hide snippet preview" option has been split into two independent toggles:
You can now hide the snippet preview without disabling the analysis (and vice versa). Disabling the analysis on a page also prevents that page from appearing in internal linking suggestions.
An upgrade wizard is provided to migrate the existing flag to the new structure, preserving current behavior for all pages.
A new feature toggle has been added to fully disable the cache on the frontend request, helping to prevent edge cases in specific environments and setups.
See the documentation for the correct feature toggle.
gu (Gujarati) and lo (Lao) locales.Please review these carefully before upgrading.
TYPO3 11 is no longer supported. Please ensure your installation is on TYPO3 12, 13, or 14 before upgrading.
The minimum required PHP version is now PHP 8.2.
ModifyPreviewEventThe ModifyPreviewEvent has been removed. It has been replaced by ModifyUrlEvent from the new maxserv/frontend-request package.
If you have custom code listening to ModifyPreviewEvent, you will need to update it to use ModifyUrlEvent instead.
Before upgrading, make sure your environment meets the new requirements:
After upgrading, run the TYPO3 upgrade wizards to migrate the legacy "Hide snippet preview" flag to the new split flags.
maxserv/frontend-request for handling frontend requests
ModifyPreviewUrlEvent event - use ModifyUrlEvent from maxserv/frontend-request insteadPreviewHandler AJAX handlerPreviewService and related content extractors (ContentParser, UrlContentFetcher, HttpOptionSetter,
etc.)SnippetPreviewUrlGenerator - replaced by SnippetPreviewRequestDataGeneratorJavascriptService and JsonConfigService - replaced by JsonTranslationsServiceYoastEnvironmentServiceBackendYoastConfig hook - replaced by BackendYoastTranslationsUsePageCache and AfterCacheableContentIsGeneratedListener - replaced by new event listenersPagesWithoutDescriptionDataProvider dashboard widget (use core TYPO3 widget instead)RecordLinksViewHelper - replaced by core viewhelper be:link.editRecordPagination and PaginationService - replaced by core SlidingWindowPaginationBuild/typescript/FacebookPreview - dedicated Facebook/Open Graph preview widgetTwitterPreview - dedicated Twitter card preview widgetAbstractSocialPreview - base class for social preview implementationsAbstractLabeledFormElement - base class for labeled form elementsFrontendServiceInterface with FrontendService (v13+) and LegacyFrontendService (v12)HmacGeneratorServiceInterface with HmacGeneratorService (v13+) and LegacyHmacGeneratorService (v12)StandaloneViewServiceInterface with StandaloneViewService (v13+) and LegacyStandaloneViewService (v12)FrontendRequestListener event listener for frontend request handlingPageCacheIdentifierListener and PageCacheListener for cache handlingSnippetPreviewRequestDataGenerator for generating preview request dataSaveScoresService for handling score persistenceSiteService for site-related operationsRequestData DTO for structured request data handlingPageParser/BodyParser and TitleConfigurationParser for parsing page contentModifyPageLayoutContentListener event listener (replacing the removed backend class)TableNames class for centralizing database table name definitionsyoastSeoDisableAllCachesOnPreviewRequest feature toggle that disables all TYPO3 caches for validated Yoast
frontend requests (snippet preview, analysis, crawler) by setting the noCache request attribute, ensuring the
analysis always reflects the current page content. Disabled by default; only Yoast requests are affected.inclusiveLanguage feature toggle to add an inclusive language check to the analysis, disabled by default.EventListener namespaceAbstractAbstractListener to AbstractBuilderListenertx_yoastseo_hide_snippet_preview into two independent options: tx_yoastseo_disable_analysis (disables
readability and focus-keyword scoring, clears existing scores and prominent words, prevents the crawler from indexing
the page) and tx_yoastseo_hide_snippet_preview (hides only the SERP snippet preview). Upgrade wizard copies existing
values to the new field so current behavior is preserved.ext_localconf.php - removed IIFE wrapper, modernized hook registrationtx_yoastseo_prominent_word database performance:
stem_lookup and page_lookup indexes to eliminate full table scans in linking suggestions queriesLinkingSuggestionsService to operate on distinct records instead of raw rowsgetProminentWords() with grouped IN() clausesProminentWordsService with a single bulk insertplugin.js, yoastModal.js, yoastModalEs6.js)Resources/Private/Layouts/Legacy.html)Resources/Private/Templates/Crawler/Legacy.html)PagesWithoutMetaDescriptionWidget template (functionality moved to core TYPO3)Build/phpstan/phpstan.cms11.neon)Extra database indexes for tx_yoastseo_related_focuskeyword and tx_yoastseo_prominent_word to speed up the queries for retrieval (thanks to @helsner )
tx_yoastseo_related_focuskeyword and tx_yoastseo_prominent_word to speed up the queries for retrieval (thanks to @helsner)currentcolor to fix both dark and light mode in TYPO3 13 (thanks to @bmoex)translations and supportedLanguages are added to the YoastConfig variable within the Crawler module to fix the crawling process
translations and supportedLanguages are added to the YoastConfig variable within the Crawler module to fix the crawling processload event listener for setting the seo title placeholder, this is now executed immediatelyen_GB if no backend locale is found to prevent missing translationstypo3/tailor to dev dependencies to fix automatic publishing to TERAdded ignorePageTypeRestriction to the tx_yoastseo_prominent_word TCA to prevent page copy problems (thanks to @chrissonntag )
ignorePageTypeRestriction to the tx_yoastseo_prominent_word TCA to prevent page copy problems (thanks to @chrissonntag)Replaced the urlToCheck hook with a new PSR-14 ModifyPreviewUrl event
urlToCheck hook with a new PSR-14 ModifyPreviewUrl eventBuild directorytx_yoastseo_hide_snippet_preview to the SEO tabCornerstone form element and the Dashboard backend modulesaveScores and prominentWords have the correct JSON header nowmoduleData within the request object for displaying the snippet preview
f:image
TypoScriptStructuredDataProvider to add structured data to the page, configured with TypoScript (premium functionality)
TypoScriptStructuredDataProvider to add structured data to the page, configured with TypoScript (premium functionality)JavascriptModules.php to JavaScriptModules.phpFull Changelog: 10.0.0...10.1.0
Removed DbalService which was used to support older doctrine/dbal versions for TYPO3 10
DbalService which was used to support older doctrine/dbal versions for TYPO3 10ArrayPaginator which was used to support TYPO3 10Overview backend module
EXTCONF the filters are now registered through the Services.yamlOverviewDataProviderInterface as a replacement of the array configurationDataProviderRequest DTO objectddev composer-install-dashboard $VERSION and ddev composer-remove-dashboard $VERSION commands to simplify testing dashboard widgetsddev composer-update-all $VERSION to update all composer dependencies to the latest versionPrevent undefined array key warning within LinkingSuggestionsService
LinkingSuggestionsServicewebsiteTitle of site configuration within snippet preview, previously
this was only taken from site languages instead of the site itselfShow warning on linking suggestions when the language cannot be retrieved from the content element, use the default language in case "All Languages" i
hasSitemapFields now correctly returns the sitemapFields instead of
yoastSeoFieldsMigratePremiumFocusKeywordsaccess from user,group to user 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 FocusKeywordAn
extended-list-widget.min.css within PageOverviewWidgetdoctrine/dbal 2.10 support by adding DbalService which checks for the
TYPO3 major version, if 10 then use the old fetch methodsAPI for overview_filters has changed, instead of getData providers should have a getResults(array $pageIds) method (see OverviewDataProviderInterface)
overview_filters has changed, instead of getData providers should
have a getResults(array $pageIds) method (see
OverviewDataProviderInterface)get_focus_keyword hook, was not used anymoresys_redirectlegacy actions for CMS10ext_localconf and ext_tables.php
TYPO3_MODE checksConfigurationUtility which provides the default configuration
and nodes for the formEngine andYoastConfig javascript and backend CSS into one
BackendYoastConfig hookSnippetPreviewService which both PageLayoutHeader and
SnippetPreview use to render the snippet previewSnippetPreview by removing unnecesary code and raw htmlPageLayoutHeader, moved all html to separate fluid template,
removed AbstractPageLayoutHeader and PageLayoutHeaderServiceOverview now needs a valid page selected from the tree,
this is to retrieve the languages from the currently selected siteAdditionalPreviewData, removed old methods to check for
getWebsiteTitle (always available now)linkingSuggestions.js from dist.gitattributesNew feature to automatically activate Yoast SEO functionality on custom records
grunt directory.Build directoryResources/Public/IconsGithub 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
x-yoast-title-config (for some reason)
cannot be read from the frontendPreviewServiceDeprecated extension name usage within ext_tables.php
EXTCONF
allowedDoktypes missingFocusKeywordAnalysis.phpSnippetPreview and PreviewServiceBreadcrumbStructuredDataProviderYoastUtilityStructuredDataProviderManagerFully updated the documentation
getPreviewPageId now always returns an integer (used for custom records
analysis)constants.typoscriptPageLayoutHeader when you select "All Languages" in CMS11
is now gonebranch-alias is updated.gitattributes is updated to exclude more files/directoriesmin-height to the preview container to prevent (most of the) layout
shifting while preview is loadingadditionalGetVars are now url-decoded before generating the preview uri (
used for custom records analysis)All AJAX requests are now done through the Backend AjaxRoutes
EXT:seopages_language_overlay is removedurlToCheck hook for PageLayoutHeader which was introduced by
moving the getUriToCheck, this is now only available for UrlService (as it
was before)YoastConfigInlineJs hook to make it possible to add to the YoastConfig JSON
from multiple classeswidget.paginate viewhelper call with within the Overview
functionality with the Pagination API, added backport classes for CMS9PageLayoutHeader hook by introducing AbstractPageLayoutHeader
and PageHeaderService to save generated informationPageLayoutHeader because all AJAX
requests are now done through Backend AjaxRoutesgetUriToCheck method to UrlServicelinkingSuggestions javascript from extension, unused and caused an
extra 2.5MB on the extension sizefalse$invert functionality within stripTagsContent in
PreviewServicebreak to continue within StructuredDataProviderManager to
prevent only first provider rendering from cachetype=noneTYPO3_MODE=FE checks added to the pageRenderer hooks to prevent errors in
other extensionsworker.js to Javascript buildadditionalGetVars are working again for CMS8 (used for record analysis)
git keyword within content reducer to avoid javascript
console errorslocale 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
attributesRemoved XSS possibilities within snippet preview and structured data
twitter:card is now rendered for CMS8
twitter:card is now rendered for CMS8-1) have a fallback to language id 0
nowurltoCheck hook works again, regression fix as the url-generation had been
moved to AjaxControllerPassing through the completely generated uri as an uriToCheck parameter has been removed, url generating now happens within AjaxController based on pa
uriToCheck parameter has
been removed, url generating now happens within AjaxController based on page
and language parameterPossibility to use stdWrap within sitemap typoscript
Excluded some more unnecessary files and folders from the TER release
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 pag
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
The script adding additional information for the preview now checks if the getWebsiteTitle method exists before calling it. This prevents errors in TY
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
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 a
Removed hardcoded links to typo3conf/ext folder
Added a placeholder to seo_title field to show the user what the value will be if no specific SEO title is set
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.ph…
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
Nothing published for this version
Visually updated snippet preview to match latest changes on Google.
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['yoast_seo']['allowedDoktypes'] in
stead of TypoScript. It will still have a fallback to the old TypoScript
configuration. (#283)/, the absolute URL (which is
needed by the analysis) will now be based on the current
domain. #279$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['yoast_seo']['allowedDoktypes'], the
doktypes will always be available when defining which fields in the page
properties. (#283)Added configuration to exclude certain doktypes in the structured data output for breadcrumbs
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
Added possibility to view snippet preview on disabled pages.
Added support for TYPO3 CMS 9LTS
The sitemap will now also show mountpoints and other expected pages and will not show pages that are not available.
The update of YoastSEO.js caused some errors that needs to be investigated more. For now we reverted the update of YoastSEO.js
Error when creating a page via the context menu is fixed now
Fixed missing links in documentation to Sitemap XML documentation
Added documentation for Sitemap XML feature
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
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.
Before showing the snippet preview in the Page module, we will now check if the user has the permissions for the right backend module
You can now set fallback images for social sharing again
Possibility to integrate Yoast SEO for TYPO3 in records of third party plugins
Remove title prepend and append when saving the title in the snippet preview.
Added translations for backend fields
Added possibility to hide the analysis in Page module in your user settings
Fixed bug with merging other page fields when uploading social image
For older changelogs, check the releases on GitHub
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →