- Shipped
- September 4, 2026 at 3:22 AM UTC
- Author
- Kamo
- Commit
- 39d330c
Every page's <title> read `X | KamoCRM | KamoCRM`. The root layout sets `title.template: "%s | KamoCRM"`, and each page's own `title` already ended in the same suffix, so Next appended a second one. Live on /features, /pricing, /security and every other page with its own metadata — the homepage escaped it only because its title comes from `default:`, which the template is not applied to. The suffix is now the template's job alone. That is ~11 characters of a ~60-character budget handed back to the part of the title Google actually truncates, and it is the reason /screenshots shipped reading `Screenshots | KamoCRM | KamoCRM` an hour ago. Only the top-level `title` changed. `openGraph.title` and `twitter.title` keep their explicit suffix on purpose: the template is not applied to them, so they were already correct at one `| KamoCRM` and stripping those would have left the social cards with no brand at all — verified against the deployed site before touching anything. Three titles still name the product and are meant to: "About KamoCRM | Mission, Values & Technology", the integrations hub and the solutions hub carry it inside the phrase rather than as a trailing duplicate. Swept all 22 static routes after the build: no title contains the brand more than once, and the homepage is unchanged.