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 https://zutobi.com/
All worked fine, I could check it with SXGs Validator Chrome plugin and receive all ok marks for my pages like for https://zutobi.com/uk

image

I checked my site with https://www.webpagetest.org/ as described in the https://developer.chrome.com/blog/optimizing-lcp-using-signed-exchanges/#analyze 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:

https://drive.google.com/file/d/1keVSI3ChnKm4UV49SwDrjEgHdibWRjG_/view

I tried to debug my site by curl:

curl -siH 'Accept: application/signed-exchange;v=b3' https://zutobi.com/uk | less

curl -siH 'Accept: application/signed-exchange;v=b3' https://zutobi-com.webpkgcache.com/doc/-/s/zutobi.com/uk | less

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

Also, I checked with dump-signedexchange:

dump-signedexchange -verify -uri https://zutobi.com/uk | head -n31

and received The exchange has a valid signature.

I checked the Google search results https://www.google.com/search?q=zutobi+uk

https://drive.google.com/file/d/1a1ROROmjdNhE-82ej8LTc_kYRsrFOA9n/view?usp=sharing

And found proper data-sxg-url attribute pointing to webpkgcache.com’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 https://www.webpagetest.org/ and It seems like it works fine: https://www.webpagetest.org/video/compare.php?tests=220714_AiDcTH_4F2,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 https://github.com/google/sxg-validator

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' https://zutobi.com/uk | less

So it seems like something changed on the Cloudflare side. Maybe something changed in the Content Negotiation https://github.com/google/webpackager/blob/main/cmd/webpkgserver/README.md#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 webpkgcache.com 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 https://github.com/google/sxg-validator/pull/14/commits/bb97184b05fd543ef8579f9fed11aef7479ed699 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.
Thanks

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.