"Disable Javascript" prevents internal links from being rendered

This has an important SEO implication. I just noticed that my internal "Document" links that are rendered through an html serializer don't render when I disable javascript through the dev tools. This means that the links might not be visible to the web crawler.

I'm using the v2 of @prismicio/react and @prismicio/helpers

My html serializer is defined in the global settings

<PrismicRichText field={slice.primary.content.richText} />

My html serializer looks like this

const htmlSerializer = {
  hyperlink: ({ node, children, key }) => {
    let result = '';
    const url = asLink(node.data, linkResolver);

    if (node.data.link_type === 'Document') {
      result = (
        <InternalLink key={key} to={url}>
          {children}
        </InternalLink>
      );

I just wanted to follow up on this as it's quite critical. I just noticed in the website I linked above, some of the tags are not within the source code and instead are loaded only as you scroll down the page.

Do you have any idea why it would be happening only on certain links?

This can be damaging to SEO. Could you please have a look at this?

I think I found what's the problem. I didn't define PrismicProvider in gatsby-ssr, only in gatsby-browser. This means that some of my Prismic settings only loaded after initial load (crucially my html serializer) -> Understanding the Gatsby lifecycle | by Dennis Brotzky | Narative | Medium

For reference, I looked at this starter blog and I saw that it was included in both the gatsby ssr and gatsby browser, which wasn't clear before that

1 Like