mcpField
S
seo-optimizer

seo-optimizer

github.com/pixel-process-ugマーケティング・グロース383 回インストール33 週間前に更新
リポジトリ

seo-optimizer について

ウェブサイトの SEO を監査・最適化するスキルです。単一ページの確認からサイト全体の見直しまで対応し、技術チェック、ページメタデータ、構造化データ、Core Web Vitals の監視を段階的に進めます。

主な機能

  1. 01クロールとインデックス可能性の監査
  2. 02タイトル、説明文、見出しの最適化
  3. 03Schema.org JSON-LD の実装
  4. 04サイトマップと正規 URL の管理
  5. 05Core Web Vitals のパフォーマンス調整
  6. 06検索パフォーマンスの監視

活用シーン

  1. 01クロールエラーやリンク切れの発見
  2. 02ページメタデータと内部リンクの改善
  3. 03構造化データの追加と検証
  4. 04インデックス状況と検索パフォーマンスの追跡

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pixel-process-ug/superkit-agents --skill seo-optimizer

インストール後、Claude Code で/seo-optimizerを入力して読み込まれたか確認します。

詳細

SEO 最適化

概要

テクニカル SEO、ページ内最適化、構造化データの実装、Core Web Vitals のパフォーマンス調整を通じて、検索エンジンでのウェブサイトの可視性を高めます。このスキルでは、クロール可能性、インデックス登録可能性、メタタグ戦略、Schema.org マークアップ、サイトマップ生成、正規 URL の管理、国際化(hreflang)、Google のランキングシグナルに向けたパフォーマンス最適化を扱います。

単一ページの監査からサイト全体の見直しまで、オーガニック検索のパフォーマンス改善が必要な場合はいつでも、このスキルを適用してください。

複数フェーズのプロセス

フェーズ 1:テクニカル監査
  1. サイトをクロールします(Screaming Frog、Sitebulb、またはカスタムスクリプト)
  2. robots.txt と XML サイトマップの有効性を確認します
  3. クロールエラー、リダイレクトチェーン、リンク切れを特定します
  4. 正規 URL と重複コンテンツへの対処を検証します
  5. モバイルフレンドリー対応とレスポンシブデザインを評価します
  6. HTTPS の実装と混在コンテンツを確認します
  7. ページ読み込みのパフォーマンス(Core Web Vitals)を評価します

停止 — 監査結果を文書化して優先順位を付けるまで、フェーズ 2 に進まないでください。

フェーズ 2:ページ内最適化
  1. タイトルタグを監査します(固有であること、50~60 文字、キーワードの配置)
  2. メタディスクリプションを確認します(固有であること、150~160 文字、魅力的な CTA)
  3. 見出しの階層を分析します(H1 は 1 つ、H2~H6 は論理的な構成)
  4. 画像の代替テキストとファイル名を最適化します
  5. 内部リンクの構造とアンカーテキストを確認します
  6. URL の構造を確認します(短く、説明的で、ハイフン区切りであること)
  7. Open Graph タグと Twitter Card タグを検証します

停止 — ページ内の変更を実装して検証するまで、フェーズ 3 に進まないでください。

フェーズ 3:構造化データの実装
  1. コンテンツに適用可能な Schema.org タイプを特定します
  2. JSON-LD 構造化データを実装します
  3. Google Rich Results Test で検証します
  4. リッチスニペットの対象となるかテストします
  5. Search Console で構造化データのエラーを監視します

停止 — 構造化データの検証に合格するまで、フェーズ 4 に進まないでください。

フェーズ 4:監視と反復
  1. Google Search Console の監視を設定します
  2. Core Web Vitals の推移を追跡します
  3. インデックス登録状況とカバレッジを監視します
  4. 検索パフォーマンス(クリック数、表示回数、CTR、掲載順位)を確認します
  5. クロールエラーやランキング低下のアラートを設定します

監査の優先順位決定表

検出事項深刻度修正の優先度影響
HTTPS なし/混在コンテンツ重大即時ランキングへの悪影響、信頼性シグナル
正規 URL がない重大即時重複コンテンツによる評価の分散
リダイレクトチェーンの不備(3 回以上のホップ)高今回のスプリントクロールバジェットの浪費、リンクエクイティの損失
タイトルタグがない、または重複している高今回のスプリントCTR の低下、ランキングの混乱
構造化データがない中次回のスプリントリッチスニペットの機会損失
画像に代替テキストがない中次回のスプリントアクセシビリティと画像検索での機会損失
Core Web Vitals が最適でない中次回のスプリントランキングシグナル、ユーザーエクスペリエンス
hreflang タグがない(多言語サイト)低バックログ地域ターゲティングの問題
説明的でない URL スラッグ低バックログランキングと CTR への軽微な影響

メタタグのリファレンス

必須のメタタグ
<head>
  
  <title>Primary Keyword - Secondary Keyword | Brand Name</title>
  <meta name="description" content="Compelling 150-160 char description with target keyword and clear value proposition.">
  <link rel="canonical" href="https://example.com/page">

  
  <meta name="robots" content="index, follow">
  

  
  <meta name="viewport" content="width=device-width, initial-scale=1">

  
  <meta property="og:type" content="website">
  <meta property="og:title" content="Page Title for Social Sharing">
  <meta property="og:description" content="Description optimized for social sharing.">
  <meta property="og:image" content="https://example.com/og-image.jpg">
  <meta property="og:url" content="https://example.com/page">
  <meta property="og:site_name" content="Brand Name">

  
  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:title" content="Page Title">
  <meta name="twitter:description" content="Twitter-optimized description.">
  <meta name="twitter:image" content="https://example.com/twitter-image.jpg">

  
  <link rel="alternate" hreflang="en" href="https://example.com/en/page">
  <link rel="alternate" hreflang="de" href="https://example.com/de/page">
  <link rel="alternate" hreflang="x-default" href="https://example.com/page">
</head>
メタタグ最適化マトリクス
要素最大文字数優先キーワードよくある間違い
タイトルタグ50~60 文字主要キーワードを前方に配置長すぎる、キーワードの詰め込み、重複
メタディスクリプション150~160 文字CTA とキーワードを含める未設定、重複、CTA がない
H1該当なし(ページごとに 1 つ)主要キーワードのバリエーションH1 が複数ある、H1 がない
URL スラッグ3~5 語ターゲットキーワード長すぎる、パラメーター、アンダースコア
画像の代替テキスト125 文字説明的で、自然な場合はキーワードを含める空欄、「画像の…」、キーワードの詰め込み
OG タイトル60~90 文字魅力的で共有しやすい内容タイトルタグと同じ(機会損失)

構造化データ(JSON-LD)

記事
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to Optimize Core Web Vitals",
  "author": {
    "@type": "Person",
    "name": "Jane Smith",
    "url": "https://example.com/authors/jane-smith"
  },
  "datePublished": "2026-03-01",
  "dateModified": "2026-03-15",
  "image": "https://example.com/images/article-hero.jpg",
  "publisher": {
    "@type": "Organization",
    "name": "Example Blog",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  },
  "description": "A comprehensive guide to improving LCP, FID, and CLS scores."
}
</script>
商品
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Widget Pro",
  "description": "Professional-grade widget for enterprise use.",
  "image": "https://example.com/widget-pro.jpg",
  "brand": { "@type": "Brand", "name": "WidgetCo" },
  "offers": {
    "@type": "Offer",
    "price": "49.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://example.com/widget-pro"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "312"
  }
}
</script>
FAQ ページ
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is Core Web Vitals?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Core Web Vitals are a set of metrics that measure real-world user experience for loading, interactivity, and visual stability."
      }
    }
  ]
}
</script>
スキーマタイプの選択ガイド
コンテンツタイプスキーマタイプリッチリザルト
ブログ記事Article記事スニペット
商品ページProduct価格、評価、在庫状況
FAQ セクションFAQPage展開可能な Q&A
ハウツーガイドHowToステップごとのスニペット
レシピRecipe画像、所要時間、評価
イベントEvent日付、場所、価格
ローカルビジネスLocalBusinessマップパック、営業時間
ソフトウェアSoftwareApplication評価、価格
パンくずリストBreadcrumbListパンくずリスト
動画VideoObjectサムネイル、再生時間

Core Web Vitals

指標としきい値
指標良好改善が必要不良測定対象
LCP(Largest Contentful Paint)<= 2.5s<= 4.0s> 4.0s読み込みパフォーマンス
INP(Interaction to Next Paint)<= 200ms<= 500ms> 500msインタラクティブ性
CLS(Cumulative Layout Shift)<= 0.1<= 0.25> 0.25視覚的な安定性
LCP の最適化

<link rel="preload" as="image" href="/hero.webp" fetchpriority="high">


<picture>
  <source srcset="/hero.avif" type="image/avif">
  <source srcset="/hero.webp" type="image/webp">
  <img src="/hero.jpg" alt="Hero description" width="1200" height="600"
       fetchpriority="high" decoding="async">
</picture>
CLS の防止
/* Always set dimensions on images and video */
img, video {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
}

/* Reserve space for dynamic content */
.ad-slot {
  min-height: 250px;
}

/* Avoid inserting content above existing content */
.notification-bar {
  position: fixed; /* doesn't shift layout */
}
INP の最適化
// Break long tasks with yield
async function processLargeDataset(data) {
  for (let i = 0; i < data.length; i++) {
    processItem(data[i]);
    if (i % 100 === 0) {
      await new Promise(resolve => setTimeout(resolve, 0)); // yield to main thread
    }
  }
}

