SEOmatic Changelog.
Link 3.5.9 · 2024.12.21
changed - 2024.12.21
- If an incoming URL has a trailing slash, preserve it for things like the Canonical URL (#1547)
- Deprecate & remove from the UI the Invalidate Sitemap Caches Automatically aka
regenerateSitemapsAutomatically
setting, since it is no longer relevant with the paginated sitemaps - Deprecate the CLI command
seomatic/sitemap/generate
, since it no longer needed with the paginated sitemaps
fixed - 2024.12.21
- Fixed an issue where the News Publication Name isn't displayed in Content SEO → Sitemap settings (#1551)
Link 3.5.8 · 2024.11.20
fixed - 2024.11.20
- Fixed an issue where newly created sections would not have Content SEO settings show up for (#1544)
Link 3.5.7 · 2024.11.14
fixed - 2024.11.14
- Fixed a parse error if running PHP <
8.0
Link 3.5.6 · 2024.11.12
added - 2024.11.12
- Added the Site Alternate Name property to Site Settings, used in the JSON-LD for the homepage, if the MainEntityOfPage is WebPage or WebSite (#1482)
- Added Letterbox crop mode for SEO image transforms (#1337)
changed - 2024.11.12
- No longer do a potentially expensive query on page load for sections that have a massive number of entries (#1526)
- If the current route is the homepage, set the
name
andalternateName
JSON-LD for themainEntityOfPage
toseomatic.site.siteName
andseomatic.site.identity.genericAlternateName
respectively, rather than theseomatic.meta.seoTitle
(#1482) - The SEO preview display in Content SEO will pull an entry from the specific Entry Type rather than just the first entry. Note: If you have a custom
SeoElement
PHP class, it will require a very minor method signature change to continue working (#1535) - Text and Asset pull sources in Content SEO will now display only fields from the specific Entry Type rather than all fields for that Section. Note: If you have a custom
SeoElement
PHP class, it will require a very minor method signature change to continue working (#1535)
fixed - 2024.11.12
- Fixed an issue where an exception would be thrown if the Campaign plugin was installed first, and then you newly installed SEOmatic (#1530)
Link 3.5.5 · 2024.10.21
fixed - 2024.10.21
- Fixed
togImageField
field typo in the FeedMe integration (#1520) - Fixed a field mapping issue for fields in the FeedMe integration (#1520)
Link 3.5.4 · 2024.09.29
fixed - 2024.09.29
- Normalize the incoming
url
andpath
so thatmergUrlWithPath()
handles edge-cases properly (#1512) - Fixed an issue where the
ads.txt
wasn't renamed properly when requested via GraphQL (#1513) - Fixed an exception caused by the wrong argument passed to
Asset::getAssetById()
in edge cases (#1515) - Removed vestigial sitemap rendering code in
SitemapTemplate
that had a code path that had a code path that could return a503
(#1437)
Link 3.5.3 · 2024.09.10
changed - 2024.09.10
- Make the Content SEO listings better at eliminating duplicates by pruning sections that no longer exist (#1499)
- Fixed an issue where a section with a
typeId
of0
wouldn't validate, and thus the changes to the Content SEO settings would not validate & save (#1510) - Fixed an issue where the homepage metacontainer cache did not get properly cleared (#1514)
Link 3.5.2 · 2024.08.15
fixed - 2024.08.15
- Fixed an issue where GraphQL or Meta Container endpoint requests that had a token set were not being caches separately
- Also add any
token
to the meta container cache key for regular requests - Fixed an issue where using "Single Page" for the Sitemap Page Size setting would cause an exception to be thrown when generating the sitemap (#1498)
Link 3.5.1 · 2024.07.19
changed - 2024.07.19
- Renamed the Regenerate Sitemaps Automatically setting to Invalidate Sitemap Caches Automatically for clarity
fixed - 2024.07.19
- Fixed an issue where getting the sitemaps via GraphQL and meta container endpoint only retrieved the first page since the switch to paginated sitemaps (#1492)
- Fixed an issue where saving an entry could be slow, because SEOmatic was pointlessly trying to regenerate the sitemap cache (which is no longer a thing with paginated sitemaps) (#1494)
Link 3.5.0 · 2024.07.12
added - 2024.07.12
- Remove queue generated sitemaps, switch to paginated sitemaps to allow them to be rendered at web response time, but still be managable in size
Link 3.4.78 · 2024.05.13
added - 2024.05.13
- Added a setting in Plugin Settings -> Tags to specify which site should be used as the
x-default
forhreflang
tags (1162)
changed - 2024.05.13
- Moved where paginated
hreflang
tags are added for paginated pages, so that they can be overriden via Twig templating code. They are now added inside ofseomatic.helper.paginate()
fixed - 2024.05.13
- Fixed an issue that could cause an exception to be thrown if the selected asset for the Creator or Identity brand image was deleted (#1472)
- Fixed an issue where the SEO preview for SEO Settings fields and the sidebar wouldn't be displayed correctly for drafts (#1449)
Link 3.4.77 · 2024.05.20
fixed - 2024.05.20
- Fixed an issue where the down and up arrows were reversed for sorting purposes
Link 3.4.76 · 2024.04.11
added - 2024.04.11
- Ensure that
getTransformByHandle()
is passed a string
Link 3.4.75 · 2024.04.10
added - 2024.04.10
- Added the ability to choose the Asset Transform to apply to images in the sitemap (#1407)
fixed - 2024.04.10
- 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)
Link 3.4.74 · 2024.03.14
fixed - 2024.03.14
- Fixed a regression that would throw an exception when attempting to save the
security.txt
template (#1435)
Link 3.4.73 · 2024.03.08
changed - 2024.03.08
- 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 - 2024.03.08
- 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)
Link 3.4.72 · 2024.02.20
added - 2024.02.20
- 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 - 2024.02.20
- Completely revamped the documentation to hopefully make it more accessible & useful (thanks to Matt Stein @ Adjacent)
- PHPstan code cleanup
fixed - 2024.02.20
- 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
Link 3.4.71 · 2024.02.13
fixed - 2024.02.13
- 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)
Link 3.4.70 · 2024.02.09
added - 2024.02.09
- Add
phpstan
andecs
code linting - Add
code-analysis.yaml
GitHub action
changed - 2024.02.09
- PHPstan code cleanup
- ECS code cleanup
fixed - 2024.02.09
- 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)
Link 3.4.69 · 2024.01.22
changed - 2024.01.22
- Updated docs to use node 20 & a new sitemap plugin
fixed - 2024.01.22
- 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)
Link 3.4.68 · 2023.12.12
added - 2023.12.12
- SEOmatic now requires at least Craft CMS
^3.2.0
or later - 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 - 2023.12.12
- 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)
Link 3.4.67 · 2023.11.28
added - 2023.11.28
- 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 - 2023.11.28
- 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 - 2023.11.28
- Fixed an issue where the Truncate Description Tags toggle did not work as expected (#1386)
- Fixed an issue where the frontend SEO preview URLs could be wrong if you're using the Site URL Override feature (#950)
Link 3.4.66 · 2023.11.16
fixed - 2023.11.16
- Only try the
getMatchedElement()
optimization when it's not a console request, and surround it withtry/catch
to catch any potentially thrown exceptions (#1384)
Link 3.4.65 · 2023.11.16
fixed - 2023.11.16
- Fixed a regression that could cause an exception to be thrown when editing an entry in the Craft CP (#1385)
Link 3.4.64 · 2023.11.15
changed - 2023.11.15
- 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 - 2023.11.15
- Fixed an issue where the
CanonicalLink
would render if theRobots
tag contained multiple values (#1378) - Don't install an event listener for
CampaignElement::EVENT_DEFINE_SIDEBAR_HTML
unless on Craft 3.7 or later (#1377) - Fixed incorrect references to
SeoEntry
in the CampaignSeoElement
(#1383)
Link 3.4.63 · 2023.10.22
added - 2023.10.22
- Added an SEOmatic debug panel to the Yii2 Debug Toolbar to aid in debugging SEO metadata
Link 3.4.62 · 2023.10.09
added - 2023.10.09
- 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 - Add integration with the Campaign plugin, so Campaign landing pages are automatically recognized by SEOmatic, and get properly mapped metadata
changed - 2023.10.09
- 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) - Improved the mapping of elements to SEO Elements by preferring the refHandle from the SEO Element
- 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 - 2023.10.09
- Fixed a syntax error in the digitalproductmeta JsonLD Container (#1361)
Link 3.4.61 · 2023.09.15
fix - 2023.09.15
- Syntax error in older versions of PHP (#1359)
Link 3.4.60 · 2023.09.12
added - 2023.09.12
- 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 - 2023.09.12
- The Plugin Settings -> Tags -> Add
hreflang
Tags setting now also controls whetherhreflang
URLs are added to sitemaps (#1340)
fixed - 2023.09.12
- 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)
- Fixed an issue that caused the default Content SEO Site Name Position to not default to Same As Global Site Name Position (#1321) (#1333)
Link 3.4.59 · 2023.07.19
fixed - 2023.07.19
- Fixed a regression caused by (#1334) which caused Google Tag Manager noscript template is output with
<script>
tags around it (#1346)
Link 3.4.58 · 2023.07.18
fixed - 2023.07.18
- 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 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)
Link 3.4.57 · 2023.06.13
fixed - 2023.06.13
- Fixed an issue that would cause settings in the Tracking Scripts settings to be wiped out whenever other settings in SEOmatic were saved (#1327)
Link 3.4.56 · 2023.06.02
fixed - 2023.06.02
- 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
Link 3.4.55 · 2023.06.01
added - 2023.06.01
- 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 - 2023.06.01
- Don't try to submit sitemap indexes to search engines if sitemaps are disabled for that section
security - 2023.06.01
- Addressed a potential XSS vulnerability when using
seomatic.helper.paginate()
Link 3.4.54 · 2023.05.19
changed - 2023.05.19
- Have the Site Name Position default to "Same as Global Setting" (#1321)
fixed - 2023.05.19
- 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
Link 3.4.53 · 2023.05.01
added - 2023.05.01
- Added a View Sitemap Index button to SEOmatic → Site Settings → Sitemap (#1085)
fixed - 2023.05.01
- 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 - 2023.05.01
- Ensure that makes sure that alternate site url's also take into account a potential site override url in sitemaps (#1298)
- Use the
getSalePrice()
for the defaultProduct
andDigitalProduct
JSON-LD structured data (#930)
Link 3.4.52 · 2023.03.27
changed - 2023.03.27
- Removed the requirement that the Site Twitter Handle is set for Twitter cards to be generated (#1275)
fixed - 2023.03.27
- Fixed a caching issue that would cause the Main Entity of Page schema type menu to malfunction (#1303)
Link 3.4.51 · 2023.03.13
added - 2023.03.13
- 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
Link 3.4.50 · 2023.03.09
added - 2023.03.09
- Added support for Doxster field types as pull sources (#1289)
- Added Sitemap Frequency and Priority to Content SEO overview ([#1294]https://github.com/nystudio107/craft-seomatic/issues/1294)
changed - 2023.03.09
- 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 - 2023.03.09
- Ensure that URL query parameters are properly encoded after being sanitized (#1075)
Link 3.4.49 · 2023.02.09
added - 2023.02.09
changed - 2023.02.09
- 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 - 2023.02.09
- 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
Link 3.4.48 · 2023.01.11
fix - 2023.01.11
- Fixed a regression that would cause
entry.
to not resolve in meta values
Link 3.4.47 · 2023.01.10
fix - 2023.01.10
- Fixed an issue where meta tags would not render on a very specific version of PHP (
8.1.13
) (#1257)
Link 3.4.46 · 2023.01.09
changed - 2023.01.09
- Update to use Vite
^4.0.0
for the buildchain
fixed - 2023.01.09
- Solspace calendar integration error would throw an exception if you deleted a Calendar (#1259)
Link 3.4.45 · 2022.12.07
changed - 2022.12.07
- 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
Link 3.4.43 · 2022.11.22
fixed - 2022.11.22
- Fixed a regression in the SEO Settings field where the Override state for a field would not save (#1239)
Link 3.4.43 · 2022.11.20
changed - 2022.11.20
- Better styling for the Robots focus ring
- Refactored the docs to use the latest version of VitePress (
^1.0.0-alpha.29
)
fixed - 2022.11.20
- 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)
Link 3.4.42 · 2022.11.11
added - 2022.11.11
- Greatly improved the Robots field, allowing you to pick multiple values, and additional values added by Google (#1237)
changed - 2022.11.11
- Switch from Webpack to Vite for the plugin asset build system
fixed - 2022.11.11
- Handle the case where an asset's
dateModified
is null (#1234)
Link 3.4.41 · 2022.11.01
changed - 2022.11.01
- Switch from Twigfield to Code Editor
fixed - 2022.11.01
- Fixed an issue with Twigfield was errantly loaded in SEO Settings fields (#1229)
- Fixed an issue where Include Images & Videos in Sitemap appeared in the SEO Settings field, despite being disabled in the field settings (#1163)
Link 3.4.40 · 2022.10.19
fixed - 2022.10.19
- Allow SEOmatic to work (again) with Commerce 2, which doesn't have the assumed GraphQL interfaces available
- Fixed a regression that used
str_contains()
, which is unavailable on PHP < 8.0 and would throw an error on PHP 7.x (#1221) - Fix
phpcs
coding style CI tests
changed - 2022.10.19
- Refactored
TrackingVarsAutocomplete
to use Twigfield^1.0.12
's ability to pass down data viatwigfieldOptions
rather than relying on the data cache
Link 3.4.39 · 2022.10.03
changed - 2022.10.03
- 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)
Link 3.4.38 · 2022.09.17
changed - 2022.09.17
- Check both
ENVIRONMENT
andCRAFT_ENVIRONMENT
when attempt to auto-determine the current environment - Move to using
ServicesTrait
and add getter methods for services
fixed - 2022.09.17
- Fixed an improper docblock typing for the
genericImage
property on theEntity
model (#1193)
Link 3.4.37 · 2022.08.23
changed - 2022.08.23
- 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 - 2022.08.23
- Fixed an issue that could case Craft to log deprecation errors; you may need to re-save your Content SEO settings for it to take effect (#1185)
- Display a more accurate environment message if they are manually setting the SEOmatic Environment (#1186)
Link 3.4.36 · 2022.06.30
changed - 2022.06.30
- 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 - 2022.06.30
- Fixed an issue where the
ads.txt
,humans.txt
,robots.txt
, andsecurity.txt
preview links in the CP would 404 on a site where the primary site URL wasn't a root URL (#1168) - Fixed an issue with some of the default values in
seomatic-config
for Twitter meta tags (#1171)
Link 3.4.35 · 2022.06.27
fixed - 2022.06.27
- Fixed issues with some of the default values in
seomatic-config
for theproductmeta
Link 3.4.34 · 2022.06.26
fixed - 2022.06.26
- Fixed issues with some of the default values in
seomatic-config
that would cause some meta values to be unparsed (#1164)
Link 3.4.33 · 2022.06.22
added - 2022.06.22
- 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 - 2022.06.22
- 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
Link 3.4.32 · 2022.06.18
changed - 2022.06.18
- 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 - 2022.06.18
- Fixed an issue where a GraphQL frontendTemplates request for a disabled file results in error (#1156)
- Fix
security.txt
template (#1154)
Link 3.4.31 · 2022.05.31
added - 2022.05.31
changed - 2022.05.31
- Removed Bing from
SEARCH_ENGINE_SUBMISSION_URLS
due to it being deprecated (#1043)
fixed - 2022.05.31
- Don't allow the autocomplete object inspection to recurse infinitely, set a cap of 10 levels deep (#1132)
Link 3.4.30 · 2022.04.18
changed - 2022.04.18
- 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) - Use the native
str_contains()
overStringHelper::contains()
(which is slower, and allocated objects, etc.)
fixed - 2022.04.18
- Fixed an issue where the
Autocomplete
helper could throw an exception if it encountered aReflectionUnionType
- Fixed an issue with the default
Humans.txt
implementation ofparseEnv()
(#1109)
Link 3.4.29 · 2022.04.08
changed - 2022.04.08
- Only regenerate sitemaps via queue jobs if they are a result of an invalidation of the sitemap cache (#1098) (#1097)
fixed - 2022.04.08
- Fixed an issue where disabled entries could appear in breadcrumbs JSON-LD (#1088)
Link 3.4.28 · 2022.03.22
fixed - 2022.03.22
- Fixed an issue that could cause an exception to be thrown during a console request (#1080)
- Fixed an issue in the
TwigExpressionValidator
class that prevented you from accessing theseomatic.
variable in some circumstances (#1076)
Link 3.4.27 · 2022.03.13
changed - 2022.03.13
- 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 - 2022.03.13
- Ensure that the
metaCacheDuration
is normalized to0
if set tonull
or'null'
Link 3.4.26 · 2022.02.21
changed - 2022.02.21
- Add
parseEnv()
to thehumans.txt
template to parse environmentvariables/aliases (#1069)
fixed - 2022.02.21
- Fixed an issue where "Same as Site Name Position" did not appear on the Global -> Facebook settings for the FacebookOpenGraph Site Name Position Source setting (#1066)
- If paginated URLs are not using a query string, strip the query string from the canonical URL
- Handle an edge-case where a migration didn't work properly toadd
SECURITY_TXT_HANDLE
(#1065) - Explicitly typecast
limit
to(int)
for Solspace Calendarqueries (#1064) - Fixed an issue where hitting Command-S wouldn't save any changes to edited template code (but clicking on the Savebutton would) (#1068)
Link 3.4.25 · 2022.02.11
fixed - 2022.02.11
- Fixed a typo in the
EVENT_AFTER_SAVE_PRODUCTTYPE
event name - Fixed an issue with empty
tagAttrs
throwing an exception
Link 3.4.24 · 2022.02.10
added - 2022.02.10
- Build only the Monaco editor components needed, drastically reducing the assetbundles size
- Added the ability to set
<script>
tag attributes for tracking scripts
fixed - 2022.02.10
- Fixed an issue that could cause an exception if a MetaBundle wasmalformed (#1058)
- Fix a bug where modifying sites or element containers would not update the corresponding meta bundlesettings. (#979)
Link 3.4.23 · 2022.01.31
fixed - 2022.01.31
- Delay registering SEO Elements to give other plugins a chance to loadfirst (#654)
- Fixed an issue where textarea fields aren't disabled, and ensure previously hidden fields work asexpected (#1049)
- Fixed an issue where the SEO Settings field would display the Twitter Image and Facebook Image even if they weredisabled in the field settings (#1047)
- Register GraphQL types after all plugins are loaded, so that we can work with plugins that register their owntypes (#1037)
- Fix Bing's sitemap submission URL (#1043)
Link 3.4.22 · 2022.01.12
fixed - 2022.01.12
- Fixed an issue that would cause an exception to be thrown if an SEO Settings field was added to an unknown/customElement's field layout (#1031)
- Fixed an issue where you couldn't query for frontend containers from sites other than the current site request viaGraphQL (#1039)
- Fixed an issue where Solspace Calendar events would not have the
seomatic
field on them when using the GraphQLAPI (#1037)
Link 3.4.21 · 2021.12.13
added - 2021.12.13
- Added in the Monaco editor, with autocomplete & hovers for the Craft APIs as well as variables available in thevarious SEOmatic templates, such as the tracking scripts
fixed - 2021.12.13
- No longer attempt to run the Craft queue manually (#10189)
- Generate sitemaps immediately via console command, bypassing the queuejob (#10189)
- Use HtmlPurifier to remove HTML instead of
strip_tags
to prevent errant stripping of contentlikeI <3 Craft
(#1024)
changed - 2021.12.13
- Check to see if a site is Enabled in Craft CMS > 3.5 to determine whether to generate sitemap URLs &
rel="alternate"
links (#1023) - Check to see if a site is Enabled in Craft CMS > 3.5 to determine whether to generatebreadcrumbs (#1023)
- Check to see if a site is Enabled in Craft CMS > 3.5 to determine whether a metabundle should be generated/pruned ornot (#1023)
- Updated the buildchain to use Node 16
- Updated to Tailwind CSS
^3.0.0
Link 3.4.20 · 2021.11.23
changed - 2021.11.23
- Deprecated the
frontendTemplateContainer
GraphQL field
fixed - 2021.11.23
- Eliminated multiple queries to the same asset via a memoization cache inImageTransformHelper (#1016)
Link 3.4.19 · 2021.11.13
changed - 2021.11.13
- Changed the
frontendTemplateContainers
GraphQL query tofrontendTemplates
, and made the query inline withthesitemaps
queries, returning afilename
andcontents
Link 3.4.18 · 2021.11.11
added - 2021.11.11
- Added the ability to query for
sitemaps
,sitemapIndexes
, andsitemapStyles
viaGraphQL (#517) - Added the Always include
canonical
links regardless of environment setting to Plugin Settings ->Advanced (#1006)
fixed - 2021.11.11
- Don't try to run the sitemap queue job immediately if it's the result of an invalidation, only when the actual sitemapis requested via frontend request
- Fix Matomo script URL value by removing the // and / that are in the Matomodocs (#1004)
- Fixed an issue where meta value parsing could fail with unquoted object keys passedin (#1007)
- Fixed the date in the
security.txt
template
Link 3.4.17 · 2021.10.19
added - 2021.10.19
- Added the ability to specify the SEOmatic environment to use with the GraphQL API (local, staging, production)
fixed - 2021.10.19
- Ensure URLs with no
path
workindecomposeUrl()
(#1001) - Make sure the *Sources variables at least exist, for things like the QuickPostwidget (#1002)
Link 3.4.16 · 2021.10.13
changed - 2021.10.13
- Add an empty value to possible selections for the Robots setting, to allow it to fall back on globalsettings (#996)
fixed - 2021.10.13
- Ensure the FrontendTemplatesContainer exists before accessing it viaGraphQL (#1000)
- Render Canonical URL overrides from the SEO Settings field properly via GraphQLrequests (#1001)
- Don't show the "SEO Image Transform Mode" text (sans controls) if it's not enabled in the FieldSettings (#995)
Link 3.4.15 · 2021.09.28
fixed - 2021.09.28
- Disable strict variables during meta value rendering, to mirror the functionality of
renderObjectTemplate()
.Resolves (#990)
Link 3.4.14 · 2021.09.27
changed - 2021.09.27
- Substantial performance increase on element save, because we ensure the sitemap queue job doesn't attach itself toweb-based queue runners (#989)
- Changed the core MetaValue parsing method to be faster, also resolves (forreal) (#653)
- Remove all references to the now-deprecated
object.
syntax (though it still functions as usual)
fixed - 2021.09.27
- Fixed an issue where the query string would be erroneously stripped from imageURLs (#987)
Link 3.4.13 · 2021.09.26
fixed - 2021.09.26
- Fixed a regression that could cause sitemap generation via console command to throw anerror (#985)
- Fixed an exception that could be thrown on paginated pages that were not the first page
Link 3.4.12 · 2021.09.26
fixed - 2021.09.26
- Fixed an issue where the preview in Content SEO would not display the correct information if "Summary from Field" waschosen (#653)
security - 2021.09.26
- Sanitize all rendered URLs in an effort to mitigate a potential attack vector on an improperly configured site
Link 3.4.11 · 2021.09.24
added - 2021.09.24
- Added support for security.txt in SEOmatic → Global settings
- Added an option to SEOmatic → Plugin Setting → Sitemaps to have items that have a different Canonical URL than theitem URL excluded from the sitemap (#983)
- Moved all the sitemap Plugin Settings to their own tab in SEOmatic → Plugin Setting → Sitemaps
changed - 2021.09.24
- Ensure that paginated self-referencing
hreflang
urls match the paginated canonicalURL (#984)
fixed - 2021.09.24
- Fixed an issue where a tracking script that had no templateString or templatePath could not be saved, showing "Couldn't save tracking settings due to a Twigerror." (#981)
- Fixed the default values for Entry meta bundles that were errantly changed to be empty
- Fixed an issue with the SEO Settings field throwing an exception is no
$element
context was passed in
security - 2021.09.24
- Ensure that only files with the extensions listed in
allowedFileExtensions
General Config setting can be used withthe SEO File Link controller - Sanitize the canonical URL after the absolute URL has been returned, to mitigate poisoned
X-Forwarded-Host
headers
Link 3.4.10 · 2021.09.15
fixed - 2021.09.15
- Fixed a regression that would throw an exception if Commerce was not installed
Link 3.4.9 · 2021.09.15
added - 2021.09.15
- Added the ability to automatically include Commerce's
variant=XXX
URL parameter in the metadata cache key, allowingfor unique values per variant (#971) - Added a
allowedUrlParams
config setting that allows URL parameters to be manually whitelisted for inclusion in themetadata cache key (#971) - Added the ability to query for frontend template containers (
robots.txt
, etc.) via GraphQL or Meta Container APIEndpoint
Link 3.4.8 · 2021.09.09
added - 2021.09.09
- Added a nicer looking theme for the Twig & JavaScript code editors, and a more pleasant font selection
fixed - 2021.09.09
- Fixed an issue where an empty Category (or other element type) could throw an exception when creating the firstcategory item (#973)
- Fixed profiling on certain methods by using
endProfile()
in theMetaContainers
service
Link 3.4.7 · 2021.09.08
fixed - 2021.09.08
- Fixed an issue where dynamic meta information wasn't injected during Craft Previews ofpages (#954)
- Fixed an issue where the SEO column would all display the same entry due to a cachingissue (#970)
Link 3.4.6 · 2021.08.30
fixed - 2021.08.30
- Fix a bug where the same ID would be re-used for multiple element selectfields. (#965)
Link 3.4.5 · 2021.08.29
changed - 2021.08.29
- Further optimized the CP requests by eliminating redundant calls to
loadMetaContainers()
and also onlycallingaddDynamicMetaToContainers()
on headless requests - Added more fine-grained profiling to the
DynamicHelper
class
fixed - 2021.08.29
- Fix a bug where SEO image settings could be inheritedincorrectly (#962)
- Fixed an issue where elements with newly added SEO Settings field wouldn't appear in thesitemap (#964)
Link 3.4.4 · 2021.08.26
fixed - 2021.08.26
- Ensure metacontainers are loaded for new elements that have an SEO Settings field in theirlayout (#960)
- Typecast the setting collection to an array to handle the case of an empty string beingreturned (#961)
- Instantiate at least the global metacontainers for CP requests, to sidestep regression issues for code that depends onthe metacontainers beingpresent (#954) (#960)
Link 3.4.3 · 2021.08.25
added - 2021.08.25
- Added a Include Homepage in Breadcrumbs general plugin setting to control whether the generated JSON-LD forBreadcrumbs includes the homepage or not (#957)& (#747)
changed - 2021.08.25
- Switch to
rawurldecode()
to avoid changing+
signs into spaces in pullfields (#785)
fixed - 2021.08.25
- Don't call
loadMetaContainers()
explicitly for CPrequests (#954) - Fixed an issue where if you had an SEO Settings field with the Sitemap tab enabled, but did not have Override on,the
<link rel="alternate">
would not render (#958) - Fixed a validation error that wouldn't allow you to save Tracking Scripts that didn't have a bodyscript (#959)
- Fixed a cosmetic issue with the human-readable display of customsitemaps (#955)
Link 3.4.2 · 2021.08.20
fixed - 2021.08.20
- Fixed an issue that could cause an exception to be thrown or CSS to be broken for the Social MediaPreview (#953)
Link 3.4.1 · 2021.08.19
fixed - 2021.08.19
- Fixed an exception that could be thrown on a frontend formsubmission (#951)
- Fixed an issue where entry index pages wouldn't auto-refresh after deleting multipleentries (#952)
Link 3.4.0 · 2021.08.18
added - 2021.08.18
- Improved the way overrides are handled & displayed in SEO Settings fields by having an explicit Override switchfor each setting (#535)
- Scripts are now rendered and checked for Twig errors before they can besaved (#944)
- Robots, Humans, and Ads templates are now rendered and checked for Twig errors before they can besaved (#944)
- Added Pinterest Tag tracking script (#936)
changed - 2021.08.18
- Switch from the shorthand format to object format for the search targetJSON-LD (#945)
fixed - 2021.08.18
- Only default to not generating image transforms immediately if the image is remote and the environment is localdev (#949)
- Fixed an issue where the Robots setting was ignored in SEO Settings fields for sitemap generation if the Sitemap tabwas not enabled (#947)
- Don't have
useFieldset()
return true, as it causes a visual error when resizing the window in Craft CMS 3.7.x
Link 3.3.48 · 2021.08.11
fixed - 2021.08.11
- Fixed a regression that caused sitemap generation via console command tofail (#943)
Link 3.3.47 · 2021.08.10
fixed - 2021.08.10
- Fixed an issue where
Sitemaps::invalidateSitemapCache()
wasn't going through the same bottleneck as the sitemaprender, and thus wasn't properly hitting the caching layer - Don't access
Craft::$app->getResponse()->statusCode
during consolerequests (#940)
Link 3.3.46 · 2021.07.27
added - 2021.07.27
- Added support for pulling from Preparse fields for SEOfields (#927)
fixed - 2021.07.27
- Fix an issue where
Undefined class constant ‘EVENT_REGISTER_GQL_SCHEMA_COMPONENTS
would be thrown if you wererunning Craft CMS <^3.5.0
(#933) - Empty out the entity image settings to ensure the image gets removed if it no longerexists (#760)
Link 3.3.45 · 2021.07.20
fixed - 2021.07.20
- Fixed an issue where
MedicalBusiness
JSON-LD type didn't inherit all of the properties fromMedicalOrganization
that it should - Handle per-entry type settings for the sitemapgeneration (#929)
Link 3.3.44 · 2021.07.09
added - 2021.07.09
- Added
truncateTitleTags
&truncateDescriptionTags
settings to control whether the max title / description lengthsshould be enforced or not (on by default) (#922)
changed - 2021.07.09
- Changed the Google & Bing sitemap submission URLsto
https
(#903)
fixed - 2021.07.09
- Handle the case where
additionalSitemaps
isn't a zero-based index, due to items being deleted fromit (#921)
Link 3.3.43 · 2021.06.08
added - 2021.06.08
- Add GraphQL schema components for SEOmatic.
changed - 2021.06.08
- Switched documentation system to VitePress
fixed - 2021.06.08
- Additional Sitemap URLs will now appear only in the Site's sitemap index where they aredefined (#897)
Link 3.3.42 · 2021.05.18
changed - 2021.05.18
- Strip the query params from next/prev pagination meta tags if we're not using query-string basedpagination (#896)
- Ensure that frontend templates are checked first, so things like
humans.twig
androbots.twig
can beoverridden (#891)
fixed - 2021.05.18
- If sitemaps aren't enabled globally, return nothing for the sitemapindex (#895)
- Fixed an issue where an empty transform mode could cause errors generating social imagetransforms (#892)
Link 3.3.41 · 2021.05.06
added - 2021.05.06
- Only add a sitemap to the sitemap index if there's at least 1 element in the resultingsitemap (#873)
changed - 2021.05.06
- Have all of the Site Map settings in the SEO Settings field default to empty, so they fall back on the Content SEOvalue by default (#871)
- Have the image transform modes all default to empty, so they will fall back on the Content SEO value bydefault (#868)
fixed - 2021.05.06
- For paginated pages, re-apply the adjustment to the canonical URL tag aswell (#875)
- Handle the case of empty asset ids being passed in from a missing assetsource (#882)
- Fixed the verbiage in the Matomo script URL setting (#880)
- Don't call any AssetManager methods in the component
init()
method during consolerequests (#885)
Link 3.3.40 · 2021.04.15
added - 2021.04.15
- Added support for Matomo Analytics in the Tracking Scripts section
changed - 2021.04.15
- Wrap tracking scripts in IFFYs
fixed - 2021.04.15
- Ensure assets imported via FeedMe don't end up in a
null
volumeID (#840)
Link 3.3.39 · 2021.04.09
added - 2021.04.09
- Added support for Facebook domain verification via the
facebook-domain-verification
tag (#856) - Add proper support for importing assets via Feed Me (#840)
- Google gtag.js is now the first and default option in Tracking Scripts, and a footnote to use it for Google Analytics4 is included (#788)
- Added support for Fathom Analytics in the Tracking Scriptssection (#823)
- Added support for Plausible Analytics in the Tracking Scriptssection (#817)
changed - 2021.04.09
- Changed how we determine whether environment mappings should be applied to meta items so GraphQL requests will havethem applied
fixed - 2021.04.09
- For pagination, adjust the canonical URL tag as well as the variable
- Don't strip the query string from paginated canonical URLs
Link 3.3.38 · 2021.04.06
added - 2021.04.06
- Added
make update
to update NPM packages - Added
make update-clean
to completely removenode_modules/
, then update NPM packages
changed - 2021.04.06
- SEOmatic will now register frontend templates even if they request matches no Craft site, but the request is for adocument in the root domain that has a file extension, e.g.
robots.txt
- Use Tailwind CSS
^2.1.0
with JIT
Link 3.3.37 · 2021.03.31
added - 2021.03.31
- Added the
.tagAttrs
property to all meta items, so you can dynamically add attributes likedata-
to any of themeta item tags
changed - 2021.03.31
- Move the manifest service registration to the constructor
- Guard against a Site that has a
null
Base URLinloadFrontendTemplateContainers()
(#861)
fixed - 2021.03.31
- Fixed an issue where the default settings for Content SEO for sections with multiple entry types was setincorrectly (#814)& (#794)
- Fixed the GTag script to use the
???
empty coalescing operator, to prevent empty strings from being usedingtagProperty
(#860)
Link 3.3.36 · 2021.03.25
changed - 2021.03.25
- More consistent
makefile
build commands - Use Tailwind 2.x &
@tailwindcss/jit
- Move settings from the
composer.json
“extra” to the plugin main class - Don't register any frontend templates if this site has a sub-directory as part of theURL (#859)
- List all sites sitemaps in the
robots.txt
(#859)
fixed - 2021.03.25
- Ensure really long titles are cropped in the sidebar preview
- Fixed the documentation for the
EVENT_ADD_DYNAMIC_META
event - If Manually Set SEOmatic Environment is on, ignore
devMode
in determining the environment - Fixed issue with global meta bundles not being updated when their version is changed
Link 3.3.35 · 2021.03.03
fixed - 2021.03.03
- Fixed a regression with SEO Settings fields using the old
ManifestHelper
Link 3.3.34 · 2021.03.03
added - 2021.03.03
- Added
seomatic.containers
to allow access to theMetaContainers
service via Twig - Added
seomatic.bundles
to allow access to theMetaBundles
service via Twig
changed - 2021.03.03
- Only include localized versions of elements that are enabled for hreflang tags
- Dockerized the buildchain, using
craft-plugin-manifest
for the webpack HMR bridge
Link 3.3.33 · 2021.02.23
added - 2021.02.23
- Added a Manually Set SEOmatic Environment setting (defaults to off) for people who want to manually set theSEOmatic environment via environment variable
changed - 2021.02.23
- Updated build system infra
- Parse the SEOmatic Environment as a variable before displaying it on the dashboard
fixed - 2021.02.23
- No longer include any
<body>
script tags (as in Google Tag Manager) if the entire script meta container is excluded - The
og:locale
tag no longer shows the wrong language for headless requests - Don't link to the settings page if
allowAdminChanges
isfalse
- No longer URL decode text that is pulled from another field in SEOmatic
Link 3.3.32 · 2021.02.12
fixed - 2021.02.12
- Fixed a typo in the global JsonLDContainer that caused errors to be generated
Link 3.3.31 · 2021.02.08
changed - 2021.02.08
- Implemented
useFieldset
for Craft 3.6
fixed - 2021.02.08
- Explicitly parse the
seomatic.site.identity.genericUrl
so that aliases & environment variables are parsed - Fixed an issue with PHP 8 and
array_walk_recursive()
wanting the second parameter to not be passed by reference (opposite of what the error message states) - Fix Feed Me mapping and asset-creation
Link 3.3.30 · 2021.01.26
changed - 2021.01.26
- Make the canonical URL point to the current page for paginatedlinks ref
- Run the queue via CLI command via
QueueHelper::runConsole()
to handle queues that don't conform to Craft'sQueueInterface
- Updated Axios to
^0.21.1
- Removed unneeded duplicate
og:locale:alternate
if it matches the currentog:locale
- Don't strip query strings from
link rel="canonical"
for paginated pages
Link 3.3.29 · 2020.12.31
changed - 2020.12.31
- Renamed
common.js
->commons.js
, which is the correct name, and also will suppress it from appearing in the errorlogs - Switch from using
->each()
to usingcraft\db\Paginator
to paginate asset query results, to address out of memoryissues on massive queries - SEOmatic now requires Craft CMS 3.1.19 or later
Link 3.3.28 · 2020.12.22
fixed - 2020.12.22
- Fixed a regression that caused Script variables to not be parsed as environment variables
- Fixed a bug that could cause Content SEO image settings to not override the global settings properly
- Set the the canonical URL to be the first page of the paginated pages
- Ensure that paginated pages are cached individually, regardless of the
addPaginatedHreflang
setting
Link 3.3.27 · 2020.12.18
changed - 2020.12.18
- Split out vendors & commons chunks
fixed - 2020.12.18
- Changed
unlimitedStock
tohasUnlimitedStock
for the Product JSON-LD defaults - Ensure that the
runtime.js
is included in the Field Settings and Field
Link 3.3.26 · 2020.12.08
changed - 2020.12.08
- Moved the CSS/JS buildchain over to webpack 5
- Updated to latest npm deps
Link 3.3.25 · 2020.12.04
added - 2020.12.04
- Added the ability to query the
MetaSiteVarsContainer
via GraphQL or Meta Container endpoint, to allow accessingthings such as the social media sites/urls, and other site-wide information
changed - 2020.12.04
- Normalize the script variables by parsing them as environment variables, and trimming whitespace
Link 3.3.24 · 2020.11.23
changed - 2020.11.23
- Moved the environment swapping functionality back to
MetaItem::init()
- Removed
type="text/javascript"
from the<script>
tags that SEOmatic injects for tracking scripts
fixed - 2020.11.23
- Ensured environment settings for
robots
are not saved to the db
Link 3.3.23 · 2020.11.18
changed - 2020.11.18
- Revert "Social image transforms for remote volumes no longer default to not generating the image transformsimmediately (they fall back on whatever your system setting is)" because it caused slowdown when working with remotevolumes
- Ensure the URLs in the breadcrumbs JSON-LD adheres to the
addTrailingSlashesToURls
general config setting - Added better checks for
InStock
for Product JSON-LD schema
fixed - 2020.11.18
- Fixed an issue where SEOmatic could permanently change "robots" to "none" inadvertently in edge-case circumstances
- Fixed an issue where the Main Entity of Page could reset to undesired values
- Use unicode safe string functions to truncate meta values > 4096 characters before parsing them
Link 3.3.22 · 2020.10.20
added - 2020.10.20
- Added a
--queue
flag that can be passed to theseomatic/sitemap/generate
flag to cause the sitemap generation jobsto be queued, but not run
fixed - 2020.10.20
- Fixed an issue in sitemap generation if an alternate site element had
null
for a URL - Fixed awkward spacing on Tracking Scripts environment warning
- Handle clearing caches properly when the homepage is in a structure via
__home__
in the slug
changed - 2020.10.20
- Ensure that
canonicalUrl
is always a string
Link 3.3.21 · 2020.09.30
fixed - 2020.09.30
- Fixed a regression that would cause a Garnish error on some SEOmatic pages, causing the JavaScript to not operateproperty
Link 3.3.20 · 2020.09.29
changed - 2020.09.29
- Don’t trigger
EVENT_INVALIDATE_CONTAINER_CACHES
in a console command - Replace
$this::
(??) withself::
globally in the codebase
Link 3.3.19 · 2020.09.28
changed - 2020.09.28
- Improved the user-visible sitemap .xsl stylesheet
- Removed SEOmatic name & link from the user-visible Sitemap footer
fixed - 2020.09.28
- Fixed an error that could occur if your primary site has no BaseUrl
- Fixed an issue that could result in multiple
X-Robots-Tag
headers if Craft is setting the header itself (as it doesin 3.5.10 or later) - Fixed an issue where changing Entry Types would cause the SEO Settings field to not display properly
Link 3.3.18 · 2020.08.31
added - 2020.08.31
- Added styling to create human-readable sitemaps via
.xsl
files - Added
hreflang="x-default"
to sitemaps if the Includex-default
hreflang
Tag setting is enabled
changed - 2020.08.31
- Ensure that sitemap
alternate
URLs also do not include trailing slashes on root website URLsifaddTrailingSlashesToUrls
is false - Requests for
sitemap.xml
are now 302 redirected to the actual sitemap rather than serving the same content from both
fixed - 2020.08.31
- Fixed an issue where sitemap index alternate tags had unnecessary whitespace in them
Link 3.3.17 · 2020.08.24
added - 2020.08.24
- Added
seomatic.helper.sanitizeUserInput()
in cases where you want to manually sanitize user input
changed - 2020.08.24
- Ensure that sitemap URLs also do not include trailing slashes on root website URLs if
addTrailingSlashesToUrls
isfalse
fixed - 2020.08.24
- Fixed a formatting issue for fields in the SEOmatic Settings pages that showed the number of characters left
- Fixed an issue where the token field wouldn’t be created if keywords had no value
- Fixed an issue where the previews in an SEO Settings field wouldn't match what they should be previewing
- Live Preview and Preview requests now never have their metadata cached
Link 3.3.16 · 2020.08.17
added - 2020.08.17
- Added additional unit tests for URL/entity decoding
- Added a new SEO File Link Endpoint Access setting (off by default) to make the feature opt-in
changed - 2020.08.17
- Adjusted the logic in the
seomatic.helper.isPreview()
function to make it more correct
fixed - 2020.08.17
- Fixed a formatting issue introduced in Craft CMS 3.5.4 that caused the layout in some of SEOmatic's settings to beincorrect
- Fixed an issue where the "Leave Site?" dialog would come up on the General Settings page, regardless of whether thepage changed or not
security - 2020.08.17
- Refactored the GraphQL SSTI code to normalize the string via URL/entity decoding it before stripping tags or Twig
Link 3.3.15 · 2020.08.14 [CRITICAL]
added - 2020.08.14 [CRITICAL]
- Add unit tests for the Meta Title tag
- Added a unit test for newline insertion in the GraphQL query payload
changed - 2020.08.14 [CRITICAL]
- Social image transforms for remote volumes no longer default to not generating the image transforms immediately (theyfall back on whatever your system setting is)
- If no title is provided, just use the site name
security - 2020.08.14 [CRITICAL]
- Fixed a potential SSTI if the GraphQL API is enabled in Craft, is open to the public, and a specially crafted requestis sent to it
Link 3.3.14 · 2020.08.10
changed - 2020.08.10
- Handle empty titles and empty site names by not including the separator character
- Trim trailing slashes from absolute URLs unless
addTrailingSlashesToUrls
is true
fixed - 2020.08.10
- Fixed an issue that caused sitemap generation to fail if you're using a non-native queue runner
- Handle invalid sites that have no site group without throwing an exception
- Fixed an issue where you were unable to set the Canonical URL to an environment variable
Link 3.3.13 · 2020.07.30
fixed - 2020.07.30
- Added
craftcms/cms
back in as a dependency so Craft sees updates to the plugin again - Fixed deprecation errors with Craft CMS 3.5RC1
- Fixed an issue where a regression caused the Include
x-default hreflang
Tag setting was not respected
Link 3.3.12 · 2020.07.21
fixed - 2020.07.21
- Fixed an issue where
null
could be passed intogroupId
for the sitemap generation job, causing it to fail - If a request is a preview request of any kind, set the
robots
tag tonone
- Don’t send any headers for preview requests
changed - 2020.07.21
- Check for
null
to ensure that the SEO Settings field exists when trying to prune properties from itinpruneFieldMetaBundleSettings()
Link 3.3.11 · 2020.07.14
added - 2020.07.14
- Added support for automaticallyadding Content Security Policy (CSP) nonces to
- AddedFixed Content Security Policy (CSP) script-src policies that should be added before the nonces
- Added a
sanitizeFieldData()
that's called when pulling from other Craft fields, to ensure no executable Twig codeexists - Added a unit test for
sanitizeFieldData()
Link 3.3.10 · 2020.07.07
fixed - 2020.07.07
- Handle trailing slashes properly for generated URLs such as the
canonicalUrl
- Fixed an issue where URLs that depended on the
canonicalUrl
(such asog:url
) would be wrong in the Craft CP or viaMetaContainer endpoint or GraphQL - Fixed an issue where an error could be thrown editing Content SEO settings
Link 3.3.9 · 2020.07.03
added - 2020.07.03
- Added the Codeception testing framework to SEOmatic
- Added a SSTI Unit Test to SEOmatic that executes on every push to GitHub to verify there are no regressionsfor CVE-2020-12790
changed - 2020.07.03
- Make entity's a
VarsModel
so they have access to.parsedValue()
fixed - 2020.07.03
- Fixed an issue where additional sitemap entries with empty location settings would throw an error
Link 3.3.8 · 2020.06.04
changed - 2020.06.04
- Strip the query string from breadcrumb URLs
- Marked the 3.3.0 update as
critical
- Ensure that
typeId
is explicitly typecast, to avoid it being treated as a string
Link 3.3.7 · 2020.06.04
fixed - 2020.06.04
- Fixed an issue where the Dashboard wasn't showing the Content SEO Checklist properly
- Fixed an issue where a sitemap might not show up if there were overlapping Section/other ids
Link 3.3.6 · 2020.06.03
added - 2020.06.03
- Added support for querying for SEOmatic metadata via GraphQL inside of Entry, Category, and Product queries
- Added environment variable & alias auto-complete for Canonical URL and Entity URL settings
- Added a Referrer setting under Site Settings → Miscellaneous
fixed - 2020.06.03
- Fixed an issue where some Sections might not appear in Content SEO if they had overlapping ids
- Display “Select…” instead of “(unknown)” when no Main Entity of Page has been selected
Link 3.3.5 · 2020.05.26
fixed - 2020.05.26
- Fixed an issue with Digital Products throwing an error on saving SEOmatic Content SEO settings
- Fixed an issue that could cause an SQL error when saving Content SEO settings on Postgres
Link 3.3.4 · 2020.05.18
added - 2020.05.18
- Added support for Digital Products
- Added a Meta Cache Duration setting under Plugin Settings → Advanced
- Added the ability to control anonymous access to the Meta Container & JSON-LD endpoints (with both off by default)
fixed - 2020.05.18
- Fixed a namespacing issue for UrlHelper on certain versions of PHP
- Don't call
metaBundles->getMetaBundleBySourceId()
unless there are no pending plugin migrations - Fixed an issue where element caches were not broken on element save for elements with
__home__
for the URI
Link 3.3.3 · 2020.05.12
changed - 2020.05.12
- Wrap the JSON-LD encoding in try/catch to handle malformed characters
- Added exception logging to
MetaValue::parseMetaString()
to make debugging the error source easier
fixed - 2020.05.12
- Fix Content SEO settings display for MySQL with
sql_mode=only_full_group_by
- Fixed an issue where the sitemap index could show duplicate section sitemaps
Link 3.3.2 · 2020.05.09
fixed - 2020.05.09
- Fixed an issue where the Main Entity of Page could retain stale values in the SEO Settings field
- Fixed an issue with duplicate entries appearing in the Content SEO listing
Link 3.3.1 · 2020.04.28
fixed - 2020.04.28
- Fixed an issue with the Content SEO listing not appearing if you are using Postgres
- Ensure that the Content SEO listing paginates property if you have multiple entry types
Link 3.3.0 · 2020.04.28 [CRITICAL]
added - 2020.04.28 [CRITICAL]
- Added a new searchable Schema UI selector for finding Main Entity of Page types quickly
- Added support for importing SEO meta info into SEOmatic via FeedMe
- Added support for multiple Entry Types, each of which can have its own SEOmatic settings in Content SEO
- Added a validator for the
Duration
schema.org type - Added a “Include Paginated
hreflang
Tags” setting - Added a Submit Sitemap Changes plugin setting
- Added emoji support for Sections
changed - 2020.04.28 [CRITICAL]
- The MetaLink error
...did not render because it is missing attributes
is no longer render as an error, but rathervia theinfo
log level, withWARNING -
proceeding it - You can now pass in
@type
ortype
for the schema type
fixed - 2020.04.28 [CRITICAL]
- Fixed an issue where the Robots setting could be "sticky" when generating sitemaps with SEO Settings fields involved
- If a page has a
robots
tag that marks it asnoindex
ornone
, don't include a canonical URL - No longer delete caches in response to
TemplateCaches::EVENT_AFTER_DELETE_CACHES
- Fixed an issue where SEO previews could have the wrong URLs for multi-site setups
security - 2020.04.28 [CRITICAL]
- Fixed a regression where malformed data passed to the metacontainers controller could result in SSTI which leads toinformation disclosure
Link 3.2.51 · 2020.04.06
added - 2020.04.06
- Updated to Schema.org 7.0.3including SpecialAnnouncementand other types/changes to handle the COVID-19 crisis
- Added several optional properties to the Eventschema.org type:
eventStatus
,eventAttendanceMode
, andpreviousStartDate
- Included the
extension
schema.org types as well ascore
schema.org types - Added
eventAttendanceMode
andeventStatus
with defaults to the Event JSON-LD
Link 3.2.50 · 2020.04.02
fixed - 2020.04.02
- Fixed an issue that appears to be a regression in Yii2, which would cause the Opening Hours to be unable to be saved
- Fixed an issue with the Site URL Override feature that could result in a malformed URL
changed - 2020.04.02
- Updated to latest npm dependencies via
npm audit fix
for both the primary app and the docs - Have the SEO Preview displayed URL reflect the Site URL Override
Link 3.2.49 · 2020.03.24
added - 2020.03.24
- Aliases will now auto-suggest in the Site URL Override settings field
- SEOmatic now will replace any stripped HTML tags with a space, so that the text is more readable
fixed - 2020.03.24
- The Site URL Override is now parsed for both aliases and environment variables
security - 2020.03.24
- Ensure that URLs are
urldecode
d before attempting to use a RegEx to strip tags from them
Link 3.2.48 · 2020.03.18
added - 2020.03.18
- Added batching to sitemap generation so that the memory used is fixed, and no longer dependent on how many sitemapentries are being processed
- Added a
Cache-Control
header ofno-cache, no-store
to the503
w/Retry-After
that SEOmatic returns for sitemapsthat are still being generated
fixed - 2020.03.18
- Fixed regex in
sanitizeUrl()
Link 3.2.47 · 2020.03.06
fixed - 2020.03.06
- Fixed an issue where hreflang URLs were incorrect if you had different localized URIs per entry
- Take keys into account when comparing defaults with values in SEO Settings fields
- Fixed a regression with the canonical URL when fetched via GraphQL/XHR
- Fixed an issue in which if Globals were used as source to pull from in a multi-site setup, they'd always preview asthe default site value
Link 3.2.46 · 2020.03.03
changed - 2020.03.03
- Fixed some dates to dateCreated as categories doesn't have postDate
security - 2020.03.03
- Fixed an issue where malformed data passed to the metacontainers controller could result in SSTI which leads toinformation disclosure
Link 3.2.45 · 2020.02.28
added - 2020.02.28
- Added the ability to query by site handle via GraphQL (in addition to
siteId
)
changed - 2020.02.28
- Ensure that the
x-default
hreflang
is set to the primary site, not just the first site
fixed - 2020.02.28
- Ensure that the GraphQL service has the
invalidateCaches()
method before attempting to call it (it wasn't addeduntil 3.3.12)
Link 3.2.44 · 2020.02.24
added - 2020.02.24
- Added the ability to copy any of the SEOmatic settings from one site to another, to make setup easier
- If
robots
is set tonone
in an SEO Settings field, the entry won't appear in the sitemap
fixed - 2020.02.24
- Fixed an issue where if you changed the Sitemap Limit to something other than None, then switched it back, you'dget an empty but non-null value for the limit, which didn't play nice with element queries from third party elements
- Preserve numeric
0
values in JSON-LD properties
security - 2020.02.24
- Don't include headers for any response code >= 400
- Remove any Twig tags that somehow are present in the incoming URL
Link 3.2.43 · 2020.02.13
changed - 2020.02.13
- Make sure that the
BreadCrumbsList
JSON-LD andlink rel="home"
tags respect thesiteUrlOverride
setting
fixed - 2020.02.13
- Fixed some minor UX spacing issues on Craft CMS 3.4
Link 3.2.42 · 2020.02.06
added - 2020.02.06
- Added
seomatic.helper.isPreview
and updated the tracking scripts to utilize it, to handle Craft 3.2 deprecationofcraft.app.request.isLivePreview
- Added an
account
column to the Same As URLs so you can store the social media account (if any) along with theURL - Added
seomatic.helper.sameAsByHandle(HANDLE)
to retrieve information about one of the Same As URLs by handle
fixed - 2020.02.06
seomatic:dashboard
permission is now required for the displaying of the Dashboard
Link 3.2.41 · 2020.01.29
added - 2020.01.29
- Added the ability for sitemaps to extract images & video from SuperTable fields
- Added the ability for text to be pulled from SuperTable fields for SEO Descriptions, etc.
fixed - 2020.01.29
- Fixed a regression that caused you to no longer be able to put an array of values in the
content
field ofanog:image
tag for multiple OpenGraph images - Fixed a regression that could cause SEO Settings fields to not propagate images properly
Link 3.2.40 · 2020.01.23
added - 2020.01.23
- Added rules to
MetaJsonLd
to allow for mass-setting via.setAttributes()
ofid
,type
, andcontext
changed - 2020.01.23
- Eliminated harmless JavaScript errors if a keywords element doesn't exist
fixed - 2020.01.23
- Social Media preview targets are now only added if the element has a
uri
that is notnull
Link 3.2.39 · 2020.01.17
added - 2020.01.17
- SEOmatic will now send back an array of data in the
metaScriptContainer
for GraphQL, etc. so that you can get atboth thescript
andbodyScript
even ifisArray
is false - When an entry is saved, if the value in an SEO Settings field matches the value in Content SEO for that section, thefield is set to an empty value to allow for overriding
fixed - 2020.01.17
- Fixed an issue where you couldn't change the Facebook OpenGraph Type in Content SEO if you had an SEO Settings fieldadded to that section
- SEO Settings fields no longer defaults to whatever the parent element's Content SEO settings, which fixes the overridecascade
Link 3.2.38 · 2020.01.07
changed - 2020.01.07
- Saving changes to the SEOmatic settings will now also clear the GraphQL caches on Craft 3.3 or later
- SEOmatic now tracks if sitemap jobs are pushed into the queue, and will release old sitemap queue jobs so that theydon't stack up
fixed - 2020.01.07
- Fixed an issue where the JavaScript console could have an error logged if there were no keywords
- Make sure
twitter:creator
andtwitter:site
are not resolve as aliases
Link 3.2.37 · 2019.12.11
security - 2019.12.11
- Throw an exception if an invalid sort field is passed into the
actionMetaBundles()
controller method, to eliminate alow-impact SQL injection vulnerability
Link 3.2.36 · 2019.12.10
security - 2019.12.10
- Fixed a low-impact SQL injection vulnerability
Link 3.2.35 · 2019.11.26
added - 2019.11.26
- Added a
siteUrlOverride
config setting for when you need to override thesiteUrl
, for instance in a headlessGraphQL or ElementAPI setup
changed - 2019.11.26
- If a
config/seomatic.php
file is present, use that as the source of truth for the'environment'
setting - Refactored the plugin settings into separate tabs to make them easier to use
fixed - 2019.11.26
- Removed thousands separator from Product schema
Link 3.2.34 · 2019.11.19
changed - 2019.11.19
- Made the
robots
default to an empty value for SEO Settings fields - Updated the URL for sitemap submissions to the Bing search engine
- URL encode the query part of the sitemap submissions to search engines
Link 3.2.33 · 2019.11.11
added - 2019.11.11
- Added
MAX_TEMPLATE_LENGTH
to prevent rendering super large object templates
changed - 2019.11.11
- Renamed several JSON-LD core types that were using reserved PHP 7 class names
- No longer match disabled elements unless we’re previewing
Link 3.2.32 · 2019.11.05
changed - 2019.11.05
- Rolled back a change that could cause the CP and site to slow down on uncached requests
Link 3.2.31 · 2019.11.04
changed - 2019.11.04
- Fixed the base image transform to be
'position' => null
Link 3.2.30 · 2019.10.31
changed - 2019.10.31
- SEOmatic will now invalidate container caches if they contain pending image transforms
- Enforce the
og:locale
andog:locale:alternaate
formats ofxx_XX
even for two-character language codes - Set
'position' => 'null'
for the base image transforms
Link 3.2.29 · 2019.10.24
changed - 2019.10.24
- If an section has its robots set to
none
ornoindex
in Content SEO, don't add it to the sitemap index - Add a Lowercase Canonical URL setting to Plugin Settings
- Fixed an issue with the
DataType
JSON-LD type - Cleaned up the GraphQL type generator
Link 3.2.28 · 2019.10.08
changed - 2019.10.08
- The sitemaps and sitemap indexes that SEOmatic generates are now automatically minified
- Added native GraphQL support
Link 3.2.27 · 2019.09.30
changed - 2019.09.30
- Fixed an issue with breadcrumbs beyond the first one
Link 3.2.26 · 2019.09.26
changed - 2019.09.26
- Fixed an issue where SEOmatic would put multiple sitemap entries for recurring Solspace Calendar events
- Removed errant logging in the Content SEO controller
- Fixed an issue where the script tag caches could be outputting something other than a string
- Updated the Breadcrumbs format to match Google's new format requirements
- More specifically list what happens in
local
dev &staging
environments
Link 3.2.25 · 2019.09.18
changed - 2019.09.18
- Fixed an issue where
mainEntityOfPage
overrides via an SEO Settings field could be the wrong model type
Link 3.2.24 · 2019.09.09
changed - 2019.09.09
- Fixed a potential XSS issue if you used
{% do seomatic.helper.paginate() %}
and there was a malformed query string - Replaced frontend api route with an actionUrl()
Link 3.2.23 · 2019.09.06
changed - 2019.09.06
- Fixed a typo in the environment info popup
- If the SEO image is not on a local volume, avoid a potentially long round-trip by being paranoid, and defaulting tonot generating the image transform immediately
Link 3.2.22 · 2019.09.03
changed - 2019.09.03
- Cleaned up the
title
parsing to allow forsiteName
only titles more cleanly - If the source asset file is missing, set
generateNow
tofalse
rather thannull
,overridinggenerateTransformsBeforePageLoad
- Maintain the currently selected site between global nav items in the CP sidebar
Link 3.2.21 · 2019.08.26
changed - 2019.08.26
- Fixed an issue where SEOmatic would errantly say the environment was disabled
- Parse the SEOmatic environment variable in the environment check
- Preflight to ensure that the source asset actually exists to avoid Craft hanging
- Fix incorrect event type for
RegisterSitemapUrlsEvent
Link 3.2.20 · 2019.08.16
changed - 2019.08.16
- Added a Environment label on the Dashboard, with explanations for why the environment setting is overridden (if itis)
Link 3.2.19 · 2019.08.06
changed - 2019.08.06
- Strip the query string at render time for the
canonical
link, to ensure any Craft 3.2token
params are stripped
Link 3.2.18 · 2019.07.31
added - 2019.07.31
- Added searching, sorting, and pagination to the Content SEO pages
changed - 2019.07.31
- Typecast the
sourceName
andsourceTemplate
to a string before validation - Moved over to a more modern tokenfield library for SEO Keywords
Link 3.2.17 · 2019.07.25
changed - 2019.07.25
- Typecast the
sourceName
andsourceTemplate
to a string everywhere, to handle numeric section/template names - No longer use
error
andwarning
log levels for MetaItem debug messages - No longer use
error
log levels for MetaTag debug messages
Link 3.2.16 · 2019.07.18
added - 2019.07.18
- Added Social Media Preview Target plugin setting
- Added
X-Robots-Tag: noindex
header to the sitemaps to prevent the sitemaps themselves from appearing in the SERP
changed - 2019.07.18
- Fixed an issue with the sitemap generation not respecting an already running queue
Link 3.2.15 · 2019.07.15
changed - 2019.07.15
- Fixed an issue where assigning a Rich Text field to a JSON-LD property didn't work
- Added typecast behavior to the
MetaBundle
model - Typecast the
MetaBundle
sourceName
to a string
Link 3.2.14 · 2019.07.12
added - 2019.07.12
- Added to the cache tag dependencies for the Field's preview data
- Added
sourceType
to theInvalidateContainerCachesEvent
event - Added
siteId
andsourceType
to the source cache tag dependencies
changed - 2019.07.12
- Prevented public accessing of the Social Media Preview
- Added a 📣 in front of the Social Media Preview
Link 3.2.13 · 2019.07.11
added - 2019.07.11
- Added Social Media Preview as a Live Preview target on Craft 3.2 or later
Link 3.2.12 · 2019.07.10
changed - 2019.07.10
- Do not invalidate meta bundle for drafts and revisions in Craft 3.2 or later
Link 3.2.11 · 2019.07.09
changed - 2019.07.09
- If an entry has its robots set to
none
ornoindex
, don't add it to the sitemap - Only append
mtime
to an SEO image if there are no query params already
Link 3.2.10 · 2019.06.27
added - 2019.06.27
- The generated JSON-LD now uses a single root JSON-LD object with the JSON-LD types included in the
@graph
array
changed - 2019.06.27
- Fixed an issue where headers were sent when the corresponding tags were not present
- Fixed an issue that caused SEOmatic to throw an error after you deleted a Solspace Calender calendar
- If we're not in local dev, tell it to generate the transform immediately so that urlslike
actions/assets/generate-transform
don't get cached - Add an
mtime
cache busting URL param to all social media images - The Facebook and Twitter Transform and Transform Mode settings are now visible even if "Same As SEO Image" is selected
Link 3.2.9 · 2019.06.13
changed - 2019.06.13
- Fixed an issue where the built JS bundles would error inside of webpack
Link 3.2.8 · 2019.06.13
changed - 2019.06.13
- Switched over to
startDateLocalized
&endDateLocalized
for Solspace Calendar defaults - Fixed an issue with the Breadcrumbs JSON-LD not being generated properly for sites that has a path as part of theirURL (e.g.
example.com/us/
) - Handle an edge-case where a migration didn't work properly to add
ADS_TXT_HANDLE
- Fixed an issue where an error would be thrown if a new Section was created, and you had a site group that had no sitesin it
- Fixed an issue where the SEOmatic CSS was affecting the CP CSS
- Fixed the Look up Latitude/Longitude button; it nowopens www.latlong.net because Google requires an API keynow
Link 3.2.7 · 2019.06.03
changed - 2019.06.03
- Added the ability to pass in
asArray
as a parameter for CraftQL queries to a JSON-encoded array of data back - Updated build system
Link 3.2.6 · 2019.05.29
changed - 2019.05.29
- Updated to schema.org 3.6 with over 900 JSON-LD Structured Data schemas!
Link 3.2.5 · 2019.05.29
changed - 2019.05.29
- Added
FAQPage
schema type from schema.org - Ensure that URLs with spaces or other non-RFC1738 compliant characters are encoded
- Replace "steps" by "step" in HowTo JSON-LD
- Changed
copyrightYear
to output just the year - Fixed an issue with the JavaScript bundle not instantiating for SEO Settings fields
- Updated to latest npm deps
Link 3.2.4 · 2019.05.24
changed - 2019.05.24
- Fixed a typecasting issue that caused
link rel="alternate"
to render for entries that were disabled for a particularsite - Remove pagination via query string for
link rel="alternate"
- Remove the pointless
Twig_Node_Expression_EmptyCoalesce
class
Link 3.2.3 · 2019.05.22
changed - 2019.05.22
- Fixed an issue where the new SEO Settings Field implementation could cause images to be duplicated
- Fixed an issue where JSON-LD schema could not be properly overridden via an SEO Settings field
- Fixed an issue where the dynamically populated schema menu would have improper padding in the
value
s
Link 3.2.2 · 2019.05.21
changed - 2019.05.21
- Fixed an issue where a Section with no elements in it could cause the Sitemaps queue job to stall
- Fixed Slack & Discord “summary card” CSS
Link 3.2.1 · 2019.05.21
changed - 2019.05.21
- Fixed an issue where the Site Setup checklist wasn't accurately reflecting the site settings
- Fixed an issue where trying to create a new section would throw a Type Error, preventing you from doing so
Link 3.2.0 · 2019.05.20
added - 2019.05.20
- Added SEO Previews for LinkedIn, Pinterest, Slack, and Discord
- Added the ability to control what SEO Previews appear in the sidebar
- Added CraftQL support for fetching SEOmatic container meta data
- Added support for Solspace Calendar events for custom metadata, JSON-LD, etc.
- SEO Settings fields now default to whatever the parent element's Content SEO settings are when instantiating it
- The Dashboard setup checklists now display checkboxes for items have have been set up properly
- Added a
SeoElementInterface
to abstract out the support for custom elements
changed - 2019.05.20
- Changed paginated
rel="alternate"
URLs to always point to the first page in other languages, not the paginatedpage (that may or may not exist) - Fixed an issue in
getLocalizedUrls()
so that it handlesgetElementUriForSite()
returning bothnull
andfalse
- If a meta value with the key of
target
(used for schema.orgSearchAction
s) doesn't have a{
as the firstcharacter, it is not parsed as Twig - Fixed an issue where environment variables in tracking scripts were not parsed
Link 3.1.50 · 2019.04.30
added - 2019.04.30
- Added the
???
Empty Coalesce operator to allow for the easy cascading of default text/image SEO values
changed - 2019.04.30
- Fix the
addXDefaultHrefLang
so it doesn’t throw an error if enabled
Link 3.1.49 · 2019.04.22
changed - 2019.04.22
- Don't create
rel=alternate
links for sections that aren't enabled for a site - Added a new
addXDefaultHrefLang
setting (which defaults totrue
) to control whether thex-default
hreflang
tagis included - Updated Twig namespacing to be compliant with deprecated class aliases in 2.7.x
- Changed the default Google Tag Manager data layer variable back to the default
dataLayer
(which it should have beenall along) - Fixed
SoftwareApplication
JSON-LD object model
Link 3.1.48 · 2019.04.16
changed - 2019.04.16
- Added
/cache/
to the default paths excluded inrobots.txt
to auto-exclude the default Blitz/cache/blitz/
path - SEOmatic now throws a
AddDynamicMetaEvent
event to give modules/plugins a chance to add any dynamic meta items toSEOmatic's containers - SEOmatic now throws a
InvalidateContainerCachesEvent
event whenever it clears its meta container caches, so otherplugins/modules can listen in for it - No longer regenerate sitemaps when a Section is edited and
'regenerateSitemapsAutomatically' => false
- Update the display name of sections, category groups, and products in Content SEO when they are edited
Link 3.1.47 · 2019.04.02
changed - 2019.04.02
- Added
Environment::determineEnvironment()
so SEOmatic is can be smarter about automatically mapping environments - Allow the SEOmatic Environment plugin setting to be an Environment Variable in Craft 3.1 or higher
- Allow for Section handles that are longer than 64 characters
- Fixed an issue where the
mainEntityOfPage
could reset to the defaultWebPage
if you saved the settings on panesother than General - Fixed an issue with paginated
rel="alternate"
links on a multi-site setup where the slugs differed from site to site
Link 3.1.46 · 2019.03.15
changed - 2019.03.15
- Use dash instead of underscore for sitemap urls
- Don't allow editing of the plugin settings if
allowAdminChanges
is false - Sort Content SEO listings by name to make things easier to find
- Add missing properties to the
Question
JSON-LD schema
Link 3.1.45 · 2019.03.04
changed - 2019.03.04
- Fixed an issue where
container.clearCache
wasn't using the correct cache key to invalidate the cache - Fixed an issue where Google Tag Manager would render in Live Preview
- Added try/catch around alias/parseEnv to try to catch errors that shouldn't happen
Link 3.1.44 · 2019.02.18
changed - 2019.02.18
- Fixed an issue with the URL in the sitemap index to the custom sitemap was invalid
- Fixed an issue when using the meta containers controller with tracking scripts
and asArray=true
Link 3.1.43 · 2019.02.15
changed - 2019.02.15
- Fixed an issue in Content SEO if no field layouts are yet defined
- Fixed a regression where pagination info is stripped from hreflang
- Add
JSON_HEX_TAG
flag for encoding JSON-LD to ensure that<
&>
are escaped - Addressed an issue where you couldn't set the Main Entity of Page to nothing in Content SEO settings
Link 3.1.42 · 2019.02.07
changed - 2019.02.07
- Fixed an issue where
.env
vars were not actually parsed for the Tracking settings
Link 3.1.41 · 2019.02.07
changed - 2019.02.07
- If you're using Craft 3.1, SEOmatic variables/fields are parsedfor environment variables as well asaliases
- All tracking fieldsauto-complete
.env
environment variables
Link 3.1.40 · 2019.01.30
changed - 2019.01.30
- Fixed an issue with sitemap generation if your Section had a Neo field in it
- Fixed an issue if you passed in no parameters to
seomatic.helper.getLocalizedUrls()
could cause the incorrectlocalized URLs to be returned - Removed errant error logging
Link 3.1.39 · 2019.01.24
added - 2019.01.24
- Added a SEO Setup checklist to the Dashboard
- Added support for pulling content from Neo fields
changed - 2019.01.24
- Fixed an issue where the generated
hreflang
URLs were wrong if you had localized slugs - Sitemaps now return a 503 Service Unavailable an a
Retry-After
so bots will try back later if for some reason theycan't be rendered for the current request (Async Queue generation, etc.) - Fixed a namespacing issue with
UrlHelper
- Handle the case where no sections have been set up yet more gracefully
Link 3.1.38 · 2019.01.03
changed - 2019.01.03
- Register cache options for every type of request
- Refactored the sitemaps and sitemap indexes to always be in the server root, as perthe sitemaps spec
Link 3.1.37 · 2018.12.19
changed - 2018.12.19
- Ensure that title truncation handles edge cases gracefully
- Breadcrumbs in the CP now maintain the selected site
- Parse sitemaps and sitemap URLs for aliases and as Twig templates
- Don't try to add assets with null URLs to sitemaps
Link 3.1.36 · 2018.12.10
added - 2018.12.10
- Added the ability to add additional sitemaps that exist out of the CMS into the
sitemap.xml
via Site Settings ->Sitemap as well as via plugin
changed - 2018.12.10
- Fixed an issue where
LocalBusiness
JSON-LD type didn't inherit all of the properties fromPlace
that it should - Fixed an issue with
seomatic.helper.getLocalizedUrls
not working as expected for routes other than the currentrequest - Fixed an issue where plugin-generated custom sitemap URLs didn't have their
lastmod
respected for the sitemap index - Fixed an issue accessing
metaBundleSettings
in the Field when it doesn't exist
Link 3.1.35 · 2018.12.03
changed - 2018.12.03
- Fixed an issue where the
potentialAction
JSON-LD for the Site Links Search was rendered even if it was left empty - Fixed an issue where the SEO Settings field did not properly override the
mainEntityOfPage
Link 3.1.34 · 2018.11.28
added - 2018.11.28
- Added a level 2 cache on the controller-based API requests for meta containers to improve "headless" performance
- Added support for LinkedIn Insight analytics in Tracking Scripts
- Added support for HubSpot analytics in Tracking Scripts
- Display the status of tracking scripts in the listing section
- Allow editing of the tracking scripts body scripts
changed - 2018.11.28
- Added the Open Graph tag
og:site_name
- Removed
craftcms/vue-asset
composer dependency - Call
App::maxPowerCaptain()
whenever a queue is manually run (both via web and console request)
Link 3.1.33 · 2018.11.22
changed - 2018.11.22
- Fixed an issue with socialTransform() throwing a Twig exception
Link 3.1.32 · 2018.11.19
added - 2018.11.19
- Added
<title>
prefixes for the Control Panel anddevMode
Control Panel - Allow social media images to be either
.jpg
or.png
formats
Link 3.1.31 · 2018.11.18
added - 2018.11.18
- Added a console command
./craft seomatic/sitemap/generate
to generate sitemaps via the CLI - Added the SEOmatic->Plugin setting Regenerate Sitemaps Automatically to control the automatic regenerate ofsitemaps
changed - 2018.11.18
- Fix division by zero error if no sections exist
- Dynamically base the Twitter transform type from the current evaluated type, rather than hardcoding it
Link 3.1.30 · 2018.11.13
added - 2018.11.13
- Added support for the ads.txt Authorized Digital Sellers standard
changed - 2018.11.13
- Clear FastCGI Caches upon sitemap generation
- If
runQueueAutomatically
istrue
return the generated sitemap immediately via http request - Adjusted Control Panel dashboard charts
- Fixed an issue where the Content SEO settings would display sections that are not enabled for a given site
Link 3.1.29 · 2018.11.11
changed - 2018.11.11
- Added the ability to show SEO Settings fields in the Element Index's Table Columns
- Redid the Dashboard graphs to be more useful and modern looking
- Modernized package.json and webpack build
- Confetti on install (yay!)
Link 3.1.28 · 2018.11.07
changed - 2018.11.07
- Remove
__home__
from preview URIs - Fixed a regression that caused the SEO Settings field to not override things like Facebook/Twitter images properly
- Fixed an issue that caused the SEO Settings field to not display tabs properly if the General tab was hidden
Link 3.1.27 · 2018.11.07
changed - 2018.11.07
- Fixed an issue where sitemaps generated in the Control Panel did not have the proper cache duration set, so they werealways invalidated
- Disabled tracking scripts from sending Page View data during Live Preview
- Ensure background image values are quoted for the SEO previews
- If
runQueueAutomatically
is set, start running the queue job to generate the sitemap immediately
Link 3.1.26 · 2018.11.05
changed - 2018.11.05
- Don't regenerate the sitemaps when elements are being re-saved enmasse via Section resaving
- Fixed JavaScript console error due to outdated assets build
Link 3.1.25 · 2018.11.05
added - 2018.11.05
- Moved sitemap generation to a queue job, to allow for very large sitemaps to be generated without timing out
changed - 2018.11.05
- Normalize the incoming URI to account for
__home__
Link 3.1.24 · 2018.11.02
added - 2018.11.02
- Added the ability to control the depth that sitemaps should be generated for Categories (just like already existed forStructures)
- Added
EVENT_INCLUDE_CONTAINER
event to manipulate containers - Always create sitemap URLs from the given site, since they have to have the same origin
- Added labels to the Google, Twitter, and Facebook previews
changed - 2018.11.02
- Fix rendering for MetaLink and MetaTag with multiple tags when requesting them via Controller
- Fixed an issue where SEO Settings fields would override the Sitemap settings even if that was disabled
- Fixed an issue with the SEO Settings field when switching between Entry Types
- Pass down the
$uri
and$siteId
toaddDynamicMetaToContainers()
toaddMetaLinkHrefLang()
- Fix rendering of canonical and home links from Controllers
- Fixed an issue with there Dashboard charts could be out of sync if sections were deleted/renamed
- Use the default transform mechanism for SEO images
- Only include the fields the user is allowed to edit in the SEO Settings overrides
- Fixed an issue where Twitter images could be resized improperly based on the card type
Link 3.1.23 · 2018.10.15
changed - 2018.10.15
- Returns the correct
sitemap.xml
for multi-site "sister site" groups - Cache frontend templates on a per-site basis
- Make sure that
humans.txt
links are full URLs - Handle the case where all Same As URLs are deleted
- Fixed an issue where
hreflang
tags were still added even with the setting was disabled, but only for paginatedentries - Changed the default
title
length to70
and the defaultdescription
length to155
- Fixed an issue where nested JSON-LD objects would contain erroneous
key
andinclude
properties
Link 3.1.22 · 2018.09.25
changed - 2018.09.25
- Fixed an issue where choosing All for sitemap Structure Depth resulted in it displaying nothing
- Fixed an issue with the SiteLinks Search Box not having the correct format in
query-input
- Fixed an issue where Craft could sometimes hang if we asked for an image transform with
generateNow
=true
Link 3.1.21 · 2018.09.18
added - 2018.09.18
- Added the
.clearCache
property to all meta containers, allowing them to be manually cleared via Twig - Don't include any dynamic metadata for response codes
>= 400
changed - 2018.09.18
- SEOmatic will now automatically take the
dataLayer
property into account for the script container's cache key - Better document titles for SEOmatic Control Panel pages
- Remove vestigial Redirects classes
- Don't check the response
statusCode
for console requests
Link 3.1.20 · 2018.09.12
added - 2018.09.12
- Added memoization cache to the FieldHelper class to help improve inner loop performance
- Add the ability to control structure depth for sitemaps
changed - 2018.09.12
- For requests with a status code of >= 400, use one cache key
Link 3.1.19 · 2018.09.04
changed - 2018.09.04
- Changed the Composer dependency for
davechild/textstatistics
to lock it downto1.0.2
Semver?
Link 3.1.18.1 · 2018.08.30
changed - 2018.08.30
- Fixed an
undefined index
error
Link 3.1.18 · 2018.08.30
added - 2018.08.30
- Added the Site Groups define logically separate sites Plugin Setting to allow for different Site Group use-cases
changed - 2018.08.30
- Removed potential duplicates from
og:locale:alternate
- Don't include
alternate
orog:locale:alternate
tags for Content SEO sections that have Sitemaps disabled - Handle disabled sections for sites in Content SEO better
Link 3.1.17 · 2018.08.29
changed - 2018.08.29
- Fixed an error trying to access a property of a non-object in MetaContainers.php
- Prevent classname conflict with older versions of PHP
- Fix an issue where transform modes didn't work with Custom Image sources
- Scale the
logo
to fit to 600x60 asper Google specs
Link 3.1.16 · 2018.08.23
changed - 2018.08.23
- Handle elements that don't exist on other sites better
- Don't include hreflang in sitemaps for sites where it has been disabled, whether through Content SEO or SEO Settingsfield settings
- Hide Transform Image and Transform Type in the SEO Settings field if they aren't enabled
- Fixed a conflicting use \craft\helpers\Json import
Link 3.1.15 · 2018.08.16
changed - 2018.08.16
- Fixed an issue where sitemap caches were not getting properly cleared
- Fixed an issue where elements disabled in a site were showing up in the
hreflang
- Fixed namespaces and custom sitemap event triggering
Link 3.1.14 · 2018.08.14
added - 2018.08.14
- Added in the ability to override sitemap settings on a per-Entry/Category Group/Product basis
- Implement
Json::decode()
to avoid large integers being converted to floats - If the SEO Settings field for an entry has Robots set to
none
or has sitemaps disabled, it isn't included inthehreflang
- Added a setting to control whether
hreflang
tags are automatically added
changed - 2018.08.14
- Ensure that the sitemap index cache gets invalidated when entries are modified
- Specify
rel="noopener"
for external links. - Fix the order that the field migration happens to let the mapping magic happen
- SEOmatic now requires Craft CMS 3.0.20 or later
- Fixed an issue with paginated pages that have no results on them
Link 3.1.13.1 · 2018.08.07
changed - 2018.08.07
- Fixed a potential
undefined index
error with pull fields, resulting from the new cropping modes
Link 3.1.13 · 2018.08.07
added - 2018.08.07
- Added the ability to choose between Crop (the default), Fit, or Stretch for the SEO, Twitter, and Facebookimage transforms
changed - 2018.08.07
- Brought back the missing ** Transform Facebook OpenGraph Image** field
- Don't do anything with pagination on console requests
Link 3.1.12 · 2018.08.06
changed - 2018.08.06
- Make the base
Container
class extendFluentModel
so that containers can be accessed via templates just likeMetaTags are - Ensure that we check to see if a container's
include
property is set before rendering it - Use a unique cache key for everything for the request, including the pagination and URI
- Prep script containers for inclusion in
includeScriptBodyHtml()
Link 3.1.11 · 2018.08.05
changed - 2018.08.05
- Fixed a regression that caused an error loading entries
Link 3.1.10 · 2018.08.05
changed - 2018.08.05
- Cleaned up how the pagination cache key works
- Add the current request path into the mix for the meta container cache key
- Force social media values to be displayed as strings
Link 3.1.9 · 2018.08.04
changed - 2018.08.04
- Fixed an issue where SEOmatic wouldn't find Entry metadata if the entry was first saved as a Draft, then published
- Include the pagination page in the cache key to ensure paginated pages are uniquely cached
Link 3.1.8 · 2018.08.03
changed - 2018.08.03
- Fixed a regression that caused you to be unable to save Custom URL for an image source in the Control Panel
Link 3.1.7 · 2018.08.02
changed - 2018.08.02
- Fixed an issue where Content SEO permissions were not respected properly in the Control Panel
- Display the Tracking Scripts status in the Control Panel regardless of
devMode
setting
added - 2018.08.02
- Don't render a canonical url for http status codes >= 400
- Set meta robots tag to
none
for http status codes >= 400
security - 2018.08.02
- Decode HTML entities, then strip tags in
safeCanonicalUrl()
Link 3.1.6 · 2018.07.25
changed - 2018.07.25
- Really ensure that paginated pages are cached separately in the second-level cache
Link 3.1.5 · 2018.07.24
changed - 2018.07.24
- No longer include any matched element in the Content SEO previews (which can be confusing if there are SEO Settingsfield overrides)
- Ensure that paginated pages are cached separately in the second-level cache
- Fixed an issue where changes to the SEO Image would not propagate to the Facebook/Twitter image when changed if "Sameas SEO Image" was set
Link 3.1.4 · 2018.07.23 [CRITICAL]
security - 2018.07.23 [CRITICAL]
- Changed the way requests that don't match any elements generate the
canonicalUrl
, to avoid potentially executinginjected Twig code
Link 3.1.3 · 2018.07.20
added - 2018.07.20
- Added Additional Sitemap URLs to Site Settings -> Miscellaneous for custom sitemap URLs
- Added
EVENT_REGISTER_SITEMAP_URLS
event so plugins can register custom sitemap URLs - Added the
Referrer-Policy
header based on the value of thereferrer
tag - Added the ability to control whether any http response headers are added by SEOmatic
- Added the Facebook OpenGraph tags
og:image:width
&og:image:height
- Added the Twitter card tags
twitter:image:width
&twitter:image:height
changed - 2018.07.20
- Clear SEOmatic caches after saving the plugin settings
- Fixed an issue where boolean settings in meta containers that were set to false would not override as expected
Link 3.1.2 · 2018.07.17
changed - 2018.07.17
- Fixed an issue with the language being set to
en_US
instead ofen-US
ingetLocalizedUrls()
Link 3.1.1 · 2018.07.14
changed - 2018.07.14
- Fix parsing logic error in
MetaValue
- Fixed an issue where the SiteLinks Search Box wouldn't work because it errantly parsed the setting as Twig
- Better title for pull field dropdown menus
- Fix potential preview issues in Content SEO for certain multi-site setups
Link 3.1.0 · 2018.07.11
added - 2018.07.11
- Added full support for Craft Commerce 2
- Added a caching layer to
includeMetaContainers()
for improved performance - Added more fine-grained profiling data
- Re-organized how event handlers are loaded to allow for compatibility with Fallback Site plugin
changed - 2018.07.11
- Canonical URLs are now always lower-cased, and made absolute
- Fixed an issue where the SiteLinks Search Box wouldn't work because it errantly parsed the setting as Twig
- Allow for default empty settings for the SEO Settings field for things like the Twitter Card type, etc.
- Added a warning to let people know tracking scripts are disabled when
devMode
is on - Fixed an issue with JSON-LD dropping certain properties if non-default types were selected
Link 3.0.25 · 2018.07.03
changed - 2018.07.03
- Strip tags from the incoming
craft.app.request.pathInfo
for thecanonicalUrl
- Fixed the breadcrumbs link on the Plugin Settings page
- Fixed an issue where users without admin privileges could not save the SEOmatic Plugin Settings
- Fixed an issue where category groups would be lumped together in the sitemap
- Fixed an issue with og:locale and og:locale:alternate being improperly formatted
Link 3.0.24 · 2018.06.25
added - 2018.06.25
- Allow the use of Emoji in the plugin settings, such as for the
devMode
title prefix
changed - 2018.06.25
- Set the default devMode title prefix to 🚧
- Sync section / category group handles that are renamed
- Don't log meta item error messages unless
devMode
is on - Don’t encode preview URLs
- Fixed an issue where disabling a section’s URLs was not sync properly with the Content SEO settings
Link 3.0.23 · 2018.06.18
added - 2018.06.18
- Added support for emojis in any of the SEOmatic fields
changed - 2018.06.18
- Fixed an issue introduced in Craft CMS 3.0.10 that would cause JSON-LD to be not fully rendered
- Allow nothing (
--
) to be selected as a Source Field in the Image/Video Sitemap fields - Added cache busting to the SEO preview images so that they will always display the latest image
- Fixed an issue where removing an SEO Image from an SEO Settings field would cause it to persist
Link 3.0.22 · 2018.06.12
changed - 2018.06.12
- Remove default value for devMode Prefix that prevented it from saving an empty value
- Fix default values for Title position, Twitter Title position, and OG Title position
- Allow for the setting of the
dataLayer
via Twig for Google Tag Manager - Added pagination support via
seomatic.helper.paginate()
to properly set the paginatedcanonicalUrl
as well asthe<link rel='prev'>
and<link rel='next'>
tags - Preserve the pagination trigger query string for the
<link rel='hreflang'>
tags
Link 3.0.21 · 2018.06.01
changed - 2018.06.01
- Fixed
ContactPoint
rendering - Fixed an issue where an array of one JSON-LD would not render
- Make JSON-LD URLs fully qualified
Link 3.0.20 · 2018.05.31
changed - 2018.05.31
- Make sure
twitter:creator
andtwitter:site
are not resolve as aliases - Fixed an issue where
syncBundleWithConfig
could returnnull
- Preserve the FrontendTemplate settings during meta bundle updates
Link 3.0.19 · 2018.05.21
changed - 2018.05.21
- Ensure that the previews are not double-encoded
- Remove vestigial meta bundles from the sitemap index
Link 3.0.18 · 2018.05.20
changed - 2018.05.20
- Fixed an issue where the JSON-LD types weren’t correct
- Sync bundle when Global SEO, Content SEO, and Site Settings are changed
- Ensure that the first character of each meta item key is lower-cased
- Render JSON-LD properties that have an
@id
set
Link 3.0.17 · 2018.05.19
changed - 2018.05.19
- Make the various
seomatic.helper
functions more tolerant about havingnull
passed in as a parameter
Link 3.0.16 · 2018.05.18
changed - 2018.05.18
- Fixed a regression that the
rel="alternate"
link tags to not render properly - Fixed a regression where the Site Settings would throw an exception
Link 3.0.15 · 2018.05.17
changed - 2018.05.17
- Fixed a regression that caused per-environment settings to be applied in the Control Panel
- Fixed an issue that caused
seomatic.xxx.get()
to not returnnull
if no matching item was found
Link 3.0.14 · 2018.05.17
changed - 2018.05.17
- Ensure that any image or video URLs in the sitemap are full absolute URLs
- Fixed multiple issues with the
gtag.js
script that prevented it from working properly - HTML-encode all URLs and user-enterable data in the sitemaps and sitemap indexes
- Fixed an issue where the meta items are not indexed properly, causing you to be unable to get them from the Twig API
- Fixed an issue where meta items that should have been excluded by environment were not
Link 3.0.13 · 2018.05.15
changed - 2018.05.15
- Fixed an issue where the
gtag
body script did not properly render - Fixed an issue where empty results for pull fields would not fall back on the parent (usually global) settings
- Fixed an issue where
seomatic.helper.loadMetadataForUri()
might not replace the container metadata properly
Link 3.0.12 · 2018.05.10
changed - 2018.05.10
- Switch from
.one()
syntax to[0]
to account for eager loading of transformed social media images - Fixed an issue where SEOmatic incorrectly showed how many categories were in a category group on the Content SEO page
- Fixed an issue where Content SEO social images wouldn't fall back on the global images if they were set to "Same asSEO Image" and the SEO Image was empty
- Fixed a typo in the SEO Settings field settings
- SEOmatic no longer renders the
rel="author"
tag if you havehumans.txt
disabled
added - 2018.05.10
- Added translations for the SEO Settings Field options
Link 3.0.11 · 2018.05.03
changed - 2018.05.03
- Removed
'interlace' => 'line'
from the social media transforms, which inexplicably caused Focal Points to not beused - Fixed an issue where the JSON-LD would not fully render due to a regression
Link 3.0.10 · 2018.05.02
changed - 2018.05.02
- Fixed incorrect social media permissions that prevented access to that settings page
- Fixed an issue where
section
meta bundles would be improperly marked asfield
due to a regression in the migrationimporting code - Fixed an issue where
categoryGroup
meta bundles would be improperly marked asfield
due to a regression in themigration importing code - Removed OpenGraph tag dependency on
facebookProfileId
orfacebookAppId
being present - Fixed Pinterest verification tag dependency
- Bumped the schemaVersion
added - 2018.05.02
- Added a migration to remove any errant
seomatic_metabundles
rows that havesourceBundleType
set tofield
Link 3.0.9 · 2018.05.01
changed - 2018.05.01
- Fixed an issue when migrating data from Craft 2.x
Seomatic_Meta
fields and an Asset was set to "Custom"
Link 3.0.8 · 2018.04.30
changed - 2018.04.30
- Removed excessive validation that was causing SEOmatic Fields to not save properly
Link 3.0.7 · 2018.04.30
changed - 2018.04.30
- Fixed a regression that caused SEOmatic to not import data from old Craft 2.x
Seomatic_Meta
fields properly
Link 3.0.6 · 2018.04.30
changed - 2018.04.30
- Fixed a regression that caused the Section meta bundles to be the wrong type
Link 3.0.5 · 2018.04.27
changed - 2018.04.27
- Better instructions for the Canonical URL
- Updated translations
- Use correct
sourceBundleType
for Field meta bundles - Fixed a regression that caused Content SEO sections to not save properly
Link 3.0.4 · 2018.04.26
changed - 2018.04.26
- Don't display Sections / Category Groups in Content SEO that no longer have public URLs
- Fixed an issue with console requests
- Fixed an issue where Sections and Category groups with the same
handle
didn't work right in Content SEO - More validation on the data passed into the SEO Settings field as a config array
Link 3.0.3 · 2018.04.25
changed - 2018.04.25
- Fixed an issue where re-using the same Field handle from other Field types would cause an exception to be thrown inthe Control Panel
- Improved the way SEOmatic matches the current element
- Bypass the data cache entirely in the Control Panel, to avoid refresh issues
- Fixed an issue where sometimes the correct data is not what is previewed in the Control Panel
- Fixed an issue where the
canonicalUrl
seemed immutable on the Global SEO pages
Link 3.0.2 · 2018.04.24
added - 2018.04.24
og:image
tags are now validated to ensure they are fully qualified URLsog:image
tags now are converted to absolute URLs (to handle protocol-less URLs)twitter:image
tags are now validated to ensure they are fully qualified URLstwitter:image
tags now are converted to absolute URLs (to handle protocol-less URLs)- Added missing translations
changed - 2018.04.24
- Fixed an issue where Tracking Scripts permissions weren't all propertly presented
Link 3.0.1 · 2018.04.20
changed - 2018.04.20
- Fixed an issue with sitemap indexes for elements that have null URLs
- Fixed an issue with permissions and the Tracking Scripts page
Link 3.0.0 · 2018.04.17
added - 2018.04.17
- Official GA release
Link 3.0.0-beta.24 · 2018.04.17
changed - 2018.04.17
- Fixed a regression that caused the Site switcher to no longer work in the SEOmatic settings
- Fixed a regression that could cause the sitemap index to include the appropriate sections
Link 3.0.0-beta.23 · 2018.04.16
changed - 2018.04.16
- Fixed an issue where the social transforms sometimes might not render properly
- SEOmatic now requires Craft CMS 3.0.2 or later (so we can listen to
TemplateCaches::EVENT_AFTER_DELETE_CACHES
) - Handle Section or Category Groups that may have had their handles renamed
added - 2018.04.16
- SEOmatic now clears its caches any time
TemplateCaches::EVENT_AFTER_DELETE_CACHES
is triggered - If the FastcgiCacheBust plugins is installed, clear its caches when SEOmatic clears its own caches
Link 3.0.0-beta.22 · 2018.04.12
added - 2018.04.12
- Added performance profiling to major bottlenecks
- Lots of code cleanup courtesy of the PHP Inspections plugin
changed - 2018.04.12
Link 3.0.0-beta.21 · 2018.04.06
added - 2018.04.06
- Don't display the Facebook/Twitter not set in the sidebar preview, only on the Settings pages
- Added an
Seomatic_Meta
Field to more gracefully handle sites upgraded from Craft 2.x that used the old FieldType - If you add an SEO Settings field to a Section that has an old Craft 2.x Seomatic Meta field in it, it willautomatically migrate the data and settings to the new field for you
- SEOmatic will automatically map your old Craft 2.x Field settings to corresponding Content SEO settings
changed - 2018.04.06
- Better Dashboard display of SEO setup graphs
- Fixed an issue with an improperly named Site / Social Media permission
- Fixed an issue with the helper functions not gracefully handling
null
being passed in - Fixed validation errors that could cause you to be unable to save changes to various SEOmatic settings
Link 3.0.0-beta.20 · 2018.04.02
changed - 2018.04.02
- Added additional fields for the
mainEntityOfPage
JSON-LD - Clicking on Settings on from the Control Panel now redirects to the appropriate SEOmatic sub-nav
added - 2018.04.02
- Added an SEO Settings Field that allows you to override SEO settings on a per-entry basis
- Added a schema.org link for the Main Entity of Page type you have specified
- Added
seomatic.helper.truncate
andseomatic.helper.truncateOnWord
helper functions for truncating text
Link 3.0.0-beta.19 · 2018.03.28
changed - 2018.03.28
- Fixed an issue where you could not disable
humans.txt
orrobots.txt
- Fixed an issue where the
computedType
wasn't saved properly for Global and Content SEO - Fixed an issue with JSON-LD generated for content containers not cascading as intended
added - 2018.03.28
- Added the ability to globally disable sitemap rendering
Link 3.0.0-beta.18 · 2018.03.26
changed - 2018.03.26
- Preserve Site Identity and Site Creator settings across bundle updates
Link 3.0.0-beta.17 · 2018.03.26
changed - 2018.03.26
- Check against
siteType
,siteSubType
andsiteSpecificType
beingnull
on the Site Settings pages - Updated
humans.txt
template to display information from the Creator settings - Separate Identity and Creator Entity Brand fields
- Remove JSON-LD schema.org properties that have just one entry in them (just the
@type
) - Fixed an issue where
hreflang
s could be incorrect
added - 2018.03.26
- Documented the Identity and Creator Site Settings variables
- Added
menu
andacceptsReservations
to the FoodEstablishment JSON-LD - Added link
rel=“home”
to the default tag container - Added
seomatic.helper.getLocalizedUrls()
function that will return a list of localized URLs - Added
sameAs
social media URLs to the Identity JSON-LD - Added
og:locale:alternate
Facebook OpenGraph tags
Link 3.0.0-beta.16 · 2018.03.25
changed - 2018.03.25
- Fixed an issue where fresh installations were not taken to the Welcome screen
- Replaced old SEOmatic icon in the Asset Bundle
- Fixed an issue where Identity and Creator settings were not properly defaulted from the config files on freshinstallations
- Better parsing of the JSON-LD config files
added - 2018.03.25
- Added Miscellaneous settings with Google Site Links search settings
- Preserve user settings in the Tracking Scripts when bundles are updated
- Fleshed out the JSON-LD for
mainEntityOfPage
,identity
, andcreator
Link 3.0.0-beta.15 · 2018.03.24
changed - 2018.03.24
- Separated the mainEntityOfPage templates off into a partial
- Cleaned up the Identity Settings & Creator Settings pages
added - 2018.03.24
- Added a description of JSON-LD Structured Data to the Identity & Creator pages
- Added Main Entity of Page settings on the Global SEO and Content SEO General pages
Link 3.0.0-beta.14 · 2018.03.23
changed - 2018.03.23
- Fixed an issue with console requests raising an exception in
addDynamicMetaToContainers()
- Add
errors
display to all settings templates
added - 2018.03.23
- Implemented dynamic Identity Settings & Creator Settings pages
Link 3.0.0-beta.13 · 2018.03.22
changed - 2018.03.22
- Don't look for
getPathInfo()
during a console request - Fixed an issue switching between sites on the Tracking scripts settings
- Revise how
seoFileLink()
works - Handle eager loaded elements in
TextHelper
Link 3.0.0-beta.12 · 2018.03.20
added - 2018.03.20
- Added colored status indicators on the Content SEO index page that match the colors in the donut chart on theDashboard
- Added
seomatic.helper.seoFileLink()
to allow setting theX-Robots-Tag
andLink
headers on static files asper Advanced rel="canonical" HTTP Headers - Added a
Link
header for the canonical URL
changed - 2018.03.20
- Don't display SEO previews if the Section has no URLs
Link 3.0.0-beta.11 · 2018.03.19
changed - 2018.03.19
- Refactored the meta bundle update process to preserve user configured meta bundle settings
- Throw a 404 if a sitemap is hit but sitemaps have been disabled for that section
- Exclude section sitemaps from the sitemap index if sitemaps have been disabled for that section
Link 3.0.0-beta.10 · 2018.03.18
changed - 2018.03.18
- Reverted incorrect bundle merging
Link 3.0.0-beta.9 · 2018.03.18
added - 2018.03.18
- Added
Schema
helper class & controller in preparation for dynamic schema types displayed in the Control Panel
changed - 2018.03.18
- Fixed incorrect
moz-transform
vendor prefix that caused the sidebar SEO preview to look weird in FireFox - Fixed a nasty bug that could cause improper merging of config arrays, resulting in an ever-growing column size in thedb
Link 3.0.0-beta.8 · 2018.03.16
changed - 2018.03.16
- Fixed per-environment rendering of attributes
- Made meta bundle updating non-destructive to existing data
Link 3.0.0-beta.7 · 2018.03.16
added - 2018.03.16
- Added a "Same as Global Site Name Position" setting as the default for the Site Name Position Content SEO settings
changed - 2018.03.16
- Fixed an issue where the last breadcrumb on the Content SEO
edit-content
page was a 404 - Fixed a caching issue that could result in stale data if you used
seomatic.helper.loadMetadataForUri()
- Don't automatically generate thumbnails for videos in the sitemap
- Changed the Dashboard charts over to gauge charts
Link 3.0.0-beta.6 · 2018.03.15
added - 2018.03.15
- Check whether the
seomatic_metabundles
table exists before installing any even listeners
Link 3.0.0-beta.5 · 2018.03.15
changed - 2018.03.15
- Fixed an issue where the caching didn't work properly for multi-sites
Link 3.0.0-beta.4 · 2018.03.14
added - 2018.03.14
- Added a validation rule for
genericAddressCountry
so it saves - Added a validation rules for
renderEnabled
,separatorChar
,displayAnalysisSidebar
anddisplayPreviewSidebar
soyou can save the plugin settings. - Added initial Dashboard
changed - 2018.03.14
- Don't install event listeners until after all plugins have loaded, to ensure db migrations have been run
Link 3.0.0-beta.3 · 2018.03.14
added - 2018.03.14
- Added a migration for older Craft 2.x sites that had SEOmatic installed already, so that SEOmatic for Craft 3 caninstall its base tables
changed - 2018.03.14
- Fixed an issue with an incorrect redirect destination after saving a Tracking Scripts setting in the Control Panel
- Optimized the images used in the documentation
Link 3.0.0-beta.2 · 2018.03.13
changed - 2018.03.13
- Fixed issues with
: void
on PHP 7.0.x
Link 3.0.0-beta.1 · 2018.03.13
added - 2018.03.13
- Initial beta release