I’d love to get more details here. If you have benchmark or more data about the size of the database and queries performed. If you use Query Monitor, you can see a lot about it.
Thanks for the suggestion — I’ll run Query Monitor and gather some benchmarks so I can see which queries are slowing the activity stream as things scale. The database has grown quite a bit recently with groups and interactions, so that’s probably a big factor. I’m testing this while building out a community section alongside my own project (smokeycloudz.com), so performance tuning has been a learning process. I’ll share more details once I have some numbers
Hi,
Not sure if this info is useful for you:
My site …regular WordPress & Buddypress, VPS hosting, normal specs, 20,000 members, can get very busy.
Groups are not enabled.
After sitename/activity page loads, there is always an approximately one second delay before the list of activity items loads, 20 at a time.
Activity items includes new friendships, new user registrations, bbpress new forum topics & replies, user profile updates, profile picture updates.
Blog posts are not included.
Performance Challenges
1. **Database Load** – BuddyPress stores all activity in a single table (wp_bp_activity). With thousands of posts, queries for the activity stream can become slow.
2. **Query Complexity** – Filters like friends, groups, mentions, and favorites add multiple joins and WHERE conditions, increasing load time.
3. **Caching** – By default, activity streams rely heavily on live database queries, causing slow page loads.
Optimization Strategies
1. Enable Object Caching
* Use persistent caching with Redis or Memcached.
* Caches frequent queries and reduces repeated DB calls.
2. Use Activity Stream Paginatio
* Limit activity items per page (e.g., 10–20 instead of 50+).
* Avoid loading the entire stream at once.
3.Offload Activity Data
* Archive old activity items to another table.
* Keep only recent activity in the main table.
4. Database Indexing
* Ensure indexes exist on user_id, component, type, and date_recorded columns.
* Improves query speed for filtering and ordering.
### 5. **Use a Dedicated Plugin**
* Plugins like **BuddyPress Activity Plus** or **BP Better Messages** sometimes optimize activity queries.
* Some custom solutions cache or precompute user feeds.
6. CDN & Lazy Loading
* Serve images/media via CDN.
* Lazy load avatars and embedded media in the stream.
@johnackerman