Feature #86012
closedIndexing of meta-tags not possible when *_INT-objects are on the page
0%
Description
Meta-Tags are not indexed, when there are USER_INT or COA_INT objects on a page.
Sample TypoScript:
config.index_enable = 1 config.index_metatags = 1 page.20 = USER_INT // no function definition needed. It's enough to have a USER_INT object
This happens because Meta-Tags are not available in the HTML when the indexing hook is run, because their placeholders have not yet been replaced. See my other Bugreport for details:
https://forge.typo3.org/issues/63776
To reproduce, add the above TypoScript and add a Debug-Statement with the content here:
https://github.com/TYPO3/TYPO3.CMS/blob/9f0af539cbef43da46d1270b3c27770732287ddb/typo3/sysext/indexed_search/Classes/Indexer.php#L642
\TYPO3\CMS\Core\Utility\DebugUtility::debug($headPart);
You will get the following HTML:
<!DOCTYPE html> <html lang="de"> <head> <meta charset="utf-8"> <!-- This website is powered by TYPO3 - inspiring people to share! TYPO3 is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL. TYPO3 is copyright 1998-2018 of Kasper Skaarhoj. Extensions are copyright of their respective owners. Information and contribution at https://typo3.org/ --> <!-- ###TITLE1045adfa441ac3948037d4863c3200b1### --> <!-- ###META1045adfa441ac3948037d4863c3200b1### --> <!-- ###CSS_LIBS1045adfa441ac3948037d4863c3200b1### --> <!-- ###CSS_INCLUDE1045adfa441ac3948037d4863c3200b1### --> <!-- ###CSS_INLINE1045adfa441ac3948037d4863c3200b1### --> <!-- ###JS_LIBS1045adfa441ac3948037d4863c3200b1### --> <!-- ###JS_INCLUDE1045adfa441ac3948037d4863c3200b1### --> <!-- ###JS_INLINE1045adfa441ac3948037d4863c3200b1### --> <!-- ###HEADERDATA1045adfa441ac3948037d4863c3200b1### --> </head>
When no USER_INT object is available on the page, those placeholders are already replaced and indexing works fine.
This bug also appears in TYPO3 8.7, 7.6 and 6.2.
Updated by Robert Vock about 6 years ago
- Related to Bug #63776: PageRenderer Hooks are called to late with uncached objects added
Updated by Christian Kuhn about 6 years ago
- Related to Bug #86234: Missing Meta Tags on Pages with *_INT objects added
Updated by Helmut Hummel over 5 years ago
- Tracker changed from Bug to Feature
- Status changed from New to Needs Feedback
That is more or less by design.
It was a design decision that title, meta tags, css, js and other header data can be modified by uncached plugins.
Therefore these must not be part of the cached content of a page and therefore they are not available during indexing (because they are dynamic by definition).
If this causes issues, the design needs to be changed, which makes this a feature request.
What would be your expectation how this should work out without loosing the option for uncached plugins to modify these parts of the web page?
What could work out is that every non cachable object defines in configuration which parts it potentially modifies and page renderer uses this information and only
makes these parts uncached. That would be doable, but would potentially be a breaking change.
Updated by Benni Mack over 4 years ago
- Status changed from Needs Feedback to Closed
That is correct. a USER_INT is "not cacheable" by TYPO3, so it cannot be indexed. A uncacheble plugin could e.g. display the current time - this should never be indexed. Will close this issue now, because - as Helmut stated - this is by design.