The kind of artefacts you're seeing - the squares - are often caused by not sampling some pixels within the blur range. Since you're only using 9 samples, and your blur is quite soft, this is likely the case here. You're effectively blurring a lower-resolution image, but the next fragment over is blurring a slightly different lower-resolution image, and so on.
There are many approaches to blurring, but since you specifically mention Gaussian blur, I present two options without changing the blurring algorithm:
- Use more samples within your blur range, so that you're not skipping over pixels in the original image; or
- Downsample the image first, so that, at the resolution you're blurring, you're not skipping pixels.