70
/ 100
이전 분석 대비 변화
prev analysis #204
점수 변화
-20
신규 이슈
41
해결된 이슈
1
신규 referring domain
0
🔴 신규 critical: [duplicate] '미분류 - 프레서 - 블로그' 제목을 가진 페이지 2건 중복 (예: https://blog-presser.50.inter…
🔴 신규 critical: [duplicate] '게시글 - 프레서 - 블로그' 제목을 가진 페이지 5건 중복 (예: https://blog-presser.50.inter…
🔴 신규 critical: [duplicate] '즐겨찾기 - 프레서 - 블로그' 제목을 가진 페이지 2건 중복 (예: https://blog-presser.50.int…
🔗 신규 broken: [INT 404] https://blog-presser.50.internal.kr/wp-admin/media-new.php
🔗 신규 broken: [INT 404] https://blog-presser.50.internal.kr/wp-admin/post-new.php?post_type=page
🔗 신규 broken: [INT 404] https://blog-presser.50.internal.kr/wp-admin/user-new.php
💀 죽은 백링크: 3건
메타
25
성능
100
헤딩
70
이미지
100
링크
80
모바일
70
로봇
60
키워드
70
스키마
60
GEO
45
보안
78
접근성
87
중복콘텐츠
54
사이트맵
100
내부링크
93
깨진링크
59
백링크
47
평가 요약
전체 이슈
14
Critical
4
Warning
8
Info
2
메타
5건
헤딩
1건
이미지
1건
링크
1건
성능
통과
키워드
2건
모바일
1건
스키마
1건
로봇
2건
Canonical:
없음
JSON-LD:
0개
robots/sitemap:
robots 없음 / sitemap 없음
메타 태그
제목 (0)
설명 (0)
Canonical:
HTML lang:
charset:
UTF-8
오픈 그래프
og:title:
없음
og:description:
없음
og:image:
없음
og:type:
없음
og:url:
없음
Title 태그가 없습니다
Meta Description이 없습니다
누락된 OG 태그: ogTitle, ogDescription, ogImage
Canonical URL이 설정되지 않았습니다
HTML lang 속성이 없습니다
성능
TTFB
2ms
FCP
148ms
DCL
110ms
DOM Complete
110ms
헤딩 구조
H1 태그가 없습니다
이미지
전체: 0
alt 있음: 0
alt 없음: 0
비율: 100%
페이지에 이미지가 없습니다
링크
전체: 0
내부: 0
외부: 0
페이지에 링크가 없습니다
키워드
단어 수: 4
404 (1, 25.00%)
page (1, 25.00%)
not (1, 25.00%)
found (1, 25.00%)
콘텐츠가 4단어로 적습니다 (권장: 300+ 단어)
키워드 밀도가 높은 단어: 404, page, not (5% 초과)
모바일
뷰포트: 없음
가로 스크롤: 없음
viewport meta 태그가 없습니다
스키마.org (JSON-LD)
JSON-LD 블록:
0
@type 감지:
없음
유형:
없음
수집된 JSON-LD 원본 데이터가 없습니다.
Schema.org 구조화 데이터(JSON-LD)가 없습니다
robots 및 사이트맵
robots.txt: 없음
sitemap.xml: 없음
robots.txt가 없습니다
sitemap.xml이 없습니다
보안 헤더
78
✓
HTTPS
✗
HSTS
✗
CSP
✓
nosniff
✗
X-Frame
✗
Referrer-Policy
✗
Permissions-Policy
Strict-Transport-Security (HSTS) 헤더 없음
Content-Security-Policy 없음 — XSS 방어 약화
X-Frame-Options (DENY/SAMEORIGIN) 또는 CSP frame-ancestors 미설정 — clickjacking
Referrer-Policy 헤더 없음
Permissions-Policy 헤더 없음 — browser feature 기본 정책 노출
접근성 (WCAG 2)
87
레이블 없는 input: 0
이름 없는 button: 0
Skip link: 없음
Heading 계층 skip: 0
Alt 누락 이미지: 0
html[lang]:
"본문으로 건너뛰기" 링크 없음 — 키보드 사용자 내비게이션 비효율
html lang 속성 없음 (WCAG 3.1.1) — 스크린 리더 언어 판정 불가
중복 콘텐츠
54
크롤 페이지: 54
중복 title 그룹: 4
중복 desc 그룹: 1
리다이렉트 체인 2+: 6
'게시글 - 프레서 - 블로그' 제목을 가진 페이지 5건 중복 (예: https://blog-presser.50.internal.kr/contents/)
'즐겨찾기 - 프레서 - 블로그' 제목을 가진 페이지 2건 중복 (예: https://blog-presser.50.internal.kr/bookmark/)
'미분류 - 프레서 - 블로그' 제목을 가진 페이지 2건 중복 (예: https://blog-presser.50.internal.kr/category/%eb%af%b8-%eb%b6%84%eb%a5%98/)
'알림판 ‹ 프레서 - 블로그 — 워드프레스' 제목을 가진 페이지 6건 중복 (예: https://blog-presser.50.internal.kr/login/?action=logout&_wpnonce=88b9ef9a84)
동일 meta description 48건 (예: "프로그래밍 개발 노하우, 코드 예제 수록...")
6 페이지가 리다이렉트 2+ hops (예: 2 hops, https://blog-presser.50.internal.kr/login/?action=logout&_wpnonce=88b9ef9a84)
사이트맵 ↔ 크롤 diff
100
sitemap URL: 0
크롤 URL: 0
Orphan: 0
sitemap 누락: 0
sitemap.xml 없음 — orphan 분석 건너뜀
내부 링크 그래프 (PageRank / orphan)
93
페이지: 55
Orphan: 6
Dead-end: 1
평균 inbound: 28.18
평균 outbound: 28.18
nofollow 내부: 48
Top PageRank
https://blog-presser.50.internal.kr/
pr 0.04611 · in 54 · out 0
https://blog-presser.50.internal.kr/contents/
pr 0.02753 · in 48 · out 42
https://blog-presser.50.internal.kr/category/programming/
pr 0.02753 · in 48 · out 36
https://blog-presser.50.internal.kr/category/programming/server/
pr 0.02753 · in 48 · out 32
https://blog-presser.50.internal.kr/category/wp-blog/
pr 0.02753 · in 48 · out 31
https://blog-presser.50.internal.kr/category/wp-coding/wp-file/
pr 0.02753 · in 48 · out 31
https://blog-presser.50.internal.kr/category/wp-coding/wp-func/
pr 0.02753 · in 48 · out 31
https://blog-presser.50.internal.kr/category/wp-coding/wp-shortcode/
pr 0.02753 · in 48 · out 31
https://blog-presser.50.internal.kr/bookmark/
pr 0.02753 · in 48 · out 31
https://blog-presser.50.internal.kr/category/programming/csharp/
pr 0.02753 · in 48 · out 31
Orphan 페이지 (6)
https://blog-presser.50.internal.kr/bookmark
d1
https://blog-presser.50.internal.kr/login/?action=logout&_wpnonce=88b9ef9a84
d1
https://blog-presser.50.internal.kr/login/?action=logout&_wpnonce=bb1dbe342b
d1
https://blog-presser.50.internal.kr/login/?action=logout&_wpnonce=b79c9e7fd5
d1
https://blog-presser.50.internal.kr/login/?action=logout&_wpnonce=5ef8a2516b
d1
https://blog-presser.50.internal.kr/login/?action=logout&_wpnonce=f4d7728465
d1
깨진 링크 (Broken Link Audit)
59
총 링크: 4728
검증됨: 3942
미검증: 786
내부 깨짐: 498
외부 깨짐: 49
샘플
EXT
https://blog.kernl.us/2017/10/introducing-wordpress-license-management-with-kernl/
404
EXT
https://vegibit.com/wordpress-theme-development-tutorial-step-by-step/
500
EXT
https://vegibit.com/the-top-100-most-commonly-used-wordpress-functions/
500
EXT
https://rading.kr/wp-blog/3695
err
EXT
https://chakra-ui.com/getting-started
404
EXT
https://cargo.site/Templates
404
EXT
https://medium.com/
403
EXT
http://uidesignguides.com/screen-size-break-point/
err
EXT
https://openbase.com/categories/js
err
EXT
https://www.thiscodeworks.com/
503
EXT
https://www.thiscodeworks.com/snippets
503
EXT
https://www.babang9.com/259?category=582083
err
EXT
https://www.privacy.go.kr/a3sc/per/inf/perInfStep01.do
404
EXT
https://rading.kr/programming/program/3668/
err
EXT
https://www.tagsfinder.com/ko-kr/
403
메뉴 트리 / 네비게이션 (Google sitelinks 적합도)
공통 내부 링크 / breadcrumb / 사이트 구조 분석
50
크롤 페이지: 55
공통 메뉴: 31
depth≤2 도달: 100%
BreadcrumbList: ✗
SiteNavSchema: ✗
감지된 공통 메뉴 (coverage 내림차순)
프레서 - 블로그
https://blog-presser.50.internal.kr/
98% · 54페이지
미분류
https://blog-presser.50.internal.kr/category/%eb%af%b8-%eb%b6%84%eb%a5%98/
87% · 48페이지
미분류
https://blog-presser.50.internal.kr/category/other/
87% · 48페이지
워드프레스
https://blog-presser.50.internal.kr/category/wp-blog/
87% · 48페이지
개발
https://blog-presser.50.internal.kr/category/wp-blog/wp-dev/
87% · 48페이지
워드프레스 테마
https://blog-presser.50.internal.kr/category/wp-blog/wp-theme/
87% · 48페이지
워드프레스 코딩
https://blog-presser.50.internal.kr/category/wp-coding/
87% · 48페이지
함수
https://blog-presser.50.internal.kr/category/wp-coding/wp-func/
87% · 48페이지
프로그래밍
https://blog-presser.50.internal.kr/category/programming/
87% · 48페이지
C#
https://blog-presser.50.internal.kr/category/programming/csharp/
87% · 48페이지
공통 메뉴가 31개로 너무 많음 (권장 3~10개)
Backlinks (외부 인바운드 링크)
47
총 백링크: 7
Referring 도메인: 7
Dofollow: 85.7%
Alive ratio: 25%
Alive: 1
Dead: 3
미검증: 3
최근 7일: 7
최근 30일: 7
소스:
referer:3
ahrefs:4
Top Referring Domains
news.naver.com
1개 · dofollow 1
velog.io
1개 · dofollow 1
news.example.kr
1개 · dofollow 1
spam.badsite.com
1개 · dofollow 0
dev.to
1개 · dofollow 1
dev-forum.io
1개 · dofollow 1
techblog.example.com
1개 · dofollow 1
최근 발견
https://news.example.kr/article/123
ahrefs · 2026-04-19 19:38
anchor: "블로그 프레서"
https://spam.badsite.com/x
ahrefs · 2026-04-19 19:38
anchor: "link"
https://dev-forum.io/thread/456
ahrefs · 2026-04-19 19:38
anchor: "관련 글"
https://techblog.example.com/seo-tools
ahrefs · 2026-04-19 19:38
anchor: "Prelik SEO"
https://dev.to/someone/writing-seo-tools
referer · 2026-04-19 16:05
https://velog.io/@someone/post-title
referer · 2026-04-19 15:10
https://news.naver.com/article/999
referer · 2026-04-19 14:22
GEO (생성형 검색 최적화)
45
direct_answer
30
qa_structure
40
schema_strength
40
eat_signals
45
citations
30
content_depth
35
keyword_alignment
100
quotations
50
statistics
70
lists
40
FAQPage / HowTo JSON-LD 없음 — AI 검색(ChatGPT/AI Overview)이 Q&A 로 인용하기 어려움
Article/BlogPosting schema 없음 — author/date 명시로 E-E-A-T 강화 권장
본문이 4단어로 얕음 — AI 인용 블록 추출에 400+ 단어 권장
H1 태그 0개 (권장 1개) — 생성형 검색이 핵심 주제 식별 어려움
H1 직후 요약 문단 / TL;DR 섹션 없음 — AI 가 핵심 답변 추출 어려움
추가 권장 체크 로직 (예시)
아래 항목은 데이터 연동 전에도 설계 가능한 규칙 예시입니다. 실제 운영에서는 GSC/백링크 도구 연동 후 점수화하세요.
1) 백링크 품질 점수 (오프페이지)
backlink_score = 0.35*ref_domain_growth + 0.30*high_quality_domain_ratio + 0.20*anchor_naturalness - 0.15*spam_link_ratio 권장 임계값: high_quality_domain_ratio >= 0.6, spam_link_ratio <= 0.1
2) URL-H1 정합성 점수 (완전 일치 필수 아님)
url_h1_alignment = semantic_similarity(url_slug, h1_text) if alignment < 0.45: warning if alignment < 0.30: critical 설명: 문자열 완전 동일보다 주제 일치(semantic) 우선
3) 제목-본문 일치성
title_body_match = 100 if top_keyword_not_in_title: -25 if top_keyword_not_in_description: -20 if intro_missing_core_topic: -15 if final < 70: 개선 필요
4) 내부링크 분배
internal_link_health = 100 if orphan_pages > 0: -min(40, orphan_pages*5) if core_pages_inlinks_avg < 3: -20 if anchor_empty_ratio > 0.1: -15
5) CTR 개선 우선순위 (성과 기반)
priority = impressions * max(0, expected_ctr - current_ctr) 상위 priority 페이지부터 title/meta rewrite -> 14/28일 효과 비교
개선 팁: "URL이 H1과 완전 동일" 같은 단일 규칙보다, 정합성(semantic) + 검색 성과(CTR/노출) + 기술 신호(canonical/schema)를 함께 보는 방식이 더 안정적입니다.
원본 분석 데이터 (저장 JSON)
meta_analysis
{
"score": 25,
"title": {
"content": "",
"length": 0
},
"description": {
"content": "",
"length": 0
},
"og": {
"title": "",
"description": "",
"image": "",
"type": "",
"url": ""
},
"canonical": "",
"lang": "",
"charset": "UTF-8",
"hreflangs": [],
"issues": [
{
"severity": "critical",
"message": "Title 태그가 없습니다"
},
{
"severity": "critical",
"message": "Meta Description이 없습니다"
},
{
"severity": "warning",
"message": "누락된 OG 태그: ogTitle, ogDescription, ogImage"
},
{
"severity": "info",
"message": "Canonical URL이 설정되지 않았습니다"
},
{
"severity": "warning",
"message": "HTML lang 속성이 없습니다"
}
]
}
heading_analysis
{
"score": 70,
"h1_count": 0,
"structure": [],
"issues": [
{
"severity": "critical",
"message": "H1 태그가 없습니다"
}
]
}
image_analysis
{
"score": 100,
"total": 0,
"with_alt": 0,
"without_alt": 0,
"alt_ratio": 100,
"low_quality_alt": 0,
"missing_alt_images": [],
"issues": [
{
"severity": "info",
"message": "페이지에 이미지가 없습니다"
}
]
}
link_analysis
{
"score": 80,
"total": 0,
"internal": 0,
"external": 0,
"issues": [
{
"severity": "warning",
"message": "페이지에 링크가 없습니다"
}
]
}
performance_analysis
{
"score": 100,
"metrics": {
"lcp": 148,
"inp": null,
"cls": 0,
"ttfb": 2,
"fcp": 148,
"dom_content_loaded": 110,
"dom_complete": 110,
"load_event": 110,
"transfer_size": 319
},
"issues": []
}
keyword_analysis
{
"score": 70,
"word_count": 4,
"top_keywords": [
{
"word": 404,
"count": 1,
"density": "25.00",
"variants": {
"404": 1
}
},
{
"word": "page",
"count": 1,
"density": "25.00",
"variants": {
"page": 1
}
},
{
"word": "not",
"count": 1,
"density": "25.00",
"variants": {
"not": 1
}
},
{
"word": "found",
"count": 1,
"density": "25.00",
"variants": {
"found": 1
}
}
],
"issues": [
{
"severity": "warning",
"message": "콘텐츠가 4단어로 적습니다 (권장: 300+ 단어)"
},
{
"severity": "warning",
"message": "키워드 밀도가 높은 단어: 404, page, not (5% 초과)"
}
]
}
geo_analysis
{
"score": 45,
"sub_scores": {
"direct_answer": 30,
"qa_structure": 40,
"schema_strength": 40,
"eat_signals": 45,
"citations": 30,
"content_depth": 35,
"keyword_alignment": 100,
"quotations": 50,
"statistics": 70,
"lists": 40
},
"signals": {
"h1_count": 0,
"h2_count": 0,
"h3_count": 0,
"question_headings": 0,
"has_faq_page": false,
"has_article": false,
"has_how_to": false,
"has_breadcrumb": false,
"external_links": 0,
"word_count": 4,
"blockquotes": 0,
"quote_sentences": 0,
"stat_sentences": 1,
"percent_occurrences": 0,
"ul_count": 0,
"ol_count": 0,
"table_count": 0,
"li_total": 0,
"tldr_markers": false,
"has_direct_answer": false
},
"improvements": [
"FAQPage JSON-LD 추가 — 핵심 Q&A 3-5개를 mainEntity.Question 으로 마크업하면 AI 인용 확률 상승",
"H2/H3 을 \"~는 무엇인가?\", \"왜 ~할까?\" 같은 질문 형태로 재구성 → 직접 답변 추출에 유리",
"각 섹션 앞에 1-2 문장 요약(TL;DR) 배치 + 근거 데이터/예시 추가로 400+ 단어 확보",
"Article schema 의 author(Person) / datePublished / dateModified 명시 — E-E-A-T 신호",
"신뢰할 만한 외부 출처 2-3개 인용 — AI 는 근거 있는 콘텐츠를 선호"
],
"issues": [
{
"severity": "warning",
"message": "FAQPage / HowTo JSON-LD 없음 — AI 검색(ChatGPT/AI Overview)이 Q&A 로 인용하기 어려움"
},
{
"severity": "warning",
"message": "Article/BlogPosting schema 없음 — author/date 명시로 E-E-A-T 강화 권장"
},
{
"severity": "warning",
"message": "본문이 4단어로 얕음 — AI 인용 블록 추출에 400+ 단어 권장"
},
{
"severity": "warning",
"message": "H1 태그 0개 (권장 1개) — 생성형 검색이 핵심 주제 식별 어려움"
},
{
"severity": "warning",
"message": "H1 직후 요약 문단 / TL;DR 섹션 없음 — AI 가 핵심 답변 추출 어려움"
}
]
}
security_headers_analysis
{
"score": 78,
"is_https": true,
"has_hsts": false,
"has_csp": false,
"has_nosniff": true,
"has_xfo": false,
"has_referrer_policy": false,
"has_permissions_policy": false,
"cookies": {
"total": 0,
"insecure_count": 0,
"no_httponly_count": 0,
"no_samesite_count": 0,
"insecure_samples": []
},
"subresource": {
"scripts_without_integrity": 0,
"links_without_integrity": 0,
"total_external": 0
},
"headers_sample": {
"x-content-type-options": "nosniff"
},
"issues": [
{
"severity": "warning",
"message": "Strict-Transport-Security (HSTS) 헤더 없음"
},
{
"severity": "info",
"message": "Content-Security-Policy 없음 — XSS 방어 약화"
},
{
"severity": "info",
"message": "X-Frame-Options (DENY/SAMEORIGIN) 또는 CSP frame-ancestors 미설정 — clickjacking"
},
{
"severity": "info",
"message": "Referrer-Policy 헤더 없음"
},
{
"severity": "info",
"message": "Permissions-Policy 헤더 없음 — browser feature 기본 정책 노출"
}
]
}
accessibility_analysis
{
"score": 87,
"unlabeled_inputs": 0,
"buttons_no_name": 0,
"has_skip_link": false,
"heading_skips": 0,
"imgs_missing_alt": 0,
"imgs_empty_alt": 0,
"html_lang": "",
"total_forms": 0,
"low_contrast_count": 0,
"contrast_sampled": 0,
"contrast_samples": [],
"issues": [
{
"severity": "info",
"message": "\"본문으로 건너뛰기\" 링크 없음 — 키보드 사용자 내비게이션 비효율"
},
{
"severity": "warning",
"message": "html lang 속성 없음 (WCAG 3.1.1) — 스크린 리더 언어 판정 불가"
}
]
}
duplicate_content_analysis
{
"score": 54,
"total_pages": 54,
"duplicate_groups": 4,
"duplicate_pages": 15,
"empty_title_pages": 0,
"thin_title_pages": 0,
"description_duplicate_groups": 1,
"description_missing_pages": 6,
"redirected_pages": 8,
"long_chain_pages": 6,
"issues": [
{
"severity": "critical",
"message": "'게시글 - 프레서 - 블로그' 제목을 가진 페이지 5건 중복 (예: https://blog-presser.50.internal.kr/contents/)"
},
{
"severity": "critical",
"message": "'즐겨찾기 - 프레서 - 블로그' 제목을 가진 페이지 2건 중복 (예: https://blog-presser.50.internal.kr/bookmark/)"
},
{
"severity": "critical",
"message": "'미분류 - 프레서 - 블로그' 제목을 가진 페이지 2건 중복 (예: https://blog-presser.50.internal.kr/category/%eb%af%b8-%eb%b6%84%eb%a5%98/)"
},
{
"severity": "critical",
"message": "'알림판 ‹ 프레서 - 블로그 — 워드프레스' 제목을 가진 페이지 6건 중복 (예: https://blog-presser.50.internal.kr/login/?action=logout&_wpnonce=88b9ef9a84)"
},
{
"severity": "warning",
"message": "동일 meta description 48건 (예: \"프로그래밍 개발 노하우, 코드 예제 수록...\")"
},
{
"severity": "warning",
"message": "6 페이지가 리다이렉트 2+ hops (예: 2 hops, https://blog-presser.50.internal.kr/login/?action=logout&_wpnonce=88b9ef9a84)"
}
]
}
sitemap_orphan_analysis
{
"score": 100,
"sitemap_count": 0,
"crawled_count": 0,
"orphan_count": 0,
"missing_from_sitemap_count": 0,
"issues": [
{
"severity": "info",
"message": "sitemap.xml 없음 — orphan 분석 건너뜀"
}
]
}
crux_field_data
null
mobile_analysis
{
"score": 70,
"viewport": null,
"has_horizontal_scroll": false,
"small_touch_targets": 0,
"small_fonts": 0,
"issues": [
{
"severity": "critical",
"message": "viewport meta 태그가 없습니다"
}
]
}
schema_analysis
{
"score": 60,
"count": 0,
"types": [],
"schemas": [],
"issues": [
{
"severity": "warning",
"message": "Schema.org 구조화 데이터(JSON-LD)가 없습니다"
}
]
}
robots_analysis
{
"score": 60,
"robots": {
"exists": false,
"blocks_all": false,
"content": null,
"sitemap_urls": []
},
"sitemap": {
"exists": false,
"url": null,
"size": null
},
"issues": [
{
"severity": "warning",
"message": "robots.txt가 없습니다"
},
{
"severity": "warning",
"message": "sitemap.xml이 없습니다"
}
]
}
integration_analysis
null