<?xml version="1.0" encoding="UTF-8" ?><!-- generator=Zoho Sites --><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><atom:link href="https://www.gtconsult.com/blogs/author/boitumelo/feed" rel="self" type="application/rss+xml"/><title>GTconsult - Blog by Boitumelo</title><description>GTconsult - Blog by Boitumelo</description><link>https://www.gtconsult.com/blogs/author/boitumelo</link><lastBuildDate>Wed, 01 Apr 2026 08:38:01 -0700</lastBuildDate><generator>http://zoho.com/sites/</generator><item><title><![CDATA[SharePoint CSP: Lessons Learned After Enforcement]]></title><link>https://www.gtconsult.com/blogs/post/sharepoint-csp-lessons-learned-after-enforcement</link><description><![CDATA[<img align="left" hspace="5" src="https://www.gtconsult.com/Blog Site/ff.png"/>CSP enforcement went live 1 March 2026. Here's what actually broke, what held up fine, and what every SharePoint environment can learn from the aftermath.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_Q6SZuOenRqiDkCfrsU0N4Q" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_NmnIylMfQPqheGXhzNLHMQ" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_L_ax5l0hR3yT5B--e0CSeA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_uUa3_U0GSC2E3hsu6cj1SA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p><span><span>1 March came and went. Here's what actually broke, what held up fine, and what everyone who was &quot;planning to deal with it later&quot; is dealing with right now.</span></span></p></div>
</div><div data-element-id="elm_YoFmLtA41Kja8z_ERT5vNQ" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_YoFmLtA41Kja8z_ERT5vNQ"] .zpimage-container figure img { width: 754px !important ; height: 424px !important ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/ff.png" size="custom" data-lightbox="true"/></picture></span></figure></div>
</div><div data-element-id="elm_FlA9Xv0yH7eALNPgQEOKwQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>Microsoft's SharePoint Online Content Security Policy enforcement went live on 1 March 2026. For teams that had prepared, audited their violations, refactored inline scripts, registered trusted sources: it was a non-event. For those who hadn't, it was a rough Monday morning. This post captures what we've seen in the aftermath: what broke, what didn't, and what the experience teaches us about managing security changes in a modern SharePoint environment.</span></span></p></div>
</div></div></div></div></div><div data-element-id="elm_4Uc-2ob9fuW9PZ5xgrWcSQ" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_Q7luIxAdNeysCMZzJPxl0A" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_b5alVDLHoQH9iRjLnTBaAg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_CSMKF17qOBxt4w6xsSzWjQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>What Actually Broke</strong></h3></div>
</div></div></div></div><div data-element-id="elm_5vbdPeSXnUrmXkJhoL_wwg" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_SKEtigDZdosX7RqEGAx_vQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_zsDv8xZ2p_HFvEMhDx8Omw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_GUepag85OQ-ITOevYXbZYg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_GUepag85OQ-ITOevYXbZYg"].zpelem-text { border-style:solid; border-color:#E21D1D !important; border-block-start-width:3px; border-inline-end-width:0px; border-block-end-width:0px; border-inline-start-width:0px; } </style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span style="color:rgb(180, 45, 45);"><br/></span></p><p><span style="color:rgb(180, 45, 45);">Commonly Affected</span></p></div>
</div><div data-element-id="elm_5q7oWbhJPBnO9i3S7CJIhA" data-element-type="imageheadingtext" class="zpelement zpelem-imageheadingtext "><style> @media (min-width: 992px) { [data-element-id="elm_5q7oWbhJPBnO9i3S7CJIhA"] .zpimageheadingtext-container figure img { width: 52px !important ; height: 52px !important ; } } @media (max-width: 767px) { [data-element-id="elm_5q7oWbhJPBnO9i3S7CJIhA"] .zpimageheadingtext-container figure img { width:50px ; height:50px ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimageheadingtext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-left zpimage-mobile-align-left zpimage-size-custom zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium zpimage-text-seperate-line "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/23.png" width="50" height="50" loading="lazy" size="custom" data-lightbox="false"/></picture></span></figure><div class="zpimage-headingtext-container"><h4 class="zpimage-heading zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left" data-editor="true"><span>Inline Scripts in Content Editor Web Parts</span><br/>​</h4><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p><span><span>Classic content editor web parts with embedded JavaScript were one of the most common failure points. Many organisations had years-old scripts sitting in these parts that nobody had touched, and nobody realised were inline until they stopped working.</span></span></p></div>
</div></div></div></div><div data-element-id="elm_yPXKyKdYbIj-uxTXpO71gg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_7bCNpHgoS0Bn1euXrHX3XA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_7bCNpHgoS0Bn1euXrHX3XA"].zpelem-text { border-style:solid; border-color:#E21D1D !important; border-block-start-width:3px; border-inline-end-width:0px; border-block-end-width:0px; border-inline-start-width:0px; } </style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span style="color:rgb(180, 45, 45);"><br/></span></p><p><span style="color:rgb(180, 45, 45);">Commonly Affected</span></p></div>
</div><div data-element-id="elm_VsLjvQMP9aFZOSOjT2qZ2Q" data-element-type="imageheadingtext" class="zpelement zpelem-imageheadingtext "><style> @media (min-width: 992px) { [data-element-id="elm_VsLjvQMP9aFZOSOjT2qZ2Q"] .zpimageheadingtext-container figure img { width: 50px !important ; height: 50px !important ; } } @media (max-width: 767px) { [data-element-id="elm_VsLjvQMP9aFZOSOjT2qZ2Q"] .zpimageheadingtext-container figure img { width:50px ; height:50px ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimageheadingtext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-left zpimage-mobile-align-left zpimage-size-custom zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium zpimage-text-seperate-line "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/24.png" width="50" height="50" loading="lazy" size="custom" data-lightbox="false"/></picture></span></figure><div class="zpimage-headingtext-container"><h4 class="zpimage-heading zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left" data-editor="true"><span>Third-Party Integrations Using Dynamic Injection<br/></span></h4><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p><span><span>Analytics tools, chatbots, CRM connectors, and similar third-party solutions that inject scripts dynamically at runtime without pre-registration were blocked. Some vendors had updated their SharePoint integrations ahead of enforcement; others hadn't.</span></span></p></div>
</div></div></div></div><div data-element-id="elm_qInmHVpg5hqcmory-Of-yA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_kAdd6MxMSynBnsjmaJJZEw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_kAdd6MxMSynBnsjmaJJZEw"].zpelem-text { border-style:solid; border-color:#F1C40F !important; border-block-start-width:3px; border-inline-end-width:0px; border-block-end-width:0px; border-inline-start-width:0px; } </style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span style="color:rgb(180, 45, 45);"><br/></span></p><p><span style="color:rgb(241, 196, 15);">Partially Affected</span></p></div>
</div><div data-element-id="elm_mRRLIBsJvobvX52pk-4DEg" data-element-type="imageheadingtext" class="zpelement zpelem-imageheadingtext "><style> @media (min-width: 992px) { [data-element-id="elm_mRRLIBsJvobvX52pk-4DEg"] .zpimageheadingtext-container figure img { width: 47px !important ; height: 47px !important ; } } @media (max-width: 767px) { [data-element-id="elm_mRRLIBsJvobvX52pk-4DEg"] .zpimageheadingtext-container figure img { width:50px ; height:50px ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimageheadingtext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-left zpimage-mobile-align-left zpimage-size-custom zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium zpimage-text-seperate-line "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/25.png" width="50" height="50" loading="lazy" size="custom" data-lightbox="false"/></picture></span></figure><div class="zpimage-headingtext-container"><h4 class="zpimage-heading zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left" data-editor="true"><span>Custom SPFx Web Parts with Dynamic Loading<br/></span></h4><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p><span><span>Web parts using&nbsp; </span><code>SPComponentLoader.loadScript()</code><span>&nbsp;to pull in external libraries at runtime worked fine if those sources were pre-registered in Trusted Script Sources, and broke if they weren't. The split outcome here caught some teams off guard who assumed their SPFx solutions were automatically safe.</span></span></p></div>
</div></div></div></div></div><div data-element-id="elm_hV5ZFuicEXZdQjCvwHj7hw" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_SLhKS1VIn_LnXlY2zK91Iw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_SEFA-LZ5-Gpb0wrHC537uw" data-element-type="spacer" class="zpelement zpelem-spacer "><style> div[data-element-id="elm_SEFA-LZ5-Gpb0wrHC537uw"] div.zpspacer { height:33px; } @media (max-width: 768px) { div[data-element-id="elm_SEFA-LZ5-Gpb0wrHC537uw"] div.zpspacer { height:calc(33px / 3); } } </style><div class="zpspacer " data-height="33"></div>
</div></div></div><div data-element-id="elm_avkD92zJNqVyFjTKCqzluQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_l3PJoMyQSrujx2V-pERbAw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_Xf6kvrjtppshCMGxzixi9g" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_Xf6kvrjtppshCMGxzixi9g"].zpelem-text { border-style:solid; border-color:#A6CE39 !important; border-block-start-width:3px; border-inline-end-width:0px; border-block-end-width:0px; border-inline-start-width:0px; } </style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span style="color:rgb(180, 45, 45);"><br/></span></p><p><span style="color:rgb(166, 206, 57);">Unaffected</span></p></div>
</div><div data-element-id="elm_micSr6onUofH0l6Xh_buSA" data-element-type="imageheadingtext" class="zpelement zpelem-imageheadingtext "><style> @media (min-width: 992px) { [data-element-id="elm_micSr6onUofH0l6Xh_buSA"] .zpimageheadingtext-container figure img { width: 52px !important ; height: 52px !important ; } } @media (max-width: 767px) { [data-element-id="elm_micSr6onUofH0l6Xh_buSA"] .zpimageheadingtext-container figure img { width:50px ; height:50px ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimageheadingtext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-left zpimage-mobile-align-left zpimage-size-custom zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium zpimage-text-seperate-line "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/26.png" width="50" height="50" loading="lazy" size="custom" data-lightbox="false"/></picture></span></figure><div class="zpimage-headingtext-container"><h4 class="zpimage-heading zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left" data-editor="true"><span>Standard SPFx Bundles via cdnBasePath or externals<br/></span></h4><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p><span><span>Solutions deployed through proper SPFx packaging, bundles referenced via&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);font-family:&quot;Courier New&quot;, monospace;">&nbsp;</span></span><code style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);font-family:&quot;Courier New&quot;, monospace;">cdnBasePath&nbsp;</code><span>&nbsp;or external libraries declared in&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);font-family:&quot;Courier New&quot;, monospace;">&nbsp;</span></span><code style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);font-family:&quot;Courier New&quot;, monospace;">config.json&nbsp;</code><span>, were automatically added to Trusted Script Sources on installation and were entirely unaffected by enforcement.</span></span></p></div>
</div></div></div></div><div data-element-id="elm_RWoaloQBiSIXdiArZcHRbQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_-_4Ze6htLK7-1apUCiyN-Q" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_-_4Ze6htLK7-1apUCiyN-Q"].zpelem-text { border-style:solid; border-color:#A6CE39 !important; border-block-start-width:3px; border-inline-end-width:0px; border-block-end-width:0px; border-inline-start-width:0px; } </style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span style="color:rgb(180, 45, 45);"><br/></span></p><p><span style="color:rgb(166, 206, 57);">Unaffected</span></p></div>
</div><div data-element-id="elm_e3HEFndZRDUhMwa6Tc1YcQ" data-element-type="imageheadingtext" class="zpelement zpelem-imageheadingtext "><style> @media (min-width: 992px) { [data-element-id="elm_e3HEFndZRDUhMwa6Tc1YcQ"] .zpimageheadingtext-container figure img { width: 50px !important ; height: 50px !important ; } } @media (max-width: 767px) { [data-element-id="elm_e3HEFndZRDUhMwa6Tc1YcQ"] .zpimageheadingtext-container figure img { width:50px ; height:50px ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimageheadingtext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-left zpimage-mobile-align-left zpimage-size-custom zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium zpimage-text-seperate-line "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/27.png" width="50" height="50" loading="lazy" size="custom" data-lightbox="false"/></picture></span></figure><div class="zpimage-headingtext-container"><h4 class="zpimage-heading zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left" data-editor="true"><span>Classic SharePoint Pages</span><br/>​</h4><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p><span><span>CSP enforcement only applies to modern SharePoint pages. Organisations still running classic team sites or publishing sites were not affected, though the long-term trajectory of classic SharePoint remains what it is.</span></span></p></div>
</div></div></div></div></div><div data-element-id="elm_H0GKtjD1tr9ygt2yiS2PnQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_r9SiVr8xz1BIoDk5rpUHaw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_yOGUyNOtBU-b-qARTuOKkQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_yOGUyNOtBU-b-qARTuOKkQ"].zpelem-text { background-color:#ECF0F1; background-image:unset; border-style:solid; border-color:#A6CE39 !important; border-block-start-width:0px; border-inline-end-width:0px; border-block-end-width:0px; border-inline-start-width:5px; } </style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p></p></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><span style="color:rgb(166, 206, 57);font-size:12px;"></span></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><div><span style="margin-bottom:6px;font-weight:700;color:rgb(166, 206, 57);"><br/></span></div><div><span style="margin-bottom:6px;font-weight:700;color:rgb(166, 206, 57);"></span></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><div>Still running classic SharePoint? CSP is one of many reasons the clock is ticking. Our Support Manager Barend Olivier walks through exactly what's at stake and how to move forward in our on-demand webinar, Migration &amp; Modernization: From Legacy to Modern.</div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><span><span></span></span></blockquote><div><span><span><br/></span></span></div></div>
</div><div data-element-id="elm_x0sevVGayWLJKEfb_re6sQ" data-element-type="video" class="zpelement zpelem-video "><style type="text/css"> @media (max-width: 767px) { [data-element-id="elm_x0sevVGayWLJKEfb_re6sQ"].zpelem-video iframe.zpvideo{ width:560px !important; height:315px !important; } } @media all and (min-width: 768px) and (max-width:991px){ [data-element-id="elm_x0sevVGayWLJKEfb_re6sQ"].zpelem-video iframe.zpvideo{ width:560px !important; height:315px !important; } } </style><div class="zpvideo-container zpiframe-align-center zpiframe-mobile-align-center zpiframe-tablet-align-center"><iframe class="zpvideo " width="560" height="315" src="https://www.youtube.com/embed/X3b2vhnFsPI?si=11oPQW0TvV7aJPv5" frameborder="0" allowfullscreen></iframe></div>
</div></div></div></div></div><div data-element-id="elm_wujIyeaIWe3HHGkdkbi7uA" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_Gy79vhUoZVk4Tvk9DoiKDw" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_2lynVZF7SbwzbsK_ets-lQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_8tp7cp-NYNJRiECQ6P7FlA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>The Common Thread in Failures</strong></h3></div>
<div data-element-id="elm_Fhxzjl2tFZYbCytcJt6sbA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:20px;">Looking across the common failure patterns, there's a single theme:&nbsp;<strong>legacy script patterns that nobody had revisited in years</strong>. The solutions that broke were rarely recently built, they were older integrations, older web parts, scripts embedded when SharePoint was configured years ago and then forgotten.</p><p style="margin-bottom:20px;">CSP enforcement didn't create new problems; it surfaced old ones. That's actually the point. The report-only window from late 2025 through 28 February was designed exactly for this: a chance to audit before enforcement hit. Teams that used that window had nothing to worry about on 1 March. Teams that didn't are doing triage now.</p></div><p></p></div>
</div><div data-element-id="elm_SJMHmb6Sfh5sCO4bCl5HUw" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong><span>The Fix Is Usually Simpler Than It Sounds</span></strong></h3></div>
<div data-element-id="elm_f2XQpFGAV_2w3sf4yeyngw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><div>One of the more reassuring findings: for most organisations, the actual remediation work is not as complex as it sounds once you know what you're dealing with. The common fixes are:</div><div><br/></div></div><p></p><ul><li>Inline scripts: Extract into a&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);font-family:&quot;Courier New&quot;, monospace;"> .js file </span>, host it somewhere trusted, update the reference. An afternoon of work in most cases.</li><li>Untrusted external sources: Add the domain to Trusted Script Sources in SharePoint Admin Center. A few minutes per source.</li><li>Third-party vendor tools: Contact the vendor. Most major vendors had CSP-compliant updates available before enforcement, it's usually a version upgrade.</li></ul><div><div></div><br/><div>The difficulty isn't the fix itself. It's the discovery: knowing which scripts exist, where they live, and what they load. That's why the Purview audit log is so valuable, run a search for &quot;Violated Content Security Policy&quot; to get the full map.</div></div></div>
</div><div data-element-id="elm_OL9VoIPz5uQOqdghTodhTw" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong><span><span>What This Tells Us About Security Governance</span></span></strong></h3></div>
<div data-element-id="elm_5nmpUES4L_exdqK82aUJ7A" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_5nmpUES4L_exdqK82aUJ7A"] .zpimagetext-container figure img { width: 407px !important ; height: 271px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/laptop-with-antivirus-shield-hologram-web-safety-2026-03-26-05-09-23-utc.jpg" size="custom" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:20px;">CSP enforcement is a useful lens on a broader question: how well do organisations actually know what JavaScript is running in their SharePoint environment? For many, the honest answer before 1 March was &quot;not very well.&quot; Scripts accumulate over years of SharePoint growth, solutions built by people who've left, integrations set up for projects long since finished, vendor tools added during evaluations that never quite got removed.</p><p style="margin-bottom:20px;">CSP enforcement forced an audit that should have been happening on an ongoing basis. The silver lining: teams that went through the remediation process now have a much cleaner, better-documented picture of their SharePoint script landscape than they did before.</p></div><p></p></div>
</div></div><div data-element-id="elm_7jeMlHaduwfau0u19N-Hcg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_7jeMlHaduwfau0u19N-Hcg"].zpelem-text { background-color:#ECF0F1; background-image:unset; border-style:solid; border-color:#A6CE39 !important; border-block-start-width:0px; border-inline-end-width:0px; border-block-end-width:0px; border-inline-start-width:5px; } </style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p></p></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><span style="color:rgb(166, 206, 57);font-size:12px;"></span></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><div><span style="margin-bottom:6px;font-weight:700;color:rgb(166, 206, 57);"><br/></span></div><div><span style="margin-bottom:6px;font-weight:700;color:rgb(166, 206, 57);"></span></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><div><span style="margin-bottom:8px;font-weight:600;color:rgb(166, 206, 57);">If You're Still Cleaning Up</span></div></blockquote><div><div><br/></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><span><span></span></span></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><span><span>Check your Purview audit log, work through violations methodically, and use&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);font-family:&quot;Courier New&quot;, monospace;">&nbsp;</span></span><code style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);font-family:&quot;Courier New&quot;, monospace;">?csp=enforce</code><span><span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);font-family:&quot;Courier New&quot;, monospace;">&nbsp;</span> on individual pages to verify fixes. If you're on the 90-day delay, enforcement hits&nbsp;</span><a href="https://www.claudeusercontent.com/?domain=claude.ai&amp;parentOrigin=https%3A%2F%2Fclaude.ai&amp;errorReportingMode=parent&amp;formattedSpreadsheets=true#">1 June 2026</a><span>. Use the time you have.</span></span></blockquote><div><span><span><br/></span></span></div></div>
</div><div data-element-id="elm_Vkih9OF3of4bUesSpw_vow" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_Vkih9OF3of4bUesSpw_vow"].zpelem-text { background-color:#ECF0F1; background-image:unset; border-style:solid; border-color:#A6CE39 !important; border-block-start-width:0px; border-inline-end-width:0px; border-block-end-width:0px; border-inline-start-width:5px; } </style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p></p></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><span style="color:rgb(166, 206, 57);font-size:12px;"></span></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><div><blockquote style="margin-left:40px;border:none;"><p></p></blockquote><blockquote style="margin-left:40px;border:none;"><span style="color:rgb(166, 206, 57);font-size:12px;"></span></blockquote><blockquote style="margin-left:40px;border:none;"><div><span style="margin-bottom:6px;font-weight:700;color:rgb(166, 206, 57);"><br/></span></div><div><span style="margin-bottom:6px;font-weight:700;color:rgb(166, 206, 57);"></span></div></blockquote><blockquote style="margin-left:40px;border:none;"><div><span style="margin-bottom:6px;font-weight:700;color:rgb(0, 27, 76);">Further Reading</span></div></blockquote><div><br/></div><blockquote style="margin-left:40px;border:none;"></blockquote><blockquote style="margin-left:40px;border:none;"><a href="https://www.gtconsult.com/blogs/post/sharepoint-csp-enforcement-is-live-%E2%80%94-here-s-what-to-do-if-your-scripts-are-broken" title="SharePoint CSP Enforcement Is Live — Here's What to Do If Your Scripts Are Broken" target="_blank" rel="">SharePoint CSP Enforcement Is Live — Here's What to Do If Your Scripts Are Broken</a></blockquote><blockquote style="margin-left:40px;border:none;"><a href="https://www.gtconsult.com/blogs/post/still-on-the-90-day-csp-delay-your-1-june-deadline-is-coming" title="Still on the 90-Day CSP Delay? Your 1 June Deadline Is Coming" target="_blank" rel="">Still on the 90-Day CSP Delay? Your 1 June Deadline Is Coming</a><a href="https://www.gtconsult.com/blogs/post/still-on-the-90-day-csp-delay-your-1-june-deadline-is-coming" title="Still on the 90-Day CSP Delay? Your 1 June Deadline Is Coming" target="_blank" rel=""><br/></a></blockquote><blockquote style="margin-left:40px;border:none;"><a href="https://learn.microsoft.com/en-us/sharepoint/dev/spfx/content-securty-policy-trusted-script-sources">Support for CSP in SharePoint Online, Microsoft Learn<br/></a><a href="https://techcommunity.microsoft.com/blog/spblog/sharepoint-online-content-security-policy-csp-enforcement-dates-and-guidance/4472662">SharePoint Online CSP: Enforcement Dates and Guidance, Microsoft Tech Community</a></blockquote><blockquote style="margin-left:40px;border:none;"><br/></blockquote><div><br/></div></div></blockquote></div>
</div></div></div></div></div><div data-element-id="elm_6hHgYCt7GskgrPKfG8eEeg" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_5o9tyqS5DYa8Rs-lzUeMvg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_bMqOVNOWc8vB8_07M3LnoQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_FgEBQeenEgCcCZdqqZW0nw" data-element-type="box" class="zpelem-box zpelement zpbox-container zpdark-section zpdark-section-bg "><style type="text/css"> [data-element-id="elm_FgEBQeenEgCcCZdqqZW0nw"].zpelem-box{ background-color:#001B4C; background-image:unset; } </style><div data-element-id="elm_J3T9wRE7uIRA18o-Xl8dEg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-center zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Need our help?</strong><br/></h3></div>
<div data-element-id="elm_Wul5Nibzk63HvmqhW9GsWA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div style="text-align:center;margin-bottom:8px;"><div><p style="margin-bottom:28px;font-style:italic;"><span style="font-size:16px;">Chat to us and let's help you navigate this change.</span></p><span style="font-weight:700;"><a href="https://www.gtconsult.com/contact"></a></span></div></div><p></p></div>
</div><div data-element-id="elm_crCLYMwiUWYuNcQcqs795Q" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_crCLYMwiUWYuNcQcqs795Q"].zpelem-button{ margin-block-start:-5px; } </style><div class="zpbutton-container zpbutton-align-center zpbutton-align-mobile-center zpbutton-align-tablet-center"><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-roundcorner " href="https://outlook.office.com/bookwithme/user/6bd34779624c4a8ab5f3906f5e71baf7%40gtconsult.com/meetingtype/Cfseq1rTWEyZRk62iTNVAw2?anonymous&amp;ismsaljsauthenabled=true"><span class="zpbutton-content">Book a Free Consultation with Our Technical Account Manager, Trevin</span></a></div>
</div><div data-element-id="elm_jOXcQOq4phuaRlzAOuEquA" data-element-type="spacer" class="zpelement zpelem-spacer "><style> div[data-element-id="elm_jOXcQOq4phuaRlzAOuEquA"] div.zpspacer { height:30px; } @media (max-width: 768px) { div[data-element-id="elm_jOXcQOq4phuaRlzAOuEquA"] div.zpspacer { height:calc(30px / 3); } } </style><div class="zpspacer " data-height="30"></div>
</div></div></div></div></div></div></div> ]]></content:encoded><pubDate>Tue, 31 Mar 2026 14:28:53 +0000</pubDate></item><item><title><![CDATA[Still on the 90-Day CSP Delay? Your 1 June Deadline Is Coming]]></title><link>https://www.gtconsult.com/blogs/post/still-on-the-90-day-csp-delay-your-1-june-deadline-is-coming</link><description><![CDATA[<img align="left" hspace="5" src="https://www.gtconsult.com/Blog Site/HH.png"/>Still on the 90-day CSP delay? Your SharePoint Online enforcement deadline is 1 June 2026. Here's your 8-week action plan to audit violations, fix scripts, and test before the window closes.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_eP5YOwKNSrqbahK8CEdiQA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_BzFHOmS6RROIhaqlaWh3nA" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_nISarZm9R1Ckzb_WbfTitg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_Ub5ABqLdR9-FylpHZrx5vQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p><span><span style="font-style:italic;">If your organisation opted into Microsoft's enforcement delay back in February, the window is closing. Here's everything you need to do before 1 June, and why the time to start is now, not May</span></span></p></div>
</div><div data-element-id="elm_dBxUcpgTjzwyeUr3DX8OBQ" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_dBxUcpgTjzwyeUr3DX8OBQ"] .zpimage-container figure img { width: 770px !important ; height: 433px !important ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/HH.png" size="custom" data-lightbox="true"/></picture></span></figure></div>
</div></div></div></div></div><div data-element-id="elm_WSrxBzjT5CfsxXqmDLge2g" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_Y3FtJkZ_Fv454pKS6SQW6g" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_vUw-S8Upiti5CapZN-fOmw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_TsSD7nEU3KBRCKf09eNBXA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:20px;">When Microsoft announced SharePoint Online's Content Security Policy enforcement in early 2026, they included a lifeline for organisations that needed more time: a&nbsp;<code>Set-SPOTenant -DelayContentSecurityPolicyEnforcement $true</code>&nbsp;flag that pushed enforcement from 1 March to&nbsp;<span style="font-weight:600;">1 June 2026</span>. If your IT team enabled that flag, you bought yourself 90 days.</p><p style="margin-bottom:20px;">Those 90 days are now running out.</p><p style="margin-bottom:20px;">The purpose of the delay was to give organisations time to audit their environments, fix non-compliant scripts, and test changes, not to skip preparation entirely. If you haven't started yet, this post is your starting gun.</p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_fHwr4ShVkzQ1UONfXB6fTA" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_rd-85g3wcjEDxqohf_55ow" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_ujtcD5FTjFye2mnVMw0dKQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_OVixK-nTcjZKFq0mEmfDvQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>What Happens on 1 June</strong></h3></div>
<div data-element-id="elm_l_1rUXou8GqCdFk2Id9rag" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_l_1rUXou8GqCdFk2Id9rag"] .zpimagetext-container figure img { width: 511px !important ; height: 341px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/wooden-block-calendar-with-date-may-1-on-the-yello-2026-03-24-06-29-57-utc.jpg" size="custom" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><div><div>On 1 June 2026, the enforcement delay expires automatically. There is no second delay option. After that date, CSP enforcement behaves exactly as it does for everyone else who went live 1 March:</div></div><p></p><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><ul><li>Inline JavaScript will be blocked on all modern SharePoint Online pages.</li><li>Scripts loaded from external sources not registered in your Trusted Script Sources list will be blocked.</li><li>Users will see broken web parts, missing functionality, and JavaScript errors with no visual warning that CSP is the cause.</li></ul></blockquote></blockquote><div><div><br/></div><div>The failure mode is silent from a user perspective: a web part just stops working. The only indication is in the browser console, which most end users will never open. That's why preparation before 1 June matters: there's no grace period, no warning message, and no automatic recovery.</div></div></div>
</div></div><div data-element-id="elm_vVTjvaYNjjqsl5c6BcpR7A" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Check Whether You're on the Delay</strong></h3></div>
<div data-element-id="elm_mAd6ToZty12QUOPb4HmZ-w" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>If you're not certain whether your tenant enabled the delay, check it now via PowerShell:</span></span></p></div>
</div><div data-element-id="elm_ptso2aVAuT7leULuUlCsAQ" data-element-type="box" class="zpelem-box zpelement zpbox-container zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_ptso2aVAuT7leULuUlCsAQ"].zpelem-box{ margin-block-start:-2px; } </style><div data-element-id="elm_ABsc7FG80a-u9zKgcIbeww" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_ABsc7FG80a-u9zKgcIbeww"].zpelem-text { background-color:#001B4C; background-image:unset; border-style:solid; border-color:#A6CE39 !important; border-block-start-width:0px; border-inline-end-width:0px; border-block-end-width:0px; border-inline-start-width:5px; } </style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p></p><div><pre style="margin-bottom:28px;"><br/><span style="color:rgb(166, 206, 57);">Get-SPOTenant | Select-Object DelayContentSecurityPolicyEnforcement</span></pre></div><p></p></blockquote></div>
</div><div data-element-id="elm_ai5wS71Rr-Uk1ajQ9Vao8Q" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>If the value returns&nbsp;</span><code>True</code><span>, enforcement is delayed until 1 June. If it returns&nbsp;</span><code>False</code><span>, enforcement was already live on 1 March. Check whether anything broke in your environment around that date.</span></span></p></div>
</div></div></div></div></div></div><div data-element-id="elm_Nenw7td7E8Vcp0PxI95Gsw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_HQa_EGP5Krt1Yt4ShdI_cg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_-8aKbiND671QXMe0HXcrHA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_WAWdnhdvchGT3E9a1_1mnA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Your Action Plan: The Next 8 Weeks</strong></h3></div>
</div></div></div></div><div data-element-id="elm_Ga_iE1bhXKzoEZZoJBSWwQ" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_7rAiNcPZj5hm5LhADvofqg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_xwE1mnwpbKDgLfgMRo9tXQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_9CpVZvT0zpcskTlmd9JK3w" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_9CpVZvT0zpcskTlmd9JK3w"] .zpimage-container figure img { width: 540px ; height: 303.75px ; } } @media (max-width: 767px) { [data-element-id="elm_9CpVZvT0zpcskTlmd9JK3w"] .zpimage-container figure img { width:415px ; height:277.36px ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/wEEK%20-2-.png" width="415" height="277.36" loading="lazy" size="fit"/></picture></span></figure></div>
</div><div data-element-id="elm_CRVLL7qBZG0TooyXt6x6cA" data-element-type="box" class="zpelem-box zpelement zpbox-container zspadding-space-allside-thin zplight-section zplight-section-bg "><style type="text/css"></style><div data-element-id="elm_JExDJGFXV4mDlMT1Rarrow" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h4
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Week 1–2: Audit</strong><br/></h4></div>
<div data-element-id="elm_UUIBIka0XaVrHqODZmYf3g" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:20px;">Before you can fix anything, you need to know what's broken. Two tools:</p><ul><li style="margin-bottom:8px;"><span style="font-weight:600;">Microsoft Purview:</span>&nbsp;Search the audit log for&nbsp;<span style="font-weight:600;">&quot;Violated Content Security Policy&quot;</span>. This returns a tenant-wide list of every page and script source that triggered a CSP violation during the report-only window. This is your master list.</li><li style="margin-bottom:8px;"><span style="font-weight:600;">Browser console +&nbsp;<code>?csp=enforce</code>:</span>&nbsp;Append&nbsp;<code>?csp=enforce</code>&nbsp;to any modern page URL to force enforcement mode. Open Developer Tools (F12) and check the Console tab for blocked script errors. Use this to verify specific pages.</li></ul></div><p></p></div>
</div><div data-element-id="elm_m-U_DY5d4GsZVr4IipHvNQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_m-U_DY5d4GsZVr4IipHvNQ"].zpelem-text { background-color:#ECF0F1; background-image:unset; border-style:solid; border-color:#A6CE39 !important; border-block-start-width:0px; border-inline-end-width:0px; border-block-end-width:0px; border-inline-start-width:5px; } </style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p></p></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><span style="color:rgb(166, 206, 57);font-size:12px;"></span></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><div><span style="margin-bottom:6px;font-weight:700;color:rgb(166, 206, 57);"><br/></span></div><div><span style="margin-bottom:6px;font-weight:700;color:rgb(166, 206, 57);">Don't Skip the Audit</span></div></blockquote><div><div></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><span><span>The most common mistake teams make is fixing the scripts they know about and missing the ones they don't. The Purview audit log is the only way to surface violations across your entire tenant, including pages and solutions built by people who may no longer be on the team.</span></span></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p></p></blockquote><div><span><span><br/></span></span></div></div>
</div></div></div><div data-element-id="elm_nvIe16gcvvdn4vklKVVPyA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_vw0JMV39bKdHMNf9RTNh7A" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_vw0JMV39bKdHMNf9RTNh7A"] .zpimage-container figure img { width: 540px ; height: 303.75px ; } } @media (max-width: 767px) { [data-element-id="elm_vw0JMV39bKdHMNf9RTNh7A"] .zpimage-container figure img { width:415px ; height:276.67px ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/wEEK%20-3-.png" width="415" height="276.67" loading="lazy" size="fit"/></picture></span></figure></div>
</div><div data-element-id="elm_o89jONOBSpPXYdro9h68fQ" data-element-type="box" class="zpelem-box zpelement zpbox-container zspadding-space-allside-thin zplight-section zplight-section-bg "><style type="text/css"></style><div data-element-id="elm_H0w7H_Wmc-xHEQoQKW8BxQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h4
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Week 3–5: Fix and Register</strong><br/></h4></div>
<div data-element-id="elm_tEqIHP1EyYN0f89vzKu96g" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:20px;">Work through violations by type:</p><ul><li style="margin-bottom:8px;"><span style="font-weight:600;">Inline scripts:</span>&nbsp;Extract JavaScript into external&nbsp;<code>.js</code>&nbsp;files, host in a trusted location, update references. Register the hosting URL as a Trusted Script Source.</li><li style="margin-bottom:8px;"><span style="font-weight:600;">Dynamic external loads (<code>SPComponentLoader</code>):</span>&nbsp;Register each external URL manually in SharePoint Admin Center under Trusted Script Sources. The 300-entry limit applies across your entire tenant, audit before adding everything.</li><li style="margin-bottom:8px;"><span style="font-weight:600;">Third-party tools:</span>&nbsp;Contact vendors. Most major vendors have CSP-compliant versions of their SharePoint integrations available. This is a version upgrade, not a rebuild.</li></ul><div><br/></div></div><div><br/></div><div><br/></div><div><br/></div><div><br/></div><div><br/></div><p></p></div>
</div></div></div></div><div data-element-id="elm__SrALul_SN6XxXXX9tpaSA" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_aMcZQjKYkpTJuZKQsJQhdA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_LK3DL-8pP0f-QWTwwF6YXg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_LK3DL-8pP0f-QWTwwF6YXg"] .zpimage-container figure img { width: 540px ; height: 303.75px ; } } @media (max-width: 767px) { [data-element-id="elm_LK3DL-8pP0f-QWTwwF6YXg"] .zpimage-container figure img { width:415px ; height:277.01px ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/wEEK%20-4-.png" width="415" height="277.01" loading="lazy" size="fit"/></picture></span></figure></div>
</div><div data-element-id="elm_aKTAxtAEhpxDn2YIn2LS8w" data-element-type="box" class="zpelem-box zpelement zpbox-container zspadding-space-allside-thin zplight-section zplight-section-bg "><style type="text/css"></style><div data-element-id="elm_MHpk3z_P0pkO7dZzLX2g7A" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h4
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Week 6–7: Test in Enforce Mode</strong><br/></h4></div>
<div data-element-id="elm_BHd6_CX5Z4yAdsrVxeDNgg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>Once fixes are in place, use&nbsp;</span><code>?csp=enforce</code><span>&nbsp;systematically across your critical pages to verify nothing is still breaking. Involve your end users or QA team, have them walk through their normal workflows on the pages they use most.</span></span></p><p><span><span><br/></span></span></p></div>
</div></div></div><div data-element-id="elm_oCKg2oL9zsxt1GsFB8C7oQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_oJIvZG5PmjREB-dLVrVtLA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_oJIvZG5PmjREB-dLVrVtLA"] .zpimage-container figure img { width: 540px ; height: 303.75px ; } } @media (max-width: 767px) { [data-element-id="elm_oJIvZG5PmjREB-dLVrVtLA"] .zpimage-container figure img { width:415px ; height:277.01px ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/wEEK%20-1-.png" width="415" height="277.01" loading="lazy" size="fit"/></picture></span></figure></div>
</div><div data-element-id="elm_sGQrlkEllU0E84gm-b400w" data-element-type="box" class="zpelem-box zpelement zpbox-container zspadding-space-allside-thin zplight-section zplight-section-bg "><style type="text/css"></style><div data-element-id="elm_a0Mn5P6CGZ5ZFVFz7QyeqQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h4
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Week 8: Sign Off and Communicate</strong><br/></h4></div>
<div data-element-id="elm_FHAGcoWYx05RrdKlZwa_8A" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>Before 1 June, communicate the change to relevant stakeholders. If any web part behaviour has changed as a result of refactoring (however minor), users should know what to expect. Frame it as a security improvement, because it is.</span></span></p></div>
</div></div></div></div></div></div><div data-element-id="elm_eSMUyenMKXyRu81FMBkDEQ" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_TxXzevtdHCmJVnNT-UZf2g" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_FLgNMnG6wZz9R8XpnEEr8w" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_5YSBZW8ob9dmYkadUBvwYg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>The Risk of Waiting Until Late May</strong><br/></h3></div>
<div data-element-id="elm_QeWENosaztTQXcxdYg7Qfg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:20px;">The pattern we've seen with 1 March enforcement is that the teams who struggled were the ones who started late. Trusted Script Source changes can take up to&nbsp;<span style="font-weight:600;">24 hours to propagate</span>&nbsp;across a tenant. If you're making changes on 30 May and something doesn't propagate in time, you have no margin for error.</p><p style="margin-bottom:20px;">Eight weeks sounds like plenty of time. In practice, the audit usually surfaces more than expected, vendor responses take longer than expected, and internal sign-off processes take time. Start now.</p></div><p></p></div>
</div><div data-element-id="elm_AVPOoxqcsMhuu8NExJ0hxQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_AVPOoxqcsMhuu8NExJ0hxQ"].zpelem-text { background-color:#ECF0F1; background-image:unset; border-style:solid; border-color:#A6CE39 !important; border-block-start-width:0px; border-inline-end-width:0px; border-block-end-width:0px; border-inline-start-width:5px; } </style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p></p></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><span style="color:rgb(166, 206, 57);font-size:12px;"></span></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><div><span style="margin-bottom:6px;font-weight:700;color:rgb(166, 206, 57);"><br/></span></div><div><span style="margin-bottom:6px;font-weight:700;color:rgb(166, 206, 57);"></span></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><div><span style="margin-bottom:6px;font-weight:700;color:rgb(0, 27, 76);">Further Reading</span></div></blockquote><div><div><br/></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><span><span></span></span></blockquote><blockquote style="margin-left:40px;border:none;"><a href="https://www.gtconsult.com/blogs/post/sharepoint-csp-enforcement-is-live-%E2%80%94-here-s-what-to-do-if-your-scripts-are-broken" title="SharePoint CSP Enforcement Is Live — Here's What to Do If Your Scripts Are Broken" target="_blank" rel="">SharePoint CSP Enforcement Is Live — Here's What to Do If Your Scripts Are Broken</a></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><span><a href="https://learn.microsoft.com/en-us/sharepoint/dev/spfx/content-securty-policy-trusted-script-sources">Support for CSP in SharePoint Online, Microsoft Learn<br/></a></span><span><a href="https://techcommunity.microsoft.com/blog/spblog/sharepoint-online-content-security-policy-csp-enforcement-dates-and-guidance/4472662">SharePoint Online CSP: Enforcement Dates and Guidance, Microsoft Tech Community</a></span></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><br/></blockquote><div><span><span><br/></span></span></div></div>
</div></div></div></div></div><div data-element-id="elm_3ZbIXMp_bplALZzuFc1h1g" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_Od3bzyBWoLtQccRrRMlQ3w" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_nh_UJO7sxasukwhsaPYSXQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_p_4CH1Hr4oUZ3mpXl5AC2w" data-element-type="box" class="zpelem-box zpelement zpbox-container zpdark-section zpdark-section-bg "><style type="text/css"> [data-element-id="elm_p_4CH1Hr4oUZ3mpXl5AC2w"].zpelem-box{ background-color:#001B4C; background-image:unset; } </style><div data-element-id="elm_75-2iHH7WrHRnwZ5HIRglg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-center zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Not sure where to start with CSP?</strong><br/></h3></div>
<div data-element-id="elm_rH2SMxg2QFsrgy3H52qg9A" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div style="text-align:center;margin-bottom:8px;"><div><p style="margin-bottom:28px;font-style:italic;"><span style="font-size:16px;">Chat to us and let's help you navigate this change.</span></p><span style="font-weight:700;"><a href="https://www.gtconsult.com/contact"></a></span></div></div><p></p></div>
</div><div data-element-id="elm_8uXoyqeqm52XT5S4ty3lVg" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_8uXoyqeqm52XT5S4ty3lVg"].zpelem-button{ margin-block-start:-5px; } </style><div class="zpbutton-container zpbutton-align-center zpbutton-align-mobile-center zpbutton-align-tablet-center"><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-roundcorner " href="https://outlook.office.com/bookwithme/user/6bd34779624c4a8ab5f3906f5e71baf7%40gtconsult.com/meetingtype/Cfseq1rTWEyZRk62iTNVAw2?anonymous&amp;ismsaljsauthenabled=true"><span class="zpbutton-content">Book a Free Consultation with Our Technical Account Manager, Trevin</span></a></div>
</div><div data-element-id="elm_tv732cnkGpC8RoJYpyb1BQ" data-element-type="spacer" class="zpelement zpelem-spacer "><style> div[data-element-id="elm_tv732cnkGpC8RoJYpyb1BQ"] div.zpspacer { height:30px; } @media (max-width: 768px) { div[data-element-id="elm_tv732cnkGpC8RoJYpyb1BQ"] div.zpspacer { height:calc(30px / 3); } } </style><div class="zpspacer " data-height="30"></div>
</div></div></div></div></div></div></div> ]]></content:encoded><pubDate>Tue, 31 Mar 2026 12:11:08 +0000</pubDate></item><item><title><![CDATA[SharePoint CSP Enforcement Is Live — Here's What to Do If Your Scripts Are Broken]]></title><link>https://www.gtconsult.com/blogs/post/sharepoint-csp-enforcement-is-live-—-here-s-what-to-do-if-your-scripts-are-broken</link><description><![CDATA[<img align="left" hspace="5" src="https://www.gtconsult.com/Blog Site/bROKEN sCRIPTS.png"/>SharePoint CSP enforcement broke your scripts? Learn how to diagnose CSP violations, fix inline JavaScript, and register trusted sources in SharePoint Online after the 1 March 2026 deadline.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_JlBbArKeROui0v2FXVIzqw" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm__ySjZpf_Q5m2x5H2t8DhAg" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_iTIyUCKNQo-NNv5r6KbnXQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_F5xiAV7PQhCYxliSTKGY7g" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p><span><span style="font-style:italic;">Microsoft flipped the switch on March 1. If your web parts or custom solutions are suddenly misbehaving, Content Security Policy enforcement is likely the culprit. Here's how to diagnose and fix it.</span></span></p></div>
</div><div data-element-id="elm_y84eyVjKieyYxHSZE9h2PA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_y84eyVjKieyYxHSZE9h2PA"] .zpimage-container figure img { width: 862px !important ; height: 484px !important ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Freak%20Out%20Panic%20GIF.gif" size="custom" data-lightbox="true"/></picture></span></figure></div>
</div><div data-element-id="elm_0rvVra6YVcKDivZhYjlamg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:20px;">On 1 March 2026, Microsoft moved SharePoint Online's Content Security Policy (CSP) from report-only mode into full enforcement. That means non-compliant scripts are no longer just being logged, they're being&nbsp;<span style="font-weight:600;">blocked</span>. If something in your environment stopped working around that date, there's a good chance CSP is the reason.</p><p style="margin-bottom:20px;">This post walks you through how to confirm CSP is the issue, understand what's being blocked and why, and fix it, without breaking anything else in the process.</p></div><p></p></div>
</div><div data-element-id="elm_hfrLBq5gAsxnSPWo9PJYUw" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Step 1: Confirm CSP Is the Culprit</strong></h3></div>
<div data-element-id="elm_1CtLYqPP1JHlVvtqxqQY3g" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>Before diving into fixes, verify that CSP enforcement is actually what's blocking your scripts. The fastest way is through the browser console.</span></span></p></div>
</div><div data-element-id="elm_w_MBbIMF6PltojDnl-7ngQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div></div><p></p><ol><li>Open the affected SharePoint page in your browser.</li><li>Press&nbsp;<span style="font-family:&quot;Courier New&quot;, monospace;background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);"> F12&nbsp;</span> to open Developer Tools and navigate to the Console tab.</li><li>Look for errors beginning with&nbsp;&nbsp;<span style="font-family:&quot;Courier New&quot;, monospace;background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">Refused to execute script </span>&nbsp;or containing&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);"><span style="font-family:&quot;Courier New&quot;, monospace;">Content-Security-Policy&nbsp;</span></span>.</li><li>Alternatively, append&nbsp;<span style="font-family:&quot;Courier New&quot;, monospace;background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);"> ?csp=enforce </span>&nbsp;to the page URL to trigger enforcement mode explicitly and surface violations immediately.</li></ol></div>
</div><div data-element-id="elm_YGWgrTGmL6dhtuSfMdrI3Q" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>If you're seeing CSP violation errors, you're in the right place. If not, the issue may be something else. Check network errors or JavaScript exceptions separately.</span></span></p></div>
</div></div></div></div></div><div data-element-id="elm__GHuxlVbA11FzHnzghrshg" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_fKXU-l1bWvSlNefZg5cEcg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_KAy_qLw4wb0PbMWUTTIWVw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_ekM2Bw3eIr0FUiKtH2gWvA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Step 2: Identify What's Being Blocked</strong></h3></div>
<div data-element-id="elm_6GI90XA0XyMCPbAwRPO26g" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>CSP violations in SharePoint Online generally fall into two categories:&nbsp;</span><span style="font-weight:600;">inline scripts</span><span>&nbsp;and&nbsp;</span><span style="font-weight:600;">untrusted external sources</span><span>.</span></span></p></div>
</div><div data-element-id="elm_dACnocdr5by5gpVhmC2p0w" data-element-type="imageheadingtext" class="zpelement zpelem-imageheadingtext "><style> @media (min-width: 992px) { [data-element-id="elm_dACnocdr5by5gpVhmC2p0w"] .zpimageheadingtext-container figure img { width: 313px !important ; height: 313px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimageheadingtext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Looking%20Where%20Are%20You%20GIF%20by%20Pudgy%20Penguins.gif" data-src="/Blog%20Site/Looking%20Where%20Are%20You%20GIF%20by%20Pudgy%20Penguins.gif" size="custom" data-lightbox="true"/></picture></span></figure><div class="zpimage-headingtext-container"><h3 class="zpimage-heading zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left" data-editor="true"><span>Inline Scripts<br/></span></h3><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p><span><span>Any JavaScript written directly into a page, web part, or solution using&nbsp;<span style="font-family:&quot;Courier New&quot;, monospace;background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code><span style="font-family:&quot;Courier New&quot;, monospace;background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">innerHTML&nbsp;</span>&nbsp;</code><span>,&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code><span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);"><span style="font-family:&quot;Courier New&quot;, monospace;">document.write()</span>&nbsp;</span>&nbsp;</code><span>, or script tags without a proper source reference will be blocked. Microsoft has confirmed that&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">unsafe-inline&nbsp;</code><span>&nbsp;is not permitted and that nonce values will not be exposed, so there is no workaround here. These scripts must be refactored.</span></span></p><p><span><span><br/></span></span></p><p><span><span></span></span></p><div><h3></h3></div><div><h3 style="margin-bottom:10px;">Untrusted External Sources</h3><div><span><span>Scripts loaded from external URLs (CDNs, third-party services, custom hosted libraries) that haven't been added to your SharePoint tenant's Trusted Script Sources list will also be blocked. Note that standard SPFx bundles deployed via&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">cdnBasePath</code><span><span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span> or declared in&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">externals</code><span><span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span> in your config are auto-trusted, it's dynamic loading via&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">SPComponentLoader.loadScript()&nbsp;</code><span>&nbsp;or ad-hoc external references that need manual registration.</span></span><br/></div></div><br/><p></p></div>
</div></div></div><div data-element-id="elm_mOWsCtUcNteYCYALP4q7Ug" data-element-type="box" class="zpelem-box zpelement zpbox-container zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_mOWsCtUcNteYCYALP4q7Ug"].zpelem-box{ background-color:#ECF0F1; background-image:unset; border-style:solid; border-color:#A6CE39 !important; border-block-start-width:0px; border-inline-end-width:0px; border-block-end-width:0px; border-inline-start-width:5px; } </style><div data-element-id="elm_DhcfJmdwiJuT4EhTQjRgxw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p><span><span style="margin-bottom:6px;font-weight:600;">TENANT-WIDE AUDIT</span></span></p></blockquote></div>
</div><div data-element-id="elm_rnmNIJtk6eMEAoVd_rC16Q" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p><span><span>Go to Microsoft Purview and search for&nbsp;</span><span style="margin-bottom:6px;font-weight:600;">&quot;<span style="color:rgb(166, 206, 57);">Violated Content Security Policy</span>&quot;&nbsp;</span><span>in the audit log. This gives you a full picture of which pages and scripts have triggered violations across your entire tenant, not just the one page you're looking at.</span></span></p><p><span><span><br/></span></span></p></blockquote></div>
</div></div></div></div></div></div><div data-element-id="elm_KEv-U4Ca6DQzMQczVw-bzA" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_1rV5-ALCygGG8HRBGFd3mw" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_c6xc0TVoOPR00Qlu21Q8dw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_A3BGzOhe70IyTdddyuW5RQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Step 3: Fix Inline Scripts</strong></h3></div>
<div data-element-id="elm_meag7RQcmyEJuBLU1WRWSg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>Inline scripts need to be moved into external&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">.js&nbsp;</code><span>&nbsp;files and hosted in a trusted location. The typical path for SPFx solutions:</span></span></p></div>
</div><div data-element-id="elm_RCDcvwmmiQ0sFP2mC49-eA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div></div><p></p><ol><li>Extract the inline JavaScript into a standalone&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);"> .js&nbsp;</span> file.</li><li>Deploy the file to a trusted location (e.g., SharePoint document library, Azure Blob Storage, your CDN).</li><li>Reference it as an external module within your SPFx solution rather than injecting it inline.</li><li>Register the script source as a Trusted Script Source (see Step 4).</li></ol></div>
</div><div data-element-id="elm_6m7EQfNHcwtUzTMpmkqK5A" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>For scripts embedded directly in classic-style page layouts or content editor web parts, the same logic applies, extract, host externally, reference externally.</span></span></p></div>
</div><div data-element-id="elm_dQYvqRaWOUiT6kZc49itQg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong><span>Step 4: Register Trusted Script Sources</span></strong></h3></div>
<div data-element-id="elm_dHKHl9I8fLTOXl8bjDybKA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>For any external URL your solutions load scripts from, you need to add that domain to SharePoint's Trusted Script Sources list. This is done in the SharePoint Admin Center.</span></span></p></div>
</div><div data-element-id="elm_l93duRYcaUVRZCjfjHk_og" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_l93duRYcaUVRZCjfjHk_og"] .zpimagetext-container figure img { width: 23px !important ; height: 23px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Copy%20of%20Copy%20of%20Secure%20score%20carousel%20-2-.png" size="custom" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><div><p>Go to&nbsp;<span style="font-weight:600;">SharePoint Admin Center → Advanced → Trusted Script Sources</span>&nbsp;(or use PowerShell).</p></div><p></p></div>
</div></div><div data-element-id="elm_49oMtvAnwwXxcxf97JUX5g" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_49oMtvAnwwXxcxf97JUX5g"] .zpimagetext-container figure img { width: 23px !important ; height: 23px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Copy%20of%20Copy%20of%20Secure%20score%20carousel%20-3-.png" size="custom" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><p></p><div><p>Add the full domain or path of the external script source. Wildcards are limited, subdomains must be registered individually.</p></div><p></p><p></p></div>
</div></div><div data-element-id="elm_93me_ksQSOiaFweHBkG0IA" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_93me_ksQSOiaFweHBkG0IA"] .zpimagetext-container figure img { width: 23px !important ; height: 23px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Copy%20of%20Copy%20of%20Secure%20score%20carousel%20-4-.png" size="custom" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><div><p><span>Note the 300 entry limit across your tenant. Audit carefully before adding everything.</span></p></div><p></p></div>
</div></div><div data-element-id="elm_i69HLMIE0ni_943ZkBfKbA" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_i69HLMIE0ni_943ZkBfKbA"] .zpimagetext-container figure img { width: 23px !important ; height: 23px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Copy%20of%20Copy%20of%20Secure%20score%20carousel%20-5-.png" size="custom" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><div><p><span>Changes can take up to 24 hours to propagate across your tenant.</span></p></div><p></p></div>
</div></div><div data-element-id="elm_ctoXuMt9AxzU9reosTs0wQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>Via PowerShell:</span></span></p></div>
</div><div data-element-id="elm_5U-4PfFgccroxGbhR6lGzA" data-element-type="box" class="zpelem-box zpelement zpbox-container zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_IBJtMmV_HN0vLFAWoXTxBw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_IBJtMmV_HN0vLFAWoXTxBw"].zpelem-text { background-color:#001B4C; background-image:unset; border-style:solid; border-color:#A6CE39 !important; border-block-start-width:1px; border-inline-end-width:1px; border-block-end-width:1px; border-inline-start-width:6px; } </style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p></p><div><pre style="margin-bottom:28px;"><span style="font-family:&quot;Courier New&quot;, monospace;"><span style="color:rgb(166, 206, 57);"><br/>Add-SPOTenantCdnOrigin -CdnType Private -OriginUrl &quot;https://yourdomain.com/scripts&quot;</span></span></pre></div><p></p></blockquote></div>
</div></div></div></div></div></div><div data-element-id="elm_Yw9Ps3j5jzQnD7q-UgWTbw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_WU3YlmnNnTjKkyJU_dSD4Q" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_3cEfaDqcxWBriC9THUiCuQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_m8IK40gwtTPZskTD4IxrBg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Step 5: Coordinate With Third-Party Vendors</strong></h3></div>
<div data-element-id="elm_757iSwUXx5BmO6eeSeR8vA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:20px;">If your SharePoint environment includes solutions from third-party vendors, analytics tools, chatbots, form builders, or similar, those vendors may need to update their products to be CSP-compliant. Reach out to them with the specific violation URLs from your Purview audit and ask for a compliance timeline.</p><p style="margin-bottom:20px;">In the meantime, you can temporarily register their script sources as trusted, but the long-term fix needs to come from their end if their solutions use inline scripting patterns.</p></div><p></p></div>
</div><div data-element-id="elm_6Ma8PrVKz7twPmSMo-JpZQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong><span>If You're Still on the 90-Day Delay</span></strong></h3></div>
<div data-element-id="elm_d0IEmWOdqxAck3bLuHJhwQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>Some tenants enabled the 90-day enforcement delay using&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code><span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">Set-SPOTenant -DelayContentSecurityPolicyEnforcement $true&nbsp;</span>&nbsp;</code><span>before 1 March. If that's you, your enforcement date is&nbsp;</span><span style="font-weight:600;">1 June 2026</span><span>, and it will arrive faster than you think. Use this guide now while you still have the buffer.</span></span></p></div>
</div><div data-element-id="elm_Z1i6hqjMX6RByjb63q0h7Q" data-element-type="box" class="zpelem-box zpelement zpbox-container zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_Z1i6hqjMX6RByjb63q0h7Q"].zpelem-box{ background-color:#ECF0F1; background-image:unset; border-style:solid; border-color:#A6CE39 !important; border-block-start-width:0px; border-inline-end-width:0px; border-block-end-width:0px; border-inline-start-width:5px; } </style><div data-element-id="elm_R3C5fVvgQJG5taBIzKKyrQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p><span><span style="margin-bottom:6px;font-weight:600;">FURTHER READING</span></span></p></blockquote></div>
</div><div data-element-id="elm_nQzEhkS31J4tyfCb_RlvEA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><blockquote style="margin-left:40px;border:none;"><a href="https://www.gtconsult.com/blogs/post/still-on-the-90-day-csp-delay-your-1-june-deadline-is-coming" title="Still on the 90-Day CSP Delay? Your 1 June Deadline Is Coming" target="_blank" rel="">Still on the 90-Day CSP Delay? Your 1 June Deadline Is Coming</a></blockquote><blockquote style="margin-left:40px;border:none;"><p><a href="https://learn.microsoft.com/en-us/sharepoint/dev/spfx/content-securty-policy-trusted-script-sources">Support for CSP in SharePoint Online, Microsoft Learn</a></p><p><a href="https://techcommunity.microsoft.com/blog/spblog/sharepoint-online-content-security-policy-csp-enforcement-dates-and-guidance/4472662">SharePoint Online CSP: Enforcement Dates and Guidance, Microsoft Tech Community</a></p><p><br/></p></blockquote></blockquote></div>
</div></div></div></div></div></div><div data-element-id="elm_985slfZTR4k2ttRSbSmS5w" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_xzVCl9up0AagLZJdU3YuDA" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_OPiyNqZOORX7qw_D4WaPfg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_xW6xLO2np-KPSjiRwKVaEQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><span>Still dealing with broken scripts after CSP enforcement?</span></h3></div>
</div></div></div></div><div data-element-id="elm_m1WjnY7aKkk-kIQT-FIXEg" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_lfVophjrGg8fwbIKQtky6w" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_aeLH76DFxhLwc7cGquF0rg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_-1ybMYiXbQSrXh1qhSgOIQ" data-element-type="box" class="zpelem-box zpelement zpbox-container zpdark-section zpdark-section-bg "><style type="text/css"> [data-element-id="elm_-1ybMYiXbQSrXh1qhSgOIQ"].zpelem-box{ background-color:#001B4C; background-image:unset; } </style><div data-element-id="elm_lR9Tn2hQXp3BPbLtMeeYhg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-center zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Not sure where to start with CSP?</strong><br/></h3></div>
<div data-element-id="elm_i4q2Vzh5RsiZyQhQrjv7XQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div style="text-align:center;margin-bottom:8px;"><div><p style="margin-bottom:28px;font-style:italic;"><span style="font-size:16px;">Chat to us and let's help you navigate this change.</span></p><span style="font-weight:700;"><a href="https://www.gtconsult.com/contact"></a></span></div></div><p></p></div>
</div><div data-element-id="elm__VFsH1zQMu4Icm-_Sw9O1A" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm__VFsH1zQMu4Icm-_Sw9O1A"].zpelem-button{ margin-block-start:-5px; } </style><div class="zpbutton-container zpbutton-align-center zpbutton-align-mobile-center zpbutton-align-tablet-center"><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-roundcorner " href="https://outlook.office.com/bookwithme/user/6bd34779624c4a8ab5f3906f5e71baf7%40gtconsult.com/meetingtype/Cfseq1rTWEyZRk62iTNVAw2?anonymous&amp;ismsaljsauthenabled=true"><span class="zpbutton-content">Book a Free Consultation with Our Technical Account Manager, Trevin</span></a></div>
</div><div data-element-id="elm_4Y45PwLDQLXa_hn4558z0A" data-element-type="spacer" class="zpelement zpelem-spacer "><style> div[data-element-id="elm_4Y45PwLDQLXa_hn4558z0A"] div.zpspacer { height:30px; } @media (max-width: 768px) { div[data-element-id="elm_4Y45PwLDQLXa_hn4558z0A"] div.zpspacer { height:calc(30px / 3); } } </style><div class="zpspacer " data-height="30"></div>
</div></div></div></div></div></div></div> ]]></content:encoded><pubDate>Mon, 30 Mar 2026 16:25:43 +0000</pubDate></item><item><title><![CDATA["We'll Deal With It When the Time Comes" — The SharePoint Strategy That Always Backfires]]></title><link>https://www.gtconsult.com/blogs/post/we-ll-deal-with-it-when-the-time-comes-—-the-sharepoint-strategy-that-always-backfires</link><description><![CDATA[<img align="left" hspace="5" src="https://www.gtconsult.com/Blog Site/Migration Deadline Write Up Thumbnail.png"/>Why delaying your SharePoint migration could cost you more than you think — and what to do before the 2026 deadline hits.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_NiYqaGYAfTHsBENWKJpjag" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_pffZYMWpkV3k50ekZ9oDlg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_FxWTgT0Q8WTlXvfibgzZWQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_M9fGn0lcT-qT32wgMJiG0g" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_M9fGn0lcT-qT32wgMJiG0g"] .zpimagetext-container figure img { width: 500px !important ; height: 267px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-original zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/terminator%20ill%20be%20back%20GIF.gif" size="original" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:8pt;">Every IT leader has said some version of this at some point. You're managing a full pipeline, your team is stretched, the system is still working fine, and the deadline feels like it's far enough away to worry about later. So you shelve it.</p><p style="margin-bottom:8pt;">Until it's not later anymore. Until it's now. And by then, the timeline that would have been comfortable has become a crisis.</p><p style="margin-bottom:8pt;">We see this pattern repeatedly with SharePoint migrations. And with the July 14, 2026 end of support for SharePoint Server 2016 and 2019 fast approaching — along with an April 2 deadline for classic workflows and Add-Ins — the gap between &quot;we'll get to it&quot; and &quot;we're out of time&quot; is closing faster than most organisations realise.</p></div><p></p></div>
</div></div><div data-element-id="elm_gVFnQfWAHe7FTmHTbNq2Mw" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Why Migrations Take Longer Than Anyone Expects</strong></h3></div>
<div data-element-id="elm_-W6IYiA9efkn1awpAirByA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:8pt;">Here's something that surprises people who haven't been through a full SharePoint migration: the actual moving of data is often not the hardest part.</p><p style="margin-bottom:8pt;">Before you migrate a single document, you need to know what you have. That means auditing every site collection, every document library, every custom permission level, every workflow, every Add-In, every integration that touches SharePoint. In environments that have been running for five or ten years, that audit alone can take weeks.</p><p style="margin-bottom:8pt;">Then comes the conversation about what to bring across, what to rebuild, and what to retire. Classic SharePoint Designer workflows won't survive the migration to SharePoint Online as-is. They need to be rebuilt in Power Automate. Add-Ins built on the retiring framework need to be redesigned using modern solutions. InfoPath forms need to be replaced.</p><p style="margin-bottom:8pt;">None of that is technically impossible. All of it takes time.</p></div><p></p></div>
</div><div data-element-id="elm_7FZuD3AVuRkuXjJm6IoEIQ" data-element-type="box" class="zpelem-box zpelement zpbox-container zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_7FZuD3AVuRkuXjJm6IoEIQ"].zpelem-box{ background-color:#CEEBF3; background-image:unset; } </style><div data-element-id="elm_lQ-ukQ6dJ5hMdTI6Ds5pUw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><i><span><strong>&quot;Migrations can take 6 to 18 months depending on complexity. A last-minute migration is a recipe for budget overruns, data loss, and business disruption.&quot;</strong></span></i></p><p></p><div><div style="margin-left:18pt;margin-right:18pt;"><div style="margin-left:18pt;margin-right:18pt;"><p><i><br/></i></p></div>
</div></div></div></div></div></div></div></div></div><div data-element-id="elm_yMn2jTWc6Iud8McmntAigQ" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_BUe_MKCQJIjV_c-_GlGUpQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_SmyVbAKN2dcjjTI56kzzsg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_YHHwD3OFZywWw9GhlFUUCw" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>The Two Deadlines Running in Parallel</strong></h3></div>
<div data-element-id="elm_OREoqEMVadbHLOr2xgvzJw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><div>One of the things that catches organisations off-guard is that there are effectively two separate timelines to manage, not one.</div><br/></div><p></p><div><ul><li><strong>April 2, 2026</strong>: SharePoint Add-Ins and classic SharePoint 2013 workflows retire. Any business process built on these frameworks stops working. This isn't a 'soft' retirement with a grace period — it's a hard cutoff.</li></ul></div><div><div><ul><li><span style="font-weight:bold;">July 14, 2026</span>: SharePoint Server 2016 and 2019 lose all support. Security patches stop. Bug fixes stop. Vendor-assisted support stops.</li></ul></div><br/><div>If you're planning a migration and only thinking about July, you may already be behind. If your environment has classic workflows or Add-In dependencies, April is the real pressure point.</div></div></div>
</div></div></div></div></div><div data-element-id="elm_FjWmPb3Qbv2zV9iwc4IpZw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_koIZ4g2B6TYLnPy3wqkA3g" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_3pIm_s--k3qqn2OuMJOMfw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_CbD7tsS53qEscZzavl8pUg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong><span>What a Late Start Actually Costs You</span></strong></h3></div>
<div data-element-id="elm_-fqyCXJSCuAtCtGXcpZNxw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:8pt;">Let's talk about what happens when organisations start their migration planning in Q1 2026 instead of now. A few things tend to happen:</p></div><p></p></div>
</div><div data-element-id="elm_DzTrBniqMkEjoGSzFHiM5A" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_DzTrBniqMkEjoGSzFHiM5A"] .zpimagetext-container figure img { width: 480px !important ; height: 270px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-original zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/This%20Is%20Fine%20GIF%20-2-.gif" size="original" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><ul><li>The migration gets compressed. Work that should take six months gets squeezed into three. Corners get cut. Testing is abbreviated. Change management gets dropped entirely because there isn't time.</li><li>Business disruption goes up. A rushed migration means more unexpected issues, more downtime, more user confusion, and more IT firefighting during the transition.</li><li>Cost increases. Emergency timelines require more resources. What would have been a measured, well-planned project becomes an expensive sprint.</li><li>Post-migration problems linger. Without proper testing and user adoption planning, teams end up with a technically completed migration and practically no adoption. You've moved the files but nobody knows how to work in the new environment.</li></ul></div>
</div></div></div></div></div></div><div data-element-id="elm__FUp_fO0pq3LaGlHsXFPVg" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_MIyMxOuKBSjTkvPpAmQHgA" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_xIi68-leFLdIh6vp9BsmIg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_5UhB3BBM4osswVWUA90Kig" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>What a Well-Planned Migration Actually Looks Like</strong></h3></div>
<div data-element-id="elm_rvyWX-6Cgre-itEAVn0EKQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><div><p style="margin-bottom:8pt;">A properly planned SharePoint migration isn't just a technical exercise. It has several distinct phases, and each one has genuine business value:</p><p style="margin-bottom:8pt;"><span></span></p><ul><li><strong>Environment assessment</strong>: Understanding exactly what you have — content, customisations, permissions, integrations, and ROT (redundant, obsolete, and trivial) content that doesn't need to move at all.</li><li><strong>Workflow and Add-In inventory</strong>: Cataloguing every automated process and identifying what needs to be rebuilt in modern tools like Power Automate and Power Apps.</li><li><strong>Migration path decision</strong>: Choosing between SharePoint Online, SharePoint Subscription Edition, or a hybrid approach based on your compliance requirements and cloud strategy.</li><li><strong>Phased execution</strong>: Running pilot migrations, validating, then executing in phases with proper testing at each stage.</li><li><strong>Change management and adoption</strong>: Making sure your users understand what's changed, why it changed, and how to work effectively in the new environment.</li></ul></div><div><p style="margin-bottom:8pt;">Start that process now and you have time to do each of those things properly. Start it in January 2026 and you're making hard choices under pressure.</p></div></div>
</div><div data-element-id="elm_iYwMbFqfWxS60QWNYOZi6A" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>The Honest Conversation Your Team Needs to Have</strong></h3></div>
<div data-element-id="elm_F3wO511ovgmXsRegqPyH1A" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_F3wO511ovgmXsRegqPyH1A"] .zpimagetext-container figure img { width: 570.86px !important ; height: 322px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Season%204%20Omg%20GIF%20by%20grown-ish.gif" size="custom" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><div><div>If your organisation is still on SharePoint Server 2016 or 2019, there's a conversation that needs to happen — and it shouldn't be between the IT team and the calendar. It needs to involve business leaders, finance, compliance, and operations, because this decision affects everyone.</div><div><br/></div><div>The questions are straightforward:</div></div><p></p><ul><li>How much of our business depends on SharePoint working reliably?</li><li>What happens to our compliance posture if we're running unsupported software?</li><li>What's the real cost of disruption if something breaks post-July 2026 with no Microsoft support?</li><li>What would a controlled, planned migration cost compared to a reactive one?</li></ul><div><div><br/></div><div>Those aren't questions IT can answer alone. And the longer they stay in the IT queue without executive visibility, the more limited your options become.</div><br/><div>At GTconsult, we help organisations answer these questions before the pressure builds. An environment assessment gives you the real numbers — what you have, what it'll take to move it, what the sensible timeline looks like.</div></div></div>
</div></div><div data-element-id="elm_gQEeWwPSKLwDz8ltFIHHLQ" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><iframe
 id="JotFormIFrame-260819383656569" title="Migration Assessment Booking" onload="window.parent.scrollTo(0,0)" allowtransparency="true" allow="geolocation; microphone; camera; fullscreen; payment" src="https://form.jotform.com/260819383656569" frameborder="0" style="min-width:100%;max-width:100%;height:539px;border:none;" scrolling="no"></iframe><script src='https://cdn.jotfor.ms/s/umd/latest/for-form-embed-handler.js'></script><script>window.jotformEmbedHandler("iframe[id='JotFormIFrame-260819383656569']", "https://form.jotform.com/")</script></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Tue, 24 Mar 2026 03:44:10 +0000</pubDate></item><item><title><![CDATA[Microsoft 365 Support in South Africa: What a Real Engagement Session Looks Like]]></title><link>https://www.gtconsult.com/blogs/post/microsoft-365-support-in-south-africa-what-a-real-engagement-session-looks-like</link><description><![CDATA[<img align="left" hspace="5" src="https://www.gtconsult.com/Blog Site/Migration Tools Write Up Thumbnailbb.png"/>GTconsult delivers hands-on Microsoft 365 support across South Africa — from dedicated M365 consulting sessions in KwaZulu-Natal to tailored workshops for your team.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_WEOXLw74R_KrTe7FzidrYA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_XY_J5tscRPePcUzg0LN-9w" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_B-kQkhUZQ5mwuXqNh6p-OQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_9elLLy2ZT7y4Mea-JVAG6w" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h4
 class="zpheading zpheading-align-center zpheading-align-mobile-center zpheading-align-tablet-center " data-editor="true"><span style="font-size:16px;">GTconsult | Microsoft Solutions Partner | South Africa</span></h4></div>
<div data-element-id="elm_8SeeDo7X9ukA2Vp4PE2uOw" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_8SeeDo7X9ukA2Vp4PE2uOw"] .zpimage-container figure img { width: 1110px ; height: 624.38px ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Migration%20Tools%20Write%20Up%20Thumbnailbb.png" size="fit" data-lightbox="true"/></picture></span></figure></div>
</div><div data-element-id="elm_JK-pCLyuQX6hubFzwVfaIQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p></p><div><p style="margin-bottom:10pt;"></p><div><p style="text-align:left;margin-bottom:10pt;">When organisations across South Africa talk about Microsoft 365 support, they usually mean someone who responds to tickets. At GTconsult, we think that sets the bar too low.</p><p style="text-align:left;margin-bottom:15pt;">Real Microsoft 365 support means getting into the room (or onto the call) with your team, understanding your environment from the inside, and building a roadmap that is actually grounded in how your organisation works. That is what we do; and last week, we did exactly that in KwaZulu-Natal.</p></div><p style="margin-bottom:15pt;"></p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_Yi9GaxcnVwppPmUkh6wGxQ" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_NBHfU7vAnDPVU8s5FxWS8g" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_hSbctSnyV5EjcB740z0ZdA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_WjuBaTP90bVP6mgkcfcmpg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong style="color:rgb(0, 27, 76);">M365 Consulting in KwaZulu-Natal: A Session Worth Talking About</strong></h3></div>
<div data-element-id="elm_aJszjGtqWGao-jcUD-uoRw" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_aJszjGtqWGao-jcUD-uoRw"] .zpimagetext-container figure img { width: 500px ; height: 332.50px ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-medium zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/8-1.png" size="medium" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:10pt;"></p><div><div>Our Support Manager Barend Olivier and Technical Account Manager Trevin Daniel Pillay, and allegedly Boitumelo behind the camera, travelled to KwaZulu-Natal for a dedicated M365 consulting engagement with one of our long-standing clients: a leading agricultural association in the region.</div><br/><div>This client is part of our A Team, GTconsult's premium support tier reserved for organisations that want more than reactive IT assistance. It is a relationship built on proactive engagement, priority access, and a genuine investment in the client's long-term technology success; this session was exactly that in action.</div><br/><div>This was not a sales call or a routine check-in. It was a focused, structured session (the kind that only becomes possible when you have the trust and history of a long-term partnership). Our goal: build a clear, honest picture of where their Microsoft 365 environment stands today, and map out the most practical path forward.</div><br/><div>For organisations in the agricultural sector operating in South Africa, digital infrastructure often takes a back seat to operational pressures. But the right Microsoft 365 setup, properly adopted and well-supported, can quietly transform how a team communicates, collaborates, and gets work done.</div></div><p style="margin-bottom:15pt;"></p></div><p></p></div>
</div></div></div></div></div></div><div data-element-id="elm_NsBb5UrDnLtP2VSZJIGEyw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_4W3rH6yKManRtlBr0If6-w" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_Eu6RWre_afWql4JxPlUHAg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_vzQoreqjm64zqE6RE7OvOg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong style="color:rgb(0, 27, 76);">Why Dedicated Microsoft 365 Support Matters for South African Organisations</strong></h3></div>
<div data-element-id="elm_wxvL6Csskd9JwORc32A9Ew" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:10pt;">Whether you are a large association, an SME, or a sector body navigating complex stakeholder environments, the challenge with Microsoft 365 is rarely the technology itself. It is adoption; it is knowing which tools to prioritise; it is having a partner who understands your context before prescribing a solution.</p><p style="margin-bottom:10pt;">That is why our approach to IT support (for the agricultural sector in South Africa and across every industry we serve) starts with listening. We ask the hard questions: Where are the gaps? Which tools are going unused? What is creating friction for your team day-to-day? And what does a realistic, achievable roadmap actually look like for your organisation?</p><p style="margin-bottom:10pt;">For our A Team clients, this kind of session is part of the package; not an add-on, not a special occasion. It is what a premium, long-term Microsoft 365 support relationship looks like in practice.</p><p style="margin-bottom:15pt;"><i>Quietly, intentionally, and with a clear plan. No fanfare. Just the work.</i></p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_wH04GV3JTJDNklOaxBFplw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_Z8EdJNKEgHIk63syfQF1cg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_610sMgtuJhR1vevg-yIRsg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_3VbR604Q_DY7DTXFGYyvNQ" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_3VbR604Q_DY7DTXFGYyvNQ"] .zpimage-container figure img { width: 350px ; height: 233.41px ; } } @media (max-width: 767px) { [data-element-id="elm_3VbR604Q_DY7DTXFGYyvNQ"] .zpimage-container figure img { width:415px ; height:277.36px ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/5-1.png" width="415" height="277.36" loading="lazy" size="fit"/></picture></span></figure></div>
</div></div><div data-element-id="elm_djPrpuI85gwV1SgkIxGOWQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_IL0MfXP5MCQQVhl4YlcTGQ" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_IL0MfXP5MCQQVhl4YlcTGQ"] .zpimage-container figure img { width: 350px ; height: 233.41px ; } } @media (max-width: 767px) { [data-element-id="elm_IL0MfXP5MCQQVhl4YlcTGQ"] .zpimage-container figure img { width:415px ; height:276.67px ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/7-1.png" width="415" height="276.67" loading="lazy" size="fit"/></picture></span></figure></div>
</div></div><div data-element-id="elm_YsYd58J-48Xw6KmQPJ71ZQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_EeGip9z3Kuuzkffg2-iGPg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_EeGip9z3Kuuzkffg2-iGPg"] .zpimage-container figure img { width: 350px ; height: 239.53px ; } } @media (max-width: 767px) { [data-element-id="elm_EeGip9z3Kuuzkffg2-iGPg"] .zpimage-container figure img { width:415px ; height:276.67px ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/6-1.png" width="415" height="276.67" loading="lazy" size="fit"/></picture></span></figure></div>
</div></div></div></div></div><div data-element-id="elm_h4pVO2EJVuXok680DeHuNw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_AcsFs3aqVUfJ8XDWechYbg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_q-ssv7AT3V-99UMkl_myew" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_nNt3Cgpi4j7eazQALKeDQA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong style="color:rgb(0, 27, 76);">Microsoft 365 Workshops in South Africa: Bringing Blue Sky to Your Organisation</strong></h3></div>
<div data-element-id="elm_AOxEaqDbZlkoMJJbULYTNg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:10pt;">Not every organisation has the same needs, and that is exactly the thinking behind our Blue Sky Events. Blue Sky is GTconsult's exclusive, interactive Microsoft 365 workshop format, designed to bring certified M365 specialists directly to your team (on-site or virtually) anywhere in South Africa.</p></div><p></p></div>
</div><div data-element-id="elm_DKshjZ0bQUJk31boA8WkqA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h4
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><span><span>What to Expect from a Blue Sky Event</span></span></h4></div>
<div data-element-id="elm_5n666YsXkLYdlANgXhoMfw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:10pt;">Every Blue Sky session is built around your organisation's specific challenges and goals. There is no generic content, no off-the-shelf slides; just practical, hands-on learning with actionable takeaways your team can implement immediately. Whether that is streamlining collaboration in Teams, unlocking automation through Power Automate, or getting more from tools your team already has access to, we build the session around what actually matters to you.</p><p style="margin-bottom:10pt;">Blue Sky Events are open to everyone: existing GTconsult clients and organisations simply exploring what better Microsoft 365 support in South Africa could look like for them.</p></div><p></p></div>
</div><div data-element-id="elm_vxko7XfCJXOAzpKiPtRXgQ" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_vxko7XfCJXOAzpKiPtRXgQ"] .zpimage-container figure img { width: 1110px ; height: 411.39px ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blue%20Sky%20Events/Scribble%20-1200%20x%20630%20px-.png" size="fit" data-lightbox="true"/></picture></span></figure></div>
</div><div data-element-id="elm_UNUKMNFJ6TfJe8PUp1GAnQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><p><span style="font-size:12px;font-style:italic;">GTconsult Blue Sky Events bring certified M365 specialists directly to your team, on-site or virtually, anywhere in South Africa.</span></p></div>
</div><div data-element-id="elm_GNuIkPW54s0Owj6hslHU6w" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong style="color:rgb(0, 27, 76);">Frequently Asked Questions</strong></h3></div>
<div data-element-id="elm_lS48g8UgHM_nfuzCTe411w" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h4
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><span><span><span>Does GTconsult offer Microsoft 365 support outside of Johannesburg?</span></span></span></h4></div>
<div data-element-id="elm_LpVB2NvGq_l2zPWZc3Pb3Q" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:10pt;">Yes. GTconsult provides Microsoft 365 support and M365 consulting across South Africa, including KwaZulu-Natal, the Western Cape, and beyond, both on-site and virtually.</p></div><p></p></div>
</div><div data-element-id="elm_tal2HYXCt5r-v-MnBmqTUw" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h4
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><span><span><span><span>What industries do you support?</span></span></span></span></h4></div>
<div data-element-id="elm_1TeJR-w4pNlXXOjuWT6R4g" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:10pt;">We work across sectors including agriculture, financial services, insurance, retail, and more. Our M365 consulting approach is tailored to each organisation's context; it is never a one-size-fits-all solution.</p></div><p></p></div>
</div><div data-element-id="elm_jlU-OTaB--4q39eML-2rMA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h4
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><span><span><span><span><span>Do I need to be an existing client to attend a Blue Sky Event?</span></span></span></span></span></h4></div>
<div data-element-id="elm_WD3gFAR3DE6tL5p5PXnhOw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:15pt;">No. Blue Sky Events are open to any organisation interested in getting more from their Microsoft 365 environment. Whether you are an existing client or brand new to GTconsult, there is a session for you.</p></div><p></p></div>
</div><div data-element-id="elm_lSfXeeIN7Q5xvlYhFOnX_Q" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h5
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong><span><b>Ready to map out your Microsoft 365 road ahead?</b></span></strong></h5></div>
<div data-element-id="elm_FsOWtloWuhVcPcCtaxYI5w" data-element-type="button" class="zpelement zpelem-button "><style></style><div class="zpbutton-container zpbutton-align-center zpbutton-align-mobile-center zpbutton-align-tablet-center"><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-roundcorner " href="https://www.gtconsult.com/blue-sky-event-registration" target="_blank" title="Blue Sky Registration"><span class="zpbutton-content">Register for a Blue Sky Event</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Fri, 20 Mar 2026 08:21:40 +0000</pubDate></item><item><title><![CDATA[If You Haven't Tested Your Security, You Don't Actually Know If It Works]]></title><link>https://www.gtconsult.com/blogs/post/if-you-haven-t-tested-your-security-you-don-t-actually-know-if-it-works</link><description><![CDATA[<img align="left" hspace="5" src="https://www.gtconsult.com/Blog Site/Pen Test Thumbnail.png"/>Most businesses have security in place. But when last did anyone test if it actually works? Discover why penetration testing is the difference between assuming you're secure and knowing you are.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_3D0Tmzb5T9Wa9Wqw-ExulQ" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_Hq-NabZSRhOrQ2_D4C9aCQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content- " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_FF1Im4yzRrqxJKBfEV4UTA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_4nOShi1pN_RP5cweEmltTQ" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_4nOShi1pN_RP5cweEmltTQ"] .zpimage-container figure img { width: 286px !important ; height: 195px !important ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Fire%20Elmo%20GIF.gif" size="custom" data-lightbox="true"/></picture></span></figure></div>
</div></div><div data-element-id="elm_5s78W04vb82nVS26UAaSng" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_NuKHHutt3HtylAu63MvR5w" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="text-align:left;">Most businesses have some form of security in place. Firewalls. Antivirus. Maybe an MFA policy that someone set up a while back. And on paper, that feels like enough.</p><p style="text-align:left;">But here's the uncomfortable question: when last did anyone actually test whether it holds up?</p><p style="text-align:left;">Not a checklist. Not a vendor assurance. An actual, deliberate attempt to break through it, the way an attacker would.</p><p style="text-align:left;">Because there's a significant difference between having security and having security that works.</p></div>
<p></p></div></div></div></div></div></div><div data-element-id="elm_AfqoiiGUNXZCXhMeWvk6Ww" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_KoWbxoLmdRNRRxWxZeO8hQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_F7yw0W46bZO-2qm96S1qgQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_1fsOWuhQaHy-z_LFJQCvNQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h2
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><span>The gap most businesses don't see<br/></span></h2></div>
<div data-element-id="elm_jErWC9BF9UXo1DPM1hfYvA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><div> Cyber threats aren't theoretical anymore. South Africa is consistently ranked among the most targeted countries on the continent for cyber attacks (and attackers aren't just going after the big corporates). SMEs are increasingly in the crosshairs precisely because they tend to have fewer defences. </div>
<br/><div> What makes this particularly tricky is that most vulnerabilities aren't obvious. They don't announce themselves. They sit quietly in your environment, in a misconfigured permission, an unpatched API, a login page that accepts inputs it shouldn't — waiting for someone who knows what to look for. </div>
<br/><div> And the reality is, the people building and maintaining your systems are focused on making things work. That's the job. Security is a different discipline entirely, and it requires a very different mindset — one that's actively looking for what can go wrong, not just what works. </div>
</div><p></p></div></div><div data-element-id="elm_h7_XPmOop1dAnXlul-p2PA" data-element-type="dividerText" class="zpelement zpelem-dividertext "><style type="text/css"></style><style></style><div class="zpdivider-container zpdivider-text zpdivider-align-center zpdivider-align-mobile-center zpdivider-align-tablet-center zpdivider-width100 zpdivider-line-style-solid zpdivider-style-none "><div class="zpdivider-common">Most breaches don't happen because nobody checked whether the security they had was actually doing its job. businesses had no security. They happen because </div>
</div></div></div></div></div></div><div data-element-id="elm_9ItA4MuDtGsrecanMRMtZg" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_qZUTDjG0DVI66Qli3NM6Nw" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_AvVsSZFwptov-BJ1y_q4ew" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_qcuU8YSR2T9ehNBL1Ztgkg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h2
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><span>What a penetration test actually does<br/></span></h2></div>
<div data-element-id="elm_5Lod1Tr1_OzgFZsdGH1wdQ" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_5Lod1Tr1_OzgFZsdGH1wdQ"] .zpimagetext-container figure img { width: 450px !important ; height: 302px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-original zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Magnify%20Rick%20Moranis%20GIF.gif" size="original" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p><span><span></span></span></p><div><p>A penetration test (done properly) is a controlled, authorised attempt to compromise your systems before a real attacker does.</p><p><br/></p><p>It's not a automated scan. It's not a report that lists every CVE in your environment and calls it a day. It's someone thinking the way an attacker thinks, probing for the paths that matter, and documenting exactly what they found, how they found it, and what the business impact actually is.</p><p><br/></p><p>The output isn't just a list of vulnerabilities. It's clarity. You walk away knowing:</p></div>
<p></p><p><span><span><br/></span></span></p><p><span><span>Where your real exposure is, not just theoretical risk</span><br/><span>What an attacker could realistically access or do</span><br/><span>Which fixes will have the biggest impact on actual security</span><br/><span>Whether your existing controls are doing what you think they're doing</span></span></p></div>
</div></div><div data-element-id="elm_V0gXKYsV4CDyOop0nwSGbw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span>That last one matters more than people realise. It's not uncommon to find a control that's been in place for years, that everyone assumes is working, that a pen tester can walk straight through in under an hour.</span></p></div>
</div></div></div></div></div><div data-element-id="elm_EkVESAhlM7hptd0LjZy0ZQ" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_Y7eeXaCjbn309i9SshO5AQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_3aAiKlF3XKm_r2TCYY90lA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_9LJtaSe5ncL1CnUqKyPn5Q" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h2
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><span>The business case for testing before something goes wrong<br/></span></h2></div>
<div data-element-id="elm_J_QzvuUZxhsrM3dRBmNjGw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p>There's a version of this conversation that happens after an incident. After a breach. After data has been exfiltrated, or systems have been locked down by ransomware, or a client calls asking why their data appeared somewhere it shouldn't.</p><p><br/></p><p>That conversation is expensive. Remediation is expensive. Reputational damage is expensive. Regulatory exposure (especially under POPIA) can be very expensive.</p><p><br/></p><p>A penetration test, run proactively, finds the same problems before they become incidents. It's the difference between fixing a lock and explaining to your clients why their data is gone.</p><p><br/></p><p>We've seen it go both ways. Businesses that test regularly catch things early and fix them quietly. Businesses that don't, often find out the hard way — and at the worst possible time.</p></div>
<p></p></div></div><div data-element-id="elm_jPwF5Oy4cAu65U_gYI7cVw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span style="color:rgb(166, 206, 57);"><a href="https://www.gtconsult.com/blogs/post/case-study-how-proactive-security-testing-unlocked-enterprise-growth-for-lelapa-ai" title="Read about what happens when you are proactive." target="_blank" rel="">Read about what happens when you are proactive.</a></span></p></div>
</div></div></div></div></div><div data-element-id="elm_cfdasUg-yfPur6Usg6kIKQ" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_Z6Y28T16096t2ZlNhMEIUA" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_NsvBFQoB3Pbe3_cH3Z-r0g" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_yb0lhy9smTvoEKOr0xGMNw" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h2
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><span>How often should you be testing?<br/></span></h2></div>
<div data-element-id="elm_HxsrwalybHO6W4vd5p8NAA" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_HxsrwalybHO6W4vd5p8NAA"] .zpimagetext-container figure img { width: 301px !important ; height: 301px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Join%20Us%20Save%20The%20Date%20GIF%20by%20Similarweb.gif" size="custom" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><div><div> There's no universal answer, but a good rule of thumb: any time something significant changes in your environment, test it. New application deployed. Major infrastructure change. New cloud integration. After a security incident, even a minor one. </div>
<br/><div> Beyond that, most organisations benefit from at least an annual assessment, more frequently if you're in a regulated industry or handle sensitive data at scale. </div>
<br/><div> The point isn't to test for the sake of testing. It's to make sure that as your environment evolves, your security posture evolves with it. Because attackers aren't standing still, and neither are the techniques they use. </div>
</div><p></p></div></div></div><div data-element-id="elm_Fq2n_fgWRSt2fRcG82_noQ" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"></style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-align-mobile-center zpdivider-align-tablet-center zpdivider-width100 zpdivider-line-style-solid "><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_JeFfODD4vsNC4LokXGrKpA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h2
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><span>Find out where your exposure actually is, before someone else does.</span></h2></div>
<div data-element-id="elm_zPLWMAlUv9dLrtDyENZYbw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>GT Consults offers penetration testing for web applications, internal networks, APIs, and cloud environments. We give you a clear picture of your real risk — and exactly what to do about it.</span></span></p></div>
</div><div data-element-id="elm_7hKyq0OpbSvPI5GQz5_jag" data-element-type="button" class="zpelement zpelem-button "><style></style><div class="zpbutton-container zpbutton-align-center zpbutton-align-mobile-center zpbutton-align-tablet-center"><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-roundcorner " href="https://outlook.office.com/bookwithme/user/6bd34779624c4a8ab5f3906f5e71baf7%40gtconsult.com/meetingtype/Cfseq1rTWEyZRk62iTNVAw2?anonymous&amp;ismsaljsauthenabled=true" target="_blank" title="Book time with our technical account manager "><span class="zpbutton-content">Book a Pen Test Consultation</span></a></div>
</div><div data-element-id="elm_EIWpnOWwc9EKOIAftLg_fg" data-element-type="iframe" class="zpelement zpelem-iframe "><style type="text/css"></style><div class="zpiframe-container zpiframe-align-center"><iframe class="zpiframe " src="https://www.youtube.com/embed/e4YSke1x13o?si=FoKco4ey1ySSdg4R" width="560" height="315" align="center" allowfullscreen frameBorder="0" title="YouTube video player"></iframe></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Tue, 17 Mar 2026 10:52:00 +0000</pubDate></item><item><title><![CDATA[Your SharePoint Has an Expiry Date. It's July 14, 2026.]]></title><link>https://www.gtconsult.com/blogs/post/your-sharepoint-has-an-expiry-date.-it-s-july-14-2026.</link><description><![CDATA[<img align="left" hspace="5" src="https://www.gtconsult.com/Blog Site/Migration Tools Write Up Thumbnail.png"/>Microsoft ends support for SharePoint Server 2016 & 2019 on July 14, 2026. No more patches, no safety net. Here's what it means, what's changing in April, and what your options are before the clock runs out.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_VsOQuIEvQU-ISXx6_4Fibg" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_sW0gNyldTbKe_qYX3c08oA" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_IxkDxxpTQreYFiTtemFeCA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_-dWlIzZLFYnTPDchON20dA" data-element-type="iframe" class="zpelement zpelem-iframe "><style type="text/css"></style><div class="zpiframe-container zpiframe-align-center"><iframe class="zpiframe giphy-embed " src="https://giphy.com/embed/dZd2D5Da1954I" width="480" height="329" align="center" allowfullscreen frameBorder="0"></iframe></div>
</div><div data-element-id="elm_Go-LHD1KS-Wfde4Gk70EUg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p></p><div><p align="center" style="margin-bottom:12pt;text-align:center;"></p><div><p style="margin-bottom:8pt;">Let's be honest — most people don't think about their SharePoint server the same way they think about their laptop or their phone. Those things feel personal. When they slow down or get old, you notice. SharePoint though? It quietly sits in the background, doing its job, and nobody gives it much thought.</p><p style="margin-bottom:8pt;">Until one day, it becomes a very expensive problem.</p><p style="margin-bottom:8pt;">That day is getting closer. On July 14, 2026, Microsoft officially ends support for SharePoint Server 2016 and SharePoint Server 2019. Both versions. At the same time. No extensions. No emergency patches. No safety net.</p><p style="margin-bottom:8pt;">If your organisation is still running either of those versions, and there are a lot of organisations that are, this is the conversation you need to be having right now.</p></div><p></p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_tB5XUkBUHIjHxfh9g2319A" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_2VolEt2GoVefH0m_be3S4w" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_12E-56ANwJFIMgRvYVHSvA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_Y-IlAP7gSHcfkmlce243Pw" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>What Does &quot;End of Support&quot; Actually Mean?</strong></h3></div>
<div data-element-id="elm_O92cOACOysO0lVWuZB4Xpw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:8pt;">It's a fair question because the phrasing can feel a bit abstract. Here's what it means in plain language:</p><p style="margin-bottom:8pt;">After July 14, 2026, Microsoft will no longer release security updates for SharePoint Server 2016 or 2019. They won't fix bugs. They won't patch vulnerabilities. If a cyber threat specifically targets your version of SharePoint, Microsoft will not respond. You're on your own.</p><p style="margin-bottom:8pt;">Your server won't suddenly shut down. Everything will look exactly the same the morning of July 15. Files will still open. Sites will still load. But underneath that familiar interface, you'll be running a platform that no longer has anyone watching its back.</p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_OYcixvHnOkz-Dl5vZ-uiIQ" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_t4RYgUZVt-ZCmq9KAG-bVg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_b-aGt7FNwU4186HOrdxYRA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_Uz93-ASP3u2bV9y4tmLR0Q" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>The April Deadline Most People Are Missing</strong></h3></div>
</div></div></div></div><div data-element-id="elm_wDDfC86hJJD01AuAS8jllA" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_HYuQz_5wRs_nCK1Uq7XIFQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_OsYQET7pCTGkxuutoddHBQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_V8T0iGBx3RK_XhhMMRvHEA" data-element-type="iframe" class="zpelement zpelem-iframe "><style type="text/css"></style><div class="zpiframe-container zpiframe-align-left"><iframe class="zpiframe giphy-embed " src="https://giphy.com/embed/eXo5eC1tK7cas" width="480" height="360" align="left" allowfullscreen frameBorder="0"></iframe></div>
</div></div><div data-element-id="elm_-SI3EKCoRSw9vfBmmraNSg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_ZyzTtbcd9cC-h1-r8UPOtQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span></span></p><div><p style="margin-bottom:8pt;">Here's what makes this even more urgent: July isn't the only deadline you need to worry about.</p><p style="margin-bottom:8pt;">On April 2, 2026, Microsoft is retiring the SharePoint Add-In model and classic SharePoint 2013 workflows- permanently. If your environment relies on workflows built in SharePoint Designer, approval processes tied to the Add-In framework, or third-party add-ins using Azure ACS authentication, those things will stop working before July even arrives.</p><p style="margin-bottom:8pt;">April 2, 2026. That's less than a year away as you're reading this.</p><p style="margin-bottom:8pt;">This affects more organisations than you'd think. A lot of business-critical processes, finance approvals, HR routing, records management, procurement sign-offs, were built on classic SharePoint workflows. When these retire, they don't just slow down. They break.</p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_Mlwoz1FmEjOpqChY_XxiRg" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_hF8RzuXNnYeL4rinMnMecg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_aZNflprInfCovz2UiD5N7Q" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_K-GGGR_7DkdGW7u3w-o9tg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>The Full Timeline at a Glance</strong></h3></div>
</div></div></div></div><div data-element-id="elm_UzSGUN3s-21oM60UdFoXqg" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_jNJ2oO8IAwpGdYxPupFuAw" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_wVWUlUiH8i52xxlBy33peQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_ramsD6ocoea5TWj9-a9ueg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_ramsD6ocoea5TWj9-a9ueg"] .zpimage-container figure img { width: 1110px ; height: 417.12px ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/sharepoint-version-timeline.png" size="fit" data-lightbox="true"/></picture></span></figure></div>
</div></div></div></div></div><div data-element-id="elm_ExVT3SmWPeUZlZjFALAugw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_0fYX4ERtW9sMBa0CBd69zA" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_JDttaQtpTxLEcw7iRyMeDQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_9Nvodbjmn7gPrABpr3CnKQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Who Should Be Concerned About This?</strong></h3></div>
<div data-element-id="elm_n9brlzqnU9nFw-5bpLFdIw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><div>You should be concerned if:</div></div><p></p><ul><li>Your organisation runs SharePoint Server 2016 or 2019 as your intranet or document management platform</li><li>You have workflows built on SharePoint Designer or classic SharePoint approval processes</li><li>Your business uses custom Add-Ins or third-party integrations built on the Add-In framework</li><li>You handle regulated or sensitive data that requires you to run supported, patched software</li><li>Your IT team manages the SharePoint environment with limited capacity to respond to incidents without vendor support</li></ul></div>
</div></div></div></div></div><div data-element-id="elm_VuUiv9FCjIDtB9RHpraR9Q" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_9QW8AjC2nAFoqWig5TfBYw" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_0EBuTUfgE9dH-gnifaEUWw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_HN9wY2ZLPdMV1-d1WaHIgQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>What Are Your Options?</strong></h3></div>
</div></div></div></div><div data-element-id="elm_WZJNCkMVIU6IaHjnzN7GJw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_pXgV3iEPMHy-ZjFLH_gx0Q" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_9rS6RVJ27Kk1BaHODO_Q2Q" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_hgG9FnurOrYZ4Ha-LBCjLA" data-element-type="iframe" class="zpelement zpelem-iframe "><style type="text/css"> [data-element-id="elm_hgG9FnurOrYZ4Ha-LBCjLA"].zpelem-iframe{ margin-block-start:2px; } </style><div class="zpiframe-container zpiframe-align-left"><iframe class="zpiframe giphy-embed " src="https://giphy.com/embed/Uni2jYCihB3fG" width="480" height="298" align="left" allowfullscreen frameBorder="0"></iframe></div>
</div></div><div data-element-id="elm_BkPxlR3F_jHEYuyMG8wwAw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-8 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_1KdFdmaNEtC41G7glliKsQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><div>The good news is that you have choices. You're not being forced into one path. But each path takes time to execute properly, and that time is the thing most organisations underestimate.</div></div><p></p><ul><li><span style="font-weight:bold;">SharePoint Online (Microsoft 365)</span>: The cloud-first path. Continuous updates, automatic security patches, Copilot AI integration, and the ability for your team to collaborate from anywhere. Microsoft's preferred destination.</li></ul><div><ul><li><strong>SharePoint Server Subscription Edition (SE)</strong>: The on-premises path for organisations with compliance requirements or data sovereignty constraints. Released in 2021, it runs on Microsoft's Modern Lifecycle — no fixed end-of-life date.</li></ul></div><div><ul><li><strong>Hybrid approach</strong>: Combining on-premises SharePoint SE with SharePoint Online for organisations that need a phased transition or have specific data that must remain local.</li></ul></div></div>
</div></div></div><div data-element-id="elm_SXE86mynPj50rA57Yr3TDQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_NKxxOorXlskyW1rp2szUiA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_NKxxOorXlskyW1rp2szUiA"].zpelem-col{ margin-block-start:-36px; } </style><div data-element-id="elm_kDn-mQ-_BY3FRDjPcRKXUA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_kDn-mQ-_BY3FRDjPcRKXUA"].zpelem-text { margin-block-start:25px; } </style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span>The right path depends on your environment, your data, your compliance requirements, and your team's capacity. What's universal is this: migrations of meaningful size take anywhere from three months to well over a year, depending on complexity. If you haven't started planning, the window is narrowing.</span></p></div>
</div></div></div></div></div><div data-element-id="elm_mCnsDPCJ1BS34cw9iKltiQ" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_hoR966znlOGiZaybaSSvXA" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_5iLwDxtnVMCjrKGnuaomoA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_Y-imig9MVqSvvdcO41lZLA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>The Question Worth Asking Right Now</strong></h3></div>
<div data-element-id="elm_z-j5z5FWZPa-D4UqvF72rg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:8pt;">If your SharePoint environment went down tomorrow, not a migration, just an unplanned outage after July 2026, how long could your business operate? Who would you call? What would your IT team do without a Microsoft support ticket to open?</p><p style="margin-bottom:8pt;">That's the risk you're accepting by waiting.</p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_uFhzZ5VglKbIhR-vPPqMmg" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_pzbxMyql35dNFrqXF-z2Ww" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_c7Pf6_b7umseh_t8lRHKaA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_XoC_tviozTw42ACT55QMzw" data-element-type="iframe" class="zpelement zpelem-iframe "><style type="text/css"></style><div class="zpiframe-container zpiframe-align-center"><iframe class="zpiframe giphy-embed " src="https://giphy.com/embed/BWxCW1a0LtZSAXsQFK" width="480" height="480" align="center" allowfullscreen frameBorder="0"></iframe></div>
</div></div></div><div data-element-id="elm_nxYNNeqEg-u9RiOjhdxpIQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_-mJIzF7royT5owzR-ooPJg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_yimVfdh1KVDKxbhbSdaDIg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:8pt;">At GTconsult, we've spent 15 years helping organisations navigate SharePoint migrations. We know what a well-planned migration looks like, and we know what a rushed one costs. The difference is almost always time — specifically, how much of it you have left when you start.</p></div><p></p></div>
</div><div data-element-id="elm_1QphmD0YKas9h9iGGpoWQA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Want to estimate the cost of your migration?</strong></h3></div>
<div data-element-id="elm_Q8Xh9NcMgJ-z1YqvMGZI3A" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><div style="margin-left:18pt;margin-right:18pt;"><p align="center" style="text-align:left;"><span>Use our free Migration Cost Calculator to get an estimate based on your environment size.&nbsp;&nbsp;</span>It takes a few minutes and gives you a starting point for your planning conversations.</p></div>
</div><p></p></div></div><div data-element-id="elm_vHoxT4xjOa2EHJkCT9i2bA" data-element-type="button" class="zpelement zpelem-button "><style></style><div class="zpbutton-container zpbutton-align-center zpbutton-align-mobile-center zpbutton-align-tablet-center"><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-roundcorner " href="https://www.gtconsult.com/access-our-migration-cost-calculator" target="_blank"><span class="zpbutton-content">Access the Free Calculator</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Thu, 12 Mar 2026 14:11:22 +0000</pubDate></item><item><title><![CDATA[Why Most Teams Aren't Actually Maximising Their Microsoft 365 Licence]]></title><link>https://www.gtconsult.com/blogs/post/why-most-teams-aren-t-actually-maximising-their-microsoft-365-licence</link><description><![CDATA[<img align="left" hspace="5" src="https://www.gtconsult.com/Blog Site/Migration Write Up Thumbnail ww.png"/>Your team has Microsoft 365 — but are they using more than Outlook and Teams? Most organisations pay for the full suite and barely scratch the surface. Here's why the gap between your licence and your team's knowledge is costing you more than you think, and what you can do about it.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_o1jZ9sHUR4WfBl79B6FevA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_uwb1y2GiSoOLFPPU7eFMDw" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_mxmpLyVqSYuW40XdL1y4tQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_fB56qcf52kGGMnVdkFMGzQ" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_fB56qcf52kGGMnVdkFMGzQ"] .zpimage-container figure img { width: 1110px ; height: 624.38px ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Migration%20Write%20Up%20Thumbnail%20ww.png" size="fit" data-lightbox="true"/></picture></span></figure></div>
</div></div></div></div></div><div data-element-id="elm_Q5SgB_WSfDYAhsBGfZUb4g" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_9gBycrCNYZcRmhxqUH6lGg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_ZDnAGeMarwR2IBnab_oKnw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_7APgAGBaRC6vlimkO1NHEg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p></p><div><p style="text-align:left;">You're paying for Microsoft 365. Every month. For every user.</p><p style="text-align:left;"><br/></p><p style="text-align:left;">But here's the thing — do you actually know what you're paying for? And more importantly, is your team using even half of it?</p><p style="text-align:left;"><br/></p><p style="text-align:left;">If your honest answer is &quot;I'm not sure,&quot; you're not alone. And that's exactly the problem.</p></div>
<p></p></div></div><div data-element-id="elm_t4rtqXx3hFmVclRYtnqysQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>The licence you're paying for vs. the licence you're using</strong></h3></div>
<div data-element-id="elm_aJuYboLXb4SntfdGEWO7-Q" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p>Let's talk about what's actually happening in most organisations.</p><p><br/></p><p>Your team opens Outlook. They jump into a Teams meeting. Maybe someone opens a Word doc or an Excel spreadsheet. And that's... pretty much it.</p><p>But your Microsoft 365 licence — whether it's Business Standard, E3, or E5 — includes a lot more than email, meetings, and documents. We're talking SharePoint for document management and intranets, OneDrive for personal cloud storage (up to 1TB per user), Power Automate for workflow automation, Microsoft Forms for surveys and data collection, Planner and To Do for task management, Lists for structured data tracking — and depending on your plan, even more.</p><p><br/></p><p>Most of these tools are sitting there, fully licenced, fully available, and completely untouched.</p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_PzvKegdwMYlLmB1OD5EzjA" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_ct9JywgWgEVf_ZjUVZuNoQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_X-CWgWM7W1EwmHcWnc-IRA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_C3GI7KGHnNAP9UUhsJ6y_Q" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>It's not a technology problem — it's a knowledge problem</strong></h3></div>
<div data-element-id="elm_kO3Q2WYvGo0MyFqxwrCe7A" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p>Here's where it gets frustrating. Organisations will pay for a Microsoft 365 E3 licence and then also pay separately for Dropbox, Trello, SurveyMonkey, or Zoom — tools that do what their existing licence already covers.</p><p><br/></p><p>Not because Microsoft 365 can't do it. But because nobody on the team knows it can.</p><p>Think about that for a second. You're essentially paying twice for the same capability — once through your M365 licence and again through a third-party subscription — just because your people haven't been shown what's already available.</p><p><br/></p><p>And it's not their fault. Nobody sat them down and said, &quot;Hey, you know that thing you're using Dropbox for? OneDrive does that. And it's already included in what we're paying for.&quot; Or, &quot;That approval process you're running over email? Power Automate can handle that automatically.&quot;</p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_Re03yeX9iiXyIhqpQU6STg" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_38Yvvwn-Nq0apOgucXrHcg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_0htmgxLHBFIteDV5ahF6Tg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_NE8j8oQ2s7eGnk8b6jc4bw" data-element-type="imageheadingtext" class="zpelement zpelem-imageheadingtext "><style> @media (min-width: 992px) { [data-element-id="elm_NE8j8oQ2s7eGnk8b6jc4bw"] .zpimageheadingtext-container figure img { width: 460px !important ; height: 347px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimageheadingtext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-original zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Fairly%20Oddparents%20Burn%20GIF.gif" data-src="/Blog%20Site/Fairly%20Oddparents%20Burn%20GIF.gif" size="original" data-lightbox="true"/></picture></span></figure><div class="zpimage-headingtext-container"><h3 class="zpimage-heading zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left" data-editor="true"><strong>The real cost of underutilisation</strong></h3><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><div><p>This isn't just about wasting a few rand or dollars on duplicate subscriptions, although that adds up faster than you'd think.</p><p><br/></p><p>According to industry research, 20–30% of IT budgets are lost to unused SaaS features. That's not a small leak — that's a significant chunk of your technology spend going nowhere.</p><p>But the bigger cost is the one you can't see on a spreadsheet: lost productivity.</p><p>Microsoft's own Work Trend Index found that users spend 60% of their time in Microsoft 365 apps on emails, chats, and meetings — and only 40% on actual creation work in apps like Word, Excel, and PowerPoint. That's according to data from their 2024 annual report, covering trillions of productivity signals across their platform.</p><p><br/></p><p>Now imagine if your team knew how to use SharePoint properly instead of emailing files back and forth. Or if they could set up a simple Power Automate flow to handle that weekly status report nobody enjoys putting together. That 60/40 split starts to shift. People spend less time in communication loops and more time getting actual work done.</p></div><p></p></div>
</div></div></div></div></div></div></div><div data-element-id="elm_8UmmTXw0QoD2v95HjmUDVQ" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_fu-GZaHRIVKdVKlIbvndBQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_YFsMmUH0CBCKUDl3KwGlqQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_myL-UUbroQEYSl7cGQSvPw" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>The features hiding in plain sight</strong></h3></div>
<div data-element-id="elm_-UK7p94RTrt-XMQTsx1pgQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p>Let me give you a few examples of what most teams are missing, even on a standard Business Standard or E3 licence:</p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_LJCv6S_mroNO9abOgsRb5g" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_N6rFSEpnlK7HZBRkxJwxVQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_VcXuPH-zwWFzndepRMAoag" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_bJ1p7EwBsn5KmRdt2nxCeA" data-element-type="iconHeadingText" class="zpelement zpelem-iconheadingtext "><style type="text/css"></style><div class="zpicon-container zpicon-align-left zpicon-align-mobile-left zpicon-align-tablet-left zpicon-clear-align"><style></style><span class="zpicon zpicon-common zpicon-anchor zpicon-size-md zpicon-style-none "><svg viewBox="0 0 512 512" height="512" width="512" aria-label="hidden" xmlns="http://www.w3.org/2000/svg"><path d="M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"></path></svg></span><h3 class="zpicon-heading " data-editor="true"><span style="font-size:20px;">Version history in SharePoint and OneDrive.</span></h3><div class="zpicon-text-container " data-editor="true"><p><span>Your team is probably still saving files as &quot;Report_v2_FINAL_actuallyFINAL.docx.&quot; Meanwhile, SharePoint and OneDrive automatically track every version of every document. You can roll back changes, see who edited what, and recover deleted files — all built in, no extra cost.</span></p></div>
</div></div></div><div data-element-id="elm_WUulrhFRrgPsGFv4f4KCKg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_hCNsGrEcms-2cSiZrK3UpQ" data-element-type="iconHeadingText" class="zpelement zpelem-iconheadingtext "><style type="text/css"></style><div class="zpicon-container zpicon-align-left zpicon-align-mobile-left zpicon-align-tablet-left zpicon-clear-align"><style></style><span class="zpicon zpicon-common zpicon-anchor zpicon-size-md zpicon-style-none "><svg viewBox="0 0 576 512" height="576" width="512" aria-label="hidden" xmlns="http://www.w3.org/2000/svg"><path d="M527.9 224H480v-48c0-26.5-21.5-48-48-48H272l-64-64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h400c16.5 0 31.9-8.5 40.7-22.6l79.9-128c20-31.9-3-73.4-40.7-73.4zM48 118c0-3.3 2.7-6 6-6h134.1l64 64H426c3.3 0 6 2.7 6 6v42H152c-16.8 0-32.4 8.8-41.1 23.2L48 351.4zm400 282H72l77.2-128H528z"></path></svg></span><h3 class="zpicon-heading " data-editor="true"><span style="font-size:20px;"><span>Shared libraries in SharePoint.</span></span><br/><span style="font-size:20px;">​</span></h3><div class="zpicon-text-container " data-editor="true"><p><span>Instead of dumping everything in a shared drive or emailing attachments, your team could be working from a single source of truth with proper permissions, metadata, and search. But most teams never get past using SharePoint as a glorified file dump.</span></p></div>
</div></div></div><div data-element-id="elm_xsksA6dYMz-KEGQ10zzbRQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_0fFNJSQWUwwxfAB5GWx_Yg" data-element-type="iconHeadingText" class="zpelement zpelem-iconheadingtext "><style type="text/css"></style><div class="zpicon-container zpicon-align-left zpicon-align-mobile-left zpicon-align-tablet-left zpicon-clear-align"><style></style><span class="zpicon zpicon-common zpicon-anchor zpicon-size-md zpicon-style-none "><svg viewBox="0 0 512 512" height="512" width="512" aria-label="hidden" xmlns="http://www.w3.org/2000/svg"><path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z"></path></svg></span><h3 class="zpicon-heading " data-editor="true"><span style="font-size:20px;"><span>Power Automate for approvals.</span></span><br/><span style="font-size:20px;">​</span></h3><div class="zpicon-text-container " data-editor="true"><p><span>That thing where someone emails a document to their manager, who forwards it to finance, who then emails it back? That entire chain can be automated with a simple approval flow. It's included in your licence. It takes about 15 minutes to set up. But if nobody knows it exists, nobody uses it.</span></p></div>
</div></div></div></div><div data-element-id="elm_pHekxdCHncMek6-VMHs8Ow" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_e5NJz28SV1Wm2wbs6Wa4YA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_JYXP6vvmyIvdCR9AYRy6Gw" data-element-type="iconHeadingText" class="zpelement zpelem-iconheadingtext "><style type="text/css"></style><div class="zpicon-container zpicon-align-left zpicon-align-mobile-left zpicon-align-tablet-left zpicon-clear-align"><style></style><span class="zpicon zpicon-common zpicon-anchor zpicon-size-md zpicon-style-none "><svg viewBox="0 0 448 512" height="448" width="512" aria-label="hidden" xmlns="http://www.w3.org/2000/svg"><path d="M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z"></path></svg></span><h3 class="zpicon-heading " data-editor="true"><span style="font-size:20px;"><span>Microsoft Forms for data collection.</span></span></h3><div class="zpicon-text-container " data-editor="true"><p><span>Still sending around Excel spreadsheets for people to fill in and email back? Forms handles this natively and feeds the data straight into Excel or SharePoint — no manual consolidation needed.</span></p></div>
</div></div></div><div data-element-id="elm_ZSe4KOmUUdNn4z7f_WlSLA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_mM2XqdOJP8hpTiwYma4PHA" data-element-type="iconHeadingText" class="zpelement zpelem-iconheadingtext "><style type="text/css"></style><div class="zpicon-container zpicon-align-left zpicon-align-mobile-left zpicon-align-tablet-left zpicon-clear-align"><style></style><span class="zpicon zpicon-common zpicon-anchor zpicon-size-md zpicon-style-none "><svg viewBox="0 0 512 512" height="512" width="512" aria-label="hidden" xmlns="http://www.w3.org/2000/svg"><path d="M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z"></path></svg></span><h3 class="zpicon-heading " data-editor="true"><span style="font-size:20px;"><span>OneDrive sync and Files On-Demand.</span></span></h3><div class="zpicon-text-container " data-editor="true"><p><span>Your team has up to 1TB of personal cloud storage per user. They can sync files across devices and choose which files to keep offline. It's essentially Dropbox, built into Windows, at no extra charge. But I'd bet most of your users either don't have it set up or don't know it's there.</span></p></div>
</div></div></div></div></div></div><div data-element-id="elm_I5u6ImCvOd6fHayYdMlosw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_YkSqkstkmdSrbgtufAlYgQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_1QmkuTGb3KLSvEDo4E2usA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_A5NE0HjAKyqfMhPlVxyWsg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong><span>&quot;But we've done training&quot;</span></strong></h3></div>
<div data-element-id="elm_p5Gq0kLRAsb-tfDoAm1_Aw" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_p5Gq0kLRAsb-tfDoAm1_Aw"] .zpimagetext-container figure img { width: 367px !important ; height: 262px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/facepalm%20GIF%20-1-.gif" size="custom" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><div><p><span>Maybe you have. A lot of organisations run training when they first roll out Microsoft 365. A half-day session, maybe a full day if they're thorough. Someone walks through the apps, everyone nods, and then they go back to working exactly the way they did before.</span><br/></p><p><span><br/></span></p><p>Here's the problem with once-off training: Microsoft 365 isn't static. Microsoft ships updates and new features constantly — their 2025 roadmap alone lists over 500 planned updates across commercial and education plans. What you trained on two years ago isn't the same platform your team is using today.</p><p><br/></p><p>And let's be honest — how much of a full-day training session does anyone actually retain? If the training isn't practical, scenario-based, and reinforced over time, it fades within a week. People fall back on old habits because those habits are comfortable, even when they're inefficient.</p></div><p></p></div>
</div></div></div></div></div></div><div data-element-id="elm_ONlmuX7D7awZk9LnxSSiHA" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_KRMurNR_E9ZnmSdYM69nXA" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_-pxro0zRFTbj5PDJE0s-kQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_H30DRKgsEvMI4ofarhn9dQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>So what does maximising your licence actually look like?</strong></h3></div>
<div data-element-id="elm_3Bap9b9j5bgjNnI_MjJj8A" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p>It's not about becoming a power user overnight. It's about making sure your people understand the basics properly and then building from there.</p><p><br/></p><p>It starts with the fundamentals: knowing where to save files (OneDrive for personal, SharePoint for team), understanding how Teams, SharePoint, and OneDrive work together, and being able to share files with a link instead of an attachment.</p><p><br/></p><p>Then you layer on productivity skills: co-authoring documents in real time, using Planner for project tracking, setting up basic automations, organising SharePoint sites so people can actually find things.</p><p><br/></p><p>And for the people who want to go further — your site owners, your digital champions, your IT-adjacent team members — there's governance, security settings, and advanced automation with Power Automate and eventually Copilot.</p><p><br/></p><p>The point is, it's a journey. Not a single event.</p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_3b2AXEiBNlcu9F1byNxqEw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_puiMiJyb8p_tGWV4TJZaXg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_EU8KqbNU7xbXVtnIU4bkWA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_ku0Z-YEtIMfEsLjjuoAbkQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>What you can do right now</strong></h3></div>
<div data-element-id="elm_cBuzphtz2_V_VWYyWV3xvA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p>Before you do anything else, run a quick mental audit. Ask yourself:</p><p><br/></p><p>Are we paying for any third-party tools that duplicate what Microsoft 365 already offers? When was the last time our team received structured M365 training? Can our people confidently explain the difference between OneDrive and SharePoint? Does anyone on the team know how to set up a basic Power Automate flow? Are we using SharePoint for document management, or is it just a dumping ground?</p><p><br/></p><p>If most of those answers make you uncomfortable, that's your sign.</p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_fdyMT3gjJBVSjkkDsFSIlw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_4trbPvZ-L7i3r3azn7mTjg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_5wzou0B10h68_m6iK42CHw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_SPUmOnFKZY7QGk66MENWqQ" data-element-type="video" class="zpelement zpelem-video "><style type="text/css"> @media (max-width: 767px) { [data-element-id="elm_SPUmOnFKZY7QGk66MENWqQ"].zpelem-video iframe.zpvideo{ width:560px !important; height:315px !important; } } @media all and (min-width: 768px) and (max-width:991px){ [data-element-id="elm_SPUmOnFKZY7QGk66MENWqQ"].zpelem-video iframe.zpvideo{ width:560px !important; height:315px !important; } } </style><div class="zpvideo-container zpiframe-align-left zpiframe-mobile-align-center zpiframe-tablet-align-center"><iframe class="zpvideo " width="560" height="315" src="https://www.youtube.com/embed/yRuqmu4GZjw?si=SS4xftBRVf9rBvlu" frameborder="0" allowfullscreen></iframe></div>
</div></div><div data-element-id="elm_ezbzbq_FLZqMfGlSWx8ZHg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_b53MkeDXKZ_wq3JOD4mlxA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><div>The good news is you don't need a massive overhaul. You just need to start closing the gap between what you're paying for and what your people actually know how to use.</div><div><br/></div><div><p>And that's exactly what we built our Microsoft 365 training for. Self-paced, practical, video-based modules covering everything from M365 navigation basics through to Power Automate and Copilot — across four learning tracks designed for different roles in your organisation. And because we're based in South Africa and believe people learn best in their own language, every module is available in English, Afrikaans, and isiZulu.</p><p><br/></p><p>Because your licence isn't the problem. The gap between the licence and your team's knowledge is.</p></div></div><p></p></div>
</div></div></div><div data-element-id="elm_kDtHCh6SqOUCovt2e_iOOQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_sh1OPlN19E-7eA625mKRLw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_PJT5QTmFQWX3DNkwzkOePw" data-element-type="button" class="zpelement zpelem-button "><style></style><div class="zpbutton-container zpbutton-align-center zpbutton-align-mobile-center zpbutton-align-tablet-center"><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-roundcorner " href="https://www.gtconsult.com/ms365-training" target="_blank"><span class="zpbutton-content">Join the Waitlist</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Wed, 18 Feb 2026 14:50:11 +0000</pubDate></item><item><title><![CDATA[SharePoint Online CSP Enforcement: What Admins Need to Do Before March 1, 2026]]></title><link>https://www.gtconsult.com/blogs/post/sharepoint-online-csp-enforcement-what-admins-need-to-do-before-march-1-2026</link><description><![CDATA[<img align="left" hspace="5" src="https://www.gtconsult.com/Blog Site/Sharepoint Online Blog Thumbnail.png"/>Microsoft is enforcing CSP in SharePoint Online on March 1, 2026. Non-compliant scripts will be blocked. Here's what's changing, what's at risk, and how to prepare your environment before enforcement goes live.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_-0L9C26FTlKM51UiBo7DSg" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_tUpCwpCaT4-un0uBnOvT7w" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_CZJzgAxlQHee6CTRLafcTw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_p1sUrsOHRvSNUAwVh2gqhA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p><span>Microsoft is rolling out Content Security Policy (CSP) enforcement for all SharePoint Online tenants on <strong>March 1, 2026</strong>. If you manage a SharePoint environment with custom scripts, SPFx solutions, or third-party integrations, this change could break things — and the clock is ticking.</span></p></div>
</div><div data-element-id="elm_VbhnqGDtwg7XhFqWvT8i_A" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_VbhnqGDtwg7XhFqWvT8i_A"] .zpimage-container figure img { width: 1107px !important ; height: 622px !important ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/gif%20-1-.gif" size="custom" data-lightbox="true"/></picture></span></figure></div>
</div></div></div></div></div><div data-element-id="elm_7oG9dzK0o94X5dWLpxUa0A" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_bcOM2sWpodbhEHuWP4orNw" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_IF49qr9KNuPMqfsmJkJ-tA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_Ykm_1d-vxrx7ViPMHUkpqQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span>Here's what's changing, what's at risk, and exactly how to prepare.</span></p></div>
</div><div data-element-id="elm_-ruYHv0-QtxywY1Vhi8uVg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>What Is CSP and Why Does It Matter?</strong></h3></div>
<div data-element-id="elm_h1g4a5LpdddFnUNmbG2zwA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p>Content Security Policy is a browser-level security standard that controls which scripts a page is allowed to load and execute. It's one of the most effective defenses against cross-site scripting (XSS), clickjacking, and code injection attacks.</p><p><br/></p><p>Until now, SharePoint Online has been running CSP in <strong>report-only mode</strong> — logging violations without actually blocking anything. That changes on<strong> 1&nbsp;</strong><strong>March&nbsp;</strong>when enforcement goes live. After that date, any script that doesn't comply with the CSP rules will be blocked by the browser, potentially breaking custom web parts, third-party tools, and SPFx solutions.</p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_C63k03WpOjqVO-KUKNwxkw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_g0pv9bUQpe9eD8VKUIMWug" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_hZZcfOgi-lonw1YMQ9PFKQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_vmS35E3ueYLV4WJyCmFAeA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Key Dates</strong><br/></h3></div>
<div data-element-id="elm_CaOcyyuPQT4LsQjI9woSRA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div></div><p></p><ul><li><strong>Now through 28 February, 2026</strong> — Report-only mode. Violations are logged but scripts still run.</li><li><strong>March 1, 2026</strong> — CSP enforcement begins. Non-compliant scripts are blocked.</li><li><strong>June 1, 2026</strong> — Extended deadline if you opt in to the 90-day delay via PowerShell.</li></ul></div>
</div></div><div data-element-id="elm_woD8kHqdhAo3VxPYhuPPoQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_0M9J7230OjOGdiEO-jD6IA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_0M9J7230OjOGdiEO-jD6IA"] .zpimage-container figure img { width: 361px !important ; height: 255px !important ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Calendar%20Marked.png" size="custom" data-lightbox="true"/></picture></span></figure></div>
</div></div></div></div></div><div data-element-id="elm_WPWQAzI4y495fI6fleAG9A" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_H0HDD-OpjLnhxuitLMwuNw" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_JK7e0zW1ZJYs-_Yna9iPPg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_qT3GAR7oYe67mpnzACjSJw" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>What Will Be Blocked?</strong></h3></div>
<div data-element-id="elm_Di8I5LhFM9_tC_LC2bXzuA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><div>Not everything is affected. Here's a breakdown of the four common script patterns and their CSP impact:</div><br/></div><p></p><div><strong>1. SPFx bundles hosted in ClientSideAssets (default pattern)</strong></div><div><div>No action needed. These are trusted automatically.</div><br/><div><span style="font-weight:bold;">2. External CDN bundles via cdnBasePath</span></div><div>No action needed. SharePoint auto-adds the CDN domain to Trusted Script Sources when the app is installed.</div><br/><div><div><strong>3. External libraries loaded via the externals config</strong></div></div><div>No action needed. The CDN domain is auto-trusted.</div><br/><div><span style="font-weight:bold;">4. Dynamic script loading via SPComponentLoader.loadScript()</span></div><div>Action required. You must manually add the script source to the Trusted Script Sources list in SharePoint Admin Center.</div><br/><div><div><strong>5. Inline scripts (JavaScript in HTML, event handlers, innerHTML, document.write())</strong></div></div><div>These will be blocked outright. There is no nonce workaround — Microsoft has confirmed they will not expose nonce values. You must refactor inline scripts into external files and register them as trusted sources.</div></div></div>
</div></div></div></div></div><div data-element-id="elm_08S00E4fLYMYGIK5jqiYJw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_Pkgs6i3YtJCS-RBX82DgRQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_7llz1067Kb24MC3Irs9gDg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_iKvunFPtTIQA7VVjoQ0lXg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><span><strong>How to Audit Your Environment</strong></span></h3></div>
<div data-element-id="elm_tcqtMGfCvuWnt1bp7517GQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><h3>Step 1: Check the Browser Console</h3><p>Open any SharePoint page that uses custom solutions, press F12 to open Dev Tools, and look for CSP violation messages in the Console tab. You'll see entries like:</p><ul><li>&quot;Loading the script '&lt;url&gt;' violates the following...&quot;</li><li>&quot;Executing inline script violates the following Content Security Policy directive...&quot;</li></ul><h3><br/></h3><h3>Step 2: Use Microsoft Purview</h3><p>For a tenant-wide view, go to Microsoft Purview (purview.microsoft.com) and create an audit report filtering for the activity <strong>&quot;Violated Content Security Policy.&quot;</strong> This gives you a comprehensive list of every page and script generating violations across your environment.</p><h3><br/></h3><h3>Step 3: Review the Directives</h3><p>Pay attention to both <strong>Directive 12 (script-src)</strong> and <strong>Directive 13 (style-src)</strong> violations. Both are relevant — Directive 13 applies to inline code constructs that will also be blocked under enforcement.</p><h2></h2></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_jI1zMBxqXW7ghCQ9w3sK7w" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_UDCX-2Z1yHvnK_M5JKOQEg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_N2DMcIrFDcPyv17bPdd03A" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_Y8M6iJtWF5fh6FB8XuAisw" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_Y8M6iJtWF5fh6FB8XuAisw"] .zpimage-container figure img { width: 576.28px !important ; height: 436px !important ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/seinfeld%20newman%20GIF%20-1-.gif" size="custom" data-lightbox="true"/></picture></span></figure></div>
</div></div></div></div></div><div data-element-id="elm_OKcwy2FZMEcuSW2v9PYwOA" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_5ZgBdzFumTK_LxFaFc1fig" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_KJRv-IoImziWJ55OplsPyQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_titlKT_ErdkcuRHPTf7tYA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>How to Fix It</strong></h3></div>
<div data-element-id="elm_j14_P2_LnqDl3HOy2ZbiMw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><h3>Add Trusted Script Sources</h3><p>Go to <strong>SharePoint Admin Center → Advanced → Script sources</strong> and add any external domains your solutions depend on. A few things to note:</p><ul><li>You can add up to 300 entries.</li><li>Overly broad wildcards like<span style="background-color:rgba(0, 27, 76, 0.15);"><code style="color:rgb(135, 34, 34);">*</code></span>or<span style="background-color:rgba(0, 27, 76, 0.15);color:rgb(135, 34, 34);"><code>*.domain</code></span>are not allowed.</li><li>Use targeted wildcards to consolidate where possible.</li><li>If a script loads from a CDN, you need to trust that specific CDN domain.</li></ul><div><br/></div>
<h3>Refactor Inline Scripts</h3><p>This is the big one. Any JavaScript embedded directly in HTML, event handlers, or injected via<span style="background-color:rgba(0, 27, 76, 0.15);"><code style="color:rgb(135, 34, 34);">innerHTML</code></span>or<span style="background-color:rgba(0, 27, 76, 0.15);"></span><code style="background-color:rgba(0, 27, 76, 0.15);color:rgb(135, 34, 34);">document.write()</code> must be moved into external<span style="background-color:rgba(0, 27, 76, 0.15);"><code style="color:rgb(135, 34, 34);">.js</code></span>files hosted at a trusted location. There's no shortcut here —<span style="background-color:rgba(0, 27, 76, 0.15);"><code style="color:rgb(135, 34, 34);">unsafe-inline</code></span>is not permitted, and Microsoft will not provide nonce values.</p><p><br/></p><h3>Validate Auto-Trusted Sources</h3><p>If you use<span style="background-color:rgba(0, 27, 76, 0.15);"><code style="color:rgb(135, 34, 34);">cdnBasePath</code></span>without a trailing slash, the auto-generated Trusted Script Sources entry may not match correctly. Double-check these entries manually after deploying your solutions.</p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_NSaiPi5kldMvoHjSX0iphw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_fG2I96K6zzt4lNDPPj-7wQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_46atisbu32ScxDX4ks24dA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_mZx3fAIVJCcvxfbzg5YxYQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong><span>Buying More Time</span></strong></h3></div>
<div data-element-id="elm_R2K5gyPL-1wfhe--LBJ6kA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span>If your team isn't ready by 1 March, you can delay enforcement by 90 days using the SharePoint Online Management Shell:</span></p></div>
</div><div data-element-id="elm_eRuLatFYVRbMP68-q_Zhlg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><img src="/Wed%20Feb%2018%202026.png" alt=""/></span></p></div>
</div><div data-element-id="elm_sSY0prPm8UEgnwn563zvmQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p>This pushes enforcement to June 1, 2026. It's a one-time delay — use it wisely and don't treat it as a permanent fix.</p><h2></h2></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_O1L1kyKQK73tTTlo3EfDXQ" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_lAQWlNPm4sKH8kaiH3v7Rg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_4MVwe2BqHyeNiuX-7a5NBQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_sYMWDch2NsN5KIat7H36IA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>What About<span style="background-color:rgba(0, 27, 76, 0.15);color:rgb(135, 34, 34);"></span></strong><code><strong style="background-color:rgba(0, 27, 76, 0.15);color:rgb(135, 34, 34);">eval()</strong></code><strong>?</strong></h3></div>
<div data-element-id="elm_T-ejPLkKv-UXKt6nLDFk6w" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span>Good news on this front: Microsoft's CSP implementation includes<span style="background-color:rgba(0, 27, 76, 0.15);color:rgb(135, 34, 34);"><code>unsafe-eval</code></span>in the<span style="background-color:rgba(0, 27, 76, 0.15);color:rgb(135, 34, 34);"><code>script-src</code></span>directive, so<span style="background-color:rgba(0, 27, 76, 0.15);color:rgb(135, 34, 34);"><code>eval()</code></span>calls in your scripts will continue to work. This was confirmed by the SharePoint team in the community discussion.</span></p></div>
</div></div></div></div></div><div data-element-id="elm_RHtr6GRGBmR3tFAIdRT6eg" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_AzVbYYv8nqrGr3bBovUNZQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_NPxLXBf8SLYJcY4CHZa5lA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_-EfThyyfU4tUFTy7EHbHaQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Communicate With Your Users</strong></h3></div>
<div data-element-id="elm_HzWnkATNeGVhO5HeZXLjxg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p>Once enforcement begins, end users may see broken functionality or warning messages on pages that rely on non-compliant scripts. Get ahead of this with proactive communication:</p><ul><li>Explain that this is a security improvement, not a system failure.</li><li>Provide a clear path for users to report issues.</li><li>Coordinate with any third-party vendors whose solutions run in your SharePoint environment.</li></ul></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_dh2TSSJp2qhNc8NZtERHQw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_VYYlFfU3nYyewCQuxO0IpQ" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_lDqanQc3_Gj8daBkZLxiHA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_ZWs-TfjCA26R208c5fKc5w" data-element-type="imageheadingtext" class="zpelement zpelem-imageheadingtext "><style> @media (min-width: 992px) { [data-element-id="elm_ZWs-TfjCA26R208c5fKc5w"] .zpimageheadingtext-container figure img { width: 500px ; height: 281.00px ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimageheadingtext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-medium zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Chicago%20Pd%20Nbc%20GIF%20by%20One%20Chicago.gif" data-src="/Blog%20Site/Chicago%20Pd%20Nbc%20GIF%20by%20One%20Chicago.gif" size="medium" data-lightbox="true"/></picture></span></figure><div class="zpimage-headingtext-container"><h3 class="zpimage-heading zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left" data-editor="true"><span><strong>Communicate With Your Users</strong></span></h3><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p>Once enforcement begins, end users may see broken functionality or warning messages on pages that rely on non-compliant scripts.&nbsp;</p><p><br/></p><p>Get ahead of this with proactive communication:</p><p><br/></p><li>​Explain that this is a security improvement, not a system failure.</li><ul><li>Provide a clear path for users to report issues. </li><li>Coordinate with any third-party vendors whose solutions run in your SharePoint environment.</li></ul><p><br/></p></div>
</div></div></div></div></div></div></div><div data-element-id="elm_3l1TsxwDj2JcLX65iyMcoQ" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_5QVIQ2sdjJLK7lYj1a0DNA" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_2rGfj-MKZ4kDJ2q1W7QK-g" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_JV9DaUbiwMhMlPuHwmt51w" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Bottom Line</strong></h3></div>
<div data-element-id="elm_AT68dZubYSHhDDEj24CT7A" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span>CSP enforcement is a welcome security improvement, but it requires hands-on preparation. The report-only window closes on February 28. Use the time you have to audit violations in Purview, fix inline scripts, register trusted sources, and communicate the change to your users. If you need more time, enable the 90-day delay — but start the work now.</span></p></div>
</div><div data-element-id="elm_RBLvefB5BMs5nShxZ9l-tg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h5
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Further reading:</strong></h5></div>
<div data-element-id="elm_yJb4seQ5TzGthdNCJ7D35Q" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><li><a href="https://learn.microsoft.com/en-us/sharepoint/dev/spfx/content-securty-policy-trusted-script-sources">Support for Content Security Policy (CSP) in SharePoint Online — Microsoft Learn</a></li><li><a href="https://techcommunity.microsoft.com/blog/spblog/sharepoint-online-content-security-policy-csp-enforcement-dates-and-guidance/4472662">SharePoint Online CSP: Enforcement Dates and Guidance — Microsoft Tech Community</a></li></div><p></p></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Wed, 18 Feb 2026 13:04:00 +0000</pubDate></item><item><title><![CDATA[The Secure Score Improvement Trap (And How to Avoid It) ]]></title><link>https://www.gtconsult.com/blogs/post/the-secure-score-improvement-trap-and-how-to-avoid-it</link><description><![CDATA[<img align="left" hspace="5" src="https://www.gtconsult.com/Blog Site/Migration Write Up Thumbnailnn.png"/>Most IT teams chase high-point Secure Score recommendations without strategy, leading to wasted effort and declining scores. Learn why "quick wins" fail, how to prioritize based on actual risk instead of points, and build sustainable improvements that stick—avoiding the trap of configuration drift.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_lz8Hp0r7T4iY_KuEprkRbA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_d6ewc2XhTWSEUvHwuZMdmg" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_eef7-YFFRwin8RIYgYq_9g" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_W-r_AudYSpymkQrZnktlvg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p><span>You know your Secure Score should be higher. You've read about configuration drift eating away at your security posture. You understand that lack of capacity is keeping your score stuck.</span></p></div>
</div></div></div></div></div><div data-element-id="elm_ppkc3NN1ZRTFkPrvMWv0pw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_QumHFkR0fQuil2FLFB1FQA" data-element-type="row" class="zprow zprow-container zpalign-items-center zpjustify-content-flex-start " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_d5WXSPOTQFUGgIJk37JPOA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_0PTU7PUibdWrrrQeX22Btw" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_0PTU7PUibdWrrrQeX22Btw"] .zpimage-container figure img { width: 480px !important ; height: 270px !important ; } } @media (max-width: 767px) { [data-element-id="elm_0PTU7PUibdWrrrQeX22Btw"] .zpimage-container figure img { width:415px ; height:233.44px ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-original zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Jake%20Johnson%20Fox%20GIF%20by%20New%20Girl.gif" width="415" height="233.44" loading="lazy" size="original"/></picture></span></figure></div>
</div></div><div data-element-id="elm_QWb3cenqyl5-nbDk2doPNQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_h8NZW41xNAEasNzUhJJzAw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p></p><div><p style="text-align:left;">This is the trap most IT teams fall into: they start implementing recommendations in order of points or ease, without understanding which changes actually matter for their specific risk profile—or how to sustain improvements once they're made.</p><p style="text-align:left;"><br/></p><p style="text-align:left;">The result? Wasted effort on low-impact changes, broken workflows from poorly planned implementations, and scores that plateau or even decline despite your best efforts.</p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_-lqIVfgztTQU5wIGuT2eew" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_hlzZcYoctvtUfTpjpjCPCw" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_jadNP54gSUv3A256sTV4dg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_Kqw6IKmkLkONvR4BxZjlzA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong style="color:rgb(0, 27, 76);">Why Most Secure Score Improvement Efforts Fail</strong><br/></h3></div>
<div data-element-id="elm_K5dtUjhEOB7OFIyrrrywUQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p>The typical approach looks something like this: open the Microsoft Defender portal, see a list of recommendations, pick the ones worth the most points or that seem easiest, and start implementing.</p><p><br/></p><p>Three months later, your score has barely moved. Or it moved briefly and then dropped back down. Or you've spent weeks on improvements that broke critical workflows and had to be rolled back.</p><p><br/></p><p>The problem isn't lack of effort. It's lack of strategy.</p><p><br/></p><p>Effective Secure Score improvement requires understanding three things most teams skip:</p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_eCvXmaRpgT-m5i0Y9HwBPA" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_RX65JGdOO-3BVg2fhPf-Dw" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_GgK_S1zjTP5rQpRfafDosw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_45NRgDyRD6VlmI_CZEl6dA" data-element-type="iconHeadingText" class="zpelement zpelem-iconheadingtext "><style type="text/css"></style><div class="zpicon-container zpicon-align-left zpicon-align-mobile-left zpicon-align-tablet-left zpicon-clear-align"><style></style><span class="zpicon zpicon-common zpicon-anchor zpicon-size-md zpicon-style-none "><svg viewBox="0 0 576 512" height="576" width="512" aria-label="hidden" xmlns="http://www.w3.org/2000/svg"><path d="M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"></path></svg></span><h3 class="zpicon-heading " data-editor="true"><span style="font-size:16px;color:rgb(0, 27, 76);"><strong>Which improvements actually address your organization's risk profile</strong></span></h3><div class="zpicon-text-container " data-editor="true"><p><span>A 10-point recommendation that protects against threats you don't face is wasted effort. Meanwhile, a 3-point recommendation that closes a critical gap specific to your industry might be essential. Points don't equal priority.</span></p></div>
</div></div></div><div data-element-id="elm_ABAeeLAhkLcVYDfTu6Ggug" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_Kr6YXbmtaXgEstRtbQ7d1A" data-element-type="iconHeadingText" class="zpelement zpelem-iconheadingtext "><style type="text/css"></style><div class="zpicon-container zpicon-align-left zpicon-align-mobile-left zpicon-align-tablet-left zpicon-clear-align"><style></style><span class="zpicon zpicon-common zpicon-anchor zpicon-size-md zpicon-style-none "><svg viewBox="0 0 512 512" height="512" width="512" aria-label="hidden" xmlns="http://www.w3.org/2000/svg"><path d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"></path></svg></span><h3 class="zpicon-heading " data-editor="true"><span style="font-size:16px;color:rgb(0, 27, 76);"><strong>The sequence and dependencies between changes</strong></span></h3><div class="zpicon-text-container " data-editor="true"><p><span>Some security improvements need to happen in specific order. Others interact in ways that can break functionality if you don't understand the technical relationships. Implementing changes in the wrong sequence wastes time on rework and troubleshooting.</span></p></div>
</div></div></div><div data-element-id="elm_wzVFO7TTepfN6XCBHDbsWw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-4 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_k1Wnqrly5y8yxlJbjaV7VQ" data-element-type="iconHeadingText" class="zpelement zpelem-iconheadingtext "><style type="text/css"></style><div class="zpicon-container zpicon-align-left zpicon-align-mobile-left zpicon-align-tablet-left zpicon-clear-align"><style></style><span class="zpicon zpicon-common zpicon-anchor zpicon-size-md zpicon-style-none "><svg viewBox="0 0 24 24" height="24" width="24" aria-label="hidden" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M9 1H1V9H9V6H11V20H15V23H23V15H15V18H13V6H15V9H23V1H15V4H9V1ZM21 3H17V7H21V3ZM17 17H21V21H17V17Z"></path></svg></span><h3 class="zpicon-heading " data-editor="true"><strong><span style="font-size:16px;color:rgb(0, 27, 76);">How to build monitoring and maintenance into your workflows</span></strong></h3><div class="zpicon-text-container " data-editor="true"><p><span>Configuration drift is inevitable. The question isn't whether your settings will drift from their intended state—it's whether you'll catch it when they do. Without systematic monitoring, improvements degrade over time and your score reflects it.</span></p></div>
</div></div></div></div></div></div><div data-element-id="elm_Zc84FhGQRThGBq1pbzG67A" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_GORQ97KrQzti3iw8X4_-Dw" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_K6ckYCgW8eRENDsDosLFZQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_lCmg9_F1Gy9YDlDASNvyrw" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong style="color:rgb(0, 27, 76);">The Hidden Complexity of &quot;Simple&quot; Recommendations</strong></h3></div>
</div></div></div></div><div data-element-id="elm_ECTNIhMa5k5_7-MOY6fvrg" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_Ea3KzZiGkfLibwRKRqTrQA" data-element-type="row" class="zprow zprow-container zpalign-items-center zpjustify-content-flex-start " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_HEuPMYwwn4iG1saxgikqCg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_pltIx35EwKx4rlb1k0SIwg" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_pltIx35EwKx4rlb1k0SIwg"] .zpimage-container figure img { width: 400px !important ; height: 300px !important ; } } @media (max-width: 767px) { [data-element-id="elm_pltIx35EwKx4rlb1k0SIwg"] .zpimage-container figure img { width:415px ; height:233.44px ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-original zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/avril%20lavigne%20GIF.gif" width="415" height="233.44" loading="lazy" size="original"/></picture></span></figure></div>
</div></div><div data-element-id="elm_QjlEiDfN90750EcVFryGRA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_M8LFpjc2nTerMXyWYH3zpA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p></p><div><p style="text-align:left;">Let's take what seems like a straightforward recommendation: enable MFA for all users.</p><p style="text-align:left;"><br/></p><p style="text-align:left;">Sounds simple, right? But actually implementing it requires understanding:</p><ul><li style="text-align:left;">Which users already have MFA and which don't</li><li style="text-align:left;">Whether you have Conditional Access policies that conflict</li><li style="text-align:left;">Which applications might break with MFA enforcement</li><li style="text-align:left;">How to handle service accounts and automated processes</li><li style="text-align:left;">What exceptions might be legitimately needed</li><li style="text-align:left;">How to communicate changes to users effectively</li></ul></div><p></p></div>
</div></div></div><div data-element-id="elm_a3fkSF-WT5KZ-9kEAxjWzg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_qZM33ElEbF2CPX5Y3Is_Nw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_71hiBfhvElEi_BGxYswtLQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p>Get any of these wrong and you'll spend more time fixing problems than you saved by implementing the recommendation.</p><p><br/></p><p>This pattern repeats across every recommendation in your Secure Score. What looks like a configuration change on the surface requires strategic thinking about business impact, technical dependencies, and change management.</p></div><p></p></div>
</div></div></div></div></div><div data-element-id="elm_G0cUKdV0pUQvS91D2i12vA" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_E9XcXYXB6FJ8S9WUq5PX2g" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_4oQjhwFdHGKs2i0wGEUxyg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_bwJUEViA89oZn1g4Rri9fg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong style="color:rgb(0, 27, 76);">Why Quick Wins Aren't Always Quick</strong></h3></div>
<div data-element-id="elm_578hCOsLygn0bZAGT6JTGw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p>IT teams often start with &quot;quick wins&quot;—recommendations that promise high point values with supposedly minimal effort.</p><p><br/></p><p>The problem is that &quot;quick&quot; depends entirely on your environment's current state and complexity. Blocking legacy authentication might take 15 minutes in one organization and require weeks of application modernization in another.</p><p><br/></p><p>More importantly, chasing points without understanding impact leads to a dangerous pattern: implementing changes that raise your score but don't actually improve your security posture in meaningful ways for your specific risk profile.</p><p><br/></p><p>The organizations that successfully improve their Secure Score don't focus on quick wins first. They focus on <em>right</em> wins—improvements that align with their actual threat landscape and business priorities, regardless of point value.</p></div><p></p></div>
</div><div data-element-id="elm__YBKGX_onYgevAmaRtG31g" data-element-type="spacer" class="zpelement zpelem-spacer "><style> div[data-element-id="elm__YBKGX_onYgevAmaRtG31g"] div.zpspacer { height:13px; } @media (max-width: 768px) { div[data-element-id="elm__YBKGX_onYgevAmaRtG31g"] div.zpspacer { height:calc(13px / 3); } } </style><div class="zpspacer " data-height="13"></div>
</div></div></div></div></div><div data-element-id="elm_Qp2uEQGYMPP1y2vGHbz7CQ" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_Z6XB3hcNe1eo7BXOIkvRdA" data-element-type="row" class="zprow zprow-container zpalign-items-center zpjustify-content-flex-start " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_65xUQY6WM2cbj_PE8JN7AA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_khgYBcfzU41_Py12a0ka0Q" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_khgYBcfzU41_Py12a0ka0Q"] .zpimage-container figure img { width: 429px !important ; height: 601px !important ; } } @media (max-width: 767px) { [data-element-id="elm_khgYBcfzU41_Py12a0ka0Q"] .zpimage-container figure img { width:415px ; height:233.44px ; } } [data-element-id="elm_khgYBcfzU41_Py12a0ka0Q"].zpelem-image { margin-block-start:26px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Copy%20of%20Copy%20of%20Copy%20of%20Envelope%20Template%20-500%20x%20700%20mm-.png" width="415" height="233.44" loading="lazy" size="custom"/></picture></span></figure></div>
</div></div><div data-element-id="elm_LBe_Y0ta1_1OjPOu9bLD6Q" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_Y5Jmkw29O69AHchIIYMn1g" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h4
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>The Sustainability Problem</strong></h4></div>
<div data-element-id="elm_JCDU7G1M4EWUxy9xAy5Yug" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p></p><div><p style="text-align:left;">Here's what happens in most organizations: someone dedicates focused time to Secure Score improvements. Over a few weeks or months, the score increases. Victory!</p><p style="text-align:left;"><br/></p><p style="text-align:left;">Six months later, the score has drifted back down. Temporary exceptions became permanent. New users onboarded without inheriting security policies. Applications deployed without security review.</p><p style="text-align:left;"><br/></p><p style="text-align:left;">The improvements weren't sustained because they weren't integrated into operational processes. Security became a project with an end date, not an ongoing practice.</p><p style="text-align:left;"><br/></p><p style="text-align:left;">Sustainable Secure Score improvement requires building security into your regular workflows:</p><ul><li style="text-align:left;">User onboarding processes that automatically apply security policies</li><li style="text-align:left;">Regular reviews of exceptions and elevated access</li><li style="text-align:left;">Monitoring that flags when configurations drift from baseline</li><li style="text-align:left;">Documentation that survives staff turnover</li></ul><p style="text-align:left;"><br/></p><p style="text-align:left;">Without these processes, you're constantly fighting to maintain improvements instead of compounding them over time.</p></div><p></p></div>
</div></div></div><div data-element-id="elm_oJDmMSkXXK8nknzJNpN11Q" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_8cl7bRsXYmxkEfOlq8cxJw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_1OCl_Yyy7MqxgiBASWmwuA" data-element-type="spacer" class="zpelement zpelem-spacer "><style> div[data-element-id="elm_1OCl_Yyy7MqxgiBASWmwuA"] div.zpspacer { height:11px; } @media (max-width: 768px) { div[data-element-id="elm_1OCl_Yyy7MqxgiBASWmwuA"] div.zpspacer { height:calc(11px / 3); } } </style><div class="zpspacer " data-height="11"></div>
</div></div></div><div data-element-id="elm_LVK9gJgdTGYkpIkw1mgOHA" data-element-type="row" class="zprow zprow-container zpalign-items-center zpjustify-content-flex-start " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_GTNmgfoN7hshxF4VAOyDug" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_wQ0YJQ3dSbMEXATi9CTN4g" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_wQ0YJQ3dSbMEXATi9CTN4g"] .zpimage-container figure img { width: 406px !important ; height: 568px !important ; } } @media (max-width: 767px) { [data-element-id="elm_wQ0YJQ3dSbMEXATi9CTN4g"] .zpimage-container figure img { width:415px ; height:233.44px ; } } [data-element-id="elm_wQ0YJQ3dSbMEXATi9CTN4g"].zpelem-image { margin-block-start:26px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Copy%20of%20Copy%20of%20Copy%20of%20Envelope%20Template%20-500%20x%20700%20mm-%20-2-.png" width="415" height="233.44" loading="lazy" size="custom"/></picture></span></figure></div>
</div></div><div data-element-id="elm__cOiTFTXBKwJaFdDwcAvfw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_diniPTUVK1srAluvWdTE-Q" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h4
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong><span>What Actually Works</span></strong></h4></div>
<div data-element-id="elm_7x1BBI28dYNVasnINtIaJA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="text-align:left;"></p><div><p>Organizations that successfully improve and maintain their Secure Score approach it systematically:</p><p><br/></p><p>They <strong>understand their current state</strong> before implementing anything. Where are the critical gaps? Which recommendations address real risks versus checking compliance boxes? What's the business impact of each change?</p><p><br/></p><p>They <strong>prioritize strategically</strong>, not by points. High-impact security improvements for their specific environment come first, even if they're worth fewer points than easier changes.</p><p><br/></p><p>They <strong>test before deploying widely</strong>. Pilot changes with a small group. Identify and address issues. Then expand systematically with proper change management.</p><p><br/></p><p>They <strong>build monitoring into operations</strong>. Regular review processes catch drift before it becomes significant. Documentation ensures knowledge doesn't live in one person's head.</p><p><br/></p><p>They <strong>know when to get help</strong>. Some improvements require specialized expertise most internal teams don't have time to develop. Recognizing this early prevents wasted effort on approaches that won't work.</p></div><p style="text-align:left;"></p></div><p></p></div>
</div></div></div><div data-element-id="elm_OgXlxZsrrt6SI2qVnSUWvA" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_-Mmg90cf82ynR1amFtMGuQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_Vx-0p7FsVleKfsxNYug3TA" data-element-type="spacer" class="zpelement zpelem-spacer "><style> div[data-element-id="elm_Vx-0p7FsVleKfsxNYug3TA"] div.zpspacer { height:16px; } @media (max-width: 768px) { div[data-element-id="elm_Vx-0p7FsVleKfsxNYug3TA"] div.zpspacer { height:calc(16px / 3); } } </style><div class="zpspacer " data-height="16"></div>
</div></div></div><div data-element-id="elm_bjEEHvkc1yCx-BEyGGfFyA" data-element-type="row" class="zprow zprow-container zpalign-items-center zpjustify-content-flex-start " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_Q4zSKnRD-LdBFfEw6FYFng" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_tfhCd3amJOz618goLvTruA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_tfhCd3amJOz618goLvTruA"] .zpimage-container figure img { width: 419px !important ; height: 587px !important ; } } @media (max-width: 767px) { [data-element-id="elm_tfhCd3amJOz618goLvTruA"] .zpimage-container figure img { width:415px ; height:233.44px ; } } [data-element-id="elm_tfhCd3amJOz618goLvTruA"].zpelem-image { margin-block-start:26px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Copy%20of%20Copy%20of%20Copy%20of%20Envelope%20Template%20-500%20x%20700%20mm-%20-1-.png" width="415" height="233.44" loading="lazy" size="custom"/></picture></span></figure></div>
</div></div><div data-element-id="elm_4Jp8Qt57e6eUMpKjRfrC6g" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-6 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_Lsiga7oA_Z6iWAZrgp1jiQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h4
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong><span><span>The Path Forward Depends on Your Situation</span></span></strong></h4></div>
<div data-element-id="elm_QvT6TZN9oXdD2N7ddV6KBg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="text-align:left;"></p><div><p></p><div><p>Some organizations can improve their Secure Score significantly with internal resources—if they have the right strategic approach and dedicate consistent effort over time.</p><p><br/></p><p>Others reach a plateau where further improvement requires either:</p><ul><li>Specialized Microsoft 365 security expertise their team hasn't developed</li><li>Time investment their team genuinely doesn't have capacity for</li><li>Licensing and tools their current budget doesn't include</li></ul><p><br/></p><p>Neither scenario is wrong. The question is whether you're willing to accept your current risk level or invest in further improvement.</p><p><br/></p><p>But regardless of which path you choose, attempting Secure Score improvement without a systematic approach leads to wasted effort, broken workflows, and minimal sustained progress.</p></div><p></p></div><p style="text-align:left;"></p></div><p></p></div>
</div></div></div><div data-element-id="elm_SJNi1daO3PM_7wp7Ersb2w" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_a9_3RGSvZIvU3QopJe393Q" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_kkldWLLpYAkSy2aDw8y0aQ" data-element-type="spacer" class="zpelement zpelem-spacer "><style> div[data-element-id="elm_kkldWLLpYAkSy2aDw8y0aQ"] div.zpspacer { height:14px; } @media (max-width: 768px) { div[data-element-id="elm_kkldWLLpYAkSy2aDw8y0aQ"] div.zpspacer { height:calc(14px / 3); } } </style><div class="zpspacer " data-height="14"></div>
</div><div data-element-id="elm_o5V014xZlvxEwz40hIGuOw" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"></style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-align-mobile-center zpdivider-align-tablet-center zpdivider-width100 zpdivider-line-style-solid "><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_4vF-3aZ_ZSspc-c2DyJfHA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong style="color:rgb(0, 27, 76);">See the Strategic Approach In Action</strong></h3></div>
<div data-element-id="elm_7vhCsSfoj1zvoU6fZU2vLw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span>Understanding <em>why</em> most Secure Score improvement efforts fail is one thing. Knowing <em>how</em> to avoid those pitfalls and implement changes that actually stick is another.</span></p></div>
</div><div data-element-id="elm__dcQ8-w2vvCv_K7rnoJnsg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p><strong>Join our security analyst, Kyle Farr, on&nbsp;<span><strong>10th of</strong></span> February 2026</strong>&nbsp;for a live demonstration of strategic Secure Score improvement:</p><ul><li><strong>Current state analysis</strong> - How to assess your score breakdown and identify what actually matters for your risk profile (not just point values)</li><li><strong>Prioritization framework</strong> - The decision criteria for determining which recommendations to tackle first based on business impact and technical dependencies</li><li><strong>Live implementation walkthrough</strong> - Watch a real security control get configured with proper testing and rollback planning</li><li><strong>Monitoring and sustainability</strong> - Building the processes that catch drift before it degrades your security posture</li><li><strong>Q&amp;A for your specific challenges</strong> - Get answers about your environment's blockers and constraints</li></ul></div><p></p></div>
</div><div data-element-id="elm_j8_A8H_b2IF9rzwYHFJR5A" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span>This isn't theory or generic advice. It's a practical demonstration of the systematic approach that separates successful Secure Score improvement from wasted effort.</span></p></div>
</div><div data-element-id="elm_B7HfdqeEPNaHkI6qWGD28g" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span>📅 February 10, 2026 | 4:00 PM - 5:00 PM SAST</span></p></div>
</div><div data-element-id="elm_ghTp-gP12uHOTQWn7Qwbew" data-element-type="button" class="zpelement zpelem-button "><style></style><div class="zpbutton-container zpbutton-align-center zpbutton-align-mobile-center zpbutton-align-tablet-center"><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-oval " href="https://events.teams.microsoft.com/event/0200f51a-7f96-496e-9887-58307aafc957@61521a12-5ef9-4e8d-b880-ea83395070fb" target="_blank"><span class="zpbutton-content">Register For FREE</span></a></div>
</div><div data-element-id="elm_6A-zwmHCULEWLQeNtBKQZQ" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_6A-zwmHCULEWLQeNtBKQZQ"] .zpimage-container figure img { width: 1110px ; height: 624.38px ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Copy%20of%20Copy%20of%20Copy%20of%20Copy%20of%20Copy%20of%20Brown%20Orange%20Photo%20Collage%20Autumn%20Vibes%20LinkedIn%20Post%20%20.png" size="fit" data-lightbox="true"/></picture></span></figure></div>
</div><div data-element-id="elm_1h_dlkmGa2xkx6ZJKc5iaw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span>If you've been stuck between understanding your security gaps and actually addressing them effectively, this is the bridge you need.</span></p></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Thu, 05 Feb 2026 20:45:54 +0000</pubDate></item></channel></rss>