Wordpress를 설치한 후 해야 할 일

게시 됨: 2022-02-26

간단한 2단계로 WordPress를 설치할 수 있지만 성능을 최적화하고 WordPress 웹 사이트의 보안을 향상시키기 위해 일부 기본 설정을 조정하는 것이 좋습니다.

워드프레스 최적화 가이드

WordPress 설치 최적화

이러한 제안은 자체 호스팅 WordPress.org 사이트에만 적용되며 WordPress.com 블로그에는 적용되지 않습니다. 또한 Linux에서 Apache에서 WordPress를 실행하고 있다고 가정합니다. 이제 가이드가 WordPress 4.2용으로 업데이트되었습니다. 시작하자:

1. 미디어 업로드 폴더 밖으로 이동

WordPress는 업로드한 모든 이미지와 파일을 wp-content/uploads 폴더에 저장합니다. 그러나 이 폴더를 기본 WordPress 폴더 외부로, 가급적이면 하위 도메인으로 이동해야 합니다. 따라서 WordPress 백업을 보다 쉽게 ​​관리할 수 있으며(업로드된 파일과 테마를 별도로 백업할 수 있음) 가장 중요한 것은 다른 도메인의 이미지를 제공하여 브라우저에서 병렬 다운로드를 허용하여 페이지 로딩 시간을 개선하는 것입니다.

wp-config.php 파일을 열고 다음 행을 추가하여 wp-content 폴더의 위치를 ​​변경하십시오. "내 업로드를 월별 및 연도 기반 폴더로 구성" 옵션을 선택 취소할 수도 있습니다.

 define( 'WP_CONTENT_URL', 'http://files.domain.com/media' ); define( 'WP_CONTENT_DIR', $_SERVER['HOME'] . '/files.domain.com/media' );

2. WordPress 헤더에서 불필요한 메타 태그 제거

WordPress 사이트의 HTML 소스 코드를 보면 헤더에서 실제로 필요하지 않은 몇 가지 메타 태그를 찾을 수 있습니다. 예를 들어, 서버에서 실행되는 WordPress 소프트웨어 버전은 소스 헤더를 보고 쉽게 검색할 수 있습니다.

 <meta name="generator" content="WordPress 4.1" />

이 정보는 WordPress 소프트웨어의 이전 버전과 덜 안전한 버전을 사용하는 블로그를 대상으로 하는 WordPress 해커에게 좋은 힌트입니다. 버전 번호 및 기타 비필수 메타데이터를 WordPress 헤더에서 완전히 제거하려면 이 스니펫을 WordPress 테마 폴더에 있는 functions.php 파일에 추가하세요.

 remove_action( 'wp_head', 'wp_generator' ) ; remove_action( 'wp_head', 'wlwmanifest_link' ) ; remove_action( 'wp_head', 'rsd_link' ) ;

3. 사람들이 폴더를 탐색하지 못하도록 방지

다른 사람이 웹 브라우저의 탐색기 보기를 사용하여 WordPress 파일 및 폴더를 탐색하는 것을 원하지 않으므로 WordPress 설치 디렉터리에 있는 .htaccess 파일에 다음 줄을 추가합니다.

 Options All -Indexes

또한 WordPress 디렉토리의 wp-content/themes 및 wp-content/plugins 폴더에 빈 index.php가 있는지 확인하십시오.

4. WordPress 댓글에서 HTML 비활성화

WordPress의 댓글 상자를 사용하면 댓글 작성자가 HTML 태그를 사용할 수 있으며 댓글에 하이퍼링크를 추가할 수도 있습니다. 주석에는 rel=nofollow가 있지만 WordPress 주석에서 HTML을 완전히 허용하지 않으려면 이 스니펫을 functions.php 파일에 추가하세요.

 add_filter( 'pre_comment_content', 'esc_html' );

업데이트: wp_specialcharsesc_html 로 대체했습니다. 전자는 WordPress 2.8+부터 더 이상 사용되지 않기 때문입니다.

