A few "nuggestions" from "Proven Practices for SharePoint Online Portals - Performance"

nuggestions = nuggets of suggestions

https://msdn.microsoft.com/en-us/pnp_articles/portal-performance

I am often asked/told/screamed at "Hey Tadd! Why is my SharePoint page/site/site collection/etc so slow?"

"What can I do as a designer/developer/site collection administrator do?"

  • A few of initial questions:
    • When did you first notice or was it reported that your "SharePoint" was slow?
    • What did you do?
    • What has been modified?
    • When was it modified?
    • Does your Site Contents page load quickly?
    • Did you compare before and after Network "traces" with F12 developer tools and your browser?
    • Did you compare before and after with Developer Dashboard (if accessible)?

From the link above, I have converted some of the anti-patterns to questions  applicable to almost any on-prem, cloud, etc implementation.

Anti-Patterns (in other words, don't do these things)

  • Build custom client-side controls that issue client-side data requests to SharePoint and add a dozen or more of them to the page
    • What has been modified?
    • When was it modified?
    • Did you compare before and after Network "traces" with F12 developer tools and your browser?
    • Did you compare before and after with Developer Dashboard (if accessible)?
  • Implement your client-side controls without centralized data access to the SharePoint data, so that numerous controls are requesting exactly the same data numerous times in a page
    • tsk, tsk
  • Embed redundant custom JavaScript and CSS throughout the page body
    • If I had a dollar for every time I saw the same libraries loaded multiple times from non-cached locations and then collisions and craploads of stuff, I would have many dollars.
  • Embed several 10MB thumbnail images throughout the page body
    • Review your images for optimization for filetype, size, color, etc etc.
  • Execute all client-side data requests at page load time, even if the data is not initially needed/displayed, even if it might never be used
    • tsk, tsk
  • Inject unnecessary order dependencies into the data request sequence and use synchronous data requests to ensure the order of execution
    -
  • Use the legacy SharePoint Lists (SOAP) web service as the data request API of choice and pass it poorly-formed CAML queries
    -
  • Avoid caching data responses (especially for static data) on the client to ensure that each data request gets re-executed on every page load
    -
  • Perform hundreds of updates to the Document Object Model (DOM) of the page as each data response completes, even if they are redundant or conflicting
    -