SXGs Validator doesn’t validate my site anymore

Hi, guys

Some time ago (in the beginning of the May) I enabled Automatic Signed Exchanges (SXGs) for my site
All worked fine, I could check it with SXGs Validator Chrome plugin and receive all ok marks for my pages like for


I checked my site with as described in the and received great results with improved LCP marks.

But now SXGs Validator doesn’t work for my site and always receives text/html content instead of SXGs:

I tried to debug my site by curl:

curl -siH 'Accept: application/signed-exchange;v=b3' | less

curl -siH 'Accept: application/signed-exchange;v=b3' | less

and received the responses with content-type: application/signed-exchange;v=b3

Also, I checked with dump-signedexchange:

dump-signedexchange -verify -uri | head -n31

and received The exchange has a valid signature.

I checked the Google search results

And found proper data-sxg-url attribute pointing to’s copy.

I checked the crowled page in the Google Search Console URL Inspection Tool and found content-encoding: mi-sha256-03 and digest: mi-sha256-03=... headers which indicates that Google successfully crawled the SXG version and SXGs is working properly for my zone.

Also, I retested with and It seems like it works fine:,220714_AiDcZZ_4AD

But what is going wrong with SXGs Validator? I checked the code of the plugin and there are no updates since I enabled the SXGs Cloudflare feature

One weird sing I have found is that the validator sends a request to the site with the header:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3

not only with

Accept: application/signed-exchange;v=b3

and my test with curl and same header also returns content-type: text/html; charset=utf-8:

curl -siH 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3' | less

So it seems like something changed on the Cloudflare side. Maybe something changed in the Content Negotiation and if the client is accepted both contents text/html and application/signed-exchange with the same q=1 parameter the publisher prefers to return HTML instead of SXGs content.

Please advise, what going wrong and what I have to do to fix my SXGs content If I have to do anything.

And also I have some questions regarding the Cloudflare SXGs feature:

  1. How often the SXGs content is updated in the cache?
  2. Do I need to update the SXGs cache after updating my site and if yes how I can do this?

Thank you for your help.

Hi there, I see the SXG Validator plugin developers realized the fix which change the request header to prefer SXG above all other content.
It fixes my issue. But I would be grateful to receive comments on my ticket and answers to my questions at the bottom of the ticket.

same issues here. stoped working with curl command as well about a week or 2 ago…must be Cloudflare issue

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.