5. WordPress에서 게시물 수정 끄기

WordPress에는 게시물 편집에 대한 변경 사항을 추적하는 데 도움이 되는 유용한 문서 수정 기능이 포함되어 있으며 블로그 게시물의 이전 버전으로 되돌릴 수도 있습니다. 그러나 각 개정이 추가 행을 의미하므로 게시물 개정은 WordPress wp_posts 테이블의 크기를 증가시킵니다.

WordPress에서 게시물 수정을 비활성화하려면 WordPress 디렉토리에서 wp-config.php 파일을 열고 다음 행을 추가하십시오.

 define( 'WP_POST_REVISIONS', false);

또는 Post Revisions 기능을 유지하려는 경우 WordPress가 MySQL 데이터베이스에 저장하는 게시물 개정 수를 제한할 수 있습니다. 이 줄을 wp-config 파일에 추가하여 최근 3개의 편집 내용만 저장합니다.

 define( 'WP_POST_REVISIONS', 3);

6. 사후 자동 저장 간격 변경

WordPress 편집기 내에서 블로그 게시물을 편집할 때 입력하는 대로 초안이 자동으로 저장되며 이는 브라우저가 충돌하는 경우 작업을 복구하는 데 도움이 됩니다. 초안은 매분 저장되지만 wp-config.php 파일에 한 줄을 추가하여 기본 지속 시간을 120초(또는 2분)로 변경할 수 있습니다.

 define( 'AUTOSAVE_INTERVAL', 120 );

7. 중요하지 않은 WordPress RSS 피드 숨기기

WordPress 설치는 블로그 피드, 기사 피드, 댓글 피드, 카테고리 피드, 아카이브 피드 등 여러 RSS 피드를 생성합니다. 이러한 피드는 <link> 를 사용하여 블로그 페이지의 HTML 헤더에 포함되어 있으므로 자동 검색 가능합니다. 메타 태그. 기본 RSS 피드를 공개하고 에서 다른 피드를 제거하려면 functions.php 파일에 한 줄을 추가하세요.

 remove_action( 'wp_head', 'feed_links', 2 ); remove_action( 'wp_head', 'feed_links_extra', 3 );

8. 단일 RSS 피드를 유지하고 다른 사람에게 리디렉션

이전 단계에서는 단순히 사이트 헤더 내부의 인쇄에서 RSS 피드를 제거했지만 RSS 피드는 여전히 존재합니다. FeedBurner를 통해 RSS 피드를 하나만 제공하고 다른 모든 피드를 비활성화하려면 이것을 .htaccess 파일에 추가하십시오. 피드 URL을 자신의 것으로 바꾸는 것을 잊지 마십시오.

 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !^.*(FeedBurner|FeedValidator) [NC] RewriteRule ^feed/?.*$ http://feeds.labnol.org/labnol [L,NC,R=301] </IfModule>

9. WordPress 로그인 힌트 비활성화

WordPress에 로그인하는 동안 존재하지 않는 사용자 이름이나 잘못된 비밀번호를 입력하면 사용자 이름이 틀리거나 비밀번호가 일치하지 않는지 여부를 정확히 알려주는 매우 상세한 오류 메시지가 표시됩니다. 이는 WordPress 블로그에 침입하려는 사람들에게 힌트를 제공할 수 있지만 다행히 로그인 경고를 비활성화할 수 있습니다.

 function no_wordpress_errors(){ return 'GET OFF MY LAWN !! RIGHT NOW !!'; } add_filter( 'login_errors', 'no_wordpress_errors' );

10. 2단계 인증 활성화

이것은 적극 권장됩니다. 누군가 귀하의 WordPress 자격 증명을 보유하고 있어도 WordPress 대시보드에 액세스하려면 여전히 귀하의 휴대전화가 필요합니다.

Dropbox 또는 Google과 달리 2단계 인증은 WordPress의 일부가 아니지만 항상 Authy 플러그인을 사용하여 2단계 인증을 활성화할 수 있습니다.

11. 퍼머링크 구조 변경

SEO에 좋지 않은 WordPress의 기본 Permalink 구조를 사용하지 마십시오. WordPress 대시보드 내부의 옵션 -> Permalink로 이동하여 WordPress Permalink 구조를 다음과 같이 변경합니다.

 Option 1. /%post_id%/%postname% Option 2. /%category%/%postname%/%post_id%/

12. 파비콘 및 터치 아이콘 추가

WordPress 테마에는 favicon(favicon.ico) 또는 Apple 터치 아이콘에 대한 참조가 포함되어 있지 않을 수 있지만 웹 브라우저와 피드 리더는 여전히 서버에서 요청할 수 있습니다. 404를 반환하는 것보다 항상 파일을 제공하는 것이 좋습니다.

먼저 16x16 favicon.ico와 144x144 apple-touch.png 파일을 만들어 블로그 홈 디렉토리에 업로드합니다. 그런 다음 이 줄을 .htaccess에 추가하여 모든 Apple 터치 아이콘 요청을 해당 특정 파일로 리디렉션합니다.

 RedirectMatch 301 /apple-touch-icon(.*)?.png http://example.com/apple-touch.png

13. WordPress 스크립트의 색인 생성 금지

Google 및 기타 검색 엔진이 블로그 페이지를 크롤링하고 색인을 생성하기를 원하지만 WordPress 설치의 다양한 PHP 파일은 그렇지 않습니다. WordPress 홈 디렉토리에서 robots.txt 파일을 열고 다음 행을 추가하여 봇이 WordPress의 백엔드 항목을 인덱싱하지 못하도록 차단합니다.

 User-agent: * Disallow: /wp-admin/ Disallow: /wp-includes/ Disallow: /wp-content/plugins/ Disallow: /wp-content/themes/ Disallow: /feed/ Disallow: */feed/

14. 관리자를 구독자로 설정

WordPress 사용자 이름이 "admin"인 경우 새 사용자를 만들고 관리자 권한을 부여합니다. 이제 WordPress에서 로그아웃하고 새 사용자로 로그인하고 사용자 "admin"의 권한을 관리자에서 구독자로 변경합니다.

사용자 "admin"을 삭제하고 기존 게시물/페이지를 새 사용자에게 이전하는 것을 고려할 수도 있습니다. 이것은 WordPress 설치에 대한 관리자 권한이 있는 사용자 이름을 누구도 추측하지 못하도록 하기 때문에 보안상의 이유로 중요합니다.

15. 검색 엔진에서 XML 사이트맵 숨기기

XML Sitemap은 검색 엔진이 사이트를 더 잘 크롤링하는 데 도움이 되지만 검색 엔진이 검색 결과 페이지에 사이트맵을 실제로 표시하는 것을 원하지 않습니다. XML 사이트맵의 색인 생성을 방지하려면 이것을 .htaccess에 추가하십시오.

 <IfModule mod_rewrite.c> <Files sitemap.xml> Header set X-Robots-Tag "noindex" </Files> </IfModule>

16. WordPress 검색을 사용하지 마십시오

사이트 검색이 Google 사용자 정의 검색에서 제공되는지 확인하고 WordPress의 기본 제공 검색 기능을 사용하지 마십시오. WordPress 검색은 관련성이 낮은 결과를 반환하고 다른 이점은 검색 쿼리가 Google을 통해 처리되기 때문에 WordPress 서버/데이터베이스의 부담을 줄일 수 있다는 것입니다.

또는 WordPress 내장 검색을 계속하려면 Nice Search 플러그인을 사용하세요. WordPress 검색 페이지(/search/tutorials 대 /?s=tutorials)에 대한 더 나은 영구 링크를 만듭니다.

17. wp-admin 디렉토리를 비밀번호로 보호

wp-admin 디렉토리를 암호로 보호하여 WordPress 설치에 다른 보안 계층을 쉽게 추가할 수 있습니다. 그러나 WordPress에 로그인하려면 WordPress 비밀번호와 wp-admin 디렉토리를 보호하는 비밀번호라는 두 가지 자격 증명 세트를 기억해야 합니다.

18. Google 애널리틱스에서 404 오류를 기록합니다.

404 오류는 놓친 기회입니다. Google Analytics의 이벤트를 사용하여 사이트의 해당 404 페이지를 가리키는 참조 사이트에 대한 세부정보를 포함하여 404 오류를 기록할 수 있습니다. 404.php 파일에 이 스니펫을 추가하십시오.

 <? if (is_404()) { ?> _gaq.push(['_trackEvent', '404', document.location.pathname + document.location.search, document.referrer, 0, true]); <? } ?>

19. 사용하지 않는 테마 및 WordPress 플러그인 삭제

사용하지 않는 플러그인과 테마는 WordPress 웹사이트의 성능에 영향을 미치지 않지만 목표는 우리 서버에서 가능한 한 실행 가능한 코드를 줄이는 것입니다. 따라서 더 이상 필요하지 않은 항목을 비활성화하고 삭제하십시오.

20. WordPress에서 URL 추측 중지

WordPress에는 URL을 추측하는 이상한 습관이 있으며 대부분의 경우 실수를 합니다. 설명하겠습니다. 사용자가 labnol.org/hello URL을 요청했지만 해당 페이지가 존재하지 않는 경우 WordPress는 URL에 몇 가지 공통 단어가 있기 때문에 해당 사용자를 labnol.org/hello-world로 리디렉션할 수 있습니다.

워드프레스가 URL 추측을 중단하고 페이지 누락에 대해 404 Not Found 오류를 발생시키도록 하려면 다음 스니펫을 functions.php 파일에 넣으세요.

 add_filter('redirect_canonical', 'stop_guessing'); function stop_guessing($url) { if (is_404()) { return false; } return $url; }

21. 정적 콘텐츠에 대한 만료 헤더 설정

이미지, CSS 및 JavaScript와 같이 WordPress 웹사이트에서 호스팅되는 정적 파일은 자주 변경되지 않으므로 파일이 사용자의 브라우저에 캐시되도록 해당 파일에 대해 만료 헤더를 설정할 수 있습니다. 따라서 후속 방문에서 JS 및 CSS 파일을 로컬 캐시에서 가져오기 때문에 사이트가 상대적으로 더 빨리 로드됩니다.

성능을 위한 만료 및 압축 헤더 설정에 대한 자세한 내용은 HTML5 상용구를 참조하세요. W3 Total Cache와 같은 캐싱 플러그인을 사용하는 경우 캐시 제어는 플러그인 자체에서 관리합니다.

 ExpiresActive On ExpiresByType image/gif "access plus 30 days" ExpiresByType image/jpeg "access plus 30 days" ExpiresByType image/png "access plus 30 days" ExpiresByType text/css "access plus 1 week" ExpiresByType text/javascript "access plus 1 week"

23. WordPress 보안 개선

앞서 WordPress 보안에 대해 자세히 설명했습니다. 요점은 wp_config.php 파일에 비밀 키를 추가하고, 파일 모니터링 플러그인(Sucuri 또는 WordFence와 같은)을 설치하고, WordPress 테이블 접두사를 변경하고, 무차별 대입 공격을 방지하기 위해 로그인 시도를 제한해야 한다는 것입니다.

24. WordPress 내에서 파일 편집 비활성화

WordPress 대시보드에 관리자로 로그인하면 WordPress 플러그인 및 테마와 관련된 모든 PHP 파일을 쉽게 편집할 수 있습니다. 파일 편집 기능을 제거하려면(세미콜론 하나가 없으면 WordPress 사이트가 다운될 수 있음) wp-config.php 파일에 다음 줄을 추가하세요.

 define( 'DISALLOW_FILE_EDIT', true );

25. URL에서 추가 쿼리 매개변수 제거

WordPress 사이트의 웹 주소가 abc.com인 경우 URL에 몇 가지 쿼리 매개변수를 추가하면 사람들이 여전히 귀하의 사이트에 연결할 수 있습니다. 예를 들어, abc.com/?utm=ga 또는 abc.com/?ref=feedly는 기술적으로 말하면 완전히 다른 URL이지만 제대로 작동합니다.

이는 SEO(링크 자산)를 희석시키고 이상적인 상황에서는 모든 URL이 표준 버전을 가리키도록 하기 때문에 좋지 않습니다. 이 작은 스니펫을 .htaccess 파일에 추가하면 들어오는 모든 요청에서 불필요한 쿼리 매개변수를 제거합니다.

 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{QUERY_STRING} !="" RewriteCond %{QUERY_STRING} !^p=.* RewriteCond %{QUERY_STRING} !^s=.* RewriteCond %{REQUEST_URI} !^/wp-admin.* RewriteRule ^(.*)$ /$1? [R=301,L] </IfModule>

26. 관리자 표시줄 제거

이것은 WordPress의 성가신 기능입니다. 모든 페이지 상단에 관리 표시줄을 추가하고 WordPress.com 계정에 로그인한 모든 사용자에게 표시됩니다. 그러나 functions.php 파일에 행을 추가하여 제거할 수 있습니다.

 add_filter('show_admin_bar', '__return_false');

27. 광고 차단기 처리

블로그 독자 중 일부는 광고 차단 소프트웨어를 사용하여 사이트에서 광고 게재를 차단할 수 있습니다. 인기 있는 WordPress 게시물 목록과 같은 대체 콘텐츠를 제공하거나 대신 YouTube 동영상을 포함할 수 있습니다.

28. RSS 피드에 브랜딩 삽입

RSS 피드의 모든 기사에 브랜드 로고를 쉽게 추가할 수 있습니다. 그리고 이러한 이미지는 서버에서 제공되므로 피드를 다시 게시하여 콘텐츠를 표절하는 사이트에 대해 다른 이미지를 제공할 수 있습니다. 이것을 functions.php 파일에 추가하십시오.

 function add_rss_logo($content) { if(is_feed()) { $content .= "<hr><a href='blog_url'><img src='logo_url'/></a>"; } return $content; } add_filter('the_content', 'add_rss_logo'); add_filter('the_excerpt_rss', 'add_rss_logo');

29. 필수 플러그인 설치

다음은 내가 사용하고 추천하는 WordPress 플러그인의 전체 목록입니다.

30. 장기간 로그인 유지

"Remember Me" 옵션을 선택하면 WordPress는 2주 동안 로그인 상태를 유지합니다. 개인용 컴퓨터에서만 WordPress에 로그인하는 경우 functions.php 파일에 이를 추가하여 인증 로그인 쿠키의 만료일을 쉽게 연장할 수 있습니다.

 add_filter( 'auth_cookie_expiration', 'stay_logged_in_for_1_year' ); function stay_logged_in_for_1_year( $expire ) { return 31556926; // 1 year in seconds }

31. WordPress Emojis 제거

v4.2부터 WordPress는 이제 웹 사이트 헤더에 Emoji 관련 파일을 삽입합니다. 블로그에서 이모티콘과 이모티콘을 사용할 계획이 없다면 functions.php 파일에 다음 행을 추가하여 이러한 추가 파일을 쉽게 제거할 수 있습니다.

 remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );

32. 인쇄된 페이지 추적

Google Analytics를 사용하여 웹사이트의 인쇄 사용량을 추적할 수 있습니다. 방문자가 웹사이트의 페이지를 인쇄하면 이벤트가 Analytics에 기록되고 어떤 종류의 콘텐츠가 프린터로 전송되고 있는지 알 수 있습니다. 마찬가지로 인쇄된 페이지에 QR 코드를 추가할 수 있으며 사람들은 휴대전화로 코드를 스캔하여 소스 URL을 쉽게 찾을 수 있습니다.

참조: WordPress용 Linux 명령