Search is one of the most underestimated components of a TYPO3 website, yet it directly impacts usability, engagement, and conversion.
In this guide, you’ll get a clear overview of TYPO3 search solutions and a step-by-step walkthrough to install and configure EXT:indexed_search, including crawler setup for automated indexing.
This guide will help you:
- Understand available TYPO3 search options
- Decide when indexed_search is the right choice
- Set up and configure it correctly
- Avoid common issues and performance limitations
Note: This guide covers TYPO3 v9 and v10 setups. The core concepts remain the same for newer TYPO3 versions, though minor configuration differences may apply.
Why Search Features Are Important for Your TYPO3 Website
A modern TYPO3 website is expected to deliver fast access to relevant content. While navigation helps, search is often the quickest path to information, especially on content-heavy websites.
According to Search Engine Journal, over 40% of users consider search functionality more important than navigation when finding what they need. That makes search not just a feature, but a core usability component.
Here’s why it matters:
- Faster content discovery
Users can directly access what they’re looking for without navigating multiple pages. - Improved user engagement
Visitors who use search are more likely to stay longer and explore deeper. - Higher conversion potential
Quick access to relevant content reduces friction and increases goal completion. - Valuable user insights
Search queries reveal what users actually want, helping you optimize content and structure. - Essential for mobile users
On smaller screens, search becomes the primary way to navigate complex websites.
TYPO3 Search Options Overview (Core vs Extensions)
TYPO3 offers multiple ways to implement search functionality, from its built-in core extension to advanced third-party solutions. The right approach depends on your website size, performance requirements, and the level of search features you need.
In general, TYPO3 search solutions can be grouped into two categories:
- Core solution:
EXT:indexed_search, suitable for small to medium-sized websites with basic search requirements. - Advanced extensions and external engines:
Solutions like Solr, ke_search, or Elasticsearch-based extensions designed for larger websites that require better performance, scalability, and advanced features such as faceted search.
Below is a comparison of commonly used TYPO3 search solutions:
| Extension Name | Solution Type | TYPO3 Version | Templates Support | Indexing Method | File Indexing | Facets |
| indexed_search | Built-in TYPO3 Core | All | Yes (Marker & Fluid) | Scheduler, On-page | Yes | No |
| Apache Solr | External Solr Server | v9–v10 | Yes | Scheduler | Yes | Yes |
| ke_search | TYPO3 Extension | v9–v10 | Yes (Fluid) | Scheduler | Yes | Yes |
| mksearch | Solr / Lucene / Elasticsearch | v8–v9 | Yes | Scheduler | Yes | Yes |
| search_core | Elasticsearch / Algolia / Solr | v8 | Yes | Scheduler | Yes | Yes |
| Google CSE | External (Google Search) | v9–v10 | Limited | External | Yes | No |
In the following section, we’ll look at these extensions in more detail and help you choose the right TYPO3 search solution for your project.
Top TYPO3 Search Extensions (Compared)
Before diving into TYPO3 indexed_search setup, here’s a practical overview of the most commonly used TYPO3 search extensions, including where they work best and their limitations.
#1 EXT:indexed_search (TYPO3 Core)
Best for:
Small to medium-sized TYPO3 websites with basic search needs
Key strengths:
- Built into TYPO3 core
- No additional setup required
- Supports basic full-text search and file indexing
Limitations:
- Limited scalability for large websites
- No faceted search
- Performance can drop with large datasets
#2 EXT:solr (Apache Solr for TYPO3)
Best for:
Medium to large-scale websites with advanced search requirements
Key strengths:
- High performance and fast results
- Faceted search, synonyms, relevance tuning
- Scalable for enterprise-level projects
Limitations:
- Requires external Solr server setup
- Higher maintenance and configuration effort
#3 EXT:ke_search
Best for:
Small to medium websites needing more flexibility than indexed_search
Key strengths:
- Easy to install and configure
- Supports faceted search
- Flexible indexing from database records
Limitations:
- Not as powerful as Solr for large-scale projects
- Performance depends on database size
#4 EXT:mksearch
Best for:
Projects requiring flexible backend integration (Solr, Lucene, Elasticsearch)
Key strengths:
- Supports multiple search engines
- Highly customizable and extendable
Limitations:
- More complex setup
- Less commonly used, smaller community support
#5 EXT:search_core
Best for:
Developers needing custom search implementations with external engines
Key strengths:
- Supports Elasticsearch, Algolia, Solr
- Flexible API for custom integrations
Limitations:
- Limited support for newer TYPO3 versions
- Requires development effort
#6 EXT:pr_googlecse
Best for:
Quick implementation of search using Google Custom Search
Key strengths:
- Easy to set up
- No indexing required within TYPO3
- Leverages Google’s search capabilities
Limitations:
- Limited control over results
- External dependency
- Not ideal for privacy-sensitive or enterprise projects
#7 Other TYPO3 Search Extensions
TYPO3 also offers additional search extensions through the TYPO3 Extension Repository (TER), as well as the option to build custom solutions based on specific project requirements.
Best for:
Custom or niche use cases
Limitations:
- Varying levels of support and maintenance
- May require additional development and testing
In the next section, we’ll help you decide which TYPO3 search solution fits your project based on your website size, complexity, and performance needs.
Which TYPO3 Search Extension Should You Choose?
Choosing the right TYPO3 search solution depends mainly on your website size, content complexity, and performance requirements. Instead of comparing features alone, it’s more practical to decide based on real use cases.
Quick Decision Guide
| Website Size / Requirement | Recommended Solution |
| Small site (up to ~500 pages) | indexed_search or ke_search |
| Medium site (500–2000 pages) | ke_search or Solr |
| Large site (2000+ pages) | Solr or Elasticsearch-based solutions |
| Need faceted search / filters | ke_search or Solr |
| Need high performance & scalability | Solr |
| Need quick setup with minimal effort | indexed_search |
When to Choose EXT:indexed_search
Choose indexed_search if:
- You have a small to medium-sized TYPO3 website
- You need a simple, built-in solution
- You want minimal setup and maintenance
Avoid it if:
- Your website is large or content-heavy
- You need advanced features like faceting or relevance tuning
- Search performance is critical
When to Choose ke_search
Choose ke_search if:
- You need more flexibility than indexed_search
- You want faceted search without external servers
- Your project is medium-sized
Avoid it if:
- You are running a large-scale or enterprise website
When to Choose Solr (EXT:solr)
Choose Solr if:
- You are working on a large TYPO3 project
- You need fast, scalable search performance
- You require advanced features (facets, synonyms, ranking control)
Avoid it if:
- You want a quick, low-maintenance setup
- You don’t have resources for server configuration
Important Limitation to Consider
According to TYPO3 documentation, indexed_search has not been fully benchmarked for large-scale usage. Existing benchmarks cover up to approximately 2000 pages and ~400,000 indexed records. Beyond this, performance and scalability may require optimization or alternative solutions like Solr.
Practical Takeaway
- Use indexed_search for simplicity
- Use ke_search for flexibility without heavy infrastructure
- Use Solr for performance and scalability
In the next section, we’ll focus on how to install and configure TYPO3 indexed_search step by step.
Limitations of TYPO3 Indexed Search
While EXT:indexed_search is a convenient built-in solution, it has clear limitations that should be considered before implementation, especially for larger or performance-critical TYPO3 projects.
Performance Constraints
Indexed Search relies on database-based indexing and querying. As the number of indexed pages grows, search queries can become slower, particularly under high traffic or complex search requests. In larger setups, response times may increase significantly.
Scalability Limitations
This solution is not designed for large-scale websites. According to TYPO3 documentation, benchmarks have been tested only up to around 2000 pages and ~400,000 indexed records. Beyond this range, performance may degrade, and additional optimization efforts are required.
Limited Advanced Features
Compared to solutions like Solr or Elasticsearch, indexed_search lacks:
- Faceted search (filters)
- Advanced relevance tuning
- Synonym handling
- Real-time indexing capabilities
Indexing Method Dependency
By default, pages are indexed when they are accessed in the frontend. This can lead to incomplete indexing unless a crawler or scheduler is properly configured.
When Not to Use Indexed Search
Avoid using indexed_search if:
- Your website has 2000+ pages or large datasets
- You require fast, enterprise-level search performance
- You need advanced search features (facets, filters, ranking control)
- Your project demands scalable or future-proof architecture
In such cases, consider using Solr or other external search solutions for better performance and flexibility.
How to Install TYPO3 Indexed Search (Step-by-Step)
EXT:indexed_search is included in the TYPO3 core, so in most cases, no manual installation is required.
For Composer-Based TYPO3 Projects
If your project does not include indexed_search, install it via Composer:
composer require typo3/cms-indexed-search:^10.4
Step 3: Activate the extension
Tip: If installed via Composer, it is usually activated by default. Reactivating ensures database schema updates are applied correctly.
Step 3: Enable Indexing and Cache (Critical)
If search does not return results, this is usually the cause.
config.no_cache = 0
config {
index_enable = 1
index_externals = 1
index_metatags = 1
}
# Optional language setting
config.language = dk
Step 5: How Indexing is Triggered
By default, TYPO3 Indexed Search indexes pages when they are visited in the frontend.
- Pages must be accessed at least once to be indexed
- New or hidden pages will not appear in search automatically
- For full-site indexing, a crawler or scheduler is recommended
Step 6: Exclude Header/Footer from Indexing (Optional)
To restrict indexing only to relevant content, define search markers:
page.10 {
stdWrap.dataWrap = <!--TYPO3SEARCH_begin-->|<!--TYPO3SEARCH_end-->
}
Step 7: Customize Search Templates (Optional)
Override default templates by defining custom paths:
plugin.tx_indexedsearch.view {
templateRootPaths {
0 = EXT:indexed_search/Resources/Private/Templates/
10 = {$plugin.tx_indexedsearch.view.templateRootPath}
20 = EXT:yourextension/Resources/Private/Templates/
}
partialRootPaths {
0 = EXT:indexed_search/Resources/Private/Partials/
10 = {$plugin.tx_indexedsearch.view.partialRootPath}
20 = EXT:yourextension/Resources/Private/Partials/
}
}
Step 1: Go to Web → List → Root Page
Step 2: Create a new “Indexing Configuration” record
Step 3: Configure it based on your content structure
Step 9: Advanced TypoScript Configuration
Fine-tune search behavior using:
// TypoScript Setup
plugin.tx_indexedsearch.settings {
// This configuration is used to wrap a single page title in a search result item breadcrumb.
breadcrumbWrap = / || /
// Explicitly display search hits although the visitor has no access to it.
displayForbiddenRecords = 1
// Display the numbers of search results.
displayResultNumber = 0
// Display the link to the advanced search page.
displayAdvancedSearchLink = 1
// List of amount of results to be displayed per page. Sending a different amount via GET or POST will result in the default value being used to prevent DOS attacks.
blind.numberOfResults = 10,25,50,100
// A list of integers which should be root-pages to search from. Thus you can search multiple branches of the page tree by setting this property to a list of page id numbers.
rootPidList =
// Restrict the file type list when searching for files.
mediaList = pdf
// Set the target page UID for the extbase variant of the plugin.
targetPid =
// Determines the length of the cropped title Defaults to 50
results.titleCropAfter = 50
// Determines the length of the cropped summary Defaults to 180
results.summaryCropAfter = 180
// Determines the length of cropped links in the summary Defaults to 60
results.hrefInSummaryCropAfter = 60
// Excludes doktypes in path. Defaults to “”, Example: pathExcludeDoktypes = 254 Exclude sys_folder (doktype: 254) in path for result.
results.pathExcludeDoktypes =
}
Quick Checklist if Search Returns No Results
- Cache is enabled
config.no_cache = 0 - Indexing is enabled
index_enable = 1 - Page is marked as “Include in Search”
- Page has been visited at least once
- No access restrictions blocking indexing
Once configured, TYPO3 Indexed Search will start indexing your pages and displaying results. For larger websites, consider using a crawler to automate indexing efficiently.
TYPO3 Indexed Search Features Explained
Before configuring the extension, it’s important to understand what indexed_search offers.
Key Features
- Content-based relevance ranking
Search results are prioritized based on:- Page title
- Meta keywords
- Meta description
- Page body content
- File indexing support
Can index external files such as:- HTML, TXT
- PDF (via pdftotext)
- DOC (via catdoc)
- Flexible search types
Supports:- Exact match
- Partial match
- Phonetic (metaphone) search
- Word frequency-based ranking
Results are ranked based on how often search terms appear in content. - Case-insensitive search
Ensures consistent results regardless of capitalization. - Sentence-level scanning
Allows matching within content even if not explicitly indexed as structured data.
In the next section, we’ll configure TYPO3 indexed_search step by step to ensure proper indexing and accurate search results.
TYPO3 Indexed Search Not Working? (Fix Common Issues)
If TYPO3 indexed_search is not returning results or behaving incorrectly, the issue is usually related to indexing, configuration, or cache settings. Use this checklist to quickly identify and fix the problem.
1. No Search Results Showing
Possible causes:
- Pages are not indexed yet
- Cache is disabled
- Indexing is not enabled
Fix:
config.no_cache = 0
config {
index_enable = 1
}
Also ensure:
- The page is marked as “Include in Search”
- The page has been visited at least once
2. Pages Not Getting Indexed
Possible causes:
- Pages have not been accessed in frontend
- Indexing is disabled
- Crawler is not configured
Fix:
- Open pages manually in frontend to trigger indexing
- Or use a crawler/scheduler to index the entire site
3. Search Returns Incomplete Results
Possible causes:
- Only partial content indexed
- External files not configured
- Markers limiting indexed content
Fix:
config {
index_externals = 1
index_metatags = 1
}
Also check:
- TYPO3 SEARCH markers are not excluding important content
- File indexing tools (PDF, DOC) are properly configured
4. Slow Search Performance
Possible causes:
- Large number of indexed pages
- Full-word search enabled
- Database-heavy queries
Fix:
plugin.tx_indexedsearch._DEFAULT_PI_VARS.type = 0
Additional actions:
- Limit indexed content scope
- Use crawler instead of frontend indexing
- Consider Solr for large websites
5. Duplicate Search Results
Possible causes:
- Multiple indexed versions of same page
- URL variations (parameters, cHash)
Fix:
plugin.tx_indexedsearch.settings.exactCount = 1
6. Search Works, But Results Are Irrelevant
Possible causes:
- Poor content structure
- Missing meta data
- Weak keyword signals
Fix:
- Improve page titles and meta descriptions
- Use clear headings and structured content
- Ensure relevant keywords are present in content
7. Backend Indexing Data Not Visible
Possible causes:
- Missing access permissions
- Incorrect module usage
Fix:
- Check Web → Indexing module
- Ensure backend user has proper access
8. Search Not Working for Restricted Pages
Possible causes:
- Access restrictions blocking indexing
Fix:
plugin.tx_indexedsearch.settings.displayForbiddenRecords = 1
Quick Debug Checklist
- Cache enabled
- Indexing enabled
- Pages visited or crawler configured
- Pages included in search
- No access restrictions blocking indexing
- TypoScript correctly applied
If issues persist on larger websites, it may indicate limitations of indexed_search. In such cases, consider switching to a more scalable solution like Solr.
How TYPO3 Indexed Search Works (Technical Overview)
To understand how TYPO3 indexed_search works, it’s important to look at two core processes: indexing and searching.
1. Indexing: How TYPO3 Stores Content
Indexing is the process of collecting and storing content from your TYPO3 website into a searchable database.
- When a page is accessed in the frontend, TYPO3 automatically scans its content
- It extracts words from:
- Page title
- Meta tags
- Body content (or defined sections using markers)
- Each word is analyzed, counted, and stored along with its position and frequency
This data is then saved in TYPO3 database tables, creating a structured index that can be searched efficiently.
Important:
By default, indexing happens on page visit. If a page is never opened, it will not be indexed unless a crawler is used.
2. Searching: How Results Are Retrieved
When a user performs a search:
- TYPO3 checks the indexed word database
- It finds matching entries for the search query
- It retrieves all pages associated with those words
- Results are ranked based on:
- Frequency of the keyword
- Location of the keyword (title > meta > body)
- Relevance scoring
The system then displays results in order of relevance.
3. Ranking Logic (How Results Are Prioritized)
TYPO3 indexed_search uses a basic relevance model:
- Higher weight is given to keywords in:
- Page titles
- Meta descriptions
- Lower weight for body content
- Word frequency increases ranking
- Exact matches are prioritized over partial matches
This ensures that more relevant pages appear higher in search results.
4. Indexing Workflow
The typical workflow looks like this:
- A page is visited in the frontend
- TYPO3 extracts and processes content
- Words are stored in the index database
- A user performs a search
- TYPO3 queries the index
- Results are ranked and displayed
5. Manual vs Automated Indexing
There are two ways indexing happens:
- Frontend-based indexing (default)
Pages are indexed when users or admins visit them - Crawler-based indexing (recommended for larger sites)
A crawler systematically visits all pages and builds the index automatically
6. Key Limitations in the Workflow
- Indexing depends on page access unless automated
- Large datasets increase database load
- No advanced ranking logic compared to Solr/Elasticsearch
Practical Insight
TYPO3 indexed_search is effective for smaller websites where simple keyword-based search is sufficient. For larger or more complex projects, the limitations in indexing and ranking become more noticeable, making advanced search solutions more suitable.
How to Monitor Indexing & Search in TYPO3 Backend
TYPO3 provides built-in tools to monitor indexing status and search activity directly from the backend.
Access Indexing Module
- TYPO3 v10+: Web → Indexing
- TYPO3 v9 and below: Web → Info
Key Reports Available
- General Statistics
Page Properties → disable “Include in Search”
- Multiple pages (TypoScript):
page.config.index_enable = 0
Frontend Integration: TYPO3 Indexed Search Plugins
You can integrate TYPO3 indexed_search into your frontend using the following approaches:
1. Native Plugin (EXT:indexed_search)
- Default TYPO3 plugin
- Provides search form + results page
- Supports basic and advanced search
2. EXT:macina_searchbox
- Adds a lightweight search box
- Passes queries to indexed_search
- Easy Fluid-based customization
3. EXT:indexed_search_autocomplete
- Adds autocomplete functionality
- Enhances user experience
- Works on top of indexed_search
Automate Indexing with TYPO3 Crawler
For larger websites, manual indexing (via page visits) is not sufficient. TYPO3 Crawler automates indexing across the entire site.
Installation
composer req aoepeople/crawler
CLI:
// Create queue
$ vendor/bin/typo3 crawler:buildQueue <page-id> <configurationKey1,configurationKey2,...> [--depth <depth>] [--number <number>] [--mode <exec|queue|url>]
// Run queue
$ vendor/bin/typo3 crawler:processQueue [--amount <pages to crawl>] [--sleeptime <milliseconds>] [--sleepafter <seconds>]
// Flush queue
# replace vendor/bin/typo3 with your own cli runner
$ vendor/bin/typo3 crawler:flushQueue <pending|finished|all> [--page <id of top page>]
Cron Job:
* * * * * [pathToYourTYPO3Installation-composer-bin-dir]/typo3cms crawler:buildQueue <startpage> <configurationKeys> > /dev/null
// sites/yoursite/config.yaml
routeEnhancers:
IndexedSearchPlugin:
type: Extbase
extension: IndexedSearch
plugin: Pi2
routes:
-
routePath: /req
_controller: 'Search::search'
_arguments:
page: '@widget_0/currentPage'
defaultController: 'Search::search'
Results per Page
plugin.tx_indexedsearch._DEFAULT_PI_VARS.results = 5
Prevent Duplicate Results
plugin.tx_indexedsearch.settings.exactCount = 1
// ext_tables.php
$GLOBALS['TBE_MODULES']['_configuration']['web_IndexedSearchIsearch']['access'] = 'group,user';
Disable indexing on page visits:
- Admin Tools → Settings → indexed_search
- Uncheck: Index pages in frontend
plugin.tx_indexedsearch._DEFAULT_PI_VARS.type = 0
- Limit indexed content scope
- Use crawler instead of frontend indexing
- Avoid indexing unnecessary pages (e.g., search results page)
For large websites, consider switching to Solr for better performance.
Real Use Cases: When Indexed Search Works Best
- Small corporate websites (≤500 pages)
- Documentation or content-driven sites
- Projects needing quick setup with minimal maintenance
Not suitable for:
- Large enterprise portals
- E-commerce with complex filtering
- High-performance search requirements
Conclusion: Should You Use TYPO3 Indexed Search?
TYPO3 indexed_search is a reliable solution for small to medium websites that need a simple, built-in search feature.
- Use it for quick implementation and low maintenance
- Avoid it for large-scale or performance-critical projects
If your project grows in size or complexity, upgrading to Solr or another advanced search solution will provide better scalability and control.
FAQs
TYPO3 indexed_search is a built-in TYPO3 extension that enables full-text search across website pages and indexed content without requiring external tools.
Go to Admin Tools → Extensions, search for “Indexed Search Engine,” and activate it. Ensure indexing is enabled in TypoScript.
This usually happens when pages are not indexed. Make sure cache is enabled, indexing is active, and pages have been visited or indexed via a crawler.
It indexes page content into a database and retrieves results based on keyword relevance, frequency, and position within the content.
Yes, it can index files like PDFs and DOCs, but requires server tools such as pdftotext and catdoc to extract content.
No, it is best for small to medium websites. For large-scale projects, solutions like Solr are recommended.
Use full-word search, limit indexed content, enable caching, and use a crawler instead of frontend-based indexing.
Delete the indexed entry in the backend and revisit the page, or use a crawler to automatically re-index all pages.
Edit the page properties and disable the “Include in Search” option.
indexed_search is a basic built-in solution, while Solr is an advanced external search engine offering better performance, scalability, and features like faceting.

claim lawyers