10

I'm using a custom _document.js from Next documentation. In result, I keep getting a warning message printed out to the console. I've tried to restart my server and emptied my browser's cache. My _document.js is inside a "pages" folder as it should be. I made sure that the file is being readen by adding some tags to my <Head> and inspecting my website to see if the tag is being added to the <Head>. (My website is working correctly I'm just tired of this warning message.)

Console warning:

Warning: next-head-count is missing. https://err.sh/next.js/next-head-count-missing

This is my _document.js file:

import Document, { Html, Head, Main, NextScript } from 'next/document'

class MyDocument extends Document {
  static async getInitialProps(ctx) {
    const initialProps = await Document.getInitialProps(ctx)
    return { ...initialProps }
  }

  render() {
    return (
      <Html>
        <Head>
          <link rel="icon" type="image/x-icon" href="/static/favicon.ico" />
        </Head>
        <body>
          <Main />
          <NextScript />
        </body>
      </Html>
    )
  }
}

export default MyDocument
Michal K
  • 213
  • 2
  • 3
  • 10
  • Your `_document.js` looks fine to me. Have you tried removing the `.next` folder and start the dev server again? – hangindev.com Jun 16 '20 at 02:38
  • 1
    I tried removing node_modules and .next folders. I just found a solution and posted it below. Anyway thanks for your help! – Michal K Jun 17 '20 at 06:42

7 Answers7

11

This error also shows up when an unsupported html tag is entered added into the <Head> tag.

In my case I had accidentally added a <p>...</p> tag within the <Head>...</Head> tag in a component, which was throwing this error.

Rishit Sinha
  • 425
  • 3
  • 6
5

Apparently I had a <head> tag inside index.html as well. After removing it the error was gone. There is nothing wrong with my _document.js. I was importing style in a separate <head> inside index.js, that's why the error occurred.

Solution: I moved <head> content from index.js to _document.js and removed the <head> tag from index.js.

Michal K
  • 213
  • 2
  • 3
  • 10
5

I had the same issue and it was related to the <html lang="en" /> inside the <Head> tag.

Netinel
  • 101
  • 1
  • 2
2

In my case, there was an incorrect html tag inside next's Head component. 90% of this error means that something wrong with the content inside Head. Try to remove elements inside Head one by one and you will find what causes the issue.

A. Askarov
  • 625
  • 7
  • 13
1

In my case, the Head component imported from next/Document was in the custom _document, but it was within the body tag, moving it within the Html component and outside of the body tag fixed it.

// Incorrect
export default class MyDocument extends Document {
  render (): JSX.Element {
    return (
      <Html>
        <body>
          <Head />
          <Main />
          <NextScript />
        </body>
      </Html>
    );
  }
}


// Correct
export default class MyDocument extends Document {
  render (): JSX.Element {
    return (
      <Html>
        <Head />
        <body>
          <Main />
          <NextScript />
        </body>
      </Html>
    );
  }
}
eliastouil
  • 500
  • 3
  • 11
1

In my case "Convert HTML to JSX" vscode extension added a wrapper div tag in the next/head component. I removed div tag and the warning gone.

M.Islam
  • 1,184
  • 2
  • 13
  • 16
0

For me, I had a custom component <MobileView> in the <Head>. So changing that did the trick.

cigien
  • 57,834
  • 11
  • 73
  • 112
Leo Getz
  • 69
  • 1
  • 2