タイトルと説明からHTMLメタタグを作成
このHTMLメタタグ生成ツールは、ページタイトル、検索結果向けの説明、任意のキーワード一覧を、文書のheadに配置できる整ったコードへ変換します。出力前に、タイトルは60文字、説明は160文字という一般的な上限を厳密に確認します。HTMLの特殊文字を安全にエスケープし、重複したキーワードを除去するため、テンプレート、静的ページ、コンテンツ管理システム、自動公開処理へそのまま組み込めます。
無料で実行
内容が伝わるタイトルと説明を作成します
まず、生成したコードを設定するページを明確にしてください。タイトルにはページの主題を示し、必要であればサイト名や運営組織も含めます。検索結果やブラウザーのタブに表示できる領域は限られるため、重要な語句をなるべく前に置くと分かりやすくなります。このツールでは、空ではない60文字以内のタイトルを受け付けます。説明には、ページを開いた利用者が得られる内容を、関連のない語句の羅列ではなく具体的な文章でまとめてください。説明も空にはできず、上限は160文字です。文字数は保存時のバイト数ではなくUnicode文字として数えるため、アクセント付き文字や非ラテン文字も表示上の1文字として適切に扱われます。先頭と末尾の空白は、検証と計数の前に削除されます。いずれかが上限を超えた場合、入力エラーを返し、不完全なコードは生成しません。この厳密な処理により、編集システムでは無効な下書きが公開テンプレートへ紛れ込み、表示時に途中で切れる事態を防げます。
必要な場合にだけキーワードを追加します
キーワードは任意で、1項目につき1つの語句を一覧として指定します。1件以上ある場合は、各項目の前後の空白を取り除き、空の項目を拒否し、最初に現れた順序を保ったまま重複を削除して、残った語句をコンマで連結します。重複の判定では大文字と小文字を区別しないため、Coffeeとcoffeeは同じキーワードとして扱われますが、結果には最初の表記を残します。ブラウザーとAPIのどちらでも入出力を適切な範囲に保つため、指定できる項目は50件までです。タイトルと説明だけでも完全なメタ情報になり、多くの現在の検索エンジンはkeywordsタグを順位決定の材料にしていません。一方、サイト内検索、旧式のコンテンツ管理システム、管理された公開仕様、またはこの項目を必要とする後続の解析処理では役立つ場合があります。プロジェクトで必要なければ一覧を省略してください。その場合はkeywordsタグも構造化されたkeywords項目も出力せず、空の値を返すことはありません。
生成コードを配置して公開結果を確認します
応答では完成したコードをhtml項目で返し、行ごとに扱うビルドツール向けに同じ要素をtags配列でも返します。コードは文書のhead内に配置し、各ページにtitle要素とdescriptionのmeta要素がそれぞれ1つだけ存在する状態にしてください。サーバー側で描画するアプリケーションでは通常、ルートのメタデータまたは共通のheadコンポーネントへ追加します。静的サイト生成ツールなら、ページのビルド時に挿入できます。結果では、アンパサンド、山括弧、引用符、アポストロフィをエスケープするため、入力された文字列がHTMLの文脈から外れることはありません。このツールは対象ページへアクセスせず、宣伝文を作成せず、表示時のピクセル幅も測定しません。また、Open GraphやTwitter Cardなどのソーシャル共有タグも追加しません。公開後は視覚的な編集画面だけでなく、実際に配信されたページソースを確認してください。テーマやプラグインが競合するタグを出していないことを確かめ、対象検索サービスのウェブ管理ツールで最終URLを検査します。検索サービスは表示文を独自に書き換える場合があるため、正しいソースは明確な指示になりますが、表示内容を完全に保証するものではありません。
活用例
商品紹介ページを準備します
承認済みの商品文を、安全にエスケープされ文字数も確認済みのコードへ変換します。
編集用メタデータを検証します
公開ルールの上限を超えるタイトルや説明を、公開前の処理で確実に拒否します。
静的ページ生成を自動化します
ページの入力データから、再現性のあるhead要素と構造化された行を生成します。
よくある質問
タイトルが60文字を超えるとどうなりますか?
入力エラーとなり、メタタグは一切生成されません。
説明が160文字を超えるとどうなりますか?
入力エラーとなり、説明の文字数上限を超えたことが示されます。
キーワードは必須ですか?
いいえ。一覧を省略するか空にすると、keywordsのmetaタグは出力されません。
HTMLの特殊文字はエスケープされますか?
はい。HTML構文に影響する可能性がある文字列を、要素と属性の両方で安全に処理します。
Open GraphやTwitter Cardも生成しますか?
いいえ。この機能ではタイトル、説明、任意のキーワードだけを生成します。
APIの料金はいくらですか?
APIは1回$0.002です。ブラウザー版はこのページで無料で利用できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/web/meta-tags-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Fresh Coffee Delivered to Your Door","description":"Discover freshly roasted coffee delivered on your schedule, with flexible plans and beans selected for every brewing style."}'const res = await fetch("https://api.kit.forhosting.com/web/meta-tags-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"title": "Fresh Coffee Delivered to Your Door",
"description": "Discover freshly roasted coffee delivered on your schedule, with flexible plans and beans selected for every brewing style."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/meta-tags-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"title": "Fresh Coffee Delivered to Your Door",
"description": "Discover freshly roasted coffee delivered on your schedule, with flexible plans and beans selected for every brewing style."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/meta-tags-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"title":"Fresh Coffee Delivered to Your Door","description":"Discover freshly roasted coffee delivered on your schedule, with flexible plans and beans selected for every brewing style."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"title":"Fresh Coffee Delivered to Your Door","description":"Discover freshly roasted coffee delivered on your schedule, with flexible plans and beans selected for every brewing style."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/meta-tags-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"title": "Fresh Coffee Delivered to Your Door",
"description": "Discover freshly roasted coffee delivered on your schedule, with flexible plans and beans selected for every brewing style."
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.meta_tags_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
timeout_sec | 30 |
max_crawl_pages | 25 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |