Changing `noIndex` in global SEO settings doesn't trigger Cache Tag invalidation webhook

As title states - it’s clunky to run an invalidation for a website on global SEO setting changes when using Cache Tags, probably with “old” cache strategies as well. We need to manually go to an outdated page and republish it to trigger invalidation, or run an invalidation manually via Postman or similar.

Is this intended behaviour? Should we invest time in adding a “Trigger invalidation” button via a custom plugin?

Thanks!

Hmm, good catch @emil.hernqvist! Let me check with the devs on this to make sure it’s not an oversight

Hi @emil.hernqvist,

We looked into this and tried to reproduce the failure, but it actually seems to be working right for us. In our very basic example, we:

  • Created a model with a SEO field

  • Configured the global SEO fallback

  • Added a webhook on cache tag invalidation

  • Created a record and filled in one SEO field but left the others blank (for the fallback)

  • Made a GraphQL query on that record like:

    query MyQuery {
      exampleModel {
        _seoMetaTags {
          attributes
        }
      }
    }
    
  • Confirmed that it was fetching the fallback values

  • Changed the global SEO fallback values

  • Confirmed that an invalidation webhook got sent with a single cache tag

  • Fetched the same GraphQL query (with a x-cache-tags: true header set)

  • Confirmed that the web hook cache tag was also in the returned GraphQL query cache tag

Could you please double-check your setup (e.g. make sure the cache tag header is added to graphql, make sure the query is actually fetching _seoMetaTags.attributes, etc.? And if that still doesn’t work, could you please provide a reproduction (either in code, or a screen recording, etc.?)

Hmm yeah, that sounds reasonable. I will have a look, it may very well be our queries that differ. That would make sense!

Thanks for the thorough support :pray:

1 Like

No problem! If it’s still an issue, please do share with us some sample queries, code, etc. – whatever you can reproduce – and we’ll look into it again!