Author Archive

Activating Memcached and Redis with a Shared Hosting

Saturday, March 11th, 2023

Think of a book that you frequently reference every day. To expedite the process, you probably use a sticky or a bookmark.

An object cache is just like a bookmark, but instead of a piece of paper, it is a temporary storage area on a server.

If you have a website with a popular post, the server may have to repeatedly access the same information in your database many times (like rifling through pages to find the right page every single time).

This takes a lot of time and use up a lot of resources.

With an object cache, you can save that information for a certain amount of time so you don’t have to keep looking it up.

What is Memcache, Memcached, and Redis

  • Memcache (without the letter “d” at the end) is a memory caching system that store data in a particular server’s RAM
  • Memcached is a distributed memory caching system that store data across multiple servers (i.e. cloud storage). Memcached is often deployed with WordPress
  • Both memcache and memcached can be used to improved web application performance. Which one you use depends on your hosting provider
  • Similar to Memcache, Redis stores data in teh server’s memory to handle lots of data requests quickly and efficiently

What are the differences?

Memcache only supports simple key-value data storage and retrieval. On contrast, Redis supports a wider range of data types and advanced features and scripting capabilities.

Memcached is a lightweight caching system that distributes data across multiple servers like Redis.

Memcached and Redis can be used simultaneously in WordPress if the hosting company allows it.

Configuration

LiteSpeed Info

How to Check if LS is Supported or Turned on

Can you use LSCWP plugin if your hosting company is using Apache or nginx instead of LiteSpeed?

Yes, the optimization features will work if you setup an account with QUIC.cloud CDN but non of the caching capabilities will work.

Click on this link and enter your website address to verify that LS is setup:

The above tool can also be used to verify that QUIC.cloud is running (look for “x-qc-pop)

Reference Links

Gzip Setup in WordPress- How to Enable without a Plugin

Friday, March 10th, 2023

Imagine you’re sending a package. Wouldn’t it be great if you could squish it into a smaller box to save on postage? That’s what GZIP does for your website. It squeezes your web files, so they zip across the internet at lightning speed, reaching your audience faster. This isn’t just about speed; it’s about giving your visitors a smooth, slick experience.

What is Gzip?

Gzip stands for “GNU zip.” (“GNU” stands for “GNU’s Not Unix”; it is a recursive acronym and no one knows the actual abbreviation). Gzip is a file compression program launched in 1983 by Richard Stallman to create a completely free and open-source operating system (“public domain software”).

Gzip is widely used by hosting companies to compress and decompress files in the gzip format. Brotli, a data compression algorithm developed by Google, is an alternative to Gzip. Hosting companies enable Gzip and/or Brotli in their servers. Gzip and Brotli can be turned on at the same time, but the server will use one or the other when transmitting data.

Gzip function turned on by hosting companies are used to compress static web pages, so for dynamically generated websites based on WordPress, Gzip feature has to be turned on within WordPress.

How do I know if Gzip is turned on?

Visit this GiftOfSpeed.com/gzip-test page and type in your website address to see if Gzip is turned on.

Just in keep in mind that although your server can use Brotli in combination with GZIP, that does not mean it will use Brotli+GZIP.

How and which compression algorithm will be used depends on a particular website content being pulled and the server configuration.

For example, your server will deliver the content compressed with Gzip to your CDN (i.e. Cloudflare), but your CDN may choose to deliver the content by first decompressing Gzip and the re-compress using Brotli before sending it over to the user. Or your server may send the content using Gzip as-is.

In most cases, if the client (browser) supports both compression algorithm, brotli will be preferred over gzip.

Please note that both are used to compress text files, not binary files like JPEG, PNG, MP4, or other media files (those are compressed by your CDN using different protocols).

How to Turn on Gzip within WordPress

There are two methods to accomplish this:

Which method you choose depends on if you are currently using a caching plug in or not.

Plugin

Most WordPress caching plugins give you the ability to enable Gzip compression.

