fix(seo): Fix undefined host in canonical tags of product pages #814
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What's the purpose of this pull request?
While SSR, we generated canonical tags with the SSR host. The SSR host was
undefined
which made us to generate canonical link tags like:https://undefined/<pathname>
To prevent this problem, we generate relative canonical tags with
/<pathname>
during SSR and hydrate it withhttps://<host>/<pathname>
once the React hydration kicks in.With this I hope to solve the problem of product pages having invalid canonicals.
You may be wondering now why don't we just fix the
host
value during SSR to the same domain as we are going to serve the production server. The response to this question is that we use lighthouse to test these urls in a different domain, and if lighthouse sees that the canonical points to a different domain, it will break with an error. To circumvent this issue we do this hydration strategyHow to test it?
https://github.com/vtex-sites/btglobal.store/pull/706
https://github.com/vtex-sites/marinbrasil.store/pull/549
https://github.com/vtex-sites/storecomponents.store/pull/1019