diff --git a/CHANGELOG.md b/CHANGELOG.md
index 11faac11a..2a65c0e27 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,7 +2,7 @@ CHANGELOG
 =========
 
 ## HEAD (Unreleased)
-_(none)_
+* @gkatsev grouped text track errors in the console, if we can ([view](https://github.com/videojs/video.js/pull/3259))
 
 --------------------
 
diff --git a/src/js/tracks/text-track.js b/src/js/tracks/text-track.js
index 1b510dc60..9e914522d 100644
--- a/src/js/tracks/text-track.js
+++ b/src/js/tracks/text-track.js
@@ -23,13 +23,14 @@ const parseCues = function(srcContent, track) {
   let parser = new window.WebVTT.Parser(window,
                                         window.vttjs,
                                         window.WebVTT.StringDecoder());
+  let errors = [];
 
   parser.oncue = function(cue) {
     track.addCue(cue);
   };
 
   parser.onparsingerror = function(error) {
-    log.error(error);
+    errors.push(error);
   };
 
   parser.onflush = function() {
@@ -40,6 +41,16 @@ const parseCues = function(srcContent, track) {
   };
 
   parser.parse(srcContent);
+  if (errors.length > 0) {
+    if (console.groupCollapsed) {
+      console.groupCollapsed(`Text Track parsing errors for ${track.src}`);
+    }
+    errors.forEach((error) => log.error(error));
+    if (console.groupEnd) {
+      console.groupEnd();
+    }
+  }
+
   parser.flush();
 };