メタディスクリプションの文字数を確認:推奨120–160文字
メタディスクリプションには、検索する方へページを訪れる理由を伝えるための限られたスペースしかありません。このチェッカーは原稿の文字数を数え、推奨される120–160文字と比較して、短すぎる文章や途中で切れるおそれがある文章を明確に示します。内容を書き換えたり、検索順位について主観的な判断をしたりせず、執筆者、編集者、SEO担当者が迅速かつ一貫して確認できます。こちらで実行するほか、同じ決定論的な検査をAPIで自動化できます。
無料で実行
チェッカーが測定する内容をご確認ください
公開予定のメタディスクリプションを、そのまま貼り付けてください。このチェッカーはUnicode文字を数えます。そのため、表示上1つの絵文字や基本多言語面の外にある文字は、内部のコード単位が2つでも1文字として扱われます。次に、合計を推奨最小値の120文字と最大値の160文字に照らして判定します。境界を含む範囲内なら「推奨」、下回れば「短すぎる」、160を超えれば「長すぎる」となり、途中で切れるリスクも示されます。さらに、最小値まで何文字不足しているか、または最大値を何文字超えているかも返します。必要な修正量が分かるため、手作業で何度も数える必要がありません。本ツールはHTMLを解析せず、ウェブページを取得せず、文章の質を評価せず、特定の検索エンジンでの表示を保証しません。入力された文章だけを対象に、透明性の高い文字数検査を1回行います。
推奨範囲を編集上の目安としてお使いください
120–160という範囲は実用的な執筆目標であり、すべての検索結果に全文字が表示される保証ではありません。検索エンジンはページ本文から別のスニペットを作成する場合があり、端末や検索語句に応じて表示領域を変え、単純な文字数ではなく描画幅に基づいて文章を切ることもあります。「長すぎる」という結果は、末尾の重要な語句が表示されない可能性を知らせる注意としてご利用ください。補足情報を削る前に、ページの主要な利点、題材、行動の呼びかけを前方へ移します。短すぎる場合は、キーワードを繰り返して埋めるのではなく、ページを見分けるための具体的な情報を加えてください。範囲内でも、正確で読みやすく、ページ内容と一致している必要があります。本ツールは客観的な測定と編集判断を意図的に分けています。文字数が範囲内かを示しますが、関連性、文調、正確性、自然なクリック理由については担当チームでご判断ください。
再現可能な公開前チェックを構築できます
1ページだけを確認する場合は、最終原稿を貼り付け、公開前にステータスをご確認ください。コンテンツ処理工程では、候補となる各説明文をAPIへ送り、文字数、ステータス、途中で切れるリスクを編集チェックと一緒に保存できます。文章を自動変更せずに、空の入力を拒否し、短い説明を執筆者へ戻し、長い説明を要確認として扱えます。アルゴリズムはネットワーク通信、乱数、時刻依存データを使わないため、同じ入力ならブラウザー、ビルド処理、継続的インテグレーションのどこでも同じ結果になります。送信する文章はmetaタグへ設定する値と同一にしてください。先頭と末尾の空白も文字列の一部として数えますが、空白だけの入力は空とみなして拒否します。言語によって文字数は変わるため、ローカライズ後にも再確認してください。この機能は任意のUnicodeテキストを測定しますが、翻訳や言語別の編集指針の代替は行いません。
活用例
公開前にページをご確認ください
ページを公開する前に、最終的なメタディスクリプションが空、短すぎる、または長すぎる状態でないか検出します。
コンテンツ移行を監査できます
別のCMSやサイト構造へ説明文を移す際に、120–160文字の統一ルールを適用します。
CIへコンテンツ検査を追加できます
決定論的なAPI結果を使い、編集確認が必要な説明文をビルド中に検出します。
よくある質問
推奨される範囲はいくつですか?
両端を含む120文字から160文字までを推奨範囲として扱います。
160文字を超えると必ず途中で切れますか?
いいえ。実際のスニペットは検索語句、端末、描画幅、検索エンジンによって変わるため、リスクとしてお知らせします。
絵文字はどのように数えますか?
Unicodeコードポイントを数えるため、1つのコードポイントで表される絵文字は1文字になります。
空白も文字数に含まれますか?
はい。先頭、末尾、文章内を含むすべての空白を数えます。空白だけの入力は拒否されます。
APIの料金はいくらですか?
APIリクエスト1回の料金は$0.002です。同じ決定論的な検査をブラウザーでは無料で実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/seo/meta-description-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Discover practical ways to improve your website performance, strengthen search visibility, and give every visitor a faster, clearer experience."}'const res = await fetch("https://api.kit.forhosting.com/seo/meta-description-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Discover practical ways to improve your website performance, strengthen search visibility, and give every visitor a faster, clearer experience."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/meta-description-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Discover practical ways to improve your website performance, strengthen search visibility, and give every visitor a faster, clearer experience."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/meta-description-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Discover practical ways to improve your website performance, strengthen search visibility, and give every visitor a faster, clearer experience."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Discover practical ways to improve your website performance, strengthen search visibility, and give every visitor a faster, clearer experience."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/meta-description-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Discover practical ways to improve your website performance, strengthen search visibility, and give every visitor a faster, clearer experience."
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.meta_description_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |