안녕하세요

블로그 수익 좀 올려보려는데 쉽지가 않네요. 다들 수익이 좀 나시는지요?
구글 서치콘솔에서 막 색인생성이 안된다고 해서 여기 저기 찾다보니
1. 티스토리 스킨 수정해서 아래 처럼 소스를 넣어놓아야 하는게 좋다고 ChatGPT와 몇일간의 상담? 끝에 정리했습니다.
특별히 반응형 스킨을 쓰는 분들은 구글 서치콘솔이 /m/번호 붙은거는 색인생성 못한다고 하는거가 있으서 마음이 상했는데 그거도 깔끔하게 잡을 것 같습니다.
만들어 놓은 글은 많은거 같은데 구글에서 색인안만들어주는것 같아서 섭섭하셨던 분들 도움이 되시길 바랍니다.


[아래 내용을 바꿔치기 하시면 됩니다. 여기 소유권검증 부분은 본인들 블로그에 맞는부분으로 교체해야 합니다.]
[중간중간 본인 블로그에 해당하는 부분은 교체하세요]
<head>
<!-- 기본 세팅 -->
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
<!-- 소유권/검증 -->
<meta name="google-site-verification" content="****************************" />
<meta name="naver-site-verification" content="*******************************" />
<meta name="msvalidate.01" content="**************************" />
<!-- 기본 SEO -->
<title>[죽어가는 블로그 살려보기] ChatGPT 가 알려주는 티스토리 스킨 커스터마이징 방법</title>
<meta name="title" content="[죽어가는 블로그 살려보기] ChatGPT 가 알려주는 티스토리 스킨 커스터마이징 방법 :: TechOracle - 코드와 AI로 분석하고 예측하는 시장과 세상" />
<meta name="robots" content="index,follow,max-snippet:-1,max-image-preview:large,max-video-preview:-1" />
<meta name="author" content="신고해석자 | Signal of My Life" />
<meta name="description" content="일상 신호를 읽어주는 마음 컨설팅 블로그" />
<meta name="keywords" content="신호해석, 마음컨설팅, 일상심리, 스트레스관리" />
<!-- Canonical(초기값) + RSS -->
<link id="canonical" rel="canonical" href="https://iotnbigdata.tistory.com//808" />
<link rel="alternate" type="application/rss+xml" title="TechOracle - 코드와 AI로 분석하고 예측하는 시장과 세상" href="https://iotnbigdata.tistory.com/rss" />
<!-- Open Graph -->
<meta property="og:site_name" content="Signal of My Life" />
<meta property="og:type" content="website" />
<meta property="og:title" content="[죽어가는 블로그 살려보기] ChatGPT 가 알려주는 티스토리 스킨 커스터마이징 방법" />
<meta property="og:description" content="일상 신호를 읽어주는 마음 컨설팅" />
<meta property="og:url" content="https://iotnbigdata.tistory.com//808" />
<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="[죽어가는 블로그 살려보기] ChatGPT 가 알려주는 티스토리 스킨 커스터마이징 방법" />
<meta name="twitter:description" content="일상 신호를 읽어주는 마음 컨설팅" />
<!-- Assets -->
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/xeicon@2.3.3/xeicon.min.css">
<link rel="stylesheet" href="./style.css" />
<script src="//t1.daumcdn.net/tistory_admin/lib/jquery/jquery-1.12.4.min.js"></script>
<script src="//t1.daumcdn.net/tistory_admin/assets/skin/common/vh-check.min.js"></script>
<script src="./images/common.js" defer></script>
<script>(function(){ try{ vhCheck(); }catch(e){} }());</script>
<!-- URL/모바일 정규화 + Canonical/OG/Robots 보정 (모바일 동적 수정 대응판) -->
<script>
(function () {
function compute() {
var loc = location;
var path = loc.pathname || "/";
var isMobile = /^\/m(?:\/|$)/.test(path);
var cleanPath = path.replace(/^\/m(\/?)/, "/") || "/";
// 홈/카테고리/태그(목록) 페이지만 일부 쿼리 보존
var isHome = cleanPath === "/";
var isCategory = /^\/category\//.test(cleanPath);
var isTag = /^\/tag\//.test(cleanPath);
var isListing = isHome || isCategory || isTag;
var sp = new URLSearchParams(loc.search);
var keep = new URLSearchParams();
if (sp.has("page")) keep.set("page", sp.get("page"));
if (isListing) ["category","tag"].forEach(function(k){ if (sp.has(k)) keep.set(k, sp.get(k)); });
var canonicalAbs = loc.origin + cleanPath + (keep.toString() ? ("?" + keep.toString()) : "");
return { canonicalAbs: canonicalAbs, isMobile: isMobile };
}
function apply() {
try {
var cfg = compute();
// canonical (하나만 유지)
var links = document.querySelectorAll('link[rel="canonical"]');
var link = links[0];
if (!link) {
link = document.createElement("link");
link.rel = "canonical";
document.head.appendChild(link);
}
link.href = cfg.canonicalAbs;
for (var i = 1; i < links.length; i++) {
links[i].parentNode && links[i].parentNode.removeChild(links[i]);
}
// robots (모바일은 noindex)
var robots = document.querySelector('meta[name="robots"]');
if (!robots) {
robots = document.createElement("meta");
robots.name = "robots";
document.head.appendChild(robots);
}
robots.setAttribute("content",
cfg.isMobile
? "noindex,follow"
: "index,follow,max-snippet:-1,max-image-preview:large,max-video-preview:-1"
);
// og:url 갱신
var ogUrls = document.querySelectorAll('meta[property="og:url"], meta[name="og:url"]');
if (ogUrls.length === 0) {
var m = document.createElement("meta");
m.setAttribute("property", "og:url");
document.head.appendChild(m);
ogUrls = [m];
}
ogUrls.forEach(function (m) { m.setAttribute("content", cfg.canonicalAbs); });
// og:type — 글 상세면 article
var ogType = document.querySelector('meta[property="og:type"]');
if (!ogType) {
ogType = document.createElement("meta");
ogType.setAttribute("property", "og:type");
document.head.appendChild(ogType);
}
var isArticle =
(window.T && window.T.entryInfo && window.T.entryInfo.entryId) ||
/(entry|article|post|page|tt-body-(?:page|article|entry))/i.test((document.body && document.body.id) || "");
ogType.setAttribute("content", isArticle ? "article" : "website");
// description 중복 제거
var descs = document.querySelectorAll('meta[name="description"]');
for (var j = 1; j < descs.length; j++) {
descs[j].parentNode && descs[j].parentNode.removeChild(descs[j]);
}
// JSON-LD 내부 URL 정규화
function toCanon(u) {
try {
var a = new URL(u, location.origin);
a.pathname = (a.pathname || "/").replace(/^\/m(\/?)/, "/") || "/";
var q = new URLSearchParams(a.search);
var keep = new URLSearchParams();
if (q.has("page")) keep.set("page", q.get("page"));
var p = a.pathname;
var listing = (p === "/" || /^\/category\//.test(p) || /^\/tag\//.test(p));
if (listing) ["category","tag"].forEach(function(k){ if(q.has(k)) keep.set(k, q.get(k)); });
a.search = keep.toString() ? ("?" + keep.toString()) : "";
a.hash = "";
return a.href;
} catch (e) { return u; }
}
document.querySelectorAll('script[type="application/ld+json"]').forEach(function (s) {
try {
var d = JSON.parse(s.textContent);
(function walk(o) {
if (!o || typeof o !== "object") return;
if (typeof o.url === "string") o.url = toCanon(o.url);
if (typeof o["@id"] === "string") o["@id"] = toCanon(o["@id"]);
if (o.mainEntityOfPage) {
if (typeof o.mainEntityOfPage === "string") o.mainEntityOfPage = toCanon(o.mainEntityOfPage);
else if (typeof o.mainEntityOfPage === "object" && typeof o.mainEntityOfPage["@id"] === "string") {
o.mainEntityOfPage["@id"] = toCanon(o.mainEntityOfPage["@id"]);
}
}
Object.keys(o).forEach(function (k) { walk(o[k]); });
})(d);
s.textContent = JSON.stringify(d);
} catch (e) {}
});
} catch (e) {}
}
// 1회 적용
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", apply);
} else {
apply();
}
// head 변동 감지(모바일 번들 주입 대응)
var mo = new MutationObserver(function (muts) {
for (var i = 0; i < muts.length; i++) {
var m = muts[i];
if (m.type === "childList" || m.type === "attributes") {
clearTimeout(apply._t);
apply._t = setTimeout(apply, 50);
break;
}
}
});
try {
mo.observe(document.head, {
subtree: true,
childList: true,
attributes: true,
attributeFilter: ["content", "href", "property", "name"]
});
} catch (e) {}
})();
</script>
</head>
2. 그리고 반응형 스킨은 기본적으로 모바일에도 최적화 해서 보이기 때문에 꾸미기-모바일에서 설정을 사용하지 않는 것으로 하는게 좋다고 합니다.

도움되시기를 바랍니다.
궁금하신 사항이 있으시면 문의주시면 답변드리겠습니다.