Back to blog

Engineering note

When WordPress Should Not Hold the Whole Dataset

A practical note on using WordPress as the public-facing layer while PostgreSQL, Elasticsearch, queues, and scripts handle heavier search/data work.

WordPressPostgreSQLElasticsearch

WordPress is good at many things, but it should not be forced to do every job.

On one project, the public interface needed to be WordPress, but the data and search requirements were heavier than a normal WordPress setup. The workflow involved CSV files, S3 uploads, migrations, structured storage, text search, and search pages for specific record types.

The better approach was to separate responsibilities.

WordPress stayed as the presentation layer. PostgreSQL handled structured storage. Materialized views helped with faster structured queries. Elasticsearch handled text-heavy search behavior. RabbitMQ helped move longer processing into a queue. Python handled parts of the import and migration workflow.

This kind of architecture is not always necessary. For a small website, it would be overengineering. But once a dataset becomes large, frequently updated, or search-heavy, WordPress should not be the bottleneck.

The useful question is not whether WordPress can store this. The better question is whether WordPress should be responsible for this.

Sometimes the answer is yes. Sometimes WordPress should stay focused on the public page, admin experience, and content layer while another system handles the data-heavy work behind it.

If your WordPress site has outgrown normal search, imports, or database queries, I can help review whether the solution should stay inside WordPress or move into a better backend workflow.

Have a similar WordPress plugin, API integration, automation workflow, or backend/search problem?

Discuss a project