Below is a list of popular WordPress caching plugins that can turn on Gzip:

  • W3 Total Cache – only if your hosting server is Apache
  • WP Super Cache
  • WP Rocket
  • WP Fastest Cache

You will need to look up their specific instructions to enable Gzip compression.

HTACCESS (Apache or LiteSpeed servers)

If you are already using a caching plugin (I use Litespeed WordPress), you will need to enable Gzip by inserting a small code in the text file called “.htaccess” (the period preceding htaccess denotes the hidden nature of the file).

Step #1a– You need check to make sure that Gzip is supported by your server. To do that, type the following into a notepad

<?php phpinfo(); ?>

Step #1b – Save the file as “test.php” (without the quotes)

Step #2 – Up[load the test.php file (how?)inside the /public-html/wp-content folder of your site:

Step #3 – Open up a browser and type in your website address followed by test.php

https://yourwebsitename.com/test.php

Step #4 – Your website should return something like the following screen. The resulting page is about 3 pages long so press CTRL+F and type in “gzip” to find Gzip.

Step #5 – With that confirmation, we can move on and edit .htaccess file. Before doing anything else, make sure to create a backup copy (cPanel has a COPY function)

Step #6 – Double click on the .htaccess folder (cPanel only) to edit the file. Copy the following code into your .htaccess file and and paste it at the end.

# BEGIN GZIP Compression JavaScript, Text, HTML, CSS, XML and fonts

<IfModule LiteSpeed>
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
</IfModule>

# END GZIP Compression

It is important to NOT paste the above in between any dynamically generated codes.

Once complete, go to Pingdom tool to test your site.

HTACCESS (NGINX server)

Although the majority of hosting companies use Apache/LiteSpeed servers, if your hosting company uses NGINIX, you will have to enable Gzip using a different method by adding this code into the nginx.conf file:

gzip on;

gzip_disable "MSIE [1-6]\.(?!.*SV1)";

gzip_vary on;

gzip_types text/plain text/css text/javascript image/svg+xml image/x-icon application/javascript application/x-javascript;

The Gotchas

  • Not all files compress well. Images and videos? They’re already compressed. Squeezing them more won’t do much.
  • Beware of the browser compatibility. Older browsers might not play nice with GZIP. But, let’s face it, they’re like the internet’s dinosaurs.
  • After you’ve cast your GZIP spell, test your website. Tools like GTmetrix or Google PageSpeed Insights can show you how well your site is performing post-compression.

Conclusion

Enabling GZIP Compression is like giving your website a turbo boost. It’s one of those small changes that can have a big impact on your site’s performance,

Please note: messing with an htaccess file can break your website so make sure to have a backup copy!

Reference Links

Website Grading Tools

Thursday, March 9th, 2023

You can uses these free tools to measure and improve your WordPress website:

Website Speed Test

SiteDescriptionLink
Gift of Speed (Page Speed)Free page speed audit of your websiteDirect link to GiftOfSpeed.com Page Speed
Google PageSpeed InsightsAnalyzes the website and provides suggestions to improve its speed and user experienceDirect link to Google PageSpeed Insights
GTmetrixAnalyzes your website’s speed and provides detailed reports on page load time, page size, and other performance metricsDirect link to GTmetrix
PingdomTest your website’s speed and uptime, and it also provides performance insights and recommendations;Direct link to Pingdom Tools
UpTrends Speed Testlimited free toolDirect link UpTrends
Web Page TestTest your website’s speed from different locations and browsers, and it also provides detailed performance reportsDirect link to WebPageTest.org
Website GraderHubSpot owned speed testing toolDirect link to Websitegrader.com
YSlowAnalyzes web pages and provides suggestions for improving their performance.Chrome browser extension only

Other Tools

