Understanding your LinkedIn engagement rate is crucial for measuring the effectiveness of your content strategy. Unlike vanity metrics (like just looking at the number of likes), the engagement rate tells you how relevant your content is to the people who see it.
The Core Formula
The standard way LinkedIn Analytics calculates engagement rate is based on Impressions (views). The formula takes the sum of all interactions and divides it by the total number of times your post was seen.
Note on Clicks: Many users forget to include "Clicks" in their manual calculations. LinkedIn counts clicks on your links, clicks to expand text ("see more"), and clicks on your company logo/profile name as engagements.
Method 2: Engagement by Followers
Sometimes, you may want to calculate engagement based on your total audience size rather than just those who saw the post. This is useful for understanding how much of your total following is active.
To accurately calculate your rate, you must sum up the following metrics:
Reactions (Likes): The thumbs up, celebrate, support, funny, love, and insightful buttons.
Comments: Written responses to your post.
Shares (Reposts): When users repost your content to their own feed.
Clicks: Any click on the post itself (media, link, profile, or "see more").
What is a Good Engagement Rate on LinkedIn?
Benchmarks vary by industry and follower count, but generally speaking:
0% – 1%: Below average. Content may not be resonating or the reach is restricted.
1% – 3%: Good. This is the industry standard for most B2B pages.
3% – 5%: High. You are effectively sparking conversation.
5%+: Excellent. This content is likely going viral within your niche.
Why Does This Metric Matter?
The LinkedIn algorithm prioritizes content with high engagement rates. Early engagement (within the first hour of posting) signals to the algorithm that the content is valuable, prompting it to show the post to a broader audience outside of your immediate network.
function calculateEngagement() {
// 1. Get Input Values
var likes = document.getElementById('liLikes').value;
var comments = document.getElementById('liComments').value;
var shares = document.getElementById('liShares').value;
var clicks = document.getElementById('liClicks').value;
var impressions = document.getElementById('liImpressions').value;
var followers = document.getElementById('liFollowers').value;
// 2. Parse values (treat empty as 0 for interactions)
var numLikes = parseFloat(likes) || 0;
var numComments = parseFloat(comments) || 0;
var numShares = parseFloat(shares) || 0;
var numClicks = parseFloat(clicks) || 0;
// Denominators cannot be 0 for division
var numImpressions = parseFloat(impressions);
var numFollowers = parseFloat(followers);
// 3. Validation
if (!impressions || numImpressions 0) {
rateByFollowers = (totalEngagements / numFollowers) * 100;
showFollowers = true;
}
// 6. Display Results
var resultArea = document.getElementById('result-area');
var elTotal = document.getElementById('resTotalEngagements');
var elRateImp = document.getElementById('resRateImpressions');
var elRateFol = document.getElementById('resRateFollowers');
var elRowFol = document.getElementById('follower-row');
elTotal.innerHTML = totalEngagements.toLocaleString();
elRateImp.innerHTML = rateByImpressions.toFixed(2) + "%";
if (showFollowers) {
elRateFol.innerHTML = rateByFollowers.toFixed(2) + "%";
elRowFol.style.display = "flex";
} else {
elRowFol.style.display = "none";
}
resultArea.style.display = "block";
// Smooth scroll to result
resultArea.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}
function resetCalculator() {
document.getElementById('liLikes').value = ";
document.getElementById('liComments').value = ";
document.getElementById('liShares').value = ";
document.getElementById('liClicks').value = ";
document.getElementById('liImpressions').value = ";
document.getElementById('liFollowers').value = ";
document.getElementById('result-area').style.display = 'none';
}