Strapi로 NextJS 웹사이트에서 SEO를 관리하는 방법
12331 단어 graphqlnextjsjavascriptwebdev
안녕 친구, 이 기사에서는 NextJS을(를) 사용하여 Strapi CMS 웹사이트에서 검색 엔진 최적화(SEO)를 동적으로 처리하는 방법을 설명하겠습니다.
설정
이 문서의 목적은 로컬 컴퓨터에서 NextJS 또는 Strapi를 설정하는 방법을 알려주는 것이 아닙니다. 따라서 이러한 기술을 처음 사용하는 경우 프로젝트를 시작하고 실행하는 데 유용한 몇 가지 링크가 있습니다.
스트라피
다음
설정을 완료하셨습니까?
다음 단계에 따라 Strapi에서 콘텐츠 유형을 설정해 보겠습니다.
Content-Type Builder
를 클릭합니다.create new collection type
를 클릭합니다.이제 컬렉션 유형을 만드는 방법을 알았으므로 웹 사이트의 페이지에 대한 검색 엔진 최적화를 관리하기 위해 두 가지 컬렉션 콘텐츠 유형을 만듭니다.
먼저 다음을 포함하는 두 개의 필드가 있는
Seo Meta Tag
컬렉션 유형을 만듭니다.property
: 이것은 텍스트 필드입니다. content
: 이것은 텍스트 필드이기도 합니다다음으로 두 개의 필드가 있는
SEO
컬렉션 유형을 만듭니다.Title
: 이것은 텍스트 필드입니다. seo_meta_tags
: 아래 이미지와 같이 여러 SEO 메타 태그가 특정 SEO 컬렉션에 속하는 관계 필드입니다이제 모음 유형 만들기를 완료했습니다. 웹 사이트 페이지에서 콘텐츠를 관리하려면
single content-type
를 만들어야 합니다. 이 콘텐츠 유형에서 생성한 seo 컬렉션과의 관계를 추가합니다.다음으로 사이드바의 콘텐츠 관리자로 이동하여 그에 따라 모든 콘텐츠를 업데이트하고 모두 게시하여 코딩을 시작할 수 있습니다.
그러나 시작하기 전에 콘텐츠 유형에 대한 공개 액세스를 활성화해야 합니다. 따라서 설정 -> 역할 -> 공개로 이동하여 만들고 저장한 모든 콘텐츠 유형에 대해
find
또는/및 findOne
를 활성화해야 합니다.코딩을 시작하자!!!
먼저 strapi에서 데이터를 가져오는 데 필요한 쿼리를 만듭니다. 루트 디렉터리에
graphql
라는 폴더를 만들고 graphql 폴더 안에 HomePageQuery.ts
라는 파일을 만듭니다. HomePageQuery.ts 파일 내에 다음 코드를 추가합니다.// /graphql/HomePageQuery.ts
import { gql } from "@apollo/client";
export default gql`
# Write your query or mutation here
query HomePage {
homePage {
data {
attributes {
seo {
data {
attributes {
Title
seo_meta_tags {
data {
attributes {
property
content
}
}
}
}
}
}
}
}
}
}
`;
다음으로
/pages/index.tsx
의 코드를 다음 코드로 바꿉니다.// /pages/index.tsx
import type { NextPage } from "next";
import client from "../apollo-client";
import query from "../graphql/HomePageQuery";
export async function getStaticProps() {
const { data } = await client.query({
query,
});
// data being fetched through the query. In this case we get the seo object which contains the title and meta tags
/**
* content = {
* seo: {
* Title: <whatever title you set on strapi dashboard>,
* seo_meta_tags: {
* data: {attributes: {property: <set-data>, content: <set-data>}}
* }
* }
* }
*/
const content = data.homePage.data.attributes;
return {
props: {
content,
},
};
}
const Home: NextPage = () => {
return <div></div>;
};
export default Home;
페이지에 대한
getStaticProps
메서드의 props에 seo 개체를 전달했기 때문에 /pages/_app.tsx
~ pageProps
에서 액세스할 수 있으므로 이제 모든 페이지에 대한 seo 데이터를 관리하는 중심점을 가질 수 있습니다. 따라서 해당 파일/pages/_app.tsx
의 코드를 다음 코드로 업데이트하게 됩니다.// /pages/_app.tsx
import "../styles/globals.css";
import type { AppProps } from "next/app";
import Head from "next/head";
function MyApp({ Component, pageProps }: AppProps) {
const seoDetails = pageProps?.content?.seo.data.attributes || {};
return (
<>
<Head>
<title>{seoDetails.Title}</title>
{seoDetails.seo_meta_tags &&
seoDetails.seo_meta_tags.data.map(({ attributes }: any, i: any) => (
<meta key={i} {...attributes} />
))}
</Head>
<Component {...pageProps} />
</>
);
}
export default MyApp;
서버를 시작하고 웹 브라우저에서 웹 사이트를 열면 업데이트한 페이지의 제목이 변경된 것을 알 수 있으며 개발자 도구를 사용하여 메타 태그도 확인할 수 있습니다.
결론
이 기사에서 우리는 strapi 및 nextjs 프로젝트를 생성할 수 있었고 콘텐츠 유형을 정의하고 콘텐츠를 추가했으며 strapi의 데이터를 처리하기 위해 nextjs 프로젝트에 논리를 추가할 수도 있었습니다. 이 프로젝트의 코드는 here에서 찾을 수 있습니다.
많은 시각적 설명이 필요하기 때문에 기사를 따라가기가 어려울 수 있음을 이해합니다. 이 경우 . 최대 50명의 구독자를 확보할 수 있도록 도와주시면 이 기사에 대한 자세한 설명을 위해 동영상을 올릴 것입니다.
와github에서 나를 팔로우하고 내 게시물을 좋아하고 공유하는 것을 잊지 마십시오.
감사.
Reference
이 문제에 관하여(Strapi로 NextJS 웹사이트에서 SEO를 관리하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ayo_tech/how-to-manage-seo-on-your-nextjs-website-with-strapi-3h27텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)