SEO 친화적 URL 최적화: 서버와 CMS 설정 가이드
SEO 친화적 URL은 동적 매개변수를 읽기 쉬운 경로로 바꿔 검색엔진의 관련성을 높입니다. site.com/products.php?category_id=102&item_id=9452 대신 site.com/catalog/laptops/iphone-15-pro처럼 사용하세요. 이 구조는 사이트 계층과 키워드를 주소에 직접 반영해 크롤링과 분석을 쉽게 만듭니다.
올바른 SEO URL은 소문자, 단어 구분용 하이픈(-), UTM 매개변수 제외를 사용합니다. 경로는 3~5단어로 타겟 키워드를 정확히 넣으세요. 예: site.com/blog/seo-optimization 대신 site.com/p?id=3312&ref=main.
이점으로는 검색 결과 클릭률 상승, 키워드 관련성 향상, 크롤러 탐색 용이, 공유 편의, 이탈률 감소가 있습니다.
인기 CMS 플랫폼에서 SEO URL 설정하기
WordPress: 설정에서 %postname% 또는 /%category%/%postname%/ 선택 후 저장 — .htaccess가 자동 업데이트됩니다. mod_rewrite 활성화 확인하세요.
Joomla: SEF URL과 Apache Rewrite 활성화, htaccess.txt를 .htaccess로 이름 변경.
OpenCart: 서버 설정에서 SEO URL 활성화, 카테고리와 상품 별칭 설정, .htaccess.txt 이름 변경.
# Apache에서 mod_rewrite 확인
apache2ctl -M | grep rewrite
서버 설정: Apache와 Nginx
Apache .htaccess 설정
mod_rewrite 활성화:
sudo a2enmod rewrite
sudo systemctl restart apache2
기본 규칙:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
RewriteRule ^category/([0-9]+)/?$ /index.php?cat=$1 [L]
[L] 플래그는 처리 중단, [QSA]는 쿼리 매개변수 보존.
Nginx 설정
가상 호스트 파일에서:
server {
listen 80;
server_name site.com www.site.com;
root /var/www/site;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
테스트 및 재로드:
sudo nginx -t
sudo systemctl reload nginx
CDN 연동과 자동화
Cloudflare의 경우 Page Rules에서 Cache Level: Standard 설정 — SEO URL은 동적 URL보다 효율적으로 캐싱돼 오리진 서버 부하를 15~25% 줄입니다.
마이그레이션 자동화
MySQL(WordPress)용 Bash 스크립트:
#!/bin/bash
DB_NAME="your_db"
DB_USER="your_user"
DB_PASS="your_password"
mysql -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" <<EOF
UPDATE wp_posts
SET guid = REPLACE(guid, '/?p=', '/post/')
WHERE post_status = 'publish';
EOF
echo "변경 완료"
.htaccess 업데이트:
sed -i '/RewriteEngine On/a RewriteRule ^\?p=([0-9]+)$ /post/$1 [R=301,L]' /var/www/site/.htaccess
GitHub Actions로 CI/CD를 통해 설정 배포 자동화.
문제 해결 및 오류 수정
기존 URL 404 오류
301 리다이렉트 설정:
RewriteRule ^index\.php\?p=([0-9]+)$ /post/$1 [R=301,L]
Google Search Console의 Coverage 보고서 확인.
중복 페이지
<link rel="canonical" href="primary-URL">사용- robots.txt에서 동적 URL 차단:
Disallow: /*?id=
리다이렉트 테스트:
curl -I -L site.com/?p=123
주요 요약
- SEO URL은 추가 비용 없이 키워드 관련성과 클릭률을 높입니다.
- 커스텀 프로젝트에는 try_files나 RewriteRule 서버 설정이 필수.
- 301 리다이렉트로 마이그레이션 시 링크 가치 보존.
- CDN 연동으로 성능 15~25% 향상.
- 스크립트로 대형 사이트 작업 최소화.
— Editorial Team
아직 댓글이 없습니다.