We’ve structured our Discourse forum so that category visibility is strictly controlled by groups. Our goal is to create an organized, personalized experience for logged-in users while ensuring that public content remains accessible for SEO purposes. Our current setup includes:
Group-Based Access – Users must join a group to see certain categories.
Tracked Categories – Upon joining a group, users automatically track its associated categories.
Muted Categories Behavior – Muted categories should be collapsed by default.
Search Permissions – Logged-in users should only see search results from the categories they have access to.
Public Visibility for SEO – Non-logged-in visitors (including Google crawlers) should be able to see all categories and index them.
Onboarding Requirement – New users must select a group before participating.
Challenges We’re Facing
1. Group-Based Category Visibility Not Working as Expected
- When a user joins a group, the expected behavior is that the group’s categories should appear on the homepage and category page.
- However, this does not happen immediately—sometimes the categories don’t show at all or only appear after scrolling down.
- Categories created earlier (e.g., Phlebotomists) behave correctly, while newly created ones (e.g., Bailiff) take longer to display or don’t appear until triggered manually.
- Users often only see muted categories instead of the expected tracked/watched categories.
- Temporary fix: If a user unmutes at least one category manually, other joined categories start appearing correctly.
2. Search Results Showing Unrelated Categories
- Logged-in users are seeing search results from categories they do not have access to.
- Expected behavior: Discourse should limit search results to only the categories assigned to a user’s group.
- Observed behavior: Search is still returning results from all categories, which means users can see snippets of content they technically shouldn’t have access to.
- Related discussion: A conversation on ask[.]discourse[.]com confirms that Discourse should restrict search results based on group permissions.
3. SEO & Google Crawling vs. Restricted Access
- We want all categories to be indexed by Google so that content can be discovered in search results.
- However, we don’t want logged-in users to see all categories by default—only the ones tied to their selected group.
- Current issue: If we hide a category from logged-in users, it also disappears from Google, making it impossible to index.
- Ideal solution: Google should be able to crawl and index all categories, but search results for logged-in users should still be restricted based on group permissions.
Questions for the Community
How can we ensure that joined categories appear immediately and above muted categories?
How do we fully enforce search result restrictions for logged-in users while keeping content visible for SEO?
Is there a way to allow Google to index all public categories while still hiding them from logged-in users until they join a group?
What’s the best approach to enforce group selection at signup without blocking public readers from discovering content?
Related Discussions & References
Group-Based Category Access Not Working as Expected – Discussion about category visibility delays, muted categories overriding tracking settings, and search behavior issues.
[Search Results Limited by Group Permissions (ask[.]discourse[.]com)] – Confirms that Discourse restricts search results based on group permissions, but we need a way to balance this with SEO.
Video Demonstration of the Issue: