PageSpeed Insights: https://pagespeed.web.dev/?hl=ko
구글 애드센스 탈락 후 구글 웹페이지 속도 측정 사이트 의 결과를 개선해 보려고 한다
자… 어디까지 올릴 수 있을까?
기존 코드 값에 있는 부분을 수정
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> 코드를 <meta name="viewport" content="width=device-width, initial-scale=1.0> 로 변경
[id]
속성이 있음메인 검색 창 2곳과 saerch.php에 같은 ID를 주고 있던 부분을 각각의 ID로 변경 처리
메뉴 버튼에 aria-label 추가
<a class="header-btn__nav" href="#"> 코드를 <a class="header-btn__nav" href="#" aria-label="nenu botton">
<li>
요소와 스크립트 지원 요소(<script>
및 <template>
)만 포함되지 않음기존 코드에 slick.js를 썼는데 조합하다 보니 ul 안에 li 말고도 span 이랑 div 코드가 바로 밑에 들어가서 오류가 발생. 코드 전반 수정.
role=""
are not valid ARIA roles.기존 사용한 slick.js에 코드상 role이 들어가는 부분이 있는데 해당 프러그인 스크립트 부분 삭제
<meta name="description" content="This site is pixi's personal site..." />
설명 메타 코드를 header.php에 추가!
성능을 제외하고 여기까진 금방 100 – 100 – 100이 되었는데.. 성능은 어렵….
속도 향상을 위해서 Autoptimize 와 W3 Total Cache 플러그인을 설치 하였다.
기존에 slick.js를 쓰기 위해서 워드프레스에 포함된 플러그인을 사용 했는데 해당 부분을 없애고 기존 워드프레스 제이쿼리 코드를 삭제 하였다.
그리고 추가로 메인에서 쓰지 않는 워드프레스 포함 코드도 분리 처리 하였다.
// block 용 css 대기열에서 삭제 - 사용은 하나 대기열에서 빼기 function db_dequeue_block_styles_on_home(){ wp_deregister_script('jquery'); if (is_home()) { wp_dequeue_style( 'wp-block-library' ); wp_dequeue_style( 'wp-block-library-theme' ); } } add_action( 'wp_enqueue_scripts', 'db_dequeue_block_styles_on_home', 100 );
이 부분이 성능 향상에 큰 도움이 되었다.
다른 css와 달리 sub.css는 바로 안 읽어도 되기에 지연 로드 시켰다.
<?php if (is_front_page()): ?> <link rel="preload" as="style" href="<?php echo get_template_directory_uri() . '/css/index.min.css'; ?>" onload="this.rel='stylesheet'" /> <?php else: ?> <link rel="preload" as="style" href="<?php echo get_template_directory_uri() . '/css/sub.min.css'; ?>" onload="this.rel='stylesheet'" /> <?php endif; ?>
<link rel="preload" as="image" href="<?php echo get_template_directory_uri() . '/img/index/bg_section.webp'; ?>" /> <link rel="preload" as="image" href="<?php echo get_template_directory_uri() . '/img/common/pixi.webp'; ?>" /> <?php if (is_front_page()): ?> <link rel="preload" as="image" href="https://pixiclue.com/wp/wp-content/uploads/2024/T-html.webp" /> <link rel="preload" as="image" href="https://pixiclue.com/wp/wp-content/uploads/2024/T-js.webp" /> <link rel="preload" as="image" href="https://pixiclue.com/wp/wp-content/uploads/2024/T-react.webp" /> <link rel="preload" as="image" href="https://pixiclue.com/wp/wp-content/uploads/2024/T-python.webp" /> <link rel="preload" as="image" href="https://pixiclue.com/wp/wp-content/uploads/2024/T-wordpress.webp" /> <link rel="preload" as="image" href="https://pixiclue.com/wp/wp-content/uploads/2024/T-photoshop.webp" /> <?php endif; ?>
메인에서 background로 쓰이는 이미지를 미리 head에 preload로 불러오는 처리
기존에 css에서 font-face로 구글 웹폰트 연결하던 부분을 일부 보충 해주기
실제 다른 글에서는 head에 직접 구글 웹 폰트를 연결 하는 게 좋다고 했는데…
그럴 경우 Autoptimize 플러그인에서 Extra – Google Fonts 부분을 바꿔야 하는데 개인적으로 테스트 해 본 결과 css에 import 하고 Autoptimize 플러그인에서 Google Fonts 부분을 Remove Google Fonts로 해주는게 실제 구글 폰트는 적용되면서 속도는 더 올라갔다.
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://hangeul.pstatic.net"> @import url('https://hangeul.pstatic.net/hangeul_static/css/nanum-square-round.css'); /* font-family: 'NanumSquareRound';*/ @import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,400;0,600;0,700;0,800;1,100;1,400;1,600;1,700;1,800&display=swap'); /*font-family: 'Poppins', sans-serif;*/ @import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital@0;1&display=swap'); /*font-family: 'IBM Plex Mono', monospace;*/
차세대 형식을 사용해서 이미지 제공하라고 해서 jpg → webp로 변경
Enlighter – Customizable Syntax Highlighter 플러그인에서 Dynamic Resource Invocation (DRI) 옵션 켜기
https://www.toptal.com/developers/javascript-minifier
https://www.websiteplanet.com/ko/webtools/jscssminifier/
여기까지 진행하고 있는데… 동일 사유로 떨어졌다고 나왔다.
일단 언제 검사를 한지 모르기에… seo도 끝났고, PageSpeed Insights도 일단 완료 하였기에 바로 그냥 재 신청 눌렀다…
현재까지 PageSpeed Insights 결과는 모바일 90 / PC 97 나오고 있다. CDN은 따로 쓰지 않고 있다.