SEOmatic
Version 4.0.48
April 10, 2024
Added
- Ensure that
getTransformByHandle()
is passed a string
Version 4.0.47
April 10, 2024
Added
- Fix regression of
getAssetTransforms()
->getImageTransforms()
Version 4.0.46
April 10, 2024
Added
- Added the ability to choose the Asset Transform to apply to images in the sitemap (#1407)
Fixed
- Fixed a regression in
extractTextFromField
that could cause it to not render properly by being more explicit, looking only for arrays orCollections
inisArrayLike()
(#1441) - Fixed an issue where the
typeId
coming in from editing the Content SEO settings was a string, when it needed to be cast to an integer (#1442) (#1368) - Fixed an issue where the Copy Settings From menu didn't work correctly for multiple entry types (#1368)
Version 4.0.45
March 22, 2024
Fixed
- Addressed an issue where if SEOmatic was set to extract text or keywords from a relation field that was eager loaded, it would extract the serialized value of the field instead of the actual text (#1415)
Version 4.0.44
March 14, 2024
Fixed
- Fixed a regression that would throw an exception when attempting to save the
security.txt
template (#1435)
Version 4.0.43
March 8, 2024
Changed
- Add
PerplexityBot
to the defaultdisallow
list inrobots.txt
, as there's no benefit to allowing it to index your site - Allow locales to be in the format
language[_territory]
such that the territory is optional - Ensure that
security.txt
templates always end with a new line (#1429)
Fixed
- Fixed an issue where a trailing slash would be added to a paginated URL that uses URL parameters and
addTrailingSlashesToUrls
wastrue
in the General config (#1401) - Fixed an issue where clicking the SEOmatic CP nav item would result in a 403 exception if the current user didn't have permission to view the SEOmatic dashboard (#1410)
- Fixed an issue where an exception could be thrown when generating a sitemap with assets, and the field mapping was empty (#1425)
- Fixed an issue where the
@id
in themainEntityOfPage
JSON-LD wouldn't be correct if theidentity
andcreator
were not the same (#1431)
Version 4.0.42
February 20, 2024
Fixed
- Fixed an issue where an exception could be thrown due to a bad commit
Version 4.0.41
February 20, 2024
Added
- Added the ability to generate a News Sitemap for any Section
- Added an SEOmatic Debug Toolbar Panel setting to Plugin Settings → Advanced that lets you control whether the SEOmatic Debug Toolbar panel is added to the Yii2 Debug Toolbar (if it is enabled)
- Updated to schema.org v26.0, fixes (#1420)
Changed
- Completely revamped the documentation to hopefully make it more accessible & useful (thanks to Matt Stein @ Adjacent)
- PHPstan code cleanup
Fixed
- Fixed an issue that would cause assets in Neo blocks to not appear as images in the sitemap
- Fixed an issue that would cause assets in SuperTable blocks to not appear as images in the sitemap
- Fixed an issue with missing classes in
Sitemap
helper - Fixed an issue that would cause text in Neo blocks to not get extracted
Version 4.0.40
February 13, 2024
Fixed
- Fixed a regression where the
robots
tag would be set tonone
for CP requests, which is incorrect, because GraphQL and meta container endpoints are CP requests (#1414)
Version 4.0.39
February 9, 2024
Added
- Add
phpstan
andecs
code linting - Add
code-analysis.yaml
GitHub action
Changed
- PHPstan code cleanup
- ECS code cleanup
Fixed
- Fixed an issue where
DynamicMeta
didn't properly take into account thatrobots
can be a comma delimited list of values now (#1399) - Fixed an issue where a
robots
setting ofnone
ornoindex
in the Content SEO settings make it impossible to override therobots
setting in an SEO Settings field (#1399) - Added the unused
static
to the Tailwind CSSblocklist
to avoid a name collision with a Craft CSS class (#1412) - Added
webp
andgif
as allowed social media image formats now that the social media sites accept them, and guard against no transform existing (#1411)
Version 4.0.38
January 22, 2024
Changed
- Updated docs to use node 20 & a new sitemap plugin
Fixed
- Fixed overly large debug toolbar pane response size due to repeating inline SVG icons
- Ensure that CP requests and Tokenized requests have
robots
tag & header set tonone
(#1394)
Version 4.0.37
December 12, 2023
Added
- Added a
EVENT_INCLUDE_SITEMAP_ENTRY
event to allow plugins or modules to determine whether entries should be added to the sitemap or not (#1393) - Allow the
config/seomatic.php
siteUrlOverride
to be set to either a string, or an array of site URLs, indexed by the site handle for overriding complex headless multi-site Craft setups (#1376)
Changed
- Switch over to listening for element changes via
Element::EVENT_AFTER_PROPAGATE
events instead ofElements::EVENT_AFTER_SAVE_ELEMENT
and have it check theElement::$resaving
attribute instead ofModel::$scenario
=SCENARIO_ESSENTIALS
to determine whether sitemap queue jobs should be created (#1388) - If the Site URL Override feature is used, pass along the parameters, too, when building the URL (#950)
- Removed the automatic Google Sitemap ping endpoint, since Google has deprecated it and will be removing it entirely soon (#1392)
Version 4.0.36
November 28, 2023
Added
- Switch over to Vite
^5.0.0
& Node^20.0.0
for the buildchain - The sitemaps now check
enabledForSite
to determine whether elements should be included in the sitemap (#1388)
Changed
- Remove vestigial
queue
option from the console command - Rebrand
Twitter
toX (Twitter)
in all user-displayed text - Updated the X (Twitter) large image previews to reflect the new style in X (Twitter)
Fixed
Version 4.0.35
November 16, 2023
Fixed
- Only try the
getMatchedElement()
optimization when it's not a console request, and surround it withtry/catch
to catch any potentially thrown exceptions (#1384)
Version 4.0.34
November 15, 2023
Changed
- Try to use Craft's matched element from
UrlManager
inMetaContainers
if looking for an enabled element, the currentsiteId
is being used and the currenturi
matches what was in the request (#1381)
Fixed
Version 4.0.33
October 22, 2023
Added
- Added an SEOmatic debug panel to the Yii2 Debug Toolbar to aid in debugging SEO metadata
Version 4.0.32
October 9, 2023
Added
- Added support for the Shopify plugin, so imported Shopify Products are automatically recognized by SEOmatic, and get properly mapped metadata
- Add integration with the Campaign plugin, so Campaign landing pages are automatically recognized by SEOmatic, and get properly mapped metadata
- Disallow Google Bard and Vertex AI bots in
robots.txt
by default, as there's no benefit to allowing it to index your site. ref: https://developers.google.com/search/docs/crawling-indexing/overview-google-crawlers#common-crawlers
Changed
- Moved the
security.txt
location to.well-known/security.txt
from the server root, and make the bundle updating mechanism preserve user settings in the process (#1353) - Hide the SEO Image / OG Image / Twitter Image mode selectors if transforming is disabled
- Set the
twitterImageTransform
andogImageTransform
tofalse
by default, since the default is alsosameAsSeo
and this will result in better default expected behavior (#1364)
Fixed
- Fixed a syntax error in the digitalproductmeta JsonLD Container (#1361)
Version 4.0.31
September 12, 2023
Added
- Disallow ChatGPT bot in
robots.txt
by default, as there's no benefit to allowing it to index your site. ref: https://www.searchenginejournal.com/openai-launches-gptbot-how-to-restrict-access/493394/
Changed
- The Plugin Settings -> Tags -> Add
hreflang
Tags setting now also controls whetherhreflang
URLs are added to sitemaps (#1340)
Fixed
Version 4.0.29
July 18, 2023
Changed
- Use any custom field labels for "pull fields" in SEOmatic settings (#1335)
Fixed
- Fixed an issue where the
MetaJsonLd
container was not properly cached, which caused a performance issue as well as storing more data in the cache than necessary - Fixed a regression that caused the SEO Preview to not appear in the sidebar for Commerce 4, due to Commerce 4 not supporting the
EVENT_DEFINE_SIDEBAR_HTML
event (despite there being code in Commerce 4 that appears to support it) (#1336) - Fixed an issue that caused you to be unable to dynamically include/exclude scripts that have body JavaScript via Twig, by unifying the rendering method (#1334)
Version 4.0.28
June 13, 2023
Fixed
- Fixed an issue that would cause settings in the Tracking Scripts settings to be wiped out whenever other settings in SEOmatic were saved (#1327)
Version 4.0.27
June 2, 2023
Changed
- Bumped the schema version to side-step a Craft bug that would throw an error when running
craft/update
with a plugin that had a new migration without a schema version change
Version 4.0.26
June 1, 2023
Added
- Show a deprecation notice on the Google Analytics tracking script setting, with an explanation of it being discontinued
- Added the ability to completely disable scripts from displaying & rendering if they have been discontinued
- Add an announcement if the site is using the soon to be deprecated Google Universal Analytics via SEOmatic
Changed
- Don't try to submit sitemap indexes to search engines if sitemaps are disabled for that section
Security
- Addressed a potential XSS vulnerability when using
seomatic.helper.paginate()
Version 4.0.25
May 19, 2023
Changed
- Have the Site Name Position default to "Same as Global Setting" (#1321)
Fixed
- Revert (this commit) which caused CLI-based GraphQL generation to fail
- Removed vestigial "No Twitter handle has been set" message (#1316)
- Fixed an issue that would cause SEOmatic to ignore the Override lightswitch setting for SEO Settings fields in the context of generated sitemaps
Version 4.0.24
May 1, 2023
Added
- Added a View Sitemap Index button to SEOmatic → Site Settings → Sitemap (#1085)
Fixed
- Fixed an issue where SEOmatic would cause other plugins to fail to be able to register Twig extensions after it when using the CLI command
craft plugin/install --all
(#1312) - Fix cache-busting param on seo images (#1310)
- Fixed an issue where
encodeUrlQueryParams
wouldn't include the URL's port
Changed
Version 4.0.22
March 13, 2023
Added
- Added
(Google rich result)
in the Main Entity of Page dropdown, for Schema.org types that Google uses for Rich Results - Add descriptions & links for
(pending)
and(Google rich result)
schemas in the Main Entity of Page dropdown - Added a caching layer to the Schema helper
Version 4.0.21
March 9, 2023
Added
- Added support for Doxster field types as pull sources (#1279)
- Added Sitemap Frequency and Priority to Content SEO overview ([#1294]https://github.com/nystudio107/craft-seomatic/issues/1294)
Changed
- Don't disable
hreflang
tags based on whether the section is included in the sitemap or not (#1285) - Ensure that the state of the General tab and the override switch is taken into account when determining if
robots
is disabled in an SEO Settings field forhreflang
URLs - Changed the sitemap submission timeout to be
5
seconds, to avoid lengthy delays if Google cannot be reached for some reason (#1288) - Add versioning to the docs
- Add Pending types from Schema.org back into the Main Entity of Page dropdown, but mark them as
(pending)
Fixed
Version 4.0.20
February 9, 2023
Added
Changed
- Use dynamic docker container name & port for the
buildchain
- Update the
buildchain
to use Vite^4.0.0
- Refactored the docs buildchain to use a dynamic docker container setup
Fixed
- Fixed an issue where sitemaps would be regenerated even if URLs were disabled for a particular section, in certain circumstances (#1212)
- Removed the check for the now-deprecated
layer
property in thetree.jsonld
schema from schema.org, so that it can be parsed properly
Version 4.0.19
January 11, 2023
Fix
- Fixed a regression that would cause
entry.
to not resolve in meta values
Version 4.0.18
January 10, 2023
Fix
- Fixed an issue where meta tags would not render on a very specific version of PHP (
8.1.13
) (#1257)
Version 4.0.17
January 9, 2023
Changed
- Update to use Vite
^4.0.0
for the buildchain
Fixed
- Solspace calendar integration error would throw an exception if you deleted a Calendar (#1259)
Version 4.0.16
December 7, 2022
Fixed
- Ensure that
parsedValue()
always returns a string
Changed
- Fixed the disabled state of SEO Settings Override fields so they look consistent
- Remove the odd Craft
modifiedAttributes
styling when a field value is changed (#12403) - Removed the
field
class from the SEO Settings field wrapper so an additionalstatus-badge
isn't injected by Craft - Fix the styling of the SEO Image, Twitter Image, and FaceBook OpenGraph image in the SEO Settings field when they are not overridden
Version 4.0.15
November 22, 2022
Fixed
- Fixed a regression in the SEO Settings field where the Override state for a field would not save (#1239)
Version 4.0.14
November 20, 2022
Changed
- Better styling for the Robots focus ring
- Refactored the docs to use the latest version of VitePress (
^1.0.0-alpha.29
)
Fixed
- Fixed a regression that caused entries with SEO Settings fields in them to think the entry had changed, when it hadn't (#1239)
- Fixed an issue where the Facebook Opengraph Image Transform Mode would appear in an SEO Settings field, even if it was disabled (#1240)
- Fixed an issue where
extractTextFromField()
would throw an exception for Neo fields (#1242)
Version 4.0.12
November 3, 2022
Changed
- Fixed an exception that could be thrown if you are using an SEO Settings field, by adding an explicit cast to
(array)
for checkbox field values that should be saved as an empty array[]
but instead are saved as an empty string''
. Believed to be a regression in Craft 4.3 (#1233) (#1231) - Handle the case where an asset's
dateModified
is null (#1234)
Version 4.0.11
November 1, 2022
Version 4.0.10
October 19, 2022
Fixed
- Fix
phpcs
coding style CI tests
Changed
- Refactored
TrackingVarsAutocomplete
to use Twigfield^1.0.12
's ability to pass down data viatwigfieldOptions
rather than relying on the data cache
Version 4.0.9
October 3, 2022
Changed
- Use
App::env()
to check environment (#1210) - Added
CRAFT_ENVIRONMENT
check toSeomaticVariable
(#1210) - Don't bother invalidating sitemaps via the console command, as it causes them to be regenerated twice
- Use a stale-while-revalidate pattern for sitemap generation, so the old cached sitemap will be served until the new one as been regenerated due to an invalidation (content editing) (#1213)
Fixed
- Fixed an issue where the announcement migration would fail due to using closures (changed for the Craft 4.0.0 release)
- Ensure that
$driver
is nullable in the install migration
Version 4.0.8
September 17, 2022
Changed
- Check both
ENVIRONMENT
andCRAFT_ENVIRONMENT
when attempt to auto-determine the current environment - Move to using
ServicesTrait
and add getter methods for services
Fixed
- Fixed an improper docblock typing for the
genericImage
property on theEntity
model (#1193)
Version 4.0.7
August 23, 2022
Changed
- Add
allow-plugins
tocomposer.json
to allow CI tests to work - Handle passed in
array
s andElementQuery
s inassetFromAssetOrIdOrQuery()
- Bumped the
bundleVersion
to ensure that meta bundles are updated with the new settings
Fixed
- Display a more accurate environment message if they are manually setting the SEOmatic Environment (#1186)
Version 4.0.6
June 30, 2022
Changed
- Require
nystudio107/craft-twigfield
version^1.0.9
- Add an additional CP route for Solspace Calendar, which allows characters like
-
's in their handles (#1170)
Fixed
Version 4.0.5
June 27, 2022
Fixed
- Fixed issues with some of the default values in
seomatic-config
for theproductmeta
Version 4.0.4
June 26, 2022
Fixed
- Fixed issues with some of the default values in
seomatic-config
that would cause some meta values to be unparsed (#1164)
Version 4.0.3
June 22, 2022
Added
- Integrated Twigfield into SEOmatic, so fields that allow Twig expressions now have an editor with full autocomplete of the Craft and SEOmatic APIs
- SEOmatic SEO Settings fields do not utilize the Twigfield editor, to keep things simple for content authors (though they still parse as Twig expressions)
- Switched the default Twig expressions from single-bracket
{ }
to double-bracket{{ }}
for consistency's sake in theseomatic-config
settings (single-bracket expressions still work, however)
Changed
- The SEO Keywords field no longer uses a tokenized input, to allow for the use of the Twigfield editor
- Updated the docs to add The Meta Cascade to the Overview section to better explain how SEOmatic works
Version 4.0.2
June 18, 2022
Changed
- Only strip the
tokenParm
URL parameter from the canonical URL, leaving others intact if explicitly set by the developer (generally query strings should not be in canonical URLs, but there are exceptions) - Don't provide link to Plugin Settings or allow them to be accessed without permission, or without
allowAdminChanges
being enabled (#1150)
Fixed
- Fixed an issue where a pinned version of
davechild/textstatistics
caused SEOmatic to not work with other plugins that required a more recent version of the package (#1153) - Fixed an issue where a GraphQL frontendTemplates request for a disabled file results in error (#1156)
- Fix
security.txt
template (#1154)
Version 4.0.1
May 31, 2022
Version 4.0.0-beta.8
April 18, 2022
Changed
- Don’t use deprecated
TypeManager::prepareFieldDefinitions()
- Pass through all
siteUrl()
parameters in the Helper service (#1114) - Ensure that the
currentSite
is set to the requested one when processing headless requests via API endpoint or GraphQL, to ensure things likesiteUrl()
etc. resolve correctly (#1111) - Remove all
::craft3*
version static variables, and the conditional code they depend on - Use the native
str_contains()
overStringHelper::contains()
(which is slower, and allocated objects, etc.)
Fixed
- Fixed an issue where the
Autocomplete
helper could throw an exception if it encountered aReflectionUnionType
- Add
box-content
class on the code editors, to adjust for the new Tailwind CSS reset in v4 - Fixed an issue where none of the Site Settings changes could be saved (#1107)
- Fixed an issue with the default
Humans.txt
implementation ofparseEnv()
(#1109) - Fixed a validation issue due to incorrect typing that caused the Plugin Settings to be unable to be saved (#1112)
- Dynamically change
[0]
to.collect()[0]
in certain MetaGlobalVars fields so Asset Query accesses will work with Craft 4 - Change
[0]
to.collect()[0]
so Asset Query accesses will work with Craft 4
Version 4.0.0-beta.6
March 22, 2022
Fixed
- Changed
SuperTableBlockTypeModel::getFields()
togetCustomFields()
- Changed
MatrixBlockType::getFields()
togetCustomFields()
- Fixed an issue that could cause an exception to be thrown during a console request (#1080)
Version 4.0.0-beta.4
March 13, 2022
Changed
- Added validation rules for
metaCacheDuration
property on theSettings
model - Change the default email address in
security.txt
to the placeholderuser@example.com
- The
ads.txt
andsecurity.txt
templates are no longer enabled by default, because they require configuration before use (#1077)
Fixed
- Fix issues with editable table fields, due to the change in default values for Craft 4
- Ensure that the
metaCacheDuration
is normalized to0
if set tonull
or'null'
Version 4.0.0-beta.3
March 4, 2022
Fixed
- Updated types for Craft CMS
4.0.0-alpha.1
via Rector
Version 4.0.0-beta.2
March 1, 2022
Changed
MetaJsonLd::create()
now also looks for class names prefixed withSchema_
- Updated types for Craft 4
- Don’t exclude
/src/models/jsonld
from rector config
Fixed
- Fixed generated JSON-LD classes with invalid class names
Version 4.0.0-beta.1
February 24, 2022
Added
- Initial Craft CMS 4 compatibility