> For the complete documentation index, see [llms.txt](https://documentation.ajaxsearchpro.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.ajaxsearchpro.com/index-table.md).

# Index Table

## Index Table <a href="#index-table" id="index-table"></a>

### What is the Index Table? <a href="#what-is-the-index-table" id="what-is-the-index-table"></a>

The **Index Table** is Ajax Search Pro's dedicated search engine. Instead of searching your posts directly through WordPress on every keystroke (the *Regular engine*), the plugin builds its own optimized lookup table ahead of time. Every meaningful word from your content is extracted once, cleaned up (stopwords removed, optional inflections added), and stored with per-field weighting so that searches become fast database lookups rather than expensive full-text scans.

In practice the Index Table gives you:

* **Much faster searches**, especially on large sites with thousands of posts.
* **Better relevance**, because each word carries a weight depending on where it was found (title, content, excerpt, tags, custom fields, etc.).
* **Typo tolerance and keyword suggestions** powered by the indexed vocabulary.
* **Lower server load**, since the heavy work happens once during indexing rather than on every search request.

{% embed url="<https://youtu.be/XQmrTlvQcTk>" %}
Super fast local search with Ajax Search pro
{% endembed %}

Once it's built, the index **keeps itself in sync with your content automatically** — when you add, edit or delete a post, its entry in the index is updated in the background, so everyday content changes need no action from you. A **full re-generation is only required when you change the indexing&#x20;*****settings*** (which content, post types or fields are indexed, tokenization rules, and so on). In that case the plugin shows a notification telling you a rebuild is needed.

> **Note:** This page covers indexing of posts, pages and custom post types. Indexing of media and uploaded files (PDFs, documents, etc.) is configured on the **Media & Files** tab and is covered in its own documentation.

You'll find everything below under **Ajax Search Pro → Index Table** in the WordPress admin menu.

<figure><img src="/files/j5DYhArqlTvGbbOWq2MR" alt=""><figcaption></figcaption></figure>

***

### Quick start <a href="#quick-start" id="quick-start"></a>

Setting up the Index Table takes three steps:

1. **Configure what gets indexed** — open the settings panels (General, Post Types & Filters, etc.) and choose which content and post types to include. The defaults work well for most sites, so you can usually skip straight to step 2.
2. **Generate the index** — go to the **Overview** panel and click **Create New Index**.
3. **Enable the Index table engine** on your search instance(s) — generating the index does *not* switch your searches over to it automatically. See [Enabling the Index table engine](http://localhost:63342/markdownPreview/1083710346/markdown-preview-index-jbnfkbs6eqnbjhgeohtirbfo17.html#enabling-the-index-table-engine) below.

***

### Generating the index (Overview) <a href="#generating-the-index-overview" id="generating-the-index-overview"></a>

The **Overview** panel is the control center for building and maintaining the index. At the top it shows three live stat cards:

* **Posts Indexed** — how many items are currently in the index.
* **Posts Remaining** — how many still need processing.
* **Total Keywords** — the number of unique words stored in the index.

#### The action buttons <a href="#the-action-buttons" id="the-action-buttons"></a>

* **Create New Index** — wipes any existing index and builds a fresh one from scratch. Use this for the first build, or whenever you want to rebuild everything cleanly.
* **Continue Existing** — resumes indexing from where it left off, only processing the *Posts Remaining*. Useful if a build was interrupted, or to pick up newly added posts.
* **Delete Index** — removes the entire index from the database (asks for confirmation first). Your searches will fall back to the Regular engine until you rebuild.
* **Optimize Table** — runs a database optimization on the index table to reclaim space and keep lookups fast. Worth running occasionally on large or frequently re-indexed sites.

#### While indexing runs <a href="#while-indexing-runs" id="while-indexing-runs"></a>

When you start a build, the plugin processes posts in **batches**, showing a live progress bar and percentage. The stat cards update in real time as posts are processed.

* The batch size is tuned automatically as it runs — if a batch takes too long it shrinks the next one; if batches are fast it grows them — so indexing adapts to your server without timing out.
* A **Stop** button lets you halt the process at any time. Stopping is safe: the work done so far is kept, and you can resume later with **Continue Existing**.
* Indexing keeps running even if you switch to another Index Table tab — the progress and **Stop** control stay available when you come back to the Overview.

<figure><img src="/files/fFMU22mwGqQAOzfXoY8n" alt=""><figcaption></figcaption></figure>

#### Index History chart <a href="#index-history-chart" id="index-history-chart"></a>

Once the index has a few days of history, the Overview shows an **Index History — Last 30 Days** chart, plotting how many posts were indexed and how the keyword count changed over time. Daily snapshots are recorded automatically, so this builds up on its own.

***

### Enabling the Index table engine <a href="#enabling-the-index-table-engine" id="enabling-the-index-table-engine"></a>

**This is the step that's easy to miss.** Building the index does not, by itself, make your searches use it. The Index Table is a *site-wide* index, but each search instance decides whether to use it.

For every search instance you want to speed up:

1. Open the search instance and go to **General Options → Sources**.
2. Find the **Search engine** dropdown and switch it from **Regular engine** to **Index table engine**.
3. Save the search instance.

The Index table engine only works once the index has been generated — if the index is empty, switch to it only after running **Create New Index**.

When the Index table engine is selected, some options on the instance's settings pages are disabled, because those settings are now controlled here on the Index Table page instead (for example which content and fields are searched).

<figure><img src="/files/LLZwqPtVPxvNlqEtpI13" alt=""><figcaption></figcaption></figure>

***

### Keeping the index up to date <a href="#keeping-the-index-up-to-date" id="keeping-the-index-up-to-date"></a>

There are two different situations, and it's important not to confuse them:

**Content changes — handled automatically.** When you publish, edit or delete a post, the plugin updates that post in the index for you in the background. You do **not** need to rebuild the index after normal content edits. (The Scheduling panel lets you fine-tune this automatic behavior.)

**Settings changes — require a full re-generation.** When you change an *indexing setting* on this page (which content or post types are indexed, tokenization rules, exclusions, etc.), the existing index no longer matches your configuration and must be rebuilt. The plugin makes this obvious: a banner appears at the top of the Index Table page —

<figure><img src="/files/UgyeLIDMB3ah4ASI5znH" alt=""><figcaption></figcaption></figure>

— with a shortcut link back to the Overview. From there, run **Create New Index** to apply the changes.

***

### Settings panels <a href="#settings-panels" id="settings-panels"></a>

The panels in the left-hand menu control exactly *what* gets indexed and *how*. Each panel has its own **Save** button. Remember that saving a panel only stores the configuration — you still need to rebuild the index for changes to take effect.

#### General — what content to index <a href="#general--what-content-to-index" id="general--what-content-to-index"></a>

Toggles for which parts of each post are included in the index:

* **Index title** — the post/page title.
* **Index content** — the main content body.
* **Index excerpt** — the post/page excerpt.
* **Index permalinks** — the URL slug.
* **Index author name** — the author's display name.
* **Index author bio** — the author's biographical description.

<figure><img src="/files/Db828bzvbtKjWaUygvVS" alt=""><figcaption></figcaption></figure>

#### Post Types & Filters — what to include <a href="#post-types--filters--what-to-include" id="post-types--filters--what-to-include"></a>

Defines the scope of the index:

* **Post types** — which post types to index (posts, pages, products, any custom post type).
* **Taxonomies to index** — which taxonomies to include; tags and categories are selected here too.
* **Post statuses** — which statuses to include (e.g. `publish`, `draft`, `pending`, `private`, `future`). Type a status and press Enter or comma to add it.
* **Index password-protected posts** — whether to include password-protected content.
* **Blogs to index (multisite)** — on multisite, choose which sites in the network to index.

**Taxonomy term exclusion rules**

You can exclude posts from the index based on the taxonomy terms they're assigned to. For example, exclude every product in a "Discontinued" category, or every post tagged "internal". Add one or more rules selecting a taxonomy and the terms to exclude — posts matching those terms are skipped during indexing.

<figure><img src="/files/INXhOkvcShH3C6AlrzpD" alt=""><figcaption></figcaption></figure>

#### Custom Fields — indexing meta values <a href="#custom-fields--indexing-meta-values" id="custom-fields--indexing-meta-values"></a>

* **Custom fields to index** — search for and select the meta keys whose values should be added to the index. This makes content stored in custom fields (e.g. ACF fields, product attributes) searchable.
* **Re-index on meta update** — automatically re-index a post when one of its custom field values changes. A warning is shown when this is on: on sites where plugins bulk-update meta (WooCommerce, ACF, etc.) this can trigger frequent re-indexing and impact performance, so enable it only when you need it.

**Custom field exclusion rules**

Exclude posts from the index when their custom fields meet certain conditions (combined with AND logic). For example, exclude posts where a `hide_from_search` field equals `1`, or where a `stock` field is `0`. Build one or more conditions on meta key, comparison and value.

<figure><img src="/files/cDjC6ne0XGbzN04EioMQ" alt=""><figcaption></figcaption></figure>

#### Tokenization — how words are processed <a href="#tokenization--how-words-are-processed" id="tokenization--how-words-are-processed"></a>

Controls how raw content is broken down into indexed words:

* **Use stopwords** — filter out common, low-value words (the, and, of…). When enabled, edit the **Stopwords list** to add or remove words.
* **Minimum word length** — words shorter than this are skipped (default: 1).
* **Extract iframes** — attempt to index content embedded via iframes.
* **Extract Gutenberg blocks** — index text from Gutenberg block markup.
* **Extract shortcodes** — execute shortcodes and index their rendered output. When enabled, use **Exclude shortcodes** to skip specific shortcodes by name.
* **Word inflections** — also index singular/plural forms of words for broader matching. This improves recall but **greatly increases index size**.
* **Inflections language** — the language used for stopword filtering and inflection rules.

<figure><img src="/files/gpEwJ1QgcPvWnxGgR5Ye" alt=""><figcaption></figcaption></figure>

#### Scheduling — automatic re-indexing <a href="#scheduling--automatic-re-indexing" id="scheduling--automatic-re-indexing"></a>

Fine-tune how the index keeps itself in sync with your content:

* **Re-index on post save** — keep newly published and edited posts in sync immediately as they are saved. (Edits to already-indexed posts and deletions are always reflected automatically; this option also adds brand-new posts as soon as they're published.)
* **Enable scheduled re-indexing** — run a full re-index automatically on a recurring schedule via WP-Cron. Useful as a safety net to periodically rebuild everything from scratch.
* **Cron period** — how often the scheduled re-index runs: every 2, 3, 5, 15, 30 or 60 minutes, twice daily, or daily.

<figure><img src="/files/QZvAiFLKM6fmrTq56LuA" alt=""><figcaption></figcaption></figure>

#### Performance — tuning the build <a href="#performance--tuning-the-build" id="performance--tuning-the-build"></a>

Tune how indexing behaves on your server:

* **Posts per indexing batch** — how many posts are processed per iteration. Lower this if indexing times out; raise it on fast servers to index quicker. (The Overview also auto-adjusts this while a build is running.)
* **Enable index compression** — compress indexed data to reduce database storage.
* **Auto-calculate pool size** — let the plugin tune internal pool sizes based on your post count. Disable it to set the four pool-size tiers manually (under 1,000 / 1,000–10,000 / 10,000–100,000 / over 100,000 posts).

<figure><img src="/files/TuiQS4UYMSczkZAj9Gzr" alt=""><figcaption></figcaption></figure>

***

### Indexing with WP-CLI <a href="#indexing-with-wp-cli" id="indexing-with-wp-cli"></a>

On large sites, or to automate builds outside the browser, you can run indexing from the command line with **WP-CLI** instead of the Overview buttons. This avoids browser timeouts and is ideal for scheduled server-side jobs. See the dedicated [WP-CLI documentation](https://documentation.ajaxsearchpro.com/index-table/wp-cli) for the available commands.

***

### Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

* **My searches aren't any faster / aren't using the index.** Confirm you switched the instance's **Search engine** to **Index table engine** (see [Enabling the Index table engine](http://localhost:63342/markdownPreview/1083710346/markdown-preview-index-jbnfkbs6eqnbjhgeohtirbfo17.html#enabling-the-index-table-engine)) and that the index isn't empty.
* **New posts don't show up in search.** Edits and deletions sync automatically, but adding brand-new posts to the index on publish requires **Re-index on post save** (Scheduling panel). Enable it, or rebuild the index manually.
* **Indexing times out or stalls.** Lower **Posts per indexing batch** on the Performance panel, or use [WP-CLI](http://localhost:63342/markdownPreview/1083710346/markdown-preview-index-jbnfkbs6eqnbjhgeohtirbfo17.html#indexing-with-wp-cli) for large builds.
* **A "Re-create the index" banner is showing.** You changed an indexing setting; run **Create New Index** on the Overview to apply it.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.ajaxsearchpro.com/index-table.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
