I've seen (and think I understand) when DMARC checks fail on SPF because, e.g. the email has been forwarded and such like. But I don't think this is the case here. All checks on sites like MXtoolbox pass, but I get occasional failure reports like this (our web host is SiteGround):
<record>
<row>
<source_ip>185.56.87.12</source_ip>
<count>1</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf> <---- Note failure here
</policy_evaluated>
</row>
<identifiers>
<header_from>domain.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>domain.com</domain>
<result>pass</result>
<selector>default</selector>
</dkim>
<spf>
<domain>uk53.siteground.eu</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
The source IP belongs to SiteGround (as confirmed by whois) so this doesn't appear to be a case of email forwarding. On a check on MXtoolbox you can see our SPF records include _spf.mailspamprotection.com:
Which in turn includes 185.56.87.0/24:
So I don't understand why it's saying SPF has failed. Can someone explain it to me?