Next.js에서 SEO를 개선하는 방법
9091 단어 frontendjavascriptnextjs
먼저 Next.js 앱을 만들어야 합니다. Next.js를 처음 사용하는 경우 이 게시물을 따라 Next.js 애플리케이션 스캐폴딩을 생성하십시오.
당신은 여기 있습니다. 이미 Next.js 스켈레톤을 설정했고 앱이 http://localhost:3000 에서 실행 중이라고 가정하는 것이 타당합니다.
이때 소스 페이지 보기를 하면 HTML과 CSS가 보입니다. 메타 태그, 제목 및 메타 설명도 볼 수 있습니다. 그러나 Next.js 앱에 새 경로를 추가하면 이를 볼 수 없습니다.
경로가 암호로 보호되어 있으면 검색 엔진 크롤러에 표시되지 않기 때문에 페이지에 제목과 메타 설명을 추가하지 않는 것이 좋습니다. 그러나 SEO가 중요하다면 제목과 설명을 추가해야 합니다.
두 가지 방법이 있습니다. index.js를 열고 다음을 검색합니다.
<Head>
<title>Create Next App</title>
<meta name="description" content="Generated by create next app" />
<link rel="icon" href="/favicon.ico" />
</Head>
코드를 복사하여 모든 경로에 붙여넣을 수 있습니다. 그리고 모든 경로 파일의 맨 위에 다음 코드를 추가하는 것을 잊지 마십시오.
import Head from 'next/head'
Next.js에서 이를 수행하는 또 다른 방법이 있으며 여기에서 _app.js 파일에 헤드를 추가하여 수행할 수 있습니다. 계속 진행하기 전에 반응 라이브러리에서 Fragment를 가져와야 합니다.
import '../styles/globals.css'
import Head from "next/head";
import {Fragment} from "react";
function MyApp({ Component, pageProps }) {
return (
<Fragment>
<Head>
<title>My Next App</title>
<meta description="Helle there. This is the Next.js App" />
</Head>
<Component {...pageProps} />
</Fragment>
)
}
export default MyApp
그게 다야. 진행하기 전에 테스트하고 싶습니다. 페이지 디렉터리 아래에 새 파일 home.js를 만들어 새 경로(/home)를 만들어 봅시다.
다음 콘텐츠를 추가합니다.
function HomePage() {
return (
<div>
This is the Home Page
</div>
)
}
export default HomePage
URLhttp://localhost:3000을 방문하여 소스 페이지를 보거나 검사 요소를 검사할 시간입니다. 페이지의 제목과 설명이 표시됩니다.
여기에 또 다른 캐치가 있습니다. URLhttp://localhost:3000/을 방문하여 검사 요소를 수행하는 경우. _app.js에서 추가한 제목과 설명을 찾을 수 없습니다. 왜요? Next.js에서 경로의 Head 태그는 _app.js 파일의 Head 태그를 대체합니다. 단순히 최신 값으로 Head를 병합하고 업데이트합니다. 이 경우 index.js 파일에 제목을 정의했습니다. index.js 파일의 제목으로 Head 태그(_app.js에서)를 업데이트합니다.
Lang 속성 및 메타 설명
이 시점에서 Lighthouse 보고서를 생성하면 오류 요소에 [lang] 속성이 없는 것을 볼 수 있습니다.
lang 속성은 검색 엔진에 필수적입니다. 따라서 항상 lang 속성을 추가하는 것이 좋습니다.
lang 속성을 추가하려면 페이지 폴더 아래에 새 파일 _document.js를 만듭니다. _docuement.js 파일은 완전한 HTML 문서를 관리합니다.
_app.js 파일과 달리 클래스 기반 구성 요소입니다.
import Document from "next/document";
import {Html, Head, Main, NextScript } from "next/document";
class AppDocument extends Document {
render() {
return(
<Html lang="en">
<Head>
<meta name="description" content="This is my App description."/>
</Head>
<body>
<Main></Main>
<NextScript></NextScript>
</body>
</Html>
)
}
}
export default AppDocument
등대 보고서를 다시 생성하면 SEO 점수가 100%로 표시되는 것을 확인할 수 있습니다.
지금은 여기까지입니다. 다음 글에서 뵙겠습니다.
Reference
이 문제에 관하여(Next.js에서 SEO를 개선하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/akuks/how-to-improve-seo-in-next-js-mlb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import Document from "next/document";
import {Html, Head, Main, NextScript } from "next/document";
class AppDocument extends Document {
render() {
return(
<Html lang="en">
<Head>
<meta name="description" content="This is my App description."/>
</Head>
<body>
<Main></Main>
<NextScript></NextScript>
</body>
</Html>
)
}
}
export default AppDocument
Reference
이 문제에 관하여(Next.js에서 SEO를 개선하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/akuks/how-to-improve-seo-in-next-js-mlb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)