WEBSITE AUDIT REPORT

kkc.or.krSEO report

(사) 한국애견협회

Visit website
58/ 100

OVERALL SEO SCORE

Review your next improvements

Checks are based on public HTML and responses. Review the evidence and recommended actions below.

Passed18
Needs review13
Not checked0
Analyzed Checks 31

Screenshot

PagePeeker
kkc.or.kr
kkc.or.kr Screenshot

NEXT STEPS

Recommended next steps

Up to four findings, ordered by check weight.

Detailed findings

Review the observed values, context and actions for each check.

02

Content and images

5 checks

Headings

Needs review
H1 0 / H2 16 / H3 17

Headings organize a page into a main topic and supporting sections. This tool checks for one H1 and shows the saved H2-H6 structure.

Recommended action

Use H1 for the main subject and H2/H3 for logical subsections, rather than selecting levels for visual size alone.

Targets and suggested changes

Targethttps://kkc.or.kr/

Body h1 elements

If multiple H1s are shown, choose the main topic and use suitable subsection levels for the others. If absent, add the main heading near the start of content.

View evidence and example changes
Observed content
0
Example - adapt to the actual content and environment
<h1>Main topic of this page</h1>

Image alt

Needs review
36 images; 23 with non-empty alt; 13 empty or missing

Alternative text conveys an image’s meaning. The count includes images with non-empty alt text.

Recommended action

Describe informative images in context. Empty alt="" can be appropriate for decorative images, so inspect their purpose before changing them.

Targets and suggested changes

Targethttp://kkc.or.kr/wp-content/uploads/2026/02/oh__img153.jpg

HTML response line 845 · /html/body/div[1]/div[3]/div/div/div[7]/div/div[1]/div/img

Find the img tag using this URL. Describe informative content, or explicitly use empty alt for a decorative image. The text below is a placeholder; preserve existing classes, dimensions and other attributes.

View evidence and example changes
Observed content
<img fetchpriority="high" decoding="async" width="700" height="768" src="http://kkc.or.kr/wp-content/uploads/2026/02/oh__img153.jpg" class="attachment-full size-full wp-image-256405" alt="">
Example - adapt to the actual content and environment
<img src="http://kkc.or.kr/wp-content/uploads/2026/02/oh__img153.jpg" alt="Describe the actual image content">

For a decorative image:
<img src="http://kkc.or.kr/wp-content/uploads/2026/02/oh__img153.jpg" alt="">

Targethttp://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-01.webp

HTML response line 1623 · /html/body/div[1]/div[3]/div/div/div[15]/div/div/div[2]/div[2]/div/div/div/img[1]

Find the img tag using this URL. Describe informative content, or explicitly use empty alt for a decorative image. The text below is a placeholder; preserve existing classes, dimensions and other attributes.

View evidence and example changes
Observed content
<img decoding="async" class="marquee-line-el" data-marquee-el-original src="http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-01.webp" alt="">
Example - adapt to the actual content and environment
<img src="http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-01.webp" alt="Describe the actual image content">

For a decorative image:
<img src="http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-01.webp" alt="">

Targethttp://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-02.webp

HTML response line 1629 · /html/body/div[1]/div[3]/div/div/div[15]/div/div/div[2]/div[2]/div/div/div/img[2]

Find the img tag using this URL. Describe informative content, or explicitly use empty alt for a decorative image. The text below is a placeholder; preserve existing classes, dimensions and other attributes.

View evidence and example changes
Observed content
<img decoding="async" class="marquee-line-el" data-marquee-el-original src="http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-02.webp" alt="">
Example - adapt to the actual content and environment
<img src="http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-02.webp" alt="Describe the actual image content">

For a decorative image:
<img src="http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-02.webp" alt="">

Targethttp://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-03.webp

HTML response line 1635 · /html/body/div[1]/div[3]/div/div/div[15]/div/div/div[2]/div[2]/div/div/div/img[3]

Find the img tag using this URL. Describe informative content, or explicitly use empty alt for a decorative image. The text below is a placeholder; preserve existing classes, dimensions and other attributes.

View evidence and example changes
Observed content
<img decoding="async" class="marquee-line-el" data-marquee-el-original src="http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-03.webp" alt="">
Example - adapt to the actual content and environment
<img src="http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-03.webp" alt="Describe the actual image content">

For a decorative image:
<img src="http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-03.webp" alt="">

Targethttp://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-04.webp

HTML response line 1641 · /html/body/div[1]/div[3]/div/div/div[15]/div/div/div[2]/div[2]/div/div/div/img[4]

Find the img tag using this URL. Describe informative content, or explicitly use empty alt for a decorative image. The text below is a placeholder; preserve existing classes, dimensions and other attributes.

View evidence and example changes
Observed content
<img decoding="async" class="marquee-line-el" data-marquee-el-original src="http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-04.webp" alt="">
Example - adapt to the actual content and environment
<img src="http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-04.webp" alt="Describe the actual image content">

For a decorative image:
<img src="http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-04.webp" alt="">

13 targets; the first five are shown. Review the full saved list in the details below.

Language

Passed
ko-KR

The html lang attribute identifies the document’s primary language and helps assistive software select pronunciation.

Keep in mind

Match lang to the main content and mark passages written in another language as appropriate.

Charset

Passed
UTF-8

The encoding declaration tells clients how to decode text. It must match the actual response bytes.

Keep in mind

Keep the HTTP or HTML charset declaration consistent with the file encoding; use UTF-8 for UTF-8 content.

Text/HTML ratio

Needs review
1.9%

Tool reference range 15-70%; not an official ranking threshold.

This compares visible text length with HTML length. It cannot determine content quality or rankings on its own.

Recommended action

Do not add filler text to target a ratio. Check for useful HTML content and unnecessary markup.

Targets and suggested changes

Targethttps://kkc.or.kr/

main / body

Check whether main content exists in the initial HTML. Consider server rendering for missing core text; do not add filler to target a ratio.

View evidence and example changes
Observed content
1.9%

Heading structure

Saved headings, up to 50 per level. Expand the H2-H6 lists when needed.

H10
H216
H317
H49
H52
H66
H1

No H1 heading was found.

H2 16View headings
  1. 한국애견협회 월별 행사 안내
  2. 각 행사를 클릭하시면 상세한 안내를 받으실 수 있습니다.
  3. 반려견 미용 분야의 대표 자격증
  4. 자격증 취득으로 취업, 창업까지 한번에
  5. 한국애견협회 자격증 안내
  6. 한국애견협회 혈통서 서비스
  7. 한국애견협회 협력업체 및 가맹 / 협약단체
  8. 협회 소식 및 공지
  9. 한국애견협회에 대해 더 알고 싶으신가요?
  10. 사단법인 한국애견협회 정회원 등록하기
  11. 국가 공인 반려견 스타일리스트
  12. 반려견지도사 (Dog Instructor)
  13. 핸들러 (Handler)
  14. 반려동물관리사 (Pet Master)
  15. 애견브리더 (Pet Breeder)
  16. 펫시터강사 (Petsitter Instructor)
H3 17View headings
  1. 01. 견종별 혈통관리 시스템
  2. 02. 애견행사개최
  3. 03. 애견전문 인력양성
  4. 04. 반려동물 문화홍보 계몽활동
  5. 05. 동물 보호활동
  6. 06. 대국민 봉사활동
  7. 협력업체
  8. 가맹 / 협약단체
  9. (사)한국애견협회는 수익금의 10%를 인명구조견 봉사활동 후원을 통한 공익사업에 지원하고 있습니다.
  10. 찾아오시는 길
  11. KKC 실내 행사장
  12. 연락처
  13. 업무 문의
  14. 행사 안내
  15. 계좌 안내
  16. 한국애견협회의 새로운 소식을 구독하세요.
H4 9View headings
  1. 국가 공인 반려견 스타일리스트
  2. 반려견지도사 (Dog Instructor)
  3. 핸들러 (Handler)
  4. 반려동물관리사 (Pet Master)
  5. 애견브리더 (Pet Breeder)
  6. 펫시터강사 (Petsitter Instructor)
  7. KKC 공식 행사 참여를 위한 혈통서 제도 안내
  8. 260920_KKC 훈련경기대회 출진목록
  9. 260919_KKC 어질리티 챔피언십 출진목록
H5 2View headings
  1. 문의 안내
  2. 찾아오시는 길
H6 6View headings
  1. 한국애견협회 창립
  2. 국가 공인 반려견 스타일리스트 배출
  3. 한국애견협회 회원수
  4. 한국애견협회
  5. 한국애견협회
  6. 한국애견협회
Images and alternative text36 saved

Up to 100 images are saved. Review an image’s purpose when its alt text is empty.

URLImage alt
https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일.png(사) 한국애견협회
https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일-1.png(사) 한국애견협회
https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일.png(사) 한국애견협회
https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일-1.png(사) 한국애견협회
https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일.png(사) 한국애견협회
https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일-1.png(사) 한국애견협회
https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일.png(사) 한국애견협회
https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일-1.png(사) 한국애견협회
https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일.png(사) 한국애견협회
https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일-1.png(사) 한국애견협회
http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/main-1.jpgmain-1
http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/main-2.jpgmain-2
https://kkc.or.kr/main-1
https://kkc.or.kr/main-2
http://kkc.or.kr/wp-content/uploads/2026/02/oh__img153.jpgEmpty or missing
https://kkc.or.kr/wp-content/uploads/2025/12/ps-1.jpg국가 공인 반려견 스타일리스트
https://kkc.or.kr/wp-content/uploads/2025/12/ps-2.jpg반려견지도사 (Dog Instructor)
https://kkc.or.kr/wp-content/uploads/2025/12/ps-3.jpg핸들러 (Handler)
https://kkc.or.kr/wp-content/uploads/2025/12/ps-4.jpg반려동물관리사 (Pet Master)
https://kkc.or.kr/wp-content/uploads/2025/12/ps-5.jpg애견브리더 (Pet Breeder)
https://kkc.or.kr/wp-content/uploads/2025/12/ps-6.jpg펫시터강사 (Petsitter Instructor)
http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-01.webpEmpty or missing
http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-02.webpEmpty or missing
http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-03.webpEmpty or missing
http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-04.webpEmpty or missing
http://kkc3349.mycafe24.com/wp-content/uploads/2026/08/tlogo-0333.pngEmpty or missing
http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-05.pngEmpty or missing
http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-06.pngEmpty or missing
http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-07.pngEmpty or missing
http://kkc3349.mycafe24.com/wp-content/uploads/2025/12/tlogo-08.pngEmpty or missing
https://kkc.or.kr/wp-content/uploads/2026/10/나이스펫핀공지_인스타_1-1-1170x694.jpegEmpty or missing
https://secure.gravatar.com/avatar/70482388e45e67b34275392cce398e7414ee53bd62e7a758d0b759d3c208380a?s=50&d=mm&r=g한국애견협회
https://kkc.or.kr/wp-content/uploads/2026/09/프레젠테이션1_1-1-716x694.jpgEmpty or missing
https://secure.gravatar.com/avatar/70482388e45e67b34275392cce398e7414ee53bd62e7a758d0b759d3c208380a?s=50&d=mm&r=g한국애견협회
https://secure.gravatar.com/avatar/70482388e45e67b34275392cce398e7414ee53bd62e7a758d0b759d3c208380a?s=50&d=mm&r=g한국애견협회
http://kkc3349.mycafe24.com/wp-content/uploads/2026/08/KKC%EB%A6%AC%EB%89%B4%EC%96%BC_%EB%AA%A8%EB%B0%94%EC%9D%BC%ED%98%88%ED%86%B5%EC%84%9C_%ED%8C%9D%EC%97%85_%EC%BB%AC%EB%9F%AC%EB%AC%B8%EC%9D%98.pngEmpty or missing
KeywordsFrequency and metadata

Word occurrence counts from extracted content, not search demand or keyword rankings.

한국애견협회24project12안내9kkc9소식8서비스8혈통서8show8자격증7행사7협회6공지6애견6문화를6반려견과6함께하는6view6한국애견협회는5반려견5pet5

Meta keywords · 한국애견협회, KKC 반려견스타일리스트, 애견미용사, 반려견지도사, 애견훈련사, 혈통서, 도그쇼, 애견자격증

Meta keywords do not contribute to this tool’s score.

04

Mobile experience

5 checks

Viewport

Passed
width=device-width, initial-scale=1

Viewport metadata enables device-width layouts. It is not a test of real mobile layout or touch targets.

Keep in mind

Check width=device-width, then inspect overflow, zoom, forms and buttons on a small screen.

Favicon

Passed
The current check passed.

This detects a link declaration for a browser icon, rather than verifying its rendered appearance.

Keep in mind

Check that the icon file loads and remains recognizable on light and dark browser surfaces.

Apple touch icon

Passed
The current check passed.

This detects a touch icon declaration for saved home-screen shortcuts.

Keep in mind

Review the icon’s dimensions, padding and background, then inspect it on an actual device.

Modern images

Passed
4/36

This detects WebP/AVIF from img src/srcset extensions and picture source types. Images whose format cannot be inferred from HTML, such as extensionless CDN URLs, may not be reflected in the count.

Keep in mind

Compare quality and file size, and inspect the actual delivered format in browser developer tools.

Lazy loading

Needs review
0/36

This detects loading="lazy" on img elements. Pages with few images can pass the tool’s heuristic without it.

Recommended action

Consider lazy loading below-the-fold images while keeping prominent first-screen images promptly available.

Targets and suggested changes

Targethttps://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일.png

HTML response line 431 · /html/body/div[1]/header/div/div/div[1]/div[2]/a/div[1]/img[1]

Add loading="lazy" only if this image is below the initial viewport. Keep prominent initial-viewport images eager.

View evidence and example changes
Observed content
<img src="https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC%EB%A1%9C%EA%B3%A0AI%ED%8C%8C%EC%9D%BC.png" class="main-logo light-scheme-logo" srcset="https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일.png 2x" alt="(사) 한국애견협회">
Example - adapt to the actual content and environment
<img src="https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일.png" alt="(사) 한국애견협회" loading="lazy">

Targethttps://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일-1.png

HTML response line 435 · /html/body/div[1]/header/div/div/div[1]/div[2]/a/div[1]/img[2]

Add loading="lazy" only if this image is below the initial viewport. Keep prominent initial-viewport images eager.

View evidence and example changes
Observed content
<img src="https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC%EB%A1%9C%EA%B3%A0AI%ED%8C%8C%EC%9D%BC-1.png" class="dark-scheme-logo" srcset="https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일-1.png 2x" alt="(사) 한국애견협회">
Example - adapt to the actual content and environment
<img src="https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일-1.png" alt="(사) 한국애견협회" loading="lazy">

Targethttps://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일.png

HTML response line 443 · /html/body/div[1]/header/div/div/div[1]/div[2]/a/div[2]/img[1]

Add loading="lazy" only if this image is below the initial viewport. Keep prominent initial-viewport images eager.

View evidence and example changes
Observed content
<img src="https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC%EB%A1%9C%EA%B3%A0AI%ED%8C%8C%EC%9D%BC.png" class="main-logo light-scheme-logo" alt="(사) 한국애견협회">
Example - adapt to the actual content and environment
<img src="https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일.png" alt="(사) 한국애견협회" loading="lazy">

Targethttps://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일-1.png

HTML response line 447 · /html/body/div[1]/header/div/div/div[1]/div[2]/a/div[2]/img[2]

Add loading="lazy" only if this image is below the initial viewport. Keep prominent initial-viewport images eager.

View evidence and example changes
Observed content
<img src="https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC%EB%A1%9C%EA%B3%A0AI%ED%8C%8C%EC%9D%BC-1.png" class="dark-scheme-logo" alt="(사) 한국애견협회">
Example - adapt to the actual content and environment
<img src="https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일-1.png" alt="(사) 한국애견협회" loading="lazy">

Targethttps://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일.png

HTML response line 457 · /html/body/div[1]/header/div/div/div[1]/div[2]/a/div[3]/img[1]

Add loading="lazy" only if this image is below the initial viewport. Keep prominent initial-viewport images eager.

View evidence and example changes
Observed content
<img src="https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC%EB%A1%9C%EA%B3%A0AI%ED%8C%8C%EC%9D%BC.png" class="main-logo light-scheme-logo" srcset="https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일.png 2x" alt="(사) 한국애견협회">
Example - adapt to the actual content and environment
<img src="https://kkc3349.mycafe24.com/wp-content/uploads/2025/12/KKC로고AI파일.png" alt="(사) 한국애견협회" loading="lazy">

