LEVEL 57 QUEST
SEO 최적화 & 콘텐츠 마케팅
검색 엔진 최적화와 콘텐츠로 유기적 트래픽 확보하기! 돈 안 들이고 고객이 찾아오는 시스템을 구축하세요.
기술 SEO 체크리스트
SEO는 기술적 기반 위에 콘텐츠를 쌓는 것입니다. 기술 SEO가 안 되면 아무리 좋은 글을 써도 검색에 노출되지 않습니다.
기술 SEO 필수 항목
| 항목 | 중요도 | 설명 | 도구 |
|---|---|---|---|
| Meta Title | 최상 | 60자 이내, 핵심 키워드 포함 | 직접 작성 |
| Meta Description | 높음 | 155자 이내, 클릭 유도 문구 | 직접 작성 |
| Canonical URL | 높음 | 중복 콘텐츠 방지 | rel="canonical" |
| Sitemap.xml | 최상 | 크롤러에게 페이지 목록 제공 | 자동 생성 |
| Robots.txt | 높음 | 크롤링 범위 지정 | 직접 작성 |
| SSL (HTTPS) | 최상 | 보안 + 랭킹 시그널 | Let's Encrypt |
| Core Web Vitals | 높음 | LCP, FID, CLS 최적화 | PageSpeed Insights |
| 모바일 최적화 | 최상 | Mobile-First 인덱싱 | 반응형 CSS |
<!-- 완벽한 SEO 메타 태그 템플릿 -->
<head>
<!-- 기본 메타 -->
<title>AutoReport - 보고서 자동화 SaaS | 5분 만에 완성</title>
<meta name="description"
content="매주 15시간을 절약하세요. AutoReport로 클릭 한 번에 전문가급 보고서를 자동 생성합니다. 무료 체험 시작.">
<link rel="canonical" href="https://autoreport.com/">
<!-- Open Graph (소셜 공유용) -->
<meta property="og:title" content="AutoReport - 보고서 자동화">
<meta property="og:description" content="클릭 한 번으로 보고서 자동 생성">
<meta property="og:image" content="https://autoreport.com/og-image.png">
<meta property="og:type" content="website">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="AutoReport - 보고서 자동화">
<!-- 구조화된 데이터 -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "AutoReport",
"applicationCategory": "BusinessApplication",
"offers": {
"@type": "Offer",
"price": "29000",
"priceCurrency": "KRW"
}
}
</script>
</head>
PHP로 동적 sitemap.xml 생성
Sitemap이 중요한 이유
구글 크롤러에게 "이 페이지들을 크롤링해주세요"라고 알려주는 지도입니다.
새 페이지가 추가될 때마다 자동으로 업데이트되어야 합니다.
// sitemap_generator.php - 동적 Sitemap 자동 생성
class SitemapGenerator {
private $pdo;
private $baseUrl;
private $urls = [];
public function __construct(PDO $pdo, string $baseUrl) {
$this->pdo = $pdo;
$this->baseUrl = rtrim($baseUrl, '/');
}
// 정적 페이지 추가
public function addStaticPages(): self {
$pages = [
['/', '1.0', 'daily'],
['/pricing', '0.9', 'weekly'],
['/features', '0.8', 'weekly'],
['/about', '0.5', 'monthly'],
['/contact', '0.5', 'monthly'],
['/blog', '0.9', 'daily'],
];
foreach ($pages as [$path, $priority, $freq]) {
$this->urls[] = [
'loc' => $this->baseUrl . $path,
'lastmod' => date('Y-m-d'),
'freq' => $freq,
'priority'=> $priority
];
}
return $this;
}
// DB에서 블로그 글 자동 추가
public function addBlogPosts(): self {
$stmt = $this->pdo->query("
SELECT slug, updated_at FROM blog_posts
WHERE status = 'published'
ORDER BY updated_at DESC
");
while ($post = $stmt->fetch()) {
$this->urls[] = [
'loc' => $this->baseUrl . '/blog/' . $post['slug'],
'lastmod' => date('Y-m-d', strtotime($post['updated_at'])),
'freq' => 'monthly',
'priority'=> '0.7'
];
}
return $this;
}
// XML 생성 및 저장
public function generate(): string {
$xml = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
$xml .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
foreach ($this->urls as $url) {
$xml .= " <url>\n";
$xml .= " <loc>{$url['loc']}</loc>\n";
$xml .= " <lastmod>{$url['lastmod']}</lastmod>\n";
$xml .= " <changefreq>{$url['freq']}</changefreq>\n";
$xml .= " <priority>{$url['priority']}</priority>\n";
$xml .= " </url>\n";
}
$xml .= "</urlset>";
file_put_contents('sitemap.xml', $xml);
return $xml;
}
}
// 사용법
$sitemap = new SitemapGenerator($pdo, 'https://autoreport.com');
$sitemap->addStaticPages()
->addBlogPosts()
->generate();
echo "Sitemap 생성 완료!";
# robots.txt 예시
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Disallow: /tmp/
Sitemap: https://autoreport.com/sitemap.xml
🔒
여기까지는 미리보기입니다
SEO 최적화 & 콘텐츠 마케팅
무료 가입하면 이어서 볼 수 있고, 강의를 완료할 때마다 XP와 레벨이 쌓입니다.
Google로 3초 만에 시작 →🧵 Threads로 시작무료 공개 강의 둘러보기 (Lv.1~3)무료 가입하면 이어서 볼 수 있고, 강의를 완료할 때마다 XP와 레벨이 쌓입니다.