GTM4WP – A Google Tag Manager (GTM) plugin for WordPress
Google Tag Manager (GTM) is Google’s free tool for everyone to manage and deploy analytics and marketing tags as well as other code snippets using an intuitive web UI. To learn more about this tool, visit the official website. This plugin places the GTM container code snippets onto your WordPress website so that you do not need to add them manually. Multiple containers are also supported, and each container can have its own environment parameters, custom domain and custom path. The plugin complements your GTM setup by pushing page meta data and user information into the so-called data layer. Google’s official help pages include more details about the data layer. PHP 8.0 and WordPress 6.3 are required to use this plugin. GTM container code placement The original GTM container code is divided into two parts: The first part is a javascript code snippet that is added to the section of every page of the website. This part is critical to enable all features of GTM, and this plugin helps to place this part correctly on your site. The second part is an iframe snippet that acts as a failsafe/fallback should users’ JavaScript be disabled. Google recommends – for best performance – to place this code snippet directly after the opening tag on each page. Albeit not ideal, it will work when placed lower in the code. This plugin provides a code placement option for the second code snippet. If your WordPress theme is compatible with the additions of WordPress 5.2, then this plugin will place this second snippet in the right place. Users of the Genesis theme, GeneratePress theme, Elementor, Oxygen Builder and Beaver Builder Theme will also have it placed correctly. To utilize this, set the compatibility mode in the plugin options to off. All other users can place this second code snippet using custom PHP code (the “Manually coded” option), or select the so-called “Footer” option to add the code lower on the page (this is not the recommended way, but it will work). Basic data included post/page titles post/page dates post/page category slugs post/page tag slugs post/page author ID and name post/page ID post types post format post count on the current page + in the current category/tag/taxonomy custom terms associated with any post type logged in status logged in user role logged in user ID (to track cross device behavior in Google Analytics) logged in user email address (both unhashed and SHA256 hashed values to be used with tracking) logged in user creation date site search data site name and id (for WordPress multisite instances) IP address of the visitor (please obtain the visitor’s explicit consent before using this) post author data from PublishPress Authors, including co-authors and guest authors Content & engagement data Optional page variables that help with behavior tracking and Google Analytics 4 content grouping: content word count and estimated reading time last modified date and content age in days comment count and comment status page template, featured image presence, page hierarchy and sticky flag primary category, detected from Yoast SEO or Rank Math page language, detected from WPML or Polylang Browser / OS / Device data browser data (name, version, engine) OS data (name, version) device data (type, manufacturer, model) Data is collected in the browser using User-Agent Client Hints and pushed as a gtm4wp.deviceData event. Note that Safari and Firefox expose less detail than Chromium based browsers. Media player events Track users’ interactions with any embedded media: YouTube Vimeo Soundcloud HTML5 audio and video Dailymotion Mixcloud Cloudflare Stream Wistia JW Player VideoPress Spotify Twitch You can choose to fire data layer events when the media player loads, when the media is played, when it is paused or stopped, and optionally when the user reaches 10, 20, 30, …, 90, 100% of the media duration. Each event also populates Google Tag Manager’s built-in Video variables (Video Status, Video URL, Video Title, Video Provider, Video Duration, Video Current Time, Video Percent, Video Visible). Tracking is supported for embedded media using the built-in oEmbed feature of WordPress, as well as most other media plugins and copy/pasted embed codes. Players inserted into the page after it has loaded (for example in a popup, a lightbox or via AJAX) can also be tracked by turning on the optional “Track dynamically inserted players” setting. Tag restrictions: allowlist & blocklist Tag Manager tags, triggers and variables To increase website security, you have the option to allowlist or blocklist tags, triggers and variables. You can prevent specific tags from firing, or prevent the use of certain variable types, regardless of your GTM setup. If the Google account associated with your GTM account is compromised, an attacker could easily execute malware on your website without accessing its code on your hosting server. By blocklisting custom HTML tags, custom JavaScript variables and sandboxed scripts (custom tag and variable templates), you can secure the Tag Manager container. Integration Google Tag Manager for WordPress integrates with several popular plugins. More integrations to come! Contact Form 7: fire an event when a form is submitted with any result (mail sent, mail failed, spam detected, invalid input, submission aborted or terms not accepted). Optionally push the Google Analytics 4 recommended form events (form_start, form_submit, generate_lead) as well WooCommerce: Implementation of GA4 E-commerce Support for the Cart, Checkout, Mini-Cart, Product Collection and cross-sell blocks, not only the classic shortcode based pages Enhanced Conversions user data on the purchase event for Google Ads Compatibility with High Performance Order Storage (HPOS) Does not support promotions, since WooCommerce does not have such a feature (yet) Does not support refunds CheckoutWC: optional support for its multi step checkout template PublishPress Authors: co-author and guest author data in the page variables AMP: load your AMP container on the AMP version of your pages Google Consent Mode v2: fire the “default” command with specific consent flags to integrate with non-certified Consent Management Platforms (CMPs) and plugins Cookiebot: use automatic cookie blocking mode if needed Axeptio: load the Axeptio SDK and push every consent change into the data layer CookieYes: push a data layer event whenever the visitor’s consent changes Server side containers If you are using a server side container, you can enter your custom domain name and custom path to load gtm.js from there. Both can be set per container, so you can mix server side and standard containers on the same site. Cache-safe data layer (experimental, off by default) On sites using a full page cache (LiteSpeed, WP Rocket, Varnish, Cloudflare APO), the HTML generated for one visitor is served to everyone else as well. Any visitor specific value written into the data layer would therefore leak to other visitors – the classic example being a page cached while an editor was logged in, then served to anonymous visitors with that editor’s email address and role still in the data layer. When this option is enabled, no visitor or session data is written into cacheable HTML at all. Those values are delivered in the browser instead, under the same data layer variable names, so your existing Google Tag Manager setup keeps working. Export & import your settings You can export all plugin settings into a JSON file and import them on another site, which makes it easy to roll out the same configuration across several websites. Imported files are treated as untrusted and every value is validated before it is stored. Exclude specific user roles from being tracked You can set which user roles need to be excluded from tracking when a user with that role visits the frontend. This will completely disable the container code for that user. Staging and development sites The container can be limited to production environments only, so a cloned or staging copy of your site does not send data into your production Google Tag Manager container. This relies on the WP_ENVIRONMENT_TYPE setting of WordPress. For developers Version 2.0 is a complete object oriented rewrite. Every feature is a module, and third party plugins can register their own modules through the gtm4wp_register_modules action. All public template functions, filter and action names, wp-config constants and the option storage key of the 1.x versions are unchanged, so existing integrations keep working.
Top keywords
- data23×1.66%
- page19×1.37%
- code14×1.01%
- google14×1.01%
- tag12×0.87%
- container11×0.79%
- post11×0.79%
- user11×0.79%
- video10×0.72%
- custom9×0.65%
- data layer9×0.65%
- gtm9×0.65%
Smush – Image Optimization, Compression, Lazy Load, WebP & CDN
Compress images, optimize images, and enable image lazy load automatically with the powerful Smush image optimizer to keep your WordPress site fast, without losing quality. Smush makes it easy to optimize images, compress images, and deliver images faster across your entire WordPress site. This all-in-one image optimizer automatically reduces image file sizes, enables image lazy load, and serves modern formats like WebP and AVIF, all without breaking image quality or adding extra work. Whether you’re running a blog, store, or portfolio, Smush helps you optimize images at scale and keep your site fast with a trusted WordPress image optimizer. Trusted by 1+ Million Sites | 4.8/5 Star Rating Get everything you need to optimize images and speed up your site. Smush works out of the box with no complicated setup – just install and let it handle the rest. Compress images without losing quality Reduce image file size automatically while keeping your images sharp and clear. Smush is an easy-to-use image optimizer which let’s you compress images using both lossless and lossy compression, giving you the best balance of quality and performance without extra work. You can also compress images outside the media library using Directory Smush, making it easy to optimize images stored in theme folders, plugins, or other directories on your server. Lazy load images for faster pages Enable image lazy load across your site so images load only when needed. This image optimizer improves initial page speed and creates a smoother experience for visitors without extra configuration. Serve WebP and AVIF images automatically (PRO) Convert images to WebP and AVIF and serve them automatically to supported browsers. Smush helps you optimize images using next-gen formats to reduce file size and improve load times across your WordPress site. Deliver images faster with an Image CDN (PRO) Serve images through a global image CDN to reduce latency and improve load times for visitors around the world. 119 global CDN servers Up to 500 GB of bandwidth Faster image delivery based on visitor location Improved performance for image-heavy and high-traffic sites Automatically resize and fix image dimensions (PRO) Eliminate common PageSpeed warnings and improve layout stability with automatic image sizing. Smush dynamically resizes images to perfectly fit their containers, regardless of original size, helping fix the “Properly size images” warning in Google PageSpeed Insights. It also automatically adds missing width and height attributes to your images, improving rendering speed and reducing layout shifts. This helps you meet the “Ensure images have explicit width and height” recommendation without any manual work. Optimize your entire site, automatically Smush works across your whole site as a powerful image optimizer to optimize images as you upload them and maintain performance over time without manual work. Optimize images automatically on upload Compress images in bulk or individually Works with your existing media library No need to re-upload images Enable image lazy load across your site Convert images to WebP and AVIF Deliver images with an integrated image CDN Automatically resize and serve correctly sized images Optimize images outside the media library with Directory Smush Built for performance Smush improves page speed and overall performance by reducing image weight and improving how images are delivered. Reduce page load times Improve user experience Better performance for image-heavy pages Supports image lazy load and preload images (PRO) for faster perceived performance Works with your existing setup Smush is built to work with your current WordPress setup, including popular themes, page builders, and plugins. Compatible with Gutenberg, Elementor, WPBakery, and more Works with WooCommerce stores No need to change your workflow Easy to enable and configure Designed to be simple You don’t need to be a performance expert to optimize images with Smush image optimizer. Works out of the box Simple settings when you need them No technical knowledge required Safe to use on any site Why choose Smush? There are plenty of image optimization plugins, but Smush focuses on making it easy to optimize images, compress images, and improve performance without complexity. As a leading WordPress image optimizer, Smush gives you powerful optimization tools without the technical hassle. Trusted by over 1 million WordPress users Built specifically for WordPress Regular updates and improvements Backed by the WPMU DEV team Get started in minutes Install Smush, activate it, and start to compress images, optimize images, and enable image lazy load right away. This easy-to-use image optimizer helps most sites see improvements immediately without changing how they upload or manage images. About Us WPMU DEV is a premium supplier of quality WordPress plugins, services and support. Learn more here: https://wpmudev.com/ Don’t forget to stay up to date on everything WordPress from the Internet’s number one resource: WPMU DEV Blog Hey, one more thing… we hope you enjoy our free offerings as much as we’ve loved making them for you! Contact and Credits Originally written by Alex Dunae at Dialect (dialect.ca, e-mail ‘alex’ at ‘dialect dot ca’), 2008-11.