36 targets; the first five are shown. Review the full saved list in the details below.

05

Technical checks

8 checks

Doctype

Passed
html

The doctype declaration helps browsers render HTML in standards mode.

Keep in mind

Place <!doctype html> at the start of the document and check for unintended output before it.

CSS files

Needs review
31

Tool heuristic: up to 4 external files

This counts external stylesheet declarations. Count alone does not measure transfer size, caching or render blocking.

Recommended action

Inspect duplicate or unused CSS and render blocking, then prioritize changes using actual performance measurements.

Targets and suggested changes

Targethttps://kkc.or.kr/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.1.5

HTML response line 50 · /html/head/link[6]

This file is referenced by the page. Find duplicate tags and remove or conditionally load files that are unused here. File count alone does not establish a defect in this file.

View evidence and example changes
Observed content
<link rel="stylesheet" id="contact-form-7-css" href="https://kkc.or.kr/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.1.5" media="all">

Targethttps://kkc.or.kr/wp-content/plugins/download-manager/assets/wpdm-iconfont/css/wpdm-icons.css?ver=7.1.2

HTML response line 51 · /html/head/link[7]

This file is referenced by the page. Find duplicate tags and remove or conditionally load files that are unused here. File count alone does not establish a defect in this file.

View evidence and example changes
Observed content
<link rel="stylesheet" id="wpdm-fonticon-css" href="https://kkc.or.kr/wp-content/plugins/download-manager/assets/wpdm-iconfont/css/wpdm-icons.css?ver=7.1.2" media="all">

Targethttps://kkc.or.kr/wp-content/plugins/download-manager/assets/css/front.min.css?ver=3.3.54

HTML response line 52 · /html/head/link[8]

This file is referenced by the page. Find duplicate tags and remove or conditionally load files that are unused here. File count alone does not establish a defect in this file.

View evidence and example changes
Observed content
<link rel="stylesheet" id="wpdm-front-css" href="https://kkc.or.kr/wp-content/plugins/download-manager/assets/css/front.min.css?ver=3.3.54" media="all">

Targethttps://kkc.or.kr/wp-content/plugins/download-manager/assets/css/front-dark.min.css?ver=3.3.54

HTML response line 53 · /html/head/link[9]

This file is referenced by the page. Find duplicate tags and remove or conditionally load files that are unused here. File count alone does not establish a defect in this file.

View evidence and example changes
Observed content
<link rel="stylesheet" id="wpdm-front-dark-css" href="https://kkc.or.kr/wp-content/plugins/download-manager/assets/css/front-dark.min.css?ver=3.3.54" media="all">

Targethttps://kkc.or.kr/wp-content/plugins/popup-builder/public/css/theme.css?ver=4.4.5

HTML response line 54 · /html/head/link[10]

This file is referenced by the page. Find duplicate tags and remove or conditionally load files that are unused here. File count alone does not establish a defect in this file.

View evidence and example changes
Observed content
<link rel="stylesheet" id="theme.css-css" href="https://kkc.or.kr/wp-content/plugins/popup-builder/public/css/theme.css?ver=4.4.5" media="all">

31 targets; the first five are shown. Review the full saved list in the details below.

JavaScript files

Needs review
47

Tool heuristic: up to 6 external files

This counts script elements with src attributes. File count alone cannot measure execution cost or responsiveness.

Recommended action

Review duplicated scripts and expensive startup work; consider defer, async or delayed execution where appropriate.

Targets and suggested changes

Targethttps://kkc.or.kr/wp-includes/js/jquery/jquery.min.js?ver=3.7.1

HTML response line 78 · /html/head/script[1]

This file is referenced by the page. Find duplicate tags and remove or conditionally load files that are unused here. File count alone does not establish a defect in this file.

View evidence and example changes
Observed content
<script id="jquery-core-js" src="https://kkc.or.kr/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>

Targethttps://kkc.or.kr/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1

HTML response line 79 · /html/head/script[2]

This file is referenced by the page. Find duplicate tags and remove or conditionally load files that are unused here. File count alone does not establish a defect in this file.

View evidence and example changes
Observed content
<script id="jquery-migrate-js" src="https://kkc.or.kr/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>

Targethttps://kkc.or.kr/wp-content/plugins/download-manager/assets/js/wpdm.min.js?ver=7.1.2

HTML response line 80 · /html/head/script[3]

This file is referenced by the page. Find duplicate tags and remove or conditionally load files that are unused here. File count alone does not establish a defect in this file.

View evidence and example changes
Observed content
<script id="wpdm-frontend-js-js" src="https://kkc.or.kr/wp-content/plugins/download-manager/assets/js/wpdm.min.js?ver=7.1.2"></script>

Targethttps://kkc.or.kr/wp-content/plugins/download-manager/assets/js/front.min.js?ver=3.3.54

HTML response line 87 · /html/head/script[5]

This file is referenced by the page. Find duplicate tags and remove or conditionally load files that are unused here. File count alone does not establish a defect in this file.

View evidence and example changes
Observed content
<script id="wpdm-frontjs-js" src="https://kkc.or.kr/wp-content/plugins/download-manager/assets/js/front.min.js?ver=3.3.54"></script>

Targethttps://kkc.or.kr/wp-content/plugins/popup-builder/public/js/Popup.js?ver=4.4.5

HTML response line 93 · /html/head/script[7]

This file is referenced by the page. Find duplicate tags and remove or conditionally load files that are unused here. File count alone does not establish a defect in this file.

View evidence and example changes
Observed content
<script id="Popup.js-js" src="https://kkc.or.kr/wp-content/plugins/popup-builder/public/js/Popup.js?ver=4.4.5"></script>

