홈페이지 분석 리포트
달숲 - dalsoop · 2026-04-20 00:14
ⓘ 이 점수는 홈페이지 1장 기준입니다. 페이지별 점수 / 사이트 전체 집계는 사이트 리포트에서 보세요.
86
/ 100
이전 분석 대비 변화
prev analysis #151
점수 변화
0
신규 이슈
7
해결된 이슈
0
신규 referring domain
0
🔴 신규 critical: [image] 이미지의 40%만 alt 텍스트가 있습니다 (권장: 100%)
🔗 신규 broken: [EXT 404] https://landing.dalsoop.ranode.net/gallery/
🔗 신규 broken: [EXT 404] https://landing.dalsoop.ranode.net/category/object/
🔗 신규 broken: [EXT 404] https://landing.dalsoop.ranode.net/category/actor/
메타
75
성능
100
헤딩
100
이미지
60
링크
88
모바일
95
로봇
100
키워드
75
스키마
60
GEO
55
보안
72
접근성
94
중복콘텐츠
95
사이트맵
75
내부링크
100
깨진링크
82
백링크
0
평가 요약
전체 이슈
9
Critical
1
Warning
5
Info
3
메타
3건
헤딩
통과
이미지
1건
링크
1건
성능
통과
키워드
2건
모바일
1건
스키마
1건
로봇
통과
Canonical:
없음
JSON-LD:
0개
robots/sitemap:
robots OK / sitemap OK
메타 태그
제목 (27)
달숲 – dalsoop – Photographer
설명 (8)
사진작가 갤러리
Canonical:
HTML lang:
ko-KR
charset:
UTF-8
오픈 그래프
og:title:
달숲
og:description:
사진작가 갤러리
og:image:
https://photo-dalsoop.50.internal.kr/wp-content/themes/image/assets/images/dalso...
og:type:
없음
og:url:
없음
Title이 너무 짧습니다 (27자, 권장: 30~60자)
Description이 너무 짧습니다 (8자, 권장: 70~160자)
Canonical URL이 설정되지 않았습니다
성능
TTFB
225ms
FCP
1064ms
DCL
895ms
DOM Complete
1069ms
헤딩 구조
H1
(1)
- 사진작가 달숲
H2
(2)
- 일상을 발견하다
- Social
이미지
전체: 5
alt 있음: 2
alt 없음: 3
비율: 40%
이미지의 40%만 alt 텍스트가 있습니다 (권장: 100%)
링크
전체: 8
내부: 4
외부: 4
6개 링크에 앵커 텍스트가 없습니다 (75%)
키워드
단어 수: 28
갤러리 (1, 3.57%)
프로젝트 (1, 3.57%)
사진작 (1, 3.57%)
달숲 (1, 3.57%)
일상 (1, 3.57%)
발견하다 (1, 3.57%)
장소 (1, 3.57%)
시간 (1, 3.57%)
기록 (1, 3.57%)
것은 (1, 3.57%)
특별 (1, 3.57%)
언제나 (1, 3.57%)
보이지 (1, 3.57%)
않지 (1, 3.57%)
매일 (1, 3.57%)
콘텐츠가 28단어로 적습니다 (권장: 300+ 단어)
주요 키워드 '갤러리'가 Title에 포함되지 않았습니다
모바일
뷰포트: width=device-width, initial-scale=1
가로 스크롤: 없음
9개 요소의 터치 영역이 작습니다
스키마.org (JSON-LD)
JSON-LD 블록:
0
@type 감지:
없음
유형:
없음
수집된 JSON-LD 원본 데이터가 없습니다.
Schema.org 구조화 데이터(JSON-LD)가 없습니다
robots 및 사이트맵
robots.txt: 발견됨
sitemap.xml: 발견됨
보안 헤더
72
✓
HTTPS
✗
HSTS
✗
CSP
✗
nosniff
✗
X-Frame
✗
Referrer-Policy
✗
Permissions-Policy
쿠키 3개 — Secure 없음: 0, HttpOnly 없음: 0, SameSite 없음: 3
Strict-Transport-Security (HSTS) 헤더 없음
Content-Security-Policy 없음 — XSS 방어 약화
X-Content-Type-Options: nosniff 미설정
X-Frame-Options (DENY/SAMEORIGIN) 또는 CSP frame-ancestors 미설정 — clickjacking
Referrer-Policy 헤더 없음
Permissions-Policy 헤더 없음 — browser feature 기본 정책 노출
SameSite 속성 없는 쿠키 3개 — CSRF 취약
접근성 (WCAG 2)
94
레이블 없는 input: 0
이름 없는 button: 0
Skip link: 없음
Heading 계층 skip: 0
Alt 누락 이미지: 3
html[lang]: ko-KR
"본문으로 건너뛰기" 링크 없음 — 키보드 사용자 내비게이션 비효율
3개 img 에 alt 속성 자체 누락 (WCAG 1.1.1) — 장식용은 alt="" 명시 필요
중복 콘텐츠
95
크롤 페이지: 5
중복 title 그룹: 0
중복 desc 그룹: 1
리다이렉트 체인 2+: 0
동일 meta description 5건 (예: "사진작가 갤러리...")
사이트맵 ↔ 크롤 diff
75
sitemap URL: 33
크롤 URL: 5
Orphan: 28
sitemap 누락: 0
sitemap 에만 있고 크롤 링크로 도달 못한 orphan 페이지 28건 (예: https://photo-dalsoop.50.internal.kr/%ec%95%88%eb%85%95%ed%95%98%ec%84%b8%ec%9a%94 | https://photo-dalsoop.50.internal.kr/asd | https://photo-dalsoop.50.internal.kr/%e3%85%81%e3%84%b4%e3%85%87%e3%85%81%e3%84%b4)
내부 링크 그래프 (PageRank / orphan)
100
페이지: 5
Orphan: 0
Dead-end: 0
평균 inbound: 3.4
평균 outbound: 3.4
nofollow 내부: 0
Top PageRank
https://photo-dalsoop.50.internal.kr/
pr 0.28144 · in 5 · out 3
https://photo-dalsoop.50.internal.kr/project
pr 0.28144 · in 5 · out 5
https://photo-dalsoop.50.internal.kr/gallery
pr 0.28144 · in 5 · out 3
https://photo-dalsoop.50.internal.kr/project/color-of-seoul/
pr 0.07784 · in 1 · out 3
https://photo-dalsoop.50.internal.kr/project/%ec%86%8c%eb%a9%b8/
pr 0.07784 · in 1 · out 3
깨진 링크 (Broken Link Audit)
82
총 링크: 50
검증됨: 50
미검증: 0
내부 깨짐: 0
외부 깨짐: 6
샘플
EXT
https://landing.dalsoop.ranode.net/gallery/
404
EXT
https://landing.dalsoop.ranode.net/category/object/
404
EXT
https://landing.dalsoop.ranode.net/category/actor/
404
EXT
https://landing.dalsoop.ranode.net/category/place/
404
EXT
https://landing.dalsoop.ranode.net/project/
404
EXT
https://landing.dalsoop.ranode.net/project/
404
Backlinks (외부 인바운드 링크)
0
총 백링크: 0
Referring 도메인: 0
Dofollow: 0%
Alive ratio: -%
Alive: 0
Dead: 0
미검증: 0
최근 7일: 0
최근 30일: 0
소스:
GEO (생성형 검색 최적화)
55
direct_answer
80
qa_structure
50
schema_strength
40
eat_signals
45
citations
80
content_depth
35
keyword_alignment
85
quotations
50
statistics
40
lists
63
FAQPage / HowTo JSON-LD 없음 — AI 검색(ChatGPT/AI Overview)이 Q&A 로 인용하기 어려움
Article/BlogPosting schema 없음 — author/date 명시로 E-E-A-T 강화 권장
질문형 H2/H3 (예: "~인가?", "왜 ~할까?") 없음 — 생성형 검색 인용에 불리
본문이 28단어로 얕음 — AI 인용 블록 추출에 400+ 단어 권장
상위 키워드가 Title/Description 에 일관되게 반영되지 않음 — 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": 75,
"title": {
"content": "달숲 – dalsoop – Photographer",
"length": 27
},
"description": {
"content": "사진작가 갤러리",
"length": 8
},
"og": {
"title": "달숲",
"description": "사진작가 갤러리",
"image": "https://photo-dalsoop.50.internal.kr/wp-content/themes/image/assets/images/dalsoop.png",
"type": "",
"url": ""
},
"canonical": "",
"lang": "ko-KR",
"charset": "UTF-8",
"hreflangs": [],
"issues": [
{
"severity": "warning",
"message": "Title이 너무 짧습니다 (27자, 권장: 30~60자)"
},
{
"severity": "warning",
"message": "Description이 너무 짧습니다 (8자, 권장: 70~160자)"
},
{
"severity": "info",
"message": "Canonical URL이 설정되지 않았습니다"
}
]
}
heading_analysis
{
"score": 100,
"h1_count": 1,
"structure": {
"h1": {
"count": 1,
"items": [
"사진작가 달숲"
]
},
"h2": {
"count": 2,
"items": [
"일상을 발견하다",
"Social"
]
}
},
"issues": []
}
image_analysis
{
"score": 60,
"total": 5,
"with_alt": 2,
"without_alt": 3,
"alt_ratio": 40,
"low_quality_alt": 0,
"missing_alt_images": [
"https://landing.dalsoop.ranode.net/wp-content/uploads/2023/04/s_2.jpg",
"https://landing.dalsoop.ranode.net/wp-content/uploads/2023/05/122A1600-2.jpg",
"https://landing.dalsoop.ranode.net/wp-content/uploads/2023/04/s_IMG_8562-3.jpg"
],
"issues": [
{
"severity": "critical",
"message": "이미지의 40%만 alt 텍스트가 있습니다 (권장: 100%)"
}
]
}
link_analysis
{
"score": 88,
"total": 8,
"internal": 4,
"external": 4,
"no_text": 6,
"generic_text": 0,
"non_crawlable": 0,
"issues": [
{
"severity": "warning",
"message": "6개 링크에 앵커 텍스트가 없습니다 (75%)"
}
]
}
performance_analysis
{
"score": 100,
"metrics": {
"lcp": 1708,
"inp": 128,
"cls": 0.002004711009837963,
"ttfb": 225,
"fcp": 1064,
"dom_content_loaded": 895,
"dom_complete": 1069,
"load_event": 1117,
"transfer_size": 12930
},
"issues": []
}
keyword_analysis
{
"score": 75,
"word_count": 28,
"top_keywords": [
{
"word": "갤러리",
"count": 1,
"density": "3.57",
"variants": {
"갤러리": 1
}
},
{
"word": "프로젝트",
"count": 1,
"density": "3.57",
"variants": {
"프로젝트": 1
}
},
{
"word": "사진작",
"count": 1,
"density": "3.57",
"variants": {
"사진작가": 1
}
},
{
"word": "달숲",
"count": 1,
"density": "3.57",
"variants": {
"달숲": 1
}
},
{
"word": "일상",
"count": 1,
"density": "3.57",
"variants": {
"일상을": 1
}
},
{
"word": "발견하다",
"count": 1,
"density": "3.57",
"variants": {
"발견하다": 1
}
},
{
"word": "장소",
"count": 1,
"density": "3.57",
"variants": {
"장소": 1
}
},
{
"word": "시간",
"count": 1,
"density": "3.57",
"variants": {
"시간을": 1
}
},
{
"word": "기록",
"count": 1,
"density": "3.57",
"variants": {
"기록하는": 1
}
},
{
"word": "것은",
"count": 1,
"density": "3.57",
"variants": {
"것은": 1
}
},
{
"word": "특별",
"count": 1,
"density": "3.57",
"variants": {
"특별합니다": 1
}
},
{
"word": "언제나",
"count": 1,
"density": "3.57",
"variants": {
"언제나": 1
}
},
{
"word": "보이지",
"count": 1,
"density": "3.57",
"variants": {
"보이지는": 1
}
},
{
"word": "않지",
"count": 1,
"density": "3.57",
"variants": {
"않지만": 1
}
},
{
"word": "매일",
"count": 1,
"density": "3.57",
"variants": {
"매일": 1
}
},
{
"word": "떠오르",
"count": 1,
"density": "3.57",
"variants": {
"떠오르는": 1
}
},
{
"word": "달처럼",
"count": 1,
"density": "3.57",
"variants": {
"달처럼": 1
}
},
{
"word": "그때",
"count": 1,
"density": "3.57",
"variants": {
"그때의": 1
}
},
{
"word": "감정",
"count": 1,
"density": "3.57",
"variants": {
"감정": 1
}
},
{
"word": "모습",
"count": 1,
"density": "3.57",
"variants": {
"모습을": 1
}
}
],
"issues": [
{
"severity": "warning",
"message": "콘텐츠가 28단어로 적습니다 (권장: 300+ 단어)"
},
{
"severity": "info",
"message": "주요 키워드 '갤러리'가 Title에 포함되지 않았습니다"
}
]
}
geo_analysis
{
"score": 55,
"sub_scores": {
"direct_answer": 80,
"qa_structure": 50,
"schema_strength": 40,
"eat_signals": 45,
"citations": 80,
"content_depth": 35,
"keyword_alignment": 85,
"quotations": 50,
"statistics": 40,
"lists": 63
},
"signals": {
"h1_count": 1,
"h2_count": 2,
"h3_count": 0,
"question_headings": 0,
"has_faq_page": false,
"has_article": false,
"has_how_to": false,
"has_breadcrumb": false,
"external_links": 4,
"word_count": 28,
"blockquotes": 0,
"quote_sentences": 0,
"stat_sentences": 0,
"percent_occurrences": 0,
"ul_count": 2,
"ol_count": 0,
"table_count": 0,
"li_total": 5,
"tldr_markers": false,
"has_direct_answer": true
},
"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 신호"
],
"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": "info",
"message": "질문형 H2/H3 (예: \"~인가?\", \"왜 ~할까?\") 없음 — 생성형 검색 인용에 불리"
},
{
"severity": "warning",
"message": "본문이 28단어로 얕음 — AI 인용 블록 추출에 400+ 단어 권장"
},
{
"severity": "info",
"message": "상위 키워드가 Title/Description 에 일관되게 반영되지 않음 — AI 요약 시 주제 일치도 하락"
}
]
}
security_headers_analysis
{
"score": 72,
"is_https": true,
"has_hsts": false,
"has_csp": false,
"has_nosniff": false,
"has_xfo": false,
"has_referrer_policy": false,
"has_permissions_policy": false,
"cookies": {
"total": 3,
"insecure_count": 0,
"no_httponly_count": 0,
"no_samesite_count": 3,
"insecure_samples": []
},
"subresource": {
"scripts_without_integrity": 0,
"links_without_integrity": 0,
"total_external": 0
},
"headers_sample": [],
"issues": [
{
"severity": "warning",
"message": "Strict-Transport-Security (HSTS) 헤더 없음"
},
{
"severity": "info",
"message": "Content-Security-Policy 없음 — XSS 방어 약화"
},
{
"severity": "info",
"message": "X-Content-Type-Options: nosniff 미설정"
},
{
"severity": "info",
"message": "X-Frame-Options (DENY/SAMEORIGIN) 또는 CSP frame-ancestors 미설정 — clickjacking"
},
{
"severity": "info",
"message": "Referrer-Policy 헤더 없음"
},
{
"severity": "info",
"message": "Permissions-Policy 헤더 없음 — browser feature 기본 정책 노출"
},
{
"severity": "info",
"message": "SameSite 속성 없는 쿠키 3개 — CSRF 취약"
}
]
}
accessibility_analysis
{
"score": 94,
"unlabeled_inputs": 0,
"buttons_no_name": 0,
"has_skip_link": false,
"heading_skips": 0,
"imgs_missing_alt": 3,
"imgs_empty_alt": 0,
"html_lang": "ko-KR",
"total_forms": 0,
"low_contrast_count": 0,
"contrast_sampled": 8,
"contrast_samples": [],
"issues": [
{
"severity": "info",
"message": "\"본문으로 건너뛰기\" 링크 없음 — 키보드 사용자 내비게이션 비효율"
},
{
"severity": "warning",
"message": "3개 img 에 alt 속성 자체 누락 (WCAG 1.1.1) — 장식용은 alt=\"\" 명시 필요"
}
]
}
duplicate_content_analysis
{
"score": 95,
"total_pages": 5,
"duplicate_groups": 0,
"duplicate_pages": 0,
"empty_title_pages": 0,
"thin_title_pages": 0,
"description_duplicate_groups": 1,
"description_missing_pages": 0,
"redirected_pages": 2,
"long_chain_pages": 0,
"issues": [
{
"severity": "warning",
"message": "동일 meta description 5건 (예: \"사진작가 갤러리...\")"
}
]
}
sitemap_orphan_analysis
{
"score": 75,
"sitemap_count": 33,
"crawled_count": 5,
"orphan_count": 28,
"missing_from_sitemap_count": 0,
"orphan_samples": [
"https://photo-dalsoop.50.internal.kr/%ec%95%88%eb%85%95%ed%95%98%ec%84%b8%ec%9a%94",
"https://photo-dalsoop.50.internal.kr/asd",
"https://photo-dalsoop.50.internal.kr/%e3%85%81%e3%84%b4%e3%85%87%e3%85%81%e3%84%b4",
"https://photo-dalsoop.50.internal.kr/%e3%85%81%e3%84%b4%e3%85%87",
"https://photo-dalsoop.50.internal.kr/%e3%85%81%e3%84%b4%e3%85%87-2",
"https://photo-dalsoop.50.internal.kr/asdf-4",
"https://photo-dalsoop.50.internal.kr/asd-2",
"https://photo-dalsoop.50.internal.kr/asd-3",
"https://photo-dalsoop.50.internal.kr/asdf",
"https://photo-dalsoop.50.internal.kr/asdf-2"
],
"issues": [
{
"severity": "warning",
"message": "sitemap 에만 있고 크롤 링크로 도달 못한 orphan 페이지 28건 (예: https://photo-dalsoop.50.internal.kr/%ec%95%88%eb%85%95%ed%95%98%ec%84%b8%ec%9a%94 | https://photo-dalsoop.50.internal.kr/asd | https://photo-dalsoop.50.internal.kr/%e3%85%81%e3%84%b4%e3%85%87%e3%85%81%e3%84%b4)"
}
]
}
crux_field_data
null
mobile_analysis
{
"score": 95,
"viewport": "width=device-width, initial-scale=1",
"has_horizontal_scroll": false,
"small_touch_targets": 9,
"small_fonts": 0,
"issues": [
{
"severity": "info",
"message": "9개 요소의 터치 영역이 작습니다"
}
]
}
schema_analysis
{
"score": 60,
"count": 0,
"types": [],
"schemas": [],
"issues": [
{
"severity": "warning",
"message": "Schema.org 구조화 데이터(JSON-LD)가 없습니다"
}
]
}
robots_analysis
{
"score": 100,
"robots": {
"exists": true,
"blocks_all": false,
"has_user_agent": true,
"invalid_directives": [],
"content": "User-agent: *\nDisallow: /wp-admin/\nAllow: /wp-admin/admin-ajax.php\n\nSitemap: https://photo-dalsoop.50.internal.kr/wp-sitemap.xml\n",
"sitemap_urls": [
"https://photo-dalsoop.50.internal.kr/wp-sitemap.xml"
]
},
"sitemap": {
"exists": true,
"url": "https://photo-dalsoop.50.internal.kr/wp-sitemap.xml",
"type": "sitemapindex",
"url_count": 0,
"has_lastmod": false,
"has_priority": false,
"size": 699
},
"issues": []
}
integration_analysis
null