GTM4WP 1.22.4 is out, and 2.0 is on the way
GTM4WP 1.22.4 is out: let me be straight about where things stand, what just shipped, and what happens next.
It has been a while. Longer than it should have been.
If you run GTM4WP on a site you care about, you noticed. Updates slowed down and then more or less stopped, and issues piled up on GitHub — good reports about real problems, sitting there without an answer. I understand if that cost me some of your trust. It would have cost mine.
So let me be straight about where things stand, what just shipped, and what happens next.
A bit of history, because it explains why I care
GTM4WP was one of the first plugins to bring a complete Google Tag Manager setup to WordPress. The GTM plugins around back then mostly dropped the container code onto the page and left it at that. If you wanted more than that (a proper data layer, WooCommerce e-commerce tracking, that kind of thing) it lived in the paid Google Analytics plugins. I wanted the community to have that level of tracking for free, driven through GTM instead. That was the whole point, and it still is. Free on the first day, and it stays free. That part is not up for discussion.
The honest reason for the long quiet is not dramatic: I have a day job, and free time is thin. A plugin this size takes real, regular work to keep current, and for a stretch I could not give it the hours it needed. I did not want to ship half-finished updates, so I shipped almost nothing. In hindsight, silence was the worse choice.
While I was quiet, the space did not stand still. New GTM plugins showed up, and some good ones. I am glad they did — competition is what pushes the whole category forward, and the users are the ones who benefit. It also raised the bar I am now building against, which is a good part of why 2.0 is a proper rebuild and not just another patch on top of the old code.
What’s in 1.22.4
This release does two jobs: it clears out some long-open issues, and it gets you ready for 2.0.
It also hardens how the plugin writes data into the page: see the changelog for details.
You will also see a few settings now marked as deprecated. Nothing stops working in 1.22.4, the label is a heads-up that these features are going away in 2.0, so you have time to plan instead of being surprised later. More on that below.
The full changelog is on the plugin page.
What 2.0 is
2.0 is a rewrite. The plugin grew over many years, and the code was showing its age to the point where every change was slower and riskier than it should be. I rebuilt it on a cleaner foundation that I can actually keep maintaining.
Two things I want to be clear about.
It keeps backward compatibility. Your container setup, your data layer variables, the events you already rely on, they keep working. Moving to 2.0 should not mean rebuilding your GTM configuration though you might need to apply some adjustments. More about this later.
A few older features are being retired. Geo and weather data, and the built-in scroll tracking, are going away. These were niche, hard to keep working against third-party services, or better handled directly in GTM now (scroll depth, for example, has been a built-in GTM trigger for years). Where there is a good replacement, I will show you how to set it up. That is exactly why 1.22.4 marks them as deprecated today and you get the warning well before anything is removed.
How this rolls out
Here is the plan, with real dates so you can hold me to it.
- 1.22.4 is out now.
- Over the coming weeks I will publish new material on gtm4wp.com explaining how 2.0 works, what changed under the hood, and how backward compatibility holds together.
- 2.0 ships as a public beta. On wordpress.org the stable version stays at 1.22.4, and the beta will be available from GitHub and installable for testing. Nobody gets upgraded before they choose to. The beta runs for a good while on purpose: I want it tested on real dev and staging sites, not rushed.
- The documentation on the site gets brought up to date alongside it.
- 2.0 is planned for 1 September 2026, assuming nothing major turns up during the beta.
Why this time is different
Fair question to ask, and I would ask it too.
The day job has not gone anywhere, and my free time is still thin. What changed is how I spend it. For a while now I have been working with Claude Code as an assistant, and the key word there is assistant. I stay the orchestrator. I decide what gets built and why, I read every change before it goes in, and I push back when a suggestion is wrong, which happens, and which is exactly how it should work. It moves me faster through the parts that used to eat whole evenings: digging through the issue backlog, drafting a fix so I can check it, reworking tired old code. The 2.0 beta came together in about a week of focused work.
The part I am happiest with is not the speed, though. It is the quality control I built around it. This project now runs on a small set of review processes that act as its QA:
- Code review checks every change against a security and convention checklist before it lands, with particular attention to how data gets written into the page, which is exactly the kind of thing 1.22.4 tightened up.
- Test review holds the checks that ship with a change to the same bar, so a passing test actually means something.
- Issue review works through the open-issue GitHub backlog in an orderly way instead of by whoever happens to shout loudest.
None of that is magic. They are guardrails that let me move quickly without dropping the bar, and they are the reason I am comfortable putting my name on work that came together fast. I plan to write them up properly, because if you maintain a plugin of your own you might get some use out of them.
The point I want to leave you with is simple. On this project, AI is a well-integrated assistant with me holding the wheel. It is not the one driving.
“One more thing”
Trust does not come back with a single release, and I am not going to pretend it does. What I can do is show up, release by release, and let the work speak for itself. The plugin is free, it stays free, and I am back to maintaining it the way it deserves.
If you have stuck with GTM4WP over the years, thank you. If you drifted away, I would like the chance to earn you back.

Hi Tamás
Thanks for the update and looking forward to 2.0 and hearing more about it.
One feature request – ability to tick a box to include/exclude the GTM body snippet.
Hi Gideon,
The closest setting today is “Container code placement” in the General tab of the plugin settings. It controls where the noscript part of the container code goes: the page footer, right after the opening body tag, or nowhere at all if you select “Off”. “Off” removes both parts of the container code and leaves only the data layer active, so it is not the same as leaving out the body snippet alone. There is currently no separate switch that keeps the head part and skips the noscript part.
Could you tell me more about the case you have in mind, so that I can see whether a checkbox is the right solution? The noscript iframe only loads for visitors who have JavaScript disabled, so knowing what you want to avoid would help me decide how this should work.
I have noted the request either way.
Please let me know.
Thanks for continuing that awesome piece of software. I am sure it will raise the bar for all plugins out there again 🙂
As a website owner that had a consultant install this for me – I have a question about the timeline. On Sept 1 will the old version stop working entirely? Will I have a transition window where I can find time to uninstall the old one and install the new one?
Hi Brooke,
Version 2.0.0 is a direct update from the 1.x line. 1.22.5 does not stop working on a given date, it keeps running until you decide to press the update button, so there is no need to uninstall anything first. Keeping backward compatibility was the main goal of the rewrite, which means that for most website owners the update will be a single click on the Plugins page of your WordPress admin.
Please note that support is always provided for the latest stable version.
I am also planning a blog post about the parts of an existing measurement setup that may need attention after the move to 2.0.0.
Please let me know if you have any further questions.
Thank you for this honest update.
As someone who’s been running GTM4WP on client sites for years, I really appreciate the straight talk about the quiet period, the reasons behind it, and the fact that silence was the worse choice. That kind of transparency is rare and it goes a long way.
It’s good to see 1.22.4 out and a proper 2.0 rebuild on the way, with clear deprecation notices and a solid beta plan. Looking forward to testing the new version and seeing the plugin back on a healthy maintenance track.
Thanks for keeping it free and for putting the work in to regain trust. It doesn’t go unnoticed.
Thank you for creating such a wonderful plugin, it helped me alot.
Thanks Thomas!! We really appreciate all your hard work on this project. Trust won’t be lost so easily.
Thank you, I will definitely keep using your plugin.
Thank you, Thomas, really appreciate the update and the time you’ve put in to take GTM4WP to the next level.
Been a loyal user for years, and I’m excited about version 2!
cool. thanks for what you do