47 targets; the first five are shown. Review the full saved list in the details below.

Compression

Passed
gzip

This checks the HTML Content-Encoding header. Compression can reduce transfer size, with savings depending on the response.

Keep in mind

Review text compression on the server or CDN, treating already compressed image formats separately.

Security headers

Needs review
0/6

Tool heuristic: at least 3 of 6 selected headers present

This detects selected security-related response headers. Their count does not establish policy quality or protection.

Recommended action

Review CSP, HSTS and other values for the application, then test for blocked resources or broken functionality.

Targets and suggested changes

Targethttps://kkc.or.kr/

Web server / CDN response headers

These headers were absent. Configure response headers in the actual server/CDN settings: .htaccess or VirtualHost for Apache, or the Nginx server block. Validate the two example headers first; design CSP/HSTS for the real resources and HTTPS policy. The actual server configuration path is not visible to this tool.

View evidence and example changes
Observed content
strict-transport-security
content-security-policy
x-content-type-options
x-frame-options
referrer-policy
permissions-policy
Example - adapt to the actual content and environment
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin

HTTPS

Passed
https://kkc.or.kr/

This checks whether the final analyzed page used HTTPS. It is not a security audit of the whole site.

Keep in mind

Review certificate validity, mixed content and HTTPS on important linked pages and forms.

HTTPS redirect

Needs review
http://kkc.or.kr/

This checks whether a request starting over HTTP ends on HTTPS.

Recommended action

Configure consistent HTTP-to-HTTPS redirects and check for unnecessary chains or loops.

Targets and suggested changes

Targethttps://kkc.or.kr/

HTTP host redirect configuration

Redirect the HTTP host to working HTTPS using 301/308 while preserving path and query.

View evidence and example changes
Observed content
http://kkc.or.kr/
Example - adapt to the actual content and environment
http://kkc.or.kr/ → https://kkc.or.kr/

W3C validity

Needs review
26 errors · 92 warnings / notices

These are HTML validation results from W3C Nu, not a ranking, accessibility or security certification.

Recommended action

Use message details and line numbers to investigate actual markup issues such as invalid nesting or missing attributes.

Targets and suggested changes

Targethttps://kkc.or.kr/

HTML response line 59

CSS: “font-size”: only “0” can be a “unit”. You must put a unit after your number. Find the template producing this tag or attribute and validate again. The line number refers to response HTML, not a PHP source file.

View evidence and example changes
Observed content
font-size:30;font-

Targethttps://kkc.or.kr/

HTML response line 59

CSS: “background-color”: Parse Error. Find the template producing this tag or attribute and validate again. The line number refers to response HTML, not a PHP source file.

View evidence and example changes
Observed content
ackground-color:;background-im

Targethttps://kkc.or.kr/

HTML response line 59

CSS: “background-color”: Parse Error. Find the template producing this tag or attribute and validate again. The line number refers to response HTML, not a PHP source file.

View evidence and example changes
Observed content
ackground-color:;}.project:not

Targethttps://kkc.or.kr/

HTML response line 59

CSS: “background-color”: “1” is not a “background-color” value. Find the template producing this tag or attribute and validate again. The line number refers to response HTML, not a PHP source file.

View evidence and example changes
Observed content
ckground-color:1;} @media scre

Targethttps://kkc.or.kr/

HTML response line 420

Element “div” not allowed as child of element “button” in this context. (Suppressing further errors from this subtree.) Find the template producing this tag or attribute and validate again. The line number refers to response HTML, not a PHP source file.

View evidence and example changes
Observed content
ger">
    <div class="hamburger icon-button" tabindex="0">
     

26 targets; the first five are shown. Review the full saved list in the details below.

CSS files and locations31 saved

Up to 100 files per type are saved. File count alone does not establish a defect in any file.

