Skip to content
ThemesIonic — home
Plugins

TablePress

TablePress keeps table data out of your post content and in its own store, which is why the tables survive redesigns — and why they are one shortcode away from disappearing.

4 min read beginner

TablePress stores tables as data, not as markup in your post. You edit a table in one place, insert it anywhere with a shortcode, and the same table appears in every location. That separation is the entire reason to use it, and it is worth understanding before you decide whether you need it at all.

What that separation buys you

  • One table, many pages. Update the price list once and every page showing it changes.
  • Editing without touching layout. Non-technical editors change cells in a spreadsheet-like grid rather than in markup.
  • Redesign survival. Change the theme, change the builder, rewrite the page — the table data is untouched because it never lived in the page.
  • Import and export. CSV, Excel and JSON in and out, which makes bulk edits practical.

The redesign point is the strongest argument. Tables typed into a page builder are lost when the builder goes; tables in post content survive but have to be reformatted by hand. TablePress data is genuinely separate from both.

What the core plugin actually gives you

The free plugin is a complete table manager: create, edit, import, export, insert. It renders a plain HTML table with classes you can style. That is enough for the most common case by a wide margin — a comparison table, a specification list, an opening-hours grid.

What the free tier does not include is everything interactive: sorting, filtering, pagination, search, responsive modes, charts, and scheduled imports from a remote file. Those are paid extensions on an annual licence.

That split is honest but easy to misread. If you install the free plugin expecting a sortable, searchable data grid, you have the wrong tier. Decide which you need from the content:

Content What it needs
A 6-row comparison The free plugin, styled
A 40-row price list Free plugin plus your own responsive CSS
A 500-row searchable dataset Paid extensions, or a different tool entirely
Product data from WooCommerce Not this — see WooCommerce product tables
Data updated by another system Scheduled import extension, or a custom endpoint

The mobile problem, which is not TablePress's fault

A table with seven columns does not fit a phone. No plugin solves that; they only choose which compromise to apply — sideways scrolling, hiding columns, or stacking each row into a card.

The default is overflow, which on a badly styled theme means the whole page scrolls sideways and looks broken. That is the most common complaint about TablePress and it is a CSS problem: the table wants a scroll container of its own. A few lines fix it, and the same lines fix every other wide element on the site.

.tablepress-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

Wrap the shortcode in a div with that class. If sideways scrolling on the whole page is what brought you here, a site not displaying correctly on mobile covers the wider version of the problem.

Where it is the wrong tool

Layout. Tables are for tabular data. Using a table to place two blocks side by side produces markup that reads badly to screen readers and behaves badly at every width. Columns blocks exist for that — see blocks in WordPress.

Live data. If the numbers come from your store, your CRM or an API, a table you paste into is a copy that is wrong by tomorrow. That is a query problem, not a table problem.

Enormous datasets. Several thousand rows rendered into a page is a slow page regardless of the plugin, because the browser has to build all of it. Paginate on the server or reconsider the format.

The lock-in, stated plainly

It is mild, which is unusual enough to say plainly. Tables live in the plugin's own storage and pages reference them by shortcode. Deactivate the plugin and pages show the shortcode text — visible, ugly, and completely reversible.

Moving away means exporting to CSV and rebuilding the tables wherever they are going. The data comes out cleanly, which is the part that matters. Compare that with a table built inside a page builder, which comes out as nothing at all.

Common mistakes

  • Using tables for layout, then fighting them at every breakpoint.
  • Expecting sorting and search in the free plugin, and concluding the plugin is broken.
  • Pasting a 500-row export into a page and calling the resulting load time a hosting problem.
  • Never styling the table, so it inherits whatever the theme happens to do to <table> — often nothing.
  • Keeping duplicate copies of the same table because inserting the shortcode twice felt wrong. Inserting the same table twice is the intended use.

Deciding

Use TablePress when the same table appears in more than one place, when non-technical people edit it, or when the data needs to outlive the current design. Use a plain block table for a one-off table in a single post — it is fewer moving parts and it renders without a plugin. And when the data lives in another system, fix the pipeline rather than maintaining a hand-updated copy.

Frequently asked

The core plugin is free and covers creating, editing, importing and displaying tables. Sorting, filtering, responsive modes, charts and automatic imports are paid extensions, sold as an annual subscription.
The data stays in the database, but the pages show the raw shortcode instead of a table. Nothing is lost and reactivating restores everything, though you would need to export the tables to move them anywhere else.
By default a wide table overflows and the page scrolls sideways, which is the usual mobile complaint. The responsive handling — horizontal scroll inside the table, collapsing columns, or stacking — is a paid extension, or a few lines of your own CSS.
Tagged CSS

Related guides