+ Latest delivery: {latest.filename},
+
New pages ({analysis.diff.added -> f:count()})
+Removed pages ({analysis.diff.removed -> f:count()})
+Changed rows ({analysis.diff.changed -> f:count()})
+No differences.
++ Pages: {analysis.structure.pages.found} / {analysis.structure.pages.total} exist + Markets: {analysis.structure.market.matched} / {analysis.structure.market.total} + Solutions: {analysis.structure.solution.matched} / {analysis.structure.solution.total} + Products: {analysis.structure.product.matched} / {analysis.structure.product.total} +
++ Markets/Solutions: every row below the section root, including sub-markets and + sub-solutions. Products: level x.y and deeper (the top product rows are + categories). Matching: record slug against the last URL segment, falling back + to a normalized title comparison. The Page Ref column shows the hierarchy. +
+ +Both in CSV and TYPO3 ({check.both -> f:count()})
+{pair.ref} {pair.name} → uid {pair.uid} ({pair.title})Missing in TYPO3 ({check.missing -> f:count()})
+{row.ref} {row.name}Only in TYPO3 ({check.extra -> f:count()})
+Complete match — every CSV row has its record and vice versa.
+{row.url} — {row.name}| Page | Primary keyword | Vol (Global) | GSC Pos | GSC Impr. |
|---|---|---|---|---|
| {row.name} {row.url} |
+ {row.primary} | +{row.volGlobal} | +{row.gscPos} | +{row.gscImpr} | +
{group.keyword}
+No delivery stored yet - upload the keyword research CSV above.
+