diff --git a/scripts/isar-sstate b/scripts/isar-sstate
index 5270f944..dddfafcb 100755
--- a/scripts/isar-sstate
+++ b/scripts/isar-sstate
@@ -146,7 +146,7 @@ try:
 except ModuleNotFoundError:
     s3_supported = False
 
-DEFAULT_IGNORED_TASKS = "rootfs_wicenv image_wic image_cpio image_tar image_ext4"
+DEFAULT_IGNORED_TASKS = "rootfs_wicenv,image_wic,image_cpio,image_tar,image_ext4"
 
 SstateCacheEntry = namedtuple(
         'SstateCacheEntry', 'hash path arch pn task suffix islink age size'.split())
@@ -601,6 +601,9 @@ def arguments():
     parser.add_argument(
         '--lint-stamps', default=False, action='store_true',
         help="lint: assume target is a stamps directory (target must be a local path)")
+    parser.add_argument(
+        '--excluded-tasks', type=str, default=DEFAULT_IGNORED_TASKS,
+        help="lint: comma-separated list of tasks to ignore (default: %(default)s)")
 
     args = parser.parse_args()
     if args.command in 'upload analyze'.split() and args.source is None:
@@ -609,6 +612,7 @@ def arguments():
     elif args.command in 'info clean'.split() and args.source is not None:
         print(f"ERROR: '{args.command}' must not have a source (only a target)")
         sys.exit(1)
+    args.excluded_tasks = args.excluded_tasks.split(',')
     return args
 
 
@@ -807,13 +811,14 @@ def sstate_analyze(source, target, **kwargs):
             print('\n'.join(out))
 
 
-def sstate_lint(target, verbose, sources_dir, build_dir, exit_code, pedantic, lint_stamps, **kwargs):
+def sstate_lint(target, verbose, sources_dir, build_dir, exit_code, pedantic, lint_stamps,
+                excluded_tasks, **kwargs):
     ADDITIONAL_IGNORED_VARNAMES = 'PP'.split()
     # only list non-cacheable tasks here
     # note that these still can break caching of other tasks that depend on these.
     # Run in pedantic mode to also look for these issues (e.g. in image-in-image builds)
     # To make a build fully cacheable, avoid absolute paths in BBLAYERS
-    ADDITIONAL_IGNORED_TASKS = list() if pedantic else DEFAULT_IGNORED_TASKS.split()
+    ADDITIONAL_IGNORED_TASKS = list() if pedantic else excluded_tasks
     if not target.exists():
         print(f"WARNING: target {target} does not exist. Nothing to analyze.")
         return 0