SiteDescLink
CLS Debugger (Google)Cumulative Layout Shift detectordirect link to CLS Debugger
Cloudflare Speed TestRun tests with synthetic data to identify opportunities to improve performance; need to create a FREE account and access via dashboard
DareboostAnalyzes your website’s speed and provides insights on how to optimize it for better performanceNOT FREE
Gift of SpeedCheck for Gzip and Brotli compression;direct link to GiftOfSpeed.com Gzip / Brotli Test
Google AnalyticsGoogle Analytics can help you identify which pages on your website are slow and which ones are causing high bounce rates
K6 (formerly Load Impact)Simulate high traffic loads on your website to identify performance issues and bottlenecks; 50 free cloud testing per accountdirect link to K6.io Load Testing
Kraken.io
Optimizes images by compressing them without reducing their quality, reducing page load times; 100MB free
direct link to Kraken.io
Site24x7Performance Monitoring Solution for DevOps and IT Operations.;direct link to Site24x7 free tools

Reference Links

Changing Hosts – Things to Keep in Mind

Tuesday, March 7th, 2023

Whether you are migrating from an old host to a new one, or splitting a website away from the existing hosting package and assigning it to a new package, there are several things to keep mind.

If you are using WordPress and some type of shared hosting, make sure to disable and uninstall WORDFENCE security plugin as it contains files that will cause problems.

If you use Cloudflare

  • Your server IP address will change so you will need to update the IP address and server name from your Cloudflare dashboard

If you use Wordfence

  • There is a good chance that some Wordfence files will continue to point to the old host after the migration. In that case, you most likely will see HTTP 500 Error message, preventing you from accessing the site (a technician will need to manually make adjustments).
  • To keep it simple, disable to uninstall Wordfence before performing the migration steps

Website Migration Steps

  • Step #1 – Take a screenshot of the WP Benchmark Tool’s performance results
  • Step #2 – Disable and uninstall Wordfence plugin
  • Step #3 – Perform a backup from the WordPress dashboard (old host)
  • Step #4 – Restore the WordPress backup files (new host)
  • Step #5 – From your Cloudflare dashboard, click on the DNS link and update the IP Address and Server name
  • Step #6 – Take a screenshot of the WP Benchmark Tool’s performance results and compare
  • Step #7 – If you are using a cache plugin (i.e. LiteSpeed), you need to purge all cache

The “Best” WordPress Hosting for 2023

Monday, March 6th, 2023

The definition of “best” depends on your unique situation.

There are tons of great sites with lots of good information, I am going to present you with three recommendations so that you do not get caught in the analysis-by-paralysis situation.

Intro

Assuming that you are looking to publish a blog to start making money online, you must first understand few industry jargons:

  • Shared Hosting
  • WordPress Hosting
  • Managed WordPress Hosting
  • VPS
  • Cloud Hosting

Shared Hosting

Usually costing around $5-7 per month, this is the most basic form of hosting. Most people who are just starting out choose this option because it is cheap. Not the best option as your website traffic grows (roughly around 5,000 visitors per month) because your account “shares” server resources with hundreds of other similar accounts on the same physical server. That means if there are resource-intensive websites on the same server, your website will most likely suffer slow downs.

Don’t fall for “cloud” share hosting as that means absolutely nothing. Shared hosting is exactly what it says: SHARED RESOURCES.

WordPress Hosting

WordPress hosting is just a re-badged form of shared hosting.

The only difference is that, unlike shared hosting where you can install other CMS applications (i.e. Joomla or Drupal), WordPress hosting comes with WordPress pre-installed for newbies. It has identical performance characteristics as the shared hosting.

Managed WordPress Hosting

Costs around $30-$40 per month, a Managed WordPress Hosting takes one step further (than WordPress Hosting) by providing all updates and maintenance to WordPress core files, WordPress theme, and plugins.

Performance tends to be better than WordPress Hosting because each WordPress sites are in their own silo/container. You are most likely restricted to themes and plugins that are evaluated by the provider.

VPS

Virtual Private Server (VPS) comes in managed and unmanaged versions. Managed VPS runs around $60-80 and Un-managed VPS runs around $20-30 per month.

The benefit of a VPS is that it has dedicated resources for your specific account so you are not impacted by other accounts that may be in your “neighborhood”.