URLHTML response location
https://kkc.or.kr/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.1.550 · /html/head/link[6]
https://kkc.or.kr/wp-content/plugins/download-manager/assets/wpdm-iconfont/css/wpdm-icons.css?ver=7.1.251 · /html/head/link[7]
https://kkc.or.kr/wp-content/plugins/download-manager/assets/css/front.min.css?ver=3.3.5452 · /html/head/link[8]
https://kkc.or.kr/wp-content/plugins/download-manager/assets/css/front-dark.min.css?ver=3.3.5453 · /html/head/link[9]
https://kkc.or.kr/wp-content/plugins/popup-builder/public/css/theme.css?ver=4.4.554 · /html/head/link[10]
https://kkc.or.kr/wp-content/plugins/slider-revolution/public/css/sr7.css?ver=6.7.5155 · /html/head/link[11]
https://kkc.or.kr/wp-content/plugins/wp-data-access/public/../assets/css/wpda_public.css?ver=5.5.7256 · /html/head/link[12]
https://kkc.or.kr/wp-content/themes/ohio/style.css?ver=3.7.057 · /html/head/link[13]
https://kkc.or.kr/wp-content/themes/ohio/assets/fonts/fa/css/all.css?ver=7.1.262 · /html/head/link[14]
https://kkc.or.kr/wp-content/plugins/elementor/assets/css/frontend.min.css?ver=4.0.763 · /html/head/link[15]
https://kkc.or.kr/wp-content/uploads/elementor/css/post-13.css?ver=179065040864 · /html/head/link[16]
https://kkc.or.kr/wp-content/plugins/elementor/assets/css/widget-spacer.min.css?ver=4.0.765 · /html/head/link[17]
https://kkc.or.kr/wp-content/plugins/elementor/assets/css/widget-heading.min.css?ver=4.0.766 · /html/head/link[18]
https://kkc.or.kr/wp-content/plugins/elementor/assets/lib/animations/styles/zoomInUp.min.css?ver=4.0.767 · /html/head/link[19]
https://kkc.or.kr/wp-content/plugins/elementor/assets/css/widget-image.min.css?ver=4.0.768 · /html/head/link[20]
https://kkc.or.kr/wp-content/plugins/elementor/assets/css/widget-divider.min.css?ver=4.0.769 · /html/head/link[21]
https://kkc.or.kr/wp-content/uploads/elementor/css/post-254377.css?ver=179065041470 · /html/head/link[22]
https://fonts.googleapis.com/css?family=Roboto:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&display=swap71 · /html/head/link[23]
https://fonts.googleapis.com/css?family=Roboto+Slab:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&display=swap72 · /html/head/link[24]
https://fonts.googleapis.com/css?family=Playfair+Display:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&display=swap73 · /html/head/link[25]
https://kkc.or.kr/wp-content/themes/ohio/assets/fonts/bootstrap/css/bootstrap.min.css?ver=1.10.274 · /html/head/link[26]
https://kkc.or.kr/wp-content/themes/ohio/assets/fonts/bootstrap/css/bootstrap.min.css?ver=1.10.275 · /html/head/link[27]
https://kkc.or.kr/wp-content/themes/ohio/assets/fonts/ionicons/css/ionicons.min.css?ver=1.0.076 · /html/head/link[28]
https://kkc.or.kr/wp-content/themes/ohio/assets/fonts/ionicons/css/ionicons.min.css?ver=1.0.077 · /html/head/link[29]
https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;400;700;900&display=swap820 · /html/body/div[1]/div[3]/div/div/div[5]/div/div/link
https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@700&family=Roboto:wght@400&family=Space+Grotesk:wght@600&display=swap2508 · /html/body/link[1]
https://kkc-admin-dashboard.vercel.app/assets/index.css?ver=1.0.0402_production_v52513 · /html/body/link[2]
https://kkc.or.kr/wp-content/uploads/elementor/css/post-224150.css?ver=17906504142514 · /html/body/link[3]
https://kkc.or.kr/wp-content/uploads/elementor/css/post-224153.css?ver=17906504142515 · /html/body/link[4]
https://kkc.or.kr/wp-content/uploads/elementor/css/post-224156.css?ver=17906504142516 · /html/body/link[5]
https://fonts.googleapis.com/css?family=Nanum+Gothic%26display%3Dswap&ver=7.1.22517 · /html/body/link[6]
JavaScript files and locations47 saved

Up to 100 files per type are saved. File count alone does not establish a defect in any file.

