TablePress Hosting

TablePress hosting for tables with thousands of rows.

A table plugin is fine until the table is real. Then the page is shipping the entire dataset to the browser so it can sort ten visible rows.

Rows paginated server-sideSorting without the full setImports that complete
Server-side pagingLarge importsQuery indexingDaily backupsFree SSL24/7 support
Built for large tables

The whole table in one response.

The default behaviour sends every row to the browser and does the sorting there, which works beautifully up to a few hundred rows.

Paging and sorting on the server

Ten thousand rows rendered into the page is a multi-megabyte response before any styling. Paging and sorting happen server-side, so the response carries the rows being looked at.

Server-side

Filtering that uses an index

Searching a large table should be a query, not a scan of a serialised blob. Table data is stored and indexed so filtering stays quick as rows accumulate.

Imports that finish

Tables usually arrive as spreadsheets with thousands of rows. Imports run as batches so a large file completes rather than stopping at whatever the timeout allowed.

Batched

Tables that survive a phone

A wide table on a narrow screen is the most common real-world failure. Output is delivered so it scrolls within its own container rather than breaking the page.

Undo a bad import

Re-importing over a curated table is easy to do accidentally. Daily restore points make it recoverable.

Scale

Where a table plugin stops working.

Nothing is wrong at two hundred rows. At ten thousand the page weight, the browser sorting and the import limits all fail at once, and they look like three separate problems.

  • Paging and sorting performed server-side
  • Filtering backed by an index
  • Imports run as resumable batches
  • Wide tables scrolled within a container
Rows
In table
11,400
Paging
Performed
server-side
Filtering
Indexed
yes
Import
Spreadsheet
running
Page weight

Ten rows, not ten thousand.

The measurement is the response size for a page showing twenty rows, because that is what the visitor asked for and often not what they receive.

Server-side
paging and sorting
Indexed
table filtering
Batched
spreadsheet imports
MagicWP110 ms
Typical shared host1380 ms
Full table sent to the browser2400 ms

Illustrative comparison of a paginated view of a large table. Your numbers depend on row count and column width.

Configuration

What we change for large tables

Every row is about not sending data nobody is looking at.

SettingWhat we doWhy
Paging and sortingPerformed server-side rather than in the browserRendering every row so the browser can sort the visible ten produces a multi-megabyte response for a page showing a screenful.
Filter queriesBacked by an index rather than scanning stored dataTable content held as one serialised value cannot be queried, so every search reads and unpacks the entire table.
Import runsBatched so large spreadsheets completeTables arrive as files with thousands of rows, and an import that stops part way leaves a table that looks populated and is not.
Narrow-screen outputScrolled within its own containerA wide table is the most common cause of a page scrolling sideways on a phone, which breaks the layout around it rather than just the table.
Pre-import restore pointTaken before overwriting an existing tableRe-importing over a curated table is an easy mistake and an expensive one to reverse by hand.
Plans

Simple, transparent pricing.

Every plan includes free migration, daily backups, SSL and 24/7 support.

MonthlyYearly 2 months free
Starter
For personal sites, blogs, and portfolios.
$20/mo
  • 1 WordPress site
  • 10 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Support tickets
Start free trial
Pro★ Most popular
For growing businesses and busy stores.
$80/mo
  • 5 WordPress sites
  • 50 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Priority support tickets
Start free trial
Enterprise
For agencies and high-traffic platforms.
$250/mo
  • 20 WordPress sites
  • 200 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Dedicated support
Start free trial
FAQ

Questions, answered.

How many rows can a table have?
Thousands, provided paging and sorting happen on the server. The default sends every row to the browser to sort the visible ten, which is a multi-megabyte response for one screenful.
Why is my table search slow?
Usually because the table is stored as one serialised value, so nothing can be queried and every search unpacks the whole thing. Indexed storage fixes it.
My import stopped part way. What happened?
It ran out of request time. Imports run as batches here so a large spreadsheet finishes rather than leaving a table that looks populated and is not.
Why does my page scroll sideways on mobile?
A wide table without its own scroll container. It has to scroll inside itself, or it drags the whole page layout sideways with it.

Ship the rows people asked for.

Move the site across — migration is free, table data included.