The cost is highly variable, depending on the actual server configuration like the number of CPU cores, memory, and storage space.

Both unmanaged and managed VPS require highly technical skills so I do not recommend this option to any beginners.

Cloud Hosting

Cloud Hosting also comes with managed and unmanaged versions like VPS hosting.

Unlike VPS, where your account is located on a specific server in a data center, a cloud hosting account is provisioned using multiple servers across multiple data centers.

Unmanaged cloud hosting infrastructure provider are Digital Ocean, VULTR, Amazon AWS, Linode, and Google.

Managed cloud hosting companies overlay their user interfaces over these infrastructure providers. Two most well-known managed cloud hosting companies are Rocket.net and Cloudways.

Cost can range anywhere from $30-$100 per month, depending on server configuration.

Which hosting option is best for you

Don’t over think it. As a newbie, you should be focusing on your content foremost.

Moving a WordPress account from one hosting provider to another is not as difficult as it used to be (and some even provide a free service to move your files).

Website traffic is below 3k visitors per month

Choose a simple shared hosting or WordPress hosting service.

  • NameHero- PLUS CLOUD, $5.18, direct link, not affiliated

Website traffic is between 3k-15k visitors per month

Once your website traffic exceeds 3,000 visitors per month, you want to use a more robust provider for a faster website.

  • NameHero – TURBO CLOUD, $9.98 (1 year contract), direct link, not affiliated

Website traffic between 15k-40k per month

With this kind of website traffic, you can sign up for an ad-network like Ezoic (10k per month) or Mediavine (50k per month) to generate a “passive income”.

  • Cloudways – VULTR High Frequency, $26 per month, 2GB Ram, 1 CPU core, 64GB storage, 2TB bandwidth (direct link, not affiliated)

Website traffic above 40k per month

If you are using an ad-network that is not Ezoic, use:

  • Rocket.net – PRO, $60, 20GB Storage, 1M visitors (direct link, not affiliated)
    • You can install up to three WordPress sites under this plan but for maximum performance

Other Plans

  • Grid Pane – enterprise use; their cheapest plan is $500 (direct link)
  • RunCloud – DOES NOT INCLUDE hosting; it provides server management and dashboard, PRO, $12.50 per month, (direct link)
  • NameHero – shared hosting;
  • ChemiCloud – shared hosting; $6.89 for 12 months, WordPress Turbo
  • MechaniWeb – Semi Dedicated Prime, $17.33 for 12 months, (direct link)
  • Scala Hosting – ENTRY WP CLOUD, $19.95 for 12 months, guaranteed CPU & RAM, 50GB storage, unlimited websites (direct link)
  • A2 Hosting – shared hosting; TURBO for $6.99 for 12 months;

RunCloud.io

RunCloud is unique in that it offers server management tools for cloud infrastructure providers like VULTR, Digital Ocean, etc.

That means you will have to pay two separate chages:

  • RunCloud – approximately $6 for one site
  • Cloud Infrastructure – VULTR high frequency computing; approximately $15 for 1 vCPU, 2GB memory, adn 50GB Storage

So that comes out to $21 vs a similar offering from Cloudways for $24. For that amount of cost difference, I would choose Cloudways.

Final Thoughts

When choosing a hosting company, there are lots of gotchas that you don’t see until you actually use them.

Pay a special attention to review sites that are recommending large hosting companies as they may be compensated to do so.

Lastly, please note that if you use EZOIC ad network, you should not use Rocket.net as they are incompatible.

How to Determine if a Domain Name is Blacklisted

Wednesday, January 25th, 2023

When buying an expired or dropped domain name to either launch a new website or to 301 REDIRECT to an existing website, you first need to determine if a domain name is blacklisted.

Blacklisted domains or domain names that have been tagged as being the source of spam email/content means these sites will never rank with search engines and could negatively impact your existing site.

Therefore, you SHOULD check the name against online databases that track known spam sites:

For a real-time check to see if a site is malicious or not, you can use one of the following online tools:

Unfortunately, there is no single website that tracks 100% of spam and malicious sites so you should check multiple database sources.

How To Access Two Identical External Drives

Saturday, January 21st, 2023

Key Points

  • In order to access storage devices, Windows Operating System (7, 10, 11) assigns a unique signature to each storage devices
  • When there is a conflict with drive letter assignments or signature collisions, one or more internal or external drive may be invisible to the operating system
  • This post will provide you with a detailed step-by-step instructions on how to resolve this issue

Problem

I own two, 1 TB external, portable hard drives made by Western Digital (“My Passport Essential SE”):

  • WDBACX0010BBL-01: My Passport SE, 5600 RPM, USB3, Blue
  • WDBACX0010BBL-01: My Passport SE, 5600 RPM, USB3, Silver

When I plugged both drives at the same time using two separate USB cables, Window 10’s FILE MANAGER was only able to see the drive that was plugged in first (in my case, the blue drive).

The second “invisible” (silver) My Passport drive was not even detected in the DISK MANAGEMENT TOOL.

mvirtualoffice-access-two-external-hdd-not-showing-disk-mgmt-fl

This invisible drive issue can also happen if you clone a drive with a different brand/model.

  • Only one external hard drive shows when two are connected
  • Disk offline because it has signature collision with another disk online
  • windows 10 external hdd signature collision
  • windows 10 two external hdd cannot access one drive
  • why can’t I see my second hard drive in Windows 10
  • Why is only one of my hard drives not showing up?

Possible Causes

There are three primary reasons why one of the drive cannot be seen by the operating system:

  • Defective drive and/or USB cable
  • Conflict with drive letter assignments – drives are not visible in FILE MANAGER
  • Conflict with signatures – drives are not visible in DISK MANAGEMENT TOOL
Disk Management Tool
Windows 7, 10, 11 Disk Management tool (DMT) allows users to manage and organize storage devices by assigning a unique name or ID to them.

DMT offers basic functions such as creating, formatting, deleting partitions as well as offer more advanced capabilities like extending and shrinking partitions.

You can access DMT by right-clicking on the four-pane Windows Start in the system tray and selecting “Disk Management” from the popup menu.

You can learn more about it from here (external link to Microsoft).

Troubleshooting a defective drive and/or USB cable

Before diving into more complex solutions, we want to verify that both portable storage devices, USB cables, and USB ports are in good working order.

First, simply plug in your external hard drives individually to make sure that each drive can be accessed by the FILE MANAGER.

If your desktop or laptop has three USB ports, try attaching each portable drives to all ports.

Lastly, you should swap the USB cables between two drives when plugging them into your computer.

While viewing the content of your drives in FILE MANAGER, make a note of the drive letters. If you see that both drives have the same drive letter (in my case, drive letter “G” was assigned to both blue and silver drives), we will need to change the drive letter on one drive.

If your drives can be accessed by your computer, you can move on to the next troubleshooting step.

Changing the Drive Letter Assignment

With both external drives plugged in, if your one of your drive is not listed in the DISK MANAGEMENT TOOL, there is a conflict with the driver letter assignment.

As stated previously, I had erroneously assigned the letter “G” to both drives so we need to change the drive letter on one of the external drives:

  • STEP 1: Plug in one external drive only (in my case, a blue My Passport drive)
  • STEP 2: From the desktop, right click on the Window icon (bottom left), then click DISK MANAGEMENT
  • STEP 3: Right click on the external HDD (in my case, Disk 2, Bolt-1-tb), then click on CHANGE DRIVE LETTER AND PATHS
  • STEP 4: Change the drive letter to whatever you want (in my case, drive letter X). You may be prompted with a message “Some programs that rely on drive letters might not run correctly. Do you want to continue?“. Although changing a drive letter does not impact the content, some of your applications that need to re-map to your drive with the new drive letter assignment. Click YES to proceed.
  • STEP 5: Look at the DISK MANAGEMENT dashboard and confirm that the drive letter has been changed from G: to X:
  • STEP 6: Plug in your second My Passport external HDD (in my case, a silver My Passport)
  • STEP 7: Your DISK MANAGEMENT should now list this second drive, but the drive is still missing a letter and thus cannot be accessed just yet. If you click on the exclamation with a blue circle, you will see the error message “The disk is offline because it has a signature collision with another disk that is online”