URLHTML response location
https://kkc.or.kr/wp-includes/js/jquery/jquery.min.js?ver=3.7.178 · /html/head/script[1]
https://kkc.or.kr/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.179 · /html/head/script[2]
https://kkc.or.kr/wp-content/plugins/download-manager/assets/js/wpdm.min.js?ver=7.1.280 · /html/head/script[3]
https://kkc.or.kr/wp-content/plugins/download-manager/assets/js/front.min.js?ver=3.3.5487 · /html/head/script[5]
https://kkc.or.kr/wp-content/plugins/popup-builder/public/js/Popup.js?ver=4.4.593 · /html/head/script[7]
https://kkc.or.kr/wp-content/plugins/popup-builder/public/js/PopupConfig.js?ver=4.4.594 · /html/head/script[8]
https://kkc.or.kr/wp-content/plugins/popup-builder/public/js/PopupBuilder.js?ver=4.4.5101 · /html/head/script[10]
https://kkc.or.kr/wp-content/plugins/slider-revolution/public/js/libs/tptools.js?ver=6.7.51102 · /html/head/script[11]
https://kkc.or.kr/wp-content/plugins/slider-revolution/public/js/sr7.js?ver=6.7.51103 · /html/head/script[12]
https://kkc.or.kr/wp-includes/js/underscore.min.js?ver=1.13.8104 · /html/head/script[13]
https://kkc.or.kr/wp-includes/js/backbone.min.js?ver=1.6.1105 · /html/head/script[14]
https://kkc.or.kr/wp-includes/js/api-request.min.js?ver=7.1.2110 · /html/head/script[16]
https://kkc.or.kr/wp-includes/js/wp-api.min.js?ver=7.1.2111 · /html/head/script[17]
https://kkc.or.kr/wp-content/plugins/wp-data-access/public/../assets/js/wpda_rest_api.js?ver=5.5.72116 · /html/head/script[19]
https://kkc.or.kr/wp-content/themes/ohio/assets/js/libs/aos.min.js?ver=7.1.22518 · /html/body/script[5]
https://kkc.or.kr/wp-includes/js/imagesloaded.min.js?ver=5.0.02519 · /html/body/script[6]
https://kkc.or.kr/wp-includes/js/masonry.min.js?ver=4.2.22520 · /html/body/script[7]
https://kkc.or.kr/wp-content/plugins/js_composer/assets/lib/vendor/dist/isotope-layout/dist/isotope.pkgd.min.js?ver=8.7.22521 · /html/body/script[8]
https://kkc.or.kr/wp-content/themes/ohio/assets/js/libs/jquery.event.move.min.js?ver=1.0.02522 · /html/body/script[9]
https://kkc.or.kr/wp-content/themes/ohio/assets/js/libs/jquery.compare.min.js?ver=1.0.02523 · /html/body/script[10]
https://kkc.or.kr/wp-content/themes/ohio/assets/js/libs/typed.min.js?ver=1.0.02524 · /html/body/script[11]
https://kkc.or.kr/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc12552525 · /html/body/script[12]
https://kkc.or.kr/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea92162526 · /html/body/script[13]
https://kkc.or.kr/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.1.52531 · /html/body/script[15]
https://kkc.or.kr/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.1.52550 · /html/body/script[18]
https://kkc.or.kr/wp-includes/js/jquery/jquery.form.min.js?ver=4.3.02551 · /html/body/script[19]
https://kkc.or.kr/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js?ver=4.0.72552 · /html/body/script[20]
https://kkc.or.kr/wp-content/plugins/elementor/assets/js/frontend-modules.min.js?ver=4.0.72553 · /html/body/script[21]
https://kkc.or.kr/wp-includes/js/jquery/ui/core.min.js?ver=1.14.22558 · /html/body/script[23]
https://kkc.or.kr/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=4.0.72563 · /html/body/script[25]
https://kkc.or.kr/wp-content/plugins/ohio-extra/elementor/widgets/heading/handler.js?ver=1.0.02564 · /html/body/script[26]
https://kkc.or.kr/wp-content/plugins/ohio-extra/elementor/widgets/dynamic-text/handler.js?ver=1.0.02565 · /html/body/script[27]
https://kkc.or.kr/wp-content/plugins/ohio-extra/elementor/widgets/counter/handler.js?ver=1.0.02566 · /html/body/script[28]
https://kkc.or.kr/wp-content/plugins/ohio-extra/elementor/widgets/recent-projects/handler.js?ver=1.0.02567 · /html/body/script[29]
https://kkc.or.kr/wp-content/themes/ohio/assets/js/jquery.clb-slider.min.js?ver=7.1.22568 · /html/body/script[30]
https://kkc.or.kr/wp-content/plugins/ohio-extra/elementor/widgets/carousel/handler.js?ver=1.0.02569 · /html/body/script[31]
https://kkc.or.kr/wp-content/plugins/ohio-extra/elementor/widgets/marquee/handler.js?ver=1.0.02570 · /html/body/script[32]
https://kkc.or.kr/wp-content/plugins/ohio-extra/elementor/widgets/recent-posts/handler.js?ver=1.0.02571 · /html/body/script[33]
https://kkc.or.kr/wp-content/themes/ohio/assets/js/libs/jquery.google-maps.min.js?ver=1.0.02572 · /html/body/script[34]
https://maps.googleapis.com/maps/api/js?v=3.exp&key=AIzaSyBE3ZhqO6dAy7eCv4QxYDdMIosWWpwrtlU&callback=handleGoogleMaps2573 · /html/body/script[35]
https://kkc.or.kr/wp-content/plugins/ohio-extra/elementor/widgets/google-maps/handler.js?ver=1.0.02574 · /html/body/script[36]
https://kkc-admin-dashboard.vercel.app/assets/index.js?ver=1.0.0402_production_v52579 · /html/body/script[38]
https://kkc.or.kr/wp-content/plugins/akismet/_inc/akismet-frontend.js?ver=17781444442580 · /html/body/script[39]
https://kkc.or.kr/wp-includes/js/jquery/jquery.masonry.min.js?ver=3.1.2b2581 · /html/body/script[40]
https://kkc.or.kr/wp-content/themes/ohio/assets/js/libs/jquery.mega-menu.min.js?ver=7.1.22582 · /html/body/script[41]
https://kkc.or.kr/wp-content/themes/ohio/assets/js/libs/jquery.tilt.min.js?ver=7.1.22583 · /html/body/script[42]
https://kkc.or.kr/wp-content/themes/ohio/assets/js/main.min.js?ver=3.7.02588 · /html/body/script[44]
Security response headersView values
strict-transport-security
Not found
content-security-policy
Not found
x-content-type-options
Not found
x-frame-options
Not found
referrer-policy
Not found
permissions-policy
Not found
W3C messages30 saved

