Common issues you may encounter with your Concrete CMS website and how to diagnose and fix them.
Performance Issues
Concrete CMS performance directly impacts user experience, SEO rankings, and conversion rates. Core Web Vitals are critical metrics that affect both user satisfaction and search rankings.
Largest Contentful Paint (LCP)
LCP measures loading performance. Concrete CMS-specific LCP issues include:
- Unoptimized block images
- Heavy theme assets (CSS/JavaScript)
- Render-blocking scripts in page templates
- Marketplace add-on overhead
- Database query performance
- Full page caching misconfiguration
Target: LCP under 2.5 seconds
Cumulative Layout Shift (CLS)
CLS measures visual stability. Concrete CMS-specific CLS issues include:
- Block content loading without dimensions
- Dynamic blocks causing layout shifts
- Font loading without proper fallbacks
- Image blocks without explicit sizes
- AJAX-loaded content
Target: CLS under 0.1
General Performance Best Practices
Theme Selection:
- Use lightweight, modern themes
- Avoid heavily customized legacy themes
- Regularly update theme to latest version
- Consider custom theme development for optimal performance
Block Management:
- Audit blocks regularly
- Remove unused blocks from pages
- Minimize use of heavy blocks (carousels, sliders)
- Use block caching where appropriate
Add-on Management:
- Only install necessary marketplace add-ons
- Remove unused add-ons completely (don't just uninstall)
- Keep add-ons updated
- Monitor add-on impact on performance
Image Optimization:
- Use appropriate image formats (WebP with fallbacks)
- Compress images before upload
- Set explicit width and height attributes
- Implement lazy loading for below-fold images
- Use Concrete CMS's image thumbnail system
Code Optimization:
- Minimize custom JavaScript in blocks
- Use async/defer for non-critical scripts
- Minimize and combine CSS files
- Remove unused CSS and JavaScript
- Leverage Concrete CMS asset system
Caching:
- Enable full page caching for public pages
- Use block caching strategically
- Configure opcache properly
- Use Redis or Memcached for object caching
- CDN for static assets
Database Optimization:
- Regular database maintenance
- Optimize database tables
- Index frequently queried columns
- Clean up old page versions
- Archive or delete unused pages
For general performance concepts, see the global performance hub.
Tracking & Analytics Issues
Events Not Firing
Common causes of tracking failures on Concrete CMS:
- Tracking code loading in edit mode
- JavaScript errors from blocks or add-ons
- Ad blockers preventing pixel loads
- Incorrect GTM container configuration
- Data layer not properly initialized
- Cache preventing script updates
- Duplicate implementations causing conflicts
Common scenarios:
- GA4 events missing from specific page types
- Meta Pixel not tracking form submissions
- GTM container not loading properly
- Events firing multiple times (duplicate implementations)
- Tracking working in view mode but not live
Tracking Best Practices
Implementation:
- Use GTM as single source for all tags
- Implement tracking at theme level for consistency
- Exclude edit mode and dashboard from tracking
- Test across all page types
- Document all tracking implementations
Testing:
- Use browser extensions (GTM debugger, GA debugger, Meta Pixel Helper)
- Test in incognito/private browsing
- Test across different browsers
- Test on mobile devices
- Verify in platform analytics (GA4, Meta Events Manager)
- Test with cache enabled and disabled
Monitoring:
- Set up alerts for tracking failures
- Review data quality weekly
- Monitor for JavaScript errors
- Check conversion tracking accuracy
- Review user flow data
For general tracking concepts, see the global troubleshooting hub.
Common Concrete CMS-Specific Issues
Cache Not Clearing
Problem: Changes don't appear after clearing cache.
Diagnosis:
- Check if full page caching is enabled
- Verify opcache is working
- Check if CDN cache needs clearing
- Browser cache may be caching old content
Fix:
- Dashboard → System & Settings → Optimization → Clear Cache
- Clear all cache types
- Clear browser cache
- If using CDN, purge CDN cache
- Restart PHP-FPM if necessary
Edit Mode vs. View Mode Differences
Problem: Site looks different in edit mode vs. view mode.
Causes:
- CSS only loading in certain modes
- JavaScript not running in edit mode
- Blocks behaving differently
- Cache issues
Fix:
- Always test in view mode or logged out
- Check theme's edit mode styles
- Verify JavaScript doesn't conflict with edit mode
- Clear cache and refresh
Blocks Not Appearing
Problem: Added blocks don't show on page.
Diagnosis:
- Check if block is in correct area
- Verify block type is installed
- Check page template includes area
- Look for JavaScript errors
- Check block permissions
Fix:
- Verify block area name matches template
- Reinstall block type if needed
- Check browser console for errors
- Verify user has permissions to see block
Form Submissions Not Working
Problem: Form block doesn't submit or email doesn't send.
Diagnosis:
- Check form block configuration
- Verify email settings
- Check spam filters
- Look for JavaScript errors
- Check server mail logs
Fix:
- Dashboard → System & Settings → Email
- Configure SMTP properly
- Test with different email addresses
- Check server PHP mail configuration
- Review form notification settings
Marketplace Add-on Conflicts
Problem: Add-on causes errors or conflicts.
Diagnosis:
- Check error logs (
/application/files/log/) - Disable add-ons one at a time
- Check for JavaScript console errors
- Review add-on compatibility
Fix:
- Update all add-ons to latest versions
- Contact add-on developer
- Use alternative add-on
- Remove conflicting add-on
Theme Update Breaks Customizations
Problem: Theme updates overwrite custom code.
Prevention:
- Don't edit core theme files directly
- Create custom page templates
- Use theme overrides in
/application/ - Document all customizations
- Use version control (Git)
- Test updates on staging site first
Recovery:
- Restore from backup
- Download previous theme version
- Re-implement customizations
- Move customizations to application folder
Page Versions Building Up
Problem: Too many page versions slowing database.
Fix:
- Dashboard → System & Settings → Optimization → Automated Jobs
- Enable "Remove Old Page Versions"
- Configure retention settings
- Run job manually to clean up immediately
- Set to run automatically
Database Connection Errors
Problem: "Unable to connect to database" errors.
Diagnosis:
- Check database credentials in
/application/config/database.php - Verify database server is running
- Check max connections limit
- Review error logs
Fix:
- Verify database credentials correct
- Restart database server
- Increase max connections if needed
- Check for long-running queries
- Optimize database
White Screen of Death (WSOD)
Problem: Blank white page appears.
Diagnosis:
- Enable debug mode:
- Edit
/application/config/concrete.php - Set
'debug' => true
- Edit
- Check error logs
- Check PHP error logs
- Look for fatal PHP errors
Common causes:
- PHP memory limit exceeded
- Fatal error in custom code
- Add-on conflict
- Missing required PHP extension
Fix:
- Increase PHP memory_limit
- Fix PHP errors
- Disable problematic add-on
- Clear cache
- Restore from backup if needed
Debugging Tools
Browser Developer Tools
Chrome DevTools (F12):
- Console: Check for JavaScript errors
- Network: Verify tracking requests sent
- Application: Check cookies, localStorage, session data
- Performance: Analyze page load performance
Concrete CMS Debug Tools
Enable Debug Mode:
Edit /application/config/concrete.php:
return [
'debug' => [
'detail' => 'debug',
'display_errors' => true,
],
];
Note: Disable on production sites after debugging.
View Error Logs:
/application/files/log/
Database Query Logging:
Enable in debug mode to see all database queries.
Analytics Debugging Tools
Browser Extensions:
Platform Tools:
- GA4 DebugView
- Meta Events Manager Test Events
- GTM Preview Mode
Performance Testing Tools
- Google PageSpeed Insights
- WebPageTest
- GTmetrix
- Chrome Lighthouse (built into DevTools)
Getting Help
Concrete CMS Community
Official Forums:
- https://www.concretecms.org/community/forums
- Active community
- Search before posting
Concrete CMS Slack:
- https://www.concretecms.org/slack
- Real-time chat support
- Connect with developers
Documentation:
- https://documentation.concretecms.org/
- Official documentation
- Developer guides
When to Hire a Developer
Consider hiring a Concrete CMS developer when:
- Complex custom functionality needed
- Multiple errors you can't resolve
- Theme requires significant customization
- Performance issues persist despite optimizations
- Migration from another platform
- Custom add-on development needed
Find Developers:
- Concrete CMS Marketplace
- Verified partners and developers
- Rated by previous clients
Next Steps
Performance Issues:
Tracking Issues:
Prevention:
- Document your setup
- Test before deploying
- Monitor regularly
- Keep Concrete CMS, themes, and add-ons updated
- Use staging environment for testing
- Implement regular backups