Skip to content

v5.3.0

Latest

Choose a tag to compare

@Blaumaus Blaumaus released this 29 Jun 14:32
2e1af43

Warning

This release includes breaking changes for self-hosted installations.

If you are upgrading from Swetrix CE v5.2.x, you must update your configuration and run the database migration below. Please read the upgrade instructions carefully before starting, otherwise your installation will not work correctly.

🔥 Major updates

SEO analytics

  1. Added position analytics, including an impressions-by-position breakdown and an organic positions time series, available as two new SEO chart panels.
Impressions by position and Organic positions charts demo
  1. Added the ability to compare SEO stats against previous or custom periods.

CAPTCHA

  1. Added Auto mode, which dynamically selects the challenge difficulty using privacy-safe risk signals, such as short-lived project traffic spikes, country-level spikes, replay attempts, and more. Learn more.

  2. Instead of only tracking successful CAPTCHA completions, we now track the full CAPTCHA lifecycle, including events like generated, passed, failed, validation failed, replay, and more. These events are visible on the main chart in your CAPTCHA dashboard:

Captcha chart

We also added more dashboard metrics, including Challenge status, CAPTCHA difficulty, and Average solve time, so you can understand how your CAPTCHA is performing and adjust it based on real data:

Captcha challenge status, difficulty, solve time and auto difficulty reasons panels

Profiles & Sessions

The Profiles and Sessions tabs have been fully redesigned to present data in a cleaner, more useful way. Inspecting user profiles is now easier too: the sessions list now includes expandable session dropdowns, so you can view each session’s page flow and navigate directly to it.

Example user profile

Experiments

  1. Added a Hypothesis field, a planning metrics calculator, and launch guardrails to help you estimate experiment metrics before starting.
  2. Completed experiments now automatically select the time period from start to end. Previously, if an experiment completed 3 months ago and you selected the last 7 days, the results could incorrectly show a 50/50 split.
  3. Added UI improvements, including a better completion flow, linked-flag badges, a cleaner experiments list, and more.

🙂 Minor changes

  • Added a new UI language: 🇧🇷 Brazilian Portuguese.
  • Unified saved segments and filters across tabs. If you apply a filter that is not supported by another tab, such as filtering by UTMs on the Traffic tab and then switching to the Performance tab, you will now see an indicator showing that the filter is not currently used.
  • Added the collapsed option to dashboard embedded mode.
  • Improved Feature Flags with scheduling, kill-switch overrides, richer statuses, staleness reasons, and a cleaner UI.
  • Rework "Project reset" feature - now it's easier to delete spam traffic by specific filters or patterns
  • Displayed the last used authentication method on the sign-in page.
  • Added support for comparing against the previous period in the Performance view.
  • Requiring the current password is now mandatory when changing your password in user settings.
  • Added filter support for Goals and Funnels.
  • Goals now display conversion insights, such as "From session start" and "From first page", in addition to the conversion chart.
  • Added session drilldown to Performance and Errors charts. You can click any point on the chart to view the sessions from that period.
  • Added weekdays to day-bucket chart tooltips, for example, "Tue, 26 May".
  • Funnels now reuse the same design patterns as Goals. They are displayed as cards on the same page, and each funnel can be opened by clicking its card.
  • The <noscript> tracking endpoint now calculates the visited page from the referrer when available.
  • Changed the bounce rate calculation formula to single-page sessions / total sessions * 100.
  • Added app-wide UI and UX improvements, including autosaving settings on change, better inputs and selectors, infinite scroll, and more.
  • Improved the Umami importer mapper, including ie -> Internet Explorer, better OS version detection, and more.
  • Reduced project code dependencies.

🔧 Fixes

  • Fixed password-protected projects showing empty dashboards to unauthorised people using project passwords.
  • Fixed experiment exposure percentages showing 100% only when exposures were greater than 0.
  • Fixed fresh sessions sometimes being marked as "Unknown user" on the Sessions list page.
  • Fixed Plausible Analytics imports crashing or getting stuck in a permanent "Pending" status.
  • Fixed timezone bucket alignment in session drilldown.
  • Fixed incorrect sorting behaviour in Analytics reports > Panels.

Upgrading to Swetrix CE v5.3 from v5.2.x

Important

This upgrade requires a database migration.

Before running the migration, make sure you have a recent backup of your data. This helps prevent data loss if something goes wrong during the upgrade.

1. Update your Swetrix services

Before running the migration, update your compose.yaml file to use the latest Swetrix CE v5.3 images:

  • frontend: swetrix/swetrix-fe:v5.3.0
  • backend: swetrix/swetrix-api:v5.3.0

Also make sure your compose.yaml includes the latest self-hosting dependency versions from this release, including the updated ClickHouse image.

Then pull and start the updated services from your selfhosting directory:

docker compose pull
docker compose up -d

2. Run the database migration

Once the updated containers are running, execute the migration script from your selfhosting directory:

docker compose exec swetrix-api node migrations/clickhouse/selfhosted_2026_05_05_experiments.js
docker compose exec swetrix-api node migrations/clickhouse/selfhosted_2026_05_20_captcha_auto_difficulty.js
docker compose exec swetrix-api node migrations/clickhouse/selfhosted_2026_05_20_goal_conditions.js
docker compose exec swetrix-api node migrations/clickhouse/selfhosted_2026_05_24_feature_flag_operations.js
docker compose exec swetrix-api node migrations/clickhouse/2026_06_03_session_replays.js

If the command finishes without any Query ERROR messages, the migration completed successfully. Please don't worry if the migration takes long to execute - it depends on how much data you have accumulated.

3. Restart Swetrix

After the migration has completed, restart your services:
docker compose restart

Swetrix CE v5.3 should now be ready to use.

That's it, enjoy self-hosting Swetrix! Join our Discord community for updates and discussions.