Up to 30 messages are saved.

  1. errorLine 59

    CSS: “font-size”: only “0” can be a “unit”. You must put a unit after your number.

    font-size:30;font-
  2. errorLine 59

    CSS: “background-color”: Parse Error.

    ackground-color:;background-im
  3. errorLine 59

    CSS: “background-color”: Parse Error.

    ackground-color:;}.project:not
  4. errorLine 59

    CSS: “background-color”: “1” is not a “background-color” value.

    ckground-color:1;} @media scre
  5. errorLine 420

    Element “div” not allowed as child of element “button” in this context. (Suppressing further errors from this subtree.)

    ger"> <div class="hamburger icon-button" tabindex="0">
  6. errorLine 420

    An element with the attribute “tabindex” must not appear as a descendant of the “button” element.

    ger"> <div class="hamburger icon-button" tabindex="0">
  7. errorLine 767

    Element “image_lists” not allowed as child of element “sr7-module” in this context. (Suppressing further errors from this subtree.)

    ent> <image_lists style="display:none">
  8. errorLine 767

    The “image_lists” element is a completely-unknown element that is not allowed anywhere in any HTML content.

    ent> <image_lists style="display:none">
  9. errorLine 821

    A “style” element in “body” must be the first child of its parent.

    eet"> <style>
  10. errorLine 822

    Style rule “.kkf-system-root” not allowed outside an “@scope” rule in a “style” element in “body”.

    > .kkf-system-root { wid
  11. errorLine 823

    Style rule “.kkf-system-root:empty” not allowed outside an “@scope” rule in a “style” element in “body”.

    } .kkf-system-root:empty { dis
  12. errorLine 824

    Style rule “.kkf-mobile-view” not allowed outside an “@scope” rule in a “style” element in “body”.

    } .kkf-mobile-view { dis
  13. errorLine 825

    Style rule “.entry-content” not allowed outside an “@scope” rule in a “style” element in “body”.

    } .entry-content { max
  14. errorLine 826

    Style rule “.kkc-show-mobile” not allowed outside an “@scope” rule in a “style” element in “body”.

    1025px) { .kkc-show-mobile { dis
  15. errorLine 826

    Style rule “.kkc-show-pc” not allowed outside an “@scope” rule in a “style” element in “body”.

    ortant; } .kkc-show-pc { dis
  16. errorLine 827

    Style rule “.kkc-show-pc” not allowed outside an “@scope” rule in a “style” element in “body”.

    1024px) { .kkc-show-pc { dis
  17. errorLine 827

    Style rule “.kkc-show-mobile” not allowed outside an “@scope” rule in a “style” element in “body”.

    ortant; } .kkc-show-mobile { dis
  18. errorLine 827

    Style rule “div.kkc-show-mobile” not allowed outside an “@scope” rule in a “style” element in “body”.

    ortant; } div.kkc-show-mobile { dis
  19. errorLine 1126

    Attribute “ohio-background-lines” not allowed on element “div” at this point.

    </div> <div ohio-background-lines="yes" class="elementor-element elementor-element-5a1b532 e-flex e-con-boxed e-con e-parent" data-id="5a1b532" data-element_type="container" data-e-type="container">
  20. errorLine 1569

    Attribute “ohio-background-lines” not allowed on element “div” at this point.

    </div> <div ohio-background-lines="yes" class="elementor-element elementor-element-c3d645a e-con-full e-flex e-con e-parent" data-id="c3d645a" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}"> <di
  21. errorLine 1710

    Attribute “ohio-background-lines” not allowed on element “div” at this point.

    </div> <div ohio-background-lines="yes" class="elementor-element elementor-element-3a0d2d6 e-flex e-con-boxed e-con e-parent" data-id="3a0d2d6" data-element_type="container" data-e-type="container">
  22. errorLine 1788

    Bad value “” for attribute “srcset” on element “img”: Must contain one or more image candidate strings.

    > <img decoding="async" class="blog-archive-image" src="https://kkc.or.kr/wp-content/uploads/2026/09/프레젠테이션1_1-1-716x694.jpg" srcset="" sizes="(max-width: 640px) 100vw, 640px" alt="" >
  23. errorLine 1004

    The heading “h6” (with computed level 6) follows the heading “h3” (with computed level 3), skipping 2 heading levels.

    iv> <h6 class="title">한국애견협회
  24. errorLine 1191

    The heading “h4” (with computed level 4) follows the heading “h2” (with computed level 2), skipping 1 heading level.

    <h4 class="title ">
  25. errorLine 1451

    The heading “h6” (with computed level 6) follows the heading “h2” (with computed level 2), skipping 3 heading levels.

    <h6 class="title -unspace">
  26. errorLine 1772

    The heading “h4” (with computed level 4) follows the heading “h2” (with computed level 2), skipping 1 heading level.

    iv> <h4 class="heading title">
  27. infoLine 9

    Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.

    회</title> <meta name='robots' content='max-image-preview:large' /> <link
  28. infoLine 10

    Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.

    large' /> <link rel='dns-prefetch' href='//maps.googleapis.com' /> <link
  29. infoLine 11

    Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.

    s.com' /> <link rel="alternate" type="application/rss+xml" title="(사) 한국애견협회 &raquo; 피드" href="https://kkc.or.kr/feed/" /> <link
  30. infoLine 12

    Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.

    feed/" /> <link rel="alternate" type="application/rss+xml" title="(사) 한국애견협회 &raquo; 댓글 피드" href="https://kkc.or.kr/comments/feed/" /> <link
06

Search and AI crawlers

4 checks

Robots.txt

Passed
robots.txt

This checks the robots.txt response. File presence does not verify all crawler permissions or actual indexing.

Keep in mind

Review bot and path rules for your intended policy. Protect private information with authentication and access controls.

XML Sitemap

Passed
https://kkc.or.kr/wp-sitemap.xml

This detects a sitemap format at a declared or default URL. It does not crawl and validate every listed URL.

Keep in mind

Include intended canonical URLs and meaningful update dates. Declare a custom sitemap location in robots.txt.

llms.txt

Needs review
The expected configuration was not detected.

This checks for a text response at /llms.txt. Its presence does not guarantee use by an AI service or search visibility.

Recommended action

If you publish one, describe public resources accurately and keep its content and links current.

Targets and suggested changes

Targethttps://kkc.or.kr/llms.txt

/llms.txt

If desired, publish UTF-8 text at the root and add real public documentation links. This is optional.

View evidence and example changes
Example - adapt to the actual content and environment
# (사) 한국애견협회

- [Home](https://kkc.or.kr/)

AI crawlers

Passed
5/5

This interprets root-path robots.txt rules for five bots. Training and search crawlers have different purposes; actual citations are not checked.

Keep in mind

Decide access for each bot according to your policy rather than automatically allowing every crawler.

Bot access to the root path

GPTBotAllowed
OAI-SearchBotAllowed
ClaudeBotAllowed
PerplexityBotAllowed
Google-ExtendedAllowed
robots.txt sourceExpand
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://kkc.or.kr/wp-sitemap.xml
07

PageSpeed Insights

External performance test

Run Google Lighthouse performance, accessibility, best practices and SEO checks. Device-specific results are cached for one day and are separate from the overall score above.

Locations refer to public HTML and resource URLs. Internal PHP or template file paths are not visible to external analysis.