Fixing Signature Collision

Each disk (internal and external) gets a unique “name” (a.k.a. identifier or signature) during the initialization so that Microsoft Windows can differentiate between multiple storage devices.

When two or more devices have the same name, the OS gets confused and only identifies the FIRST DRIVE you plug in and blocks access to subsequent storage drives with the same identifier.

You can use two methods to fix this problem:

  • Option A – DISKPART
    • Built-in Microsoft tool
    • Clean and change the identifier via UNIQUEID command on a target drive
  • Option B – HEX editor
    • Change the identifier stored in the 0 sector in the Master Boot Record (MBR)
    • You can also use DM Disk Editor (DMDE), which is free, to make these changes

I will show you how to fix the “Disk offline because it has signature collision with another disk online” issue using the DISKPART tool.

How to Change the UNIQUE ID

We will need to use a command prompt tool (CMD) to change the UNIQUE ID for the second drive.

Two things to be aware:
(1) You need to be the administrator for your computer
(2) Although changing UNIQUE ID should not impact accessing your data, it is always a good idea to perform a backup before making this change.
  • STEP 1: From the desktop, right click on the Window icon (bottom left), then click COMMAND PROMPT (ADMIN)
  • STEP 2: Type diskpart then hit the enter key
  • STEP 3: Type list disk then hit the enter key
  • STEP 4: Type select disk 2 the hit the enter key (this step will select my BLUE external drive)
  • STEP 5: Type uniqueid disk the hit the enter key; the UNIQUE ID for my BLUE drive is 00042ADA
  • STEP 6: Type select disk 3 then hit the enter key (this step will select my SILVER external drive)
  • STEP 7: Type uniqueid disk the hit the enter key; ; the UNIQUE ID for my SILVER drive is 00042ADA
  • STEP 8: Since we confirmed that both BLUE and SILVER drives have the same UNIQUE ID, I will be change the value for the SILVER DRIVE
  • STEP 9: Type select disk 3 then hit the enter key
  • STEP 10: Type uniqueid disk id=00042add (this new value has to be in hexidecimal form so the easiest way is the change the last letter to 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E, or F)
  • STEP 11: Type uniqueid disk the hit the enter key to verify that the new UNIQUE ID is now 00042add
  • STEP 12: Type online disk to bring up the drive online

Take Aways

Now that both blue and silver external drives have their own unique ID (name or signature), I am able to access both drives at the same time (as shown in the FILE MANAGER screen capture).

Remember that this problem also occurs if you clone a drive.

I hope you found this post to be helpful. If liked the post, please leave a comment below. Thanks!

Reference Links

Google Universal Analytics GA3 – Two Code Versions

Wednesday, January 4th, 2023

Google Analytics has been around since 2005 when Google acquired a web analytics company called Urchin.

Urchin Code (circa 2005)

  • Based on “Urchin on Demand” codebase
  • August 2006 – implemented “asynchronous tracking” code between <head>tags

Google Analytics (GA2)

  • April 2011 – Implemented new dashboards, reports, etc.
  • September 2011 – Launched Real-Time analytics

Google Universal Analytics (GA3) – Version A

  • October 2012 – New features including cross-platform tracking, flexible tracking data collection from multiple devices, and the introduction of custom dimensions and metrics
  • Used the ga.js library
Google Analytics GA3 – Circa 2017 (gtag.js library)
  • ga.js library includes:
    • The basic tracking functions for a default setup of Google Analytics
    • Uses multiple functions to send data
    • The _setAccount function associates the tracking code with your specific Google Analytics account by setting the account number (which is provided to you when you create your account)
    • The _trackPageview function tracks a pageview on your website (i.e. “hits”).
  • ga.js is designed to support Google Analytics (i.e. no other Google products)