// Use requestIdleCallback for non-critical work
requestIdleCallback(() => {
  loadAnalytics();
  initNonCriticalFeatures();
});

XML サイトマップ

生成パターン
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/</loc>
    <lastmod>2026-03-15</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://example.com/products</loc>
    <lastmod>2026-03-14</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>
サイトマップのベストプラクティス
  • サイトマップファイルあたりの URL は最大 50,000 件にします
  • 大規模なサイトではサイトマップインデックスを使用します
  • 正規 URL でインデックス可能な URL のみを含めます
  • コンテンツが実際に変更された場合にのみ lastmod を更新します
  • Google Search Console と robots.txt から送信します

robots.txt テンプレート

User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Disallow: /search?
Disallow: /*?sort=
Disallow: /*?filter=

Sitemap: https://example.com/sitemap.xml

Next.js / React の SEO パターン

Next.js Metadata API(App Router)
import type { Metadata } from 'next';

export const metadata: Metadata = {
  title: {
    template: '%s | Brand Name',
    default: 'Brand Name - Tagline',
  },
  description: 'Site-wide default description.',
  openGraph: {
    type: 'website',
    locale: 'en_US',
    url: 'https://example.com',
    siteName: 'Brand Name',
  },
  twitter: {
    card: 'summary_large_image',
  },
  robots: {
    index: true,
    follow: true,
  },
  alternates: {
    canonical: 'https://example.com',
  },
};
ページごとの動的メタデータ
export async function generateMetadata({ params }): Promise<Metadata> {
  const product = await getProduct(params.slug);

  return {
    title: product.name,
    description: product.description.slice(0, 160),
    openGraph: {
      title: product.name,
      description: product.description.slice(0, 200),
      images: [{ url: product.image, width: 1200, height: 630 }],
    },
  };
}

アンチパターン/よくある間違い

アンチパターン失敗する理由代わりに行うこと
タイトルやコンテンツへのキーワードの詰め込みスパムフィルターに検出され、CTR が低下しますメインキーワードを自然に一度使い、類義語を加えます
ページ間で同じタイトル/説明を使用する重複コンテンツのシグナルとなり、機会を逃しますインデックス可能な URL ごとに、固有のページ固有メタデータを設定します
robots.txt で CSS/JS をブロックするGooglebot がページをレンダリングできませんすべてのレンダリングリソースを許可します
構造化データとページコンテンツが一致しないGoogle のペナルティやリッチスニペットの削除につながりますスキーマは目に見えるコンテンツと正確に一致させます
2 ホップを超えるリダイレクトチェーンクロールバジェットの浪費やリンクエクイティの損失につながります最終的な移動先へ直接リダイレクトします
SSR リンクのない JS のみのナビゲーションクローラーがページを見つけられませんナビゲーションリンクをサーバーでレンダリングします
Core Web Vitals を無視するランキングシグナルが低下しますLCP、INP、CLS をプロファイリングして最適化します
正規 URL がない重複コンテンツのペナルティにつながりますインデックス可能なすべてのページに正規 URL を設定します
アンカーテキストを過度に最適化する不自然なリンクパターンがペナルティにつながります説明的で多様なアンカーテキストを使用します
SEO のために CSS でコンテンツを隠すクローキング違反になりますSEO コンテンツはすべてユーザーに見えるようにします

不合理な正当化を防ぐためのガード

  • 「サイトに問題はなさそう」という理由で技術監査を省略しないでください。クロールしてください。
  • リッチリザルトテストに合格することを検証せずに、構造化データを追加しないでください。
  • すべてのページタイプを確認せずに、メタタグが正しいと思い込まないでください。
  • 変更前後の測定を行わずに、SEO の変更をデプロイしないでください。
  • ユーザーエクスペリエンスを犠牲にして、検索エンジン向けの最適化を行わないでください。

統合ポイント

スキル連携方法
content-creatorSEO に基づいて、マーケティングコンテンツのキーワードターゲティングと見出しの戦略を決定します
content-research-writer調査に基づくコンテンツには、SEO に最適化された構成とメタタグが必要です
senior-frontendCore Web Vitals の最適化には、フロントエンドのパフォーマンス調整が必要です
performance-optimizationページ速度は LCP と INP のスコアに直接影響します
deploymentSEO の変更には、適切なキャッシュの無効化とリダイレクト設定が必要です
tech-docs-generatorドキュメントサイトには、サイトマップ、正規 URL、構造化データの設定が必要です

スキルの種類

FLEXIBLE — サイトの技術スタック、コンテンツの種類、競争環境に合わせて最適化戦略を調整します。技術的な SEO の基本と構造化データのベストプラクティスを強く推奨しますが、具体的な実装パターンはフレームワークによって異なります。

コメント