diff --git a/src/pages/courses.tsx b/src/pages/courses.tsx
index e22b3f6a6c78884ab2209008b43ae9a64d00c2b8..685a2e8b7868e35e8e2f2ec75729642d07c501c2 100644
--- a/src/pages/courses.tsx
+++ b/src/pages/courses.tsx
@@ -103,10 +103,11 @@ function CourseGroupCard({
                         {g.list.flatMap((c) => {
                             if (
                                 onlyShowPublicCourses &&
-                                !c.default_authentication_methods?.includes("public")
+                                (!c.default_authentication_methods?.includes("public") ||
+                                    c.is_visible === false)
                             ) {
-                                // I chose not to check c.is_visible or c.is_listed here because
-                                // it may be useful for videoag admins to check which courses are falsely set to public
+                                // I chose not to check c.is_listed here because
+                                // it may be useful for videoag admins to check which courses are falsely set to visible and public
                                 return [];
                             }
                             return [