Google Analytics 360

  • March 2016 – primarily targeted for enterprise customers; included tag manager, optimize, data studio, etc.

Google Universal Analytics (GA3) -version B

  • October 2017 – Implemented “Global Site Tag” data collection method (gTag.js) to unify the tagging system
  • gtag.js code is similar to ga.js code but has a slightly different syntax. Here is an example of the tracking code for Google Analytics using gtag.js:
  • gtag.js code includes the same basic tracking functions as the ga.js library, but the syntax is slightly different:
    • A single ‘gtag' function is used to send data to Google Analytics and other Google Products, and the config' command is used to set the account number for your Google Analytics account
  • ga.js is designed to support multiple Google marketing products (i.e. Google Analytics, Google Ads, Google Tag Manager,, and Google Optimize)
  • Scheduled to stop collecting data on July 1, 2023

Google Analytics 4 (GA4)

  • October 2020 – Released GA4
  • Integrated with Google’s ‘BigQuery”; Tracks “events” instead of “sessions”
  • The gtag.js similar to the code found in UA (GA3) 2017 version except:
    • It includes the basic tracking functions for a default setup
    • The ‘gtag‘ function is used to send data to GA4
    • The ‘config‘ command is used to set the measurement ID for your GA4 property
    • The measurement ID is a unique identifier that is provided to you when you create a GA4 property
  • In addition gtag.js, you will also need to implement event tracking in order to capture user interactions with your website. Here is an example of how you might track a button click event in GA4:
  • As of January 2023, GA4 is still work-in progress

“gtag.js” used in Google Universal Analytics and Google Analytics G4

gtag.js is a JavaScript library that is used to send data to Google Analytics and other Google marketing and analytics products. There are two main versions of gtag.js:

  • one that is used for Universal Analytics (the previous version of Google Analytics)
  • one that is used for Google Analytics 4 (GA4)

“gtag.js” used in Google Universal Analytics (G3, 2017)

The version of gtag.js that is used for Universal Analytics is designed to support the traditional pageview-based tracking model of Universal Analytics.

It includes functions that allow you to track pageviews, set custom dimensions and metrics, and configure other aspects of your Universal Analytics tracking.

Here is an example of the gtag.js code for Universal Analytics:

“gtag.js” used in Google Analytics (G4, 2020)

The version of gtag.js that is used for GA4 is designed to support the event-driven tracking model of GA4.

It includes functions that allow you to track specific events (such as button clicks or pageviews) and send them to GA4 for analysis.

Here is an example of the gtag.js code for GA4:

Key Takeaways

As of now, Google Universal Analytics (UA or G3) is going away on July , 2023 so it is imperative that you start collecting web traffic data for now with GA4.

It is unclear if Google will retain historical data under UA so it might be a good idea to export data you want to keep.

  • GA4 should be implemented even if is is not prime-time ready
  • Installing GA4 should not impact GA3 (UA) data collection
  • If you are still using GA3 (FY2012) version without issues, do not upgrade to GA3 (2017) which uses gTag.js library before installing GA4. There are un-documented reporting discrepancies between ga.js and gtag.js

SEO Tools – Reference Guide

Tuesday, January 3rd, 2023

Broken Link Checkers

To detect themes and plugins

Keyword Finder

Webmaster Tools

  • Google Analytics (free)
  • Google Search Console (free)
  • Google Trend (free)
  • Ahrefs Webmaster Tools (free, site-ownership verification required)
  • Bing Webmaster
  • https://web.dev/

Web Page Speed

Web Page Grader (SEO scores)

IP Address Finder

  • https://whatsmyip.com/

Domain Age checker

  • https://www.internetmarketingninjas.com/tools/domain-age/

General SEO Tools

  • https://www.internetmarketingninjas.com/tools/

SEO news

Tuesday, December 20th, 2022
  • seroundtable.com
  • searchengineland.com
  • seobullshit.com
  • searchenginejournal.com