Slow Loading and Failed Content Queries
When your Ghost site displays “Could not load content” messages or experiences significant loading delays, the underlying cause typically involves server-side performance bottlenecks. This guide covers the most effective diagnostic and resolution strategies.
Identifying the Problem
Performance issues typically manifest as:
- Extended loading times or complete timeouts
- “Could not load content” appearing where posts, tags, or authors should display
- Failed rendering of featured posts or tag lists
- Inconsistent loading behavior across different sections
Understanding the Underlying Causes
Server Resource Limitations
Most performance issues stem from inadequate server resources, particularly when handling:
- Large databases containing 10,000+ posts
- Complex database queries required for featured content and post counting
- Docker environments with restrictive memory or CPU allocation
Database Scale Impact: Sites with 50,000+ posts face exponentially higher resource demands. Complex queries that run smoothly on smaller installations can timeout or fail entirely when database size reaches this scale without proper optimization.
Database Configuration Problems
Several database-related factors can cause performance degradation:
- Missing or corrupted database indexes
- Insufficient connection pool configuration
- Database server resource constraints
- Outdated Ghost installations missing performance improvements
Resource-Intensive Theme Operations
Modern Ghost themes often include sophisticated features that demand significant server resources:
Dynamic Post Counting
Post count displays require additional database queries:
{{#get "tags" include="count.posts"}}
{{#get "authors" include="count.posts"}}
Featured Content Filtering
Featured post sections execute targeted queries:
{{#get "posts" filter="featured:true"}}
Advanced Sorting Operations
Complex ordering requires intensive database operations:
{{#get "authors" order="count.posts DESC"}}
{{#get "tags" filter="visibility:public" order="count.posts DESC"}}
Performance Considerations: Each tag and author display requires additional database queries to calculate post counts. On large installations, inadequate server resources cause these operations to timeout, resulting in failed content loading.
Diagnostic Procedures
Environment Assessment
Docker container monitoring:
# Monitor real-time resource usage
docker stats your-ghost-container
# Review Ghost application logs
docker logs your-ghost-container
Ghost version verification:
# Confirm current Ghost version
ghost version
Database performance analysis:
# Monitor active MySQL processes
mysql -e "SHOW PROCESSLIST;"
# Check slow query logging status
mysql -e "SHOW VARIABLES LIKE 'slow_query_log';"
Resolution Strategies
Resource Allocation Optimization
Docker environment configuration:
# docker-compose.yml
services:
ghost:
image: ghost:latest
deploy:
resources:
limits:
memory: 1G # Increase from default allocation
cpus: '1.0'
reservations:
memory: 512M
cpus: '0.5'
database:
image: mysql:8.0
deploy:
resources:
limits:
memory: 512M
reservations:
memory: 256M
VPS and dedicated server upgrades:
- Increase RAM allocation for memory-intensive database operations
- Ensure adequate CPU resources for concurrent query processing
- Implement SSD storage for improved database I/O performance
Database Performance Tuning
Ghost platform updates:
# Update Ghost CLI and platform
npm update -g ghost-cli
ghost update
# Execute database migrations
ghost migrate
Connection pool optimization:
// config.production.json
{
"database": {
"client": "mysql",
"connection": {
"pool": {
"min": 5,
"max": 20,
"acquireTimeoutMillis": 60000,
"createTimeoutMillis": 30000,
"destroyTimeoutMillis": 5000,
"idleTimeoutMillis": 30000,
"reapIntervalMillis": 1000,
"createRetryIntervalMillis": 200
}
}
}
}
MySQL optimization procedures:
-- Optimize database tables for improved performance
OPTIMIZE TABLE posts, tags, authors, posts_tags, posts_authors;
-- Verify essential indexes exist
SHOW INDEX FROM posts WHERE Column_name = 'featured';
SHOW INDEX FROM posts WHERE Column_name = 'status';
SHOW INDEX FROM posts WHERE Column_name = 'visibility';
-- Create missing indexes if necessary
CREATE INDEX idx_posts_featured ON posts(featured);
CREATE INDEX idx_posts_status ON posts(status);
Ghost Application Configuration
Timeout and performance settings:
// config.production.json
{
"server": {
"host": "0.0.0.0",
"port": 2368
},
"database": {
"connection": {
"timeout": 60000,
"acquireTimeout": 60000
}
}
}
Caching configuration:
// config.production.json
{
"caching": {
"frontend": {
"maxAge": 600
}
}
}
Infrastructure Considerations
For sites experiencing persistent performance issues, evaluate these infrastructure factors:
Hardware requirements:
- Adequate RAM for simultaneous Ghost and database operations
- SSD storage for improved database query performance
- Multi-core processors supporting concurrent database operations
- Stable network connectivity between application and database layers
Advanced configurations: For large installations, consider separating database operations onto dedicated servers to reduce resource contention.
MySQL server optimization:
# my.cnf - adjust values based on available server resources
[mysqld]
innodb_buffer_pool_size = 512M # Scale with available RAM
innodb_log_file_size = 128M
max_connections = 100
query_cache_size = 64M
tmp_table_size = 32M
max_heap_table_size = 32M
Monitoring and Prevention
Maintenance Best Practices: Regular monitoring prevents performance degradation before it affects users. Implement automated resource monitoring, maintain current Ghost versions, and ensure hosting capacity matches your content volume and traffic patterns.
Large Database Performance: Installations exceeding 50,000 posts require specialized configuration. Advanced theme features like dynamic post counting and complex filtering operations demand robust server resources and database optimization to maintain acceptable performance levels.
Hosting Optimization Recommendations
For optimal performance with resource-intensive themes on large Ghost installations:
- Managed Ghost hosting services like Ghost Pro or DigitalOcean App Platform
- SSD-equipped VPS configurations for enhanced database performance
- Database optimization services for enterprise-scale installations
- CDN integration for efficient static asset delivery
- Dedicated database infrastructure for high-traffic or large-content sites