개발자 유튜브를 운영중입니다. 구독 부탁드립니다.
robots.txt 고치기
- public 폴더에 robots.txt 파일을 만든다.
- 아래와 같이 코드를 만든다.
-
Sitemap: https://share.beautifulstore.org/sitemap.xml // 제작된 sitemap 경로 User-agent: * // 모든 검색엔진 (AdsBot 크롤러는 직접 입력해주어야 함) Allow: / // 모든 페이지 접근 허용
-
- 네이버, 구글 웹마스터 도구에 사이트 주소를 등록한다.
- 몇 일 정도 기다린다.
- 검색되는지 확인한다. 끝.
참조 : https://searchadvisor.naver.com/guide/seo-basic-robots
Sitemap 생성하기
yarn add react-router-sitemap // package를 설치한다.
// SitemapRouter.js 파일을 새로 만든다. 사이트맵을 만들고 싶은 경로만 넣는다.
import React from "react";
import { Switch, Route } from "react-router";
export default (
<Switch>
<Route path="/" />
<Route path="/theme" />
<Route path="/parcel" />
<Route path="/customer-center" />
<Route path="/condition" />
<Route path="/privacy-policy" />
<Route />
</Switch>
);
// Dependency 설치
npm install --save-dev babel-cli
npm install --save-dev babel-preset-es2015
npm install --save-dev babel-preset-react
npm install --save-dev babel-register
// SitemapGenerator.js 파일을 만든다.
require("babel-register")({
presets: ["es2015", "react"],
});
const router = require("./SitemapRouter").default; // sitemapRoutes 파일이 있는 경로입니다.
const Sitemap = require("react-router-sitemap").default;
function generateSitemap() {
return new Sitemap(router)
.build("https://www.yoursite.com/") // 업로드 되는 도메인 이름으로 변경해주세요.
.save("./public/sitemap.xml"); // sitemap.xml 파일이 생성될 위치입니다.
}
generateSitemap();
// script에 추가한다.
"sitemap": "babel-node ./yourpath/SitemapGenerator.js", // babel-node를 이용해서 SitemapGenerator를 실행하는 명렁어를 sitemap이라고 명명
"prebuild:development": "npm run sitemap" // prebuild는 빌드 전에 실행하는 사전 실행 명령어이다. 이렇게 세팅해두면 편하다. :development는 build:development였기 때문. build만 할 경우는 :~이하 구문을 삭제한다.
참조 : https://satisfactoryplace.tistory.com/132
더 하면 좋은 일
각 페이지별 metaTag는 react-helmet을 써서 고치도록 한다. 본질적으로는 serverSide Rendering으로 해야 한다. 그러나, 최근에는 CSR에 대한 검색엔진들의 수집능력도 매우 좋아졌기 때문에, 괜찮다고한다. 실제로 해보면, 수집이 되긴 된다. 그러나, 아마도...Next.js 보다는 않좋을 것 같은 게 정설...?
참조 : https://flamingotiger.github.io/frontend/react/react-helmet/
개발자 유튜브를 운영중입니다. 구독 부탁드립니다.
'React & TypeScript > React' 카테고리의 다른 글
React useEffect (included api 호출) 가 있는 컴포넌트 분리 방법 (0) | 2022.04.29 |
---|---|
Build 이후 흰 화면만 나오는 이유 (로컬 index.html 안열리는 이유, react-router, 파일 프로토콜, http 프로토콜) (0) | 2021.09.16 |
[React] cypress를 활용한 React 테스트 (feat. 시나리오 테스트, E2E Test) (0) | 2021.08.25 |
여러개의 state 값을 1개의 객체로 관리하는 방법 (0) | 2021.06.17 |
[React] useState 활용해서 사전에 객체의 Template 설정해야 하는 이유 (0) | 2021.04.28 |
[React] useCallback / useMemo (0) | 2021.04.13 |
[React] 자식 컴포넌트에서 부모로 데이터 보내기 (child -> parent) by React Hook (0) | 2021.03.30 |
댓글