Request it twice signed out and compare with a fast page on the same site. In order:
- It is never served from the cache. The second request still says
miss: apreventCaching()in its template or in an include only it uses, a redirect, a status other than 200, or a pattern in the exclusions setting (the diagnostic). Every visitor then waits for a render. - It is cached, but under many keys. The template reads a query parameter that varies with every visit, such as a campaign or click id, so almost every request is a new copy and a render (query parameters).
- Its render is expensive. A long list whose rows read related records or call a lookup helper, or a deep component tree (query-per-row, nesting). Find the section responsible by removing parts on a development environment and timing each.
- It calls something outside the database while rendering, such as a search view or a lookup on every row. Each is a request to another service.
- The time is in the browser, not the server. Time to first byte is normal and the page is still slow: images at their uploaded size, a widget or a tag only this page loads (Images).