AI Meta Title Generator

Get 10 SEO-optimized title variants with pixel-width analysis, CTR scoring, and a live Google SERP preview.

Your 10 Title Variants

Title Chars Pixels Keyword CTR Score Actions
📱 Google SERP Preview (mobile/desktop)
toolspivot.com › your-slug-here

Click a title from the table above to preview

Your meta description will appear here — generate one with our AI Meta Description Generator.

✨ Next step: write a matching meta description Generate Description

关于 人工智能元标题生成器

ToolsPivot的AI标题生成器能在数秒内创建SEO优化的网页标题,省去数小时的手动构思时间。低质量的meta标题导致百度对60-70%的标题进行重写,点击率下降高达20%。内容营销人员、SEO专家和网站管理员使用此工具生成排名更高、吸引更多自然流量的标题。

ToolsPivot AI标题生成器概述

核心功能: AI标题生成器分析您的目标关键词、内容主题和用户意图,生成多个针对搜索引擎优化的标题变体。输入主关键词和可选上下文,即可获得5-10个独特的标题建议,长度控制在25-30个汉字的最佳范围内。AI综合考虑关键词位置、吸引力词汇和情感触发点,最大化提升排名和点击率。

主要用户与使用场景: 日常为博客和落地页生成标题的内容营销人员依赖此工具。管理多个客户网站的SEO机构用它进行批量标题优化。电商运营创建产品页标题,平衡关键词与销售文案。自媒体作者同时生成meta描述和标题,优化工作流程。

问题与解决方案: 手动撰写有效的meta标题需要平衡SEO要求与用户吸引力——这一过程通常每个标题需要15-30分钟。ToolsPivot的生成器将时间缩短到30秒以内,同时保持专业质量。用户报告在使用AI生成标题后,自然搜索点击率提升25-40%。

AI标题生成器的核心优势

即时生成标题 数秒内生成5-10个优化变体,而非花费30分钟手动头脑风暴。

SEO优化输出 每个生成的标题都遵循百度最佳实践,包括关键词位置、长度限制和语义相关性。

更高点击率 AI生成的标题融入经验证能提升搜索结果点击率15-35%的吸引力词汇和情感触发点。

一致的品牌调性 通过多种风格选项和保存偏好格式,在数百个页面中保持品牌统一调性。

减少百度重写 25-30个汉字最佳范围内的标题比优化不佳的标题减少40%的百度重写。

批量处理能力 同时处理多个关键词用于大规模内容项目,为企业SEO活动节省数小时。

关键词聚类整合 生成与更广泛关键词聚类策略一致的标题,构建主题权威性。

AI标题生成器核心功能

智能关键词布局 将目标关键词放置在标题开头,搜索引擎对此位置给予最高权重。

实时字数显示 实时计数器显示准确字数,确保标题保持在25-30个汉字的最佳范围。

多样化变体 每次请求生成5-10个独特选项,提供从问句式到利益导向等多种格式。

语气选择 在专业、休闲、紧迫或信息型语气间选择,匹配品牌调性和内容类型。

吸引力词汇整合 自动融入经验证能吸引点击的词汇,如"免费"、"指南"、"完整"和"实用"。

行业模板 电商产品、博客文章、服务页面和新闻资讯的预设公式加速生成。

导出选项 复制单个标题或将所有变体导出为CSV,供团队审核和批量实施。

整合关键词研究 建议相关关键词以加强语义相关性,支持全面的页面优化。

预览模拟 发布前查看标题在百度搜索结果中的显示效果,确保正确展示。

字数统计整合 内置字数分析帮助同时优化标题和描述长度。

ToolsPivot AI标题生成器使用方法

  1. 输入目标关键词 — 输入您想在搜索结果中获得排名的主要关键词或短语。

  2. 添加上下文(可选) — 提供额外信息如内容类型、目标受众或特定角度。

  3. 选择偏好 — 选择语气、风格以及是否包含品牌名或数字。

  4. 生成标题 — 点击生成,立即获得5-10个独特的SEO优化标题建议。

  5. 审核与优化 — 评估选项,如有需要重新生成,或手动编辑您喜欢的标题。

  6. 复制并实施 — 将最终标题复制到CMS、WordPress或SEO插件中立即使用。

何时使用AI标题生成器

每当您需要为追求自然搜索流量的网页创建或优化标题标签时,都应使用此工具。在初始内容创建、批量SEO审计和需要大规模标题更新的网站迁移时,生成器最具价值。

具体使用场景:

发布新博客文章 发布前生成吸引人的标题,最大化首页排名潜力。

电商产品页面 创建关键词丰富的标题,平衡SEO要求与转化导向的销售文案。

落地页优化 制作与付费广告文案一致同时保持自然搜索可行性的标题。

SEO审计整改 快速重新生成被SEO检测器标记为过长、过短或缺少关键词的标题。

内容更新项目 更新现有内容的过时标题,恢复下降的自然流量。

竞品差距分析 针对竞争对手以次优标题排名的关键词生成替代标题。

A/B测试活动 生成多个变体,测试哪些标题在搜索结果中获得更高点击率。

准备完整TDK 生成标题作为第一步,然后完成描述和其他meta标签。

特殊情况包括高度技术性或小众主题,此时人工专业知识可补充AI建议。

使用案例/应用场景

SEO机构客户管理

背景: 一家SEO机构管理50多个客户网站,需要月度标题标签审计和优化。

流程:

  • 从分析工具导出表现不佳的标题标签
  • 通过生成器批量处理关键词
  • 向客户展示数据支持的标题建议

成果: 机构将标题优化时间减少70%,同时客户平均点击率提升18%。

电商分类页面

背景: 一家拥有500个产品分类页的在线零售商需要独特的关键词优化标题。

流程:

  • 输入分类关键词和产品类型
  • 生成包含"购买"、"最佳"和"推荐"修饰词的标题
  • 通过批量上传到淘宝、京东或自建商城实施标题

成果: 分类页面自然流量在实施后60天内增长32%。

内容营销团队工作流程

背景: 一家B2B SaaS公司每月发布20篇博客文章,需要一致的标题质量。

流程:

  • 写手在内容规划阶段生成标题
  • 编辑团队从AI变体中选择
  • 最终标题与更广泛的关键词聚类策略保持一致

成果: 博客自然流量同比增长45%,标题优化实现标准化。

网站迁移项目

背景: 一家媒体公司迁移10,000个页面,需要更新标题以匹配新的域名品牌。

流程:

  • 提取现有标题和目标关键词
  • 生成包含更新品牌名的新标题
  • 使用meta标签分析器验证结果

成果: 迁移后自然流量恢复在45天内实现,而非典型的90天周期。

标题优化最佳实践

有效的meta标题遵循经验证的公式,平衡SEO要求与用户参与度。将主关键词放在前3-5个词内,因为搜索引擎对前置位置的关键词给予更高权重。至少包含一个吸引力词汇如"免费"、"指南"、"实用"或"最新"来提升情感吸引力和点击概率。

关键指南:

  • 关键词前置: 将目标词放在开头位置
  • 使用数字: 带数字的标题点击率高36%
  • 添加标记: "【指南】"或"(2024)"可提升点击率达38%
  • 包含修饰词: "最佳"、"免费"、"怎么"吸引搜索者
  • 避免堆砌关键词: 一个主关键词,最多一个次关键词

如果包含品牌名,将其放在末尾,用竖线(|)或破折号(—)分隔。这样既保持关键词的突出性,又为回访用户保持品牌辨识度。

字符限制与显示规范

百度在截断前显示约25-30个汉字或约60个英文字符的标题文本。超过此限制的标题会被省略号(...)截断,降低清晰度和点击吸引力。研究表明25-28个汉字的标题百度重写率最低,仅为15%。

显示规范:

  • 最佳长度: 25-30个汉字(包含空格和标点)
  • 像素宽度: 保持在480-520px以内完整显示
  • 移动端显示: 稍短约25个汉字
  • 百度重写: 60-70%超出最佳范围的标题被重写

当百度重写您的标题时,通常会从H1标签、页面内容或结构化数据中提取——往往产生优化效果较差的结果。保持在限制范围内让您能控制页面在搜索结果中的显示方式。

相关工具

使用这些ToolsPivot配套工具完善您的SEO工作流程:

常见问题

什么是AI标题生成器?

AI标题生成器是一种使用人工智能为网页创建SEO优化标题标签的工具。ToolsPivot的生成器分析您的关键词和上下文,生成多个遵循搜索引擎最佳实践的标题变体。

SEO最佳meta标题长度是多少?

最佳meta标题长度为25-30个汉字或约480像素宽度。此范围内的标题在百度搜索结果中完整显示不会被截断,且经历较少的重写。

meta标题如何影响搜索排名?

meta标题是最强的页面排名因素之一,因为它直接向搜索引擎传达页面相关性。优化良好的标题可以在竞争激烈的关键词上提升10-20个排名位置。

meta标题和H1标签有什么区别?

meta标题出现在搜索结果和浏览器标签中,而H1标签显示在页面本身。它们可以完全相同或略有不同——meta标题通常包含关键词,而H1优先考虑用户可读性

meta标题应包含多少个关键词?

包含一个主关键词,可选一个次关键词。堆砌多个关键词会降低可读性,可能触发百度惩罚。

为什么百度会重写我的meta标题?

百度会重写过长、过短、关键词堆砌或不能准确代表页面内容的标题。保持在25-30个汉字范围内并匹配用户意图可显著减少重写。

这个meta标题生成器比ChatGPT好吗?

ToolsPivot的生成器专门针对SEO标题优化,内置字符限制、关键词位置规则和多样化变体。通用AI工具需要额外的提示才能达到类似的SEO专注效果。

可以批量生成meta标题吗?

可以,ToolsPivot支持管理大型网站的企业用户批量生成。同时处理多个关键词,并将结果导出为CSV供团队审核。

AI标题生成器完全免费吗?

是的,基础生成器完全免费,无需注册。为个人和商业用途生成无限标题,没有隐藏费用。

如何实施生成的meta标题?

复制您选择的标题,粘贴到CMS的meta标题字段、WordPress SEO插件(如Yoast或RankMath)或直接粘贴到HTML的标签中。</p> <p><strong>应该在meta标题中包含品牌名吗?</strong></p> <p>在首页和关键品牌页面的标题末尾包含品牌名。对于博客文章和信息性内容,优先考虑关键词而非品牌名以最大化排名潜力。</p> <p><strong>可以A/B测试不同的meta标题吗?</strong></p> <p>虽然百度不支持原生标题测试,但您可以在2-4周内轮换标题,并在百度站长工具中比较点击率数据以确定获胜变体。</p> <p><strong>生成器适用于<a href="https://toolspivot.com/zh/open-graph-generator">社交媒体标题</a>吗?</strong></p> <p>生成器专注于SEO meta标题。对于社交分享优化,使用我们的Open Graph生成器为微信、微博和知乎创建平台特定标题。</p> <p><strong>应该多久更新一次meta标题?</strong></p> <p>每季度审核meta标题,或当页面排名下降时更新。为季节性内容、过时统计数据或新目标关键词更新标题。</p> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "什么是AI标题生成器?", "acceptedAnswer": { "@type": "Answer", "text": "AI标题生成器是一种使用人工智能为网页创建SEO优化标题标签的工具。ToolsPivot的生成器分析您的关键词和上下文,生成多个遵循搜索引擎最佳实践的标题变体。" } }, { "@type": "Question", "name": "SEO最佳meta标题长度是多少?", "acceptedAnswer": { "@type": "Answer", "text": "最佳meta标题长度为25-30个汉字或约480像素宽度。此范围内的标题在百度搜索结果中完整显示不会被截断,且经历较少的重写。" } }, { "@type": "Question", "name": "meta标题如何影响搜索排名?", "acceptedAnswer": { "@type": "Answer", "text": "meta标题是最强的页面排名因素之一,因为它直接向搜索引擎传达页面相关性。优化良好的标题可以在竞争激烈的关键词上提升10-20个排名位置。" } }, { "@type": "Question", "name": "meta标题和H1标签有什么区别?", "acceptedAnswer": { "@type": "Answer", "text": "meta标题出现在搜索结果和浏览器标签中,而H1标签显示在页面本身。它们可以完全相同或略有不同——meta标题通常包含关键词,而H1优先考虑用户可读性。" } }, { "@type": "Question", "name": "meta标题应包含多少个关键词?", "acceptedAnswer": { "@type": "Answer", "text": "包含一个主关键词,可选一个次关键词。堆砌多个关键词会降低可读性,可能触发百度惩罚。" } }, { "@type": "Question", "name": "为什么百度会重写我的meta标题?", "acceptedAnswer": { "@type": "Answer", "text": "百度会重写过长、过短、关键词堆砌或不能准确代表页面内容的标题。保持在25-30个汉字范围内并匹配用户意图可显著减少重写。" } }, { "@type": "Question", "name": "这个meta标题生成器比ChatGPT好吗?", "acceptedAnswer": { "@type": "Answer", "text": "ToolsPivot的生成器专门针对SEO标题优化,内置字符限制、关键词位置规则和多样化变体。通用AI工具需要额外的提示才能达到类似的SEO专注效果。" } }, { "@type": "Question", "name": "可以批量生成meta标题吗?", "acceptedAnswer": { "@type": "Answer", "text": "可以,ToolsPivot支持管理大型网站的企业用户批量生成。同时处理多个关键词,并将结果导出为CSV供团队审核。" } }, { "@type": "Question", "name": "AI标题生成器完全免费吗?", "acceptedAnswer": { "@type": "Answer", "text": "是的,基础生成器完全免费,无需注册。为个人和商业用途生成无限标题,没有隐藏费用。" } }, { "@type": "Question", "name": "如何实施生成的meta标题?", "acceptedAnswer": { "@type": "Answer", "text": "复制您选择的标题,粘贴到CMS的meta标题字段、WordPress SEO插件(如Yoast或RankMath)或直接粘贴到HTML的<title>标签中。" } }, { "@type": "Question", "name": "应该在meta标题中包含品牌名吗?", "acceptedAnswer": { "@type": "Answer", "text": "在首页和关键品牌页面的标题末尾包含品牌名。对于博客文章和信息性内容,优先考虑关键词而非品牌名以最大化排名潜力。" } }, { "@type": "Question", "name": "可以A/B测试不同的meta标题吗?", "acceptedAnswer": { "@type": "Answer", "text": "虽然百度不支持原生标题测试,但您可以在2-4周内轮换标题,并在百度站长工具中比较点击率数据以确定获胜变体。" } }, { "@type": "Question", "name": "生成器适用于社交媒体标题吗?", "acceptedAnswer": { "@type": "Answer", "text": "生成器专注于SEO meta标题。对于社交分享优化,使用我们的Open Graph生成器为微信、微博和知乎创建平台特定标题。" } }, { "@type": "Question", "name": "应该多久更新一次meta标题?", "acceptedAnswer": { "@type": "Answer", "text": "每季度审核meta标题,或当页面排名下降时更新。为季节性内容、过时统计数据或新目标关键词更新标题。" } } ] } </script></p><section class="bv-related-tools" aria-label="Related tools"><h2 class="bv-related-tools-title">Related Tools You Might Like</h2><div class="bv-related-tools-grid"><a class="bv-related-tool" href="https://toolspivot.com/zh/ai-meta-description-generator" title="人工智能元描述生成器"> <span class="bv-related-tool-icon"><img alt="人工智能元描述生成器" src="https://toolspivot.com/theme/smallseo/icons/ai-seo-meta-description-generator.png?v=1754767380" loading="lazy" /></span> <span class="bv-related-tool-name">人工智能元描述生成器</span> <span class="bv-related-tool-arrow"><i class="fa fa-arrow-right" aria-hidden="true"></i></span> </a><a class="bv-related-tool" href="https://toolspivot.com/zh/ai-humanizer" title="AI Humanizer"> <span class="bv-related-tool-icon"><img alt="AI Humanizer" src="https://toolspivot.com/theme/smallseo/icons/ai-humanizer.png?v=1779300097" loading="lazy" /></span> <span class="bv-related-tool-name">AI Humanizer</span> <span class="bv-related-tool-arrow"><i class="fa fa-arrow-right" aria-hidden="true"></i></span> </a><a class="bv-related-tool" href="https://toolspivot.com/zh/ai-content-detector" title="AI Content Detector"> <span class="bv-related-tool-icon"><img alt="AI Content Detector" src="https://toolspivot.com/theme/smallseo/icons/ai-content-detector.png?v=1779300449" loading="lazy" /></span> <span class="bv-related-tool-name">AI Content Detector</span> <span class="bv-related-tool-arrow"><i class="fa fa-arrow-right" aria-hidden="true"></i></span> </a><a class="bv-related-tool" href="https://toolspivot.com/zh/ai-keyword-cluster-ideas" title="人工智能关键词聚类概念"> <span class="bv-related-tool-icon"><img alt="人工智能关键词聚类概念" src="https://toolspivot.com/theme/smallseo/icons/ai-keyword-cluster-ideas.png?v=1754767380" loading="lazy" /></span> <span class="bv-related-tool-name">人工智能关键词聚类概念</span> <span class="bv-related-tool-arrow"><i class="fa fa-arrow-right" aria-hidden="true"></i></span> </a><a class="bv-related-tool" href="https://toolspivot.com/zh/llms-txt-generator" title="llms.txt Generator"> <span class="bv-related-tool-icon"><img alt="llms.txt Generator" src="https://toolspivot.com/theme/smallseo/icons/llms-txt-generator.png?v=1779331628" loading="lazy" /></span> <span class="bv-related-tool-name">llms.txt Generator</span> <span class="bv-related-tool-arrow"><i class="fa fa-arrow-right" aria-hidden="true"></i></span> </a><a class="bv-related-tool" href="https://toolspivot.com/zh/readability-checker" title="可读性检查器"> <span class="bv-related-tool-icon"><img alt="可读性检查器" src="https://toolspivot.com/theme/smallseo/icons/readability-checker.png?v=1743854424" loading="lazy" /></span> <span class="bv-related-tool-name">可读性检查器</span> <span class="bv-related-tool-arrow"><i class="fa fa-arrow-right" aria-hidden="true"></i></span> </a></div></section></div> </div> <div class="col-md-4" id="rightCol" > <div class="search_dots_section p20 box_shadow_border"> <div class="tool_heading text-center"> <h2 class="fs18 mn">SEARCH</h2> <div class="heading_border mb10 mt10"></div> </div> <div id="sidebar_search"> <div class="input-group"> <input id="sidebarsearch" autocomplete="off" placeholder="Search from seo tools" class="form-control" type="text"> <span class="input-group-btn"> <button class="btn btn-secondary" type="button"><span class="glyphicon glyphicon-search"></span></button> </span> </div> <div id="sidebar-results" class="search-resultsbar box_shadow_border" style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; border-radius: 10px; padding: 15px 0px; display: none;"></div> </div> </div> <div class="sidebar_adds p5 mt15 box_shadow_border"> <div class="sideXd"> <!-- Autorelaxed AdSense (CWV-safe) --> <div class="adsense-wrapper" style="min-height:420px;width:100%;overflow:hidden;"> <ins class="adsbygoogle" style="display:block;width:100%;height:420px" data-ad-format="autorelaxed" data-ad-client="ca-pub-3744783675211834" data-ad-slot="7393957901"> </ins> </div> <script> window.addEventListener('load', function () { (adsbygoogle = window.adsbygoogle || []).push({}); }); </script> </div> <br> <div class="sideXd"> <!-- Small Sidebar / In-content AdSense (CWV-safe) --> <div class="adsense-wrapper" style="min-height:250px;"> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3744783675211834" data-ad-slot="9168512573" data-ad-format="auto" data-full-width-responsive="true"></ins> </div> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="popular_tool_box box_shadow_border pn mb10"> <ul> <li class="popular-seo-t pn"> <h3 class="mn p10">Popular SEO Tools</h3> </li> <li class="pg-hovr"> <div class="icon_image plagrism-checker"></div> <a href="https://toolspivot.com/zh/plagiarism-checker">Plagiarism Checker</a> </li> <li class="aw-hovr"> <div class="icon_image word-count-checker"></div> <a href="https://toolspivot.com/zh/word-counter-tool">Word Counter</a> </li> <li class="kpc-hovr"> <div class="icon_image keyword-position-checker"></div> <a href="https://toolspivot.com/zh/keyword-rank-checker">Keyword Rank Checker</a> </li> <li class="gc-hovr"> <div class="icon_image grammer-chacker"></div> <a href="https://toolspivot.com/zh/grammar-checker">Grammar Checker</a> </li> <li class="da-hovr"> <div class="icon_image domain-ath"></div> <a href="https://toolspivot.com/zh/domain-authority-checker">Domain Authority Checker</a> </li> <li class="pr-hovr"> <div class="icon_image readability-checker"></div> <a href="https://toolspivot.com/zh/readability-checker">Readability Checker</a> </li> <li class="ic-hovr"> <div class="icon_image image-comp"></div> <a href="https://toolspivot.com/zh/image-compressor">Image Compression Tool</a> </li> <li class="ris-hovr"> <div class="icon_image reverse-image"></div> <a href="https://toolspivot.com/zh/reverse-image-search">Reverse Image Search</a> </li> <li class="pac-hovr"> <div class="icon_image page-athority"></div> <a href="https://toolspivot.com/zh/page-authority-checker">Page Authority checker</a> </li> <li class="sc-hovr"> <div class="icon_image spell-checker"></div> <a href="https://toolspivot.com/zh/text-to-speech-converter">Text To Speech</a> </li> <li class="bc-hovr"> <div class="icon_image backlink-checker"></div> <a href="https://toolspivot.com/zh/backlink-checker">Backlink Checker</a> </li> <li class="arc-hovr"> <div class="icon_image xml-sitemap-generator"></div> <a href="https://toolspivot.com/zh/sitemap-generator-tool">Sitemap Generator</a> </li> <li class="bm-hovr"> <div class="icon_image back-link-m"></div> <a href="https://toolspivot.com/zh/backlink-maker">Backlink Maker</a> </li> <li class="dac-hovr"> <div class="icon_image domain-age-checker"></div> <a href="https://toolspivot.com/zh/domain-age-checker">Domain Age Checker</a> </li> <li class="wpt-hovr"> <div class="icon_image exif-remover"></div> <a href="https://toolspivot.com/zh/exif-data-remover">Exif Data Remover</a> </li> <li class="wssc-hovr"> <div class="icon_image website-seo-score"></div> <a href="https://toolspivot.com/zh/website-seo-checker">Website Seo Score Checker</a> </li> <li class="kdc-hovr"> <div class="icon_image keyword-dencity-checker"></div> <a href="https://toolspivot.com/zh/keyword-density-checker">Keyword Density Checker</a> </li> <li class="wpsc-hovr"> <div class="icon_image lorem-ipsum"></div> <a href="https://toolspivot.com/zh/lorem-ipsum-generator">Lorem Ipsum Text Generator</a> </li> <li class="wcc-hovr"> <div class="icon_image exif"></div> <a href="https://toolspivot.com/zh/exif-data-viewer">Exif Data Viewer</a> </li> <li class="mc-hovr border-bottom"> <div class="icon_image mozrank-checker"></div> <a href="https://toolspivot.com/zh/moz-rank-checker">Moz-rank Checker</a> </li> </ul> </div> </div> </div> </div> <script> (function(){ var AJAX = 'https://toolspivot.com/zh/ai-meta-title-generator/ajax'; var BASE_URL = 'https://toolspivot.com/'; var DESC_TOOL_URL = 'https://toolspivot.com/zh/ai-meta-description-generator'; var $ = function(id){ return document.getElementById(id); }; // ----- Pixel width estimation (Roboto/Arial-ish) ----- // Google's actual cutoff is ~580px not 60 chars. We measure with a hidden canvas. var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d'); ctx.font = '20px Arial, sans-serif'; function pixelWidth(t){ return Math.round(ctx.measureText(t).width); } // ----- CTR heuristic ----- function ctrScore(title, keyword) { var s = 0; var t = title.toLowerCase(); var k = (keyword || '').toLowerCase(); // Keyword in first half: +25 if (k && t.includes(k)) { var pos = t.indexOf(k); if (pos < title.length / 2) s += 25; else s += 12; } // Numbers (listicle bonus): +15 if (/\b(\d{1,3})\b/.test(title)) s += 15; // Power words: +10 each (cap 25) var powers = ['best','top','free','ultimate','proven','complete','essential','easy','quick','simple','new','exclusive','guaranteed','guide','how to']; var pHits = 0; powers.forEach(function(p){ if (t.includes(p)) pHits++; }); s += Math.min(25, pHits * 8); // Year (recency bonus): +10 if (/\b20\d{2}\b/.test(title)) s += 10; // Brackets/parens (eye-catchers): +5 if (/[\[\(]/.test(title)) s += 5; // Question mark (engagement): +5 if (/\?/.test(title)) s += 5; // Optimal length (40-60): +15 if (title.length >= 40 && title.length <= 60) s += 15; // Over-length penalty: -15 if (title.length > 65) s -= 15; return Math.max(0, Math.min(100, s)); } function keywordPosition(title, keyword) { if (!keyword) return 'No keyword'; var t = title.toLowerCase(), k = keyword.toLowerCase(); var i = t.indexOf(k); if (i === -1) return '<span class="amt-pill amt-pill-red">Missing</span>'; if (i < title.length * 0.33) return '<span class="amt-pill amt-pill-green">Start</span>'; if (i < title.length * 0.66) return '<span class="amt-pill amt-pill-yellow">Middle</span>'; return '<span class="amt-pill amt-pill-red">End</span>'; } function charPill(len) { if (len < 40) return '<span class="amt-pill amt-pill-yellow">' + len + '</span>'; if (len <= 60) return '<span class="amt-pill amt-pill-green">' + len + '</span>'; if (len <= 65) return '<span class="amt-pill amt-pill-yellow">' + len + '</span>'; return '<span class="amt-pill amt-pill-red">' + len + '</span>'; } function pixelPill(px) { if (px <= 580) return '<span class="amt-pill amt-pill-green">' + px + 'px</span>'; if (px <= 620) return '<span class="amt-pill amt-pill-yellow">' + px + 'px</span>'; return '<span class="amt-pill amt-pill-red">' + px + 'px</span>'; } function esc(s){return String(s||'').replace(/[&<>"']/g,function(c){return {'&':'&','<':'<','>':'>','"':'"',"'":'''}[c];});} function extractTitlesFromResponse(raw) { // Best case: it returned a clean JSON array try { var trimmed = raw.trim().replace(/^```(?:json)?|```$/g, '').trim(); var parsed = JSON.parse(trimmed); if (Array.isArray(parsed)) return parsed.filter(function(x){ return typeof x === 'string' && x.length > 5; }); } catch (e) {} // Fallback: extract first [...] block var m = raw.match(/\[[\s\S]*\]/); if (m) { try { var parsed2 = JSON.parse(m[0]); if (Array.isArray(parsed2)) return parsed2.filter(function(x){ return typeof x === 'string'; }); } catch (e) {} } // Fallback: split on newlines, strip numbering return raw.split(/\n+/).map(function(l){ return l.replace(/^\s*[\d.)\-*"]+\s*/, '').replace(/["'`]+$/g, '').trim(); }).filter(function(l){ return l.length > 10 && l.length < 120; }).slice(0, 10); } function pickBest(rows) { var bestIdx = 0, bestScore = -1; rows.forEach(function(r, i){ if (r.ctr > bestScore){ bestScore = r.ctr; bestIdx = i; } }); return bestIdx; } function updateSerp(title, keyword) { $('amtSerpTitle').textContent = title; var slug = (keyword || 'your-page') .toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, ''); $('amtSerpUrl').textContent = slug; } // ---- Form handlers ---- $('amtClear').addEventListener('click', function(){ $('amtKeyword').value = ''; $('amtBrand').value = ''; $('amtResult').classList.remove('is-shown'); }); $('amtGenerate').addEventListener('click', function(){ var keyword = $('amtKeyword').value.trim(); if (!keyword) { alert('Please enter a primary keyword.'); $('amtKeyword').focus(); return; } var payload = { prompt: 'seo_meta_title', keyword: keyword, title: keyword, brand: $('amtBrand').value.trim(), pageType: $('amtPageType').value, tone: $('amtTone').value, targetLength: document.querySelector('input[name="amtLen"]:checked').value, powerWords: $('amtPowerWords').checked ? '1' : '', includeYear: $('amtIncludeYear').checked ? '1' : '' }; $('amtResult').classList.add('is-shown'); $('amtResultCard').innerHTML = '<div class="amt-loading"><i class="fa fa-spinner"></i>Generating 10 SEO-optimized titles...</div>'; $('amtGenerate').disabled = true; fetch(AJAX, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload) }).then(function(r){return r.json();}).then(function(res){ $('amtGenerate').disabled = false; if (!res.success) { $('amtResultCard').innerHTML = '<div class="amt-error">Generation failed. Try again.</div>'; return; } var titles = extractTitlesFromResponse(res.data || ''); if (!titles.length) { $('amtResultCard').innerHTML = '<div class="amt-error">The AI didn\'t return valid titles. Please try again with a clearer keyword.</div>'; return; } var rows = titles.map(function(t){ return { title: t, chars: t.length, px: pixelWidth(t), ctr: ctrScore(t, keyword), pos: keywordPosition(t, keyword) }; }); var bestIdx = pickBest(rows); var html = '<h2 style="font-size:18px;margin:0 0 14px;color:#1a202c;">Your ' + rows.length + ' Title Variants <span style="font-weight:400;color:#6b7280;font-size:13px;">— click any title to preview</span></h2>' + '<table class="amt-table"><thead><tr>' + '<th style="width:50%;">Title</th>' + '<th style="text-align:center;">Chars</th>' + '<th style="text-align:center;">Pixels</th>' + '<th style="text-align:center;">Keyword</th>' + '<th style="text-align:center;">CTR Score</th>' + '<th>Actions</th>' + '</tr></thead><tbody>'; rows.forEach(function(r, i){ var isBest = i === bestIdx; html += '<tr ' + (isBest ? 'class="amt-best"' : '') + ' data-title="' + esc(r.title) + '">' + '<td><div class="amt-title-text">' + esc(r.title) + (isBest ? ' <span class="amt-pill amt-pill-green" style="margin-left:6px;">🏆 BEST</span>' : '') + '</div></td>' + '<td style="text-align:center;">' + charPill(r.chars) + '</td>' + '<td style="text-align:center;">' + pixelPill(r.px) + '</td>' + '<td style="text-align:center;">' + r.pos + '</td>' + '<td class="amt-score-cell">' + r.ctr + '<span class="amt-score-bar"><span class="amt-score-bar-fill" style="width:' + r.ctr + '%;"></span></span></td>' + '<td>' + '<button class="amt-action-btn amt-preview" data-i="' + i + '">Preview</button>' + '<button class="amt-action-btn amt-copy" data-i="' + i + '">Copy</button>' + '</td>' + '</tr>'; }); html += '</tbody></table>'; $('amtResultCard').innerHTML = html; // Wire up actions document.querySelectorAll('.amt-preview').forEach(function(b){ b.addEventListener('click', function(){ var idx = parseInt(b.getAttribute('data-i'), 10); updateSerp(rows[idx].title, keyword); document.getElementById('amtSerpTitle').scrollIntoView({behavior:'smooth', block:'nearest'}); }); }); document.querySelectorAll('.amt-copy').forEach(function(b){ b.addEventListener('click', function(){ var idx = parseInt(b.getAttribute('data-i'), 10); navigator.clipboard.writeText(rows[idx].title).then(function(){ var old = b.innerHTML; b.innerHTML = '✓ Copied'; setTimeout(function(){ b.innerHTML = old; }, 1500); }); }); }); // Pre-populate SERP with the best updateSerp(rows[bestIdx].title, keyword); // Cross-tool link: pre-fill description generator $('amtNextStep').href = DESC_TOOL_URL + '?title=' + encodeURIComponent(rows[bestIdx].title) + '&keyword=' + encodeURIComponent(keyword); }).catch(function(e){ $('amtGenerate').disabled = false; $('amtResultCard').innerHTML = '<div class="amt-error">Network error. Please try again.</div>'; }); }); })(); </script> </div></div></div><!-- Bug Button --> <style> #bug-btn { position: fixed; bottom: 20px; right: 20px; padding: 12px 18px; background: #fa4c10; color: #fff; font-weight: 600; border-radius: 8px; cursor: pointer; z-index: 9999; } </style> <a id="bug-btn" href="https://docs.google.com/forms/d/e/1FAIpQLSc2gvlcBGr_8E0ceKnZMKwuUZBEk0tHRlHdq516KwnxVUaM0Q/viewform?usp=pp_url&entry.123456789=" target="_blank" onclick="this.href += encodeURIComponent(window.location.href)"> Report a Bug </a> <!-- Bug Button End--> <div class="f_intro_bg text-center"> <form class="navbar-form mn" action="#"> <img src="https://toolspivot.com/theme/smallseo/img/form_subcribe_footer.png?v=1743851072" class="f_icon" loading="lazy" decoding="async"> <span class="f_text">Subscribe to our Newsletter</span> <div class="input-group"> <input id="newsletterEmail" name="email" placeholder="Enter your Email Address" class="form-control search_input pl30" type="email"> <div class="input-group-btn"> <button id="newsletterSubscribe" type="submit" class="btn btn-default search_button">Subscribe</button> </div> </div> </form> </div> <div class="f_description_bg text-center"> <div class="f_graph"> <div class="container"> <div class="col-lg-1 col-md-1"></div> <div class="col-lg-3 col-md-3 col-sm-4 col-xs-12 f_logo_box f_contect pn"> <a class="navbar-brand ptn" href="https://toolspivot.com/zh/"><img src="https://toolspivot.com/uploads/ToolsPivot Light Logo.png" alt="Logo" loading="lazy" decoding="async" /></a> <div class="contect_info col-xs-12 pn"> <p>CONTACT US</p> <span>marketing@toolspivot.com</span> </div> <div class="address_info col-xs-12 pn"> <p>ADDRESS</p> <span>Ward No.1, Nehuta, P.O - Kusha, P.S - Dobhi, Gaya, Bihar, India, 824220</span> </div> </div> <div class="col-lg-4 col-md-4 col-sm-4 col-xs-12 lef_to_right_border f_version"> <p>Our Most Popular Tools</p> <a href="https://toolspivot.com/zh/word-counter-tool" title="Word Counter"><div class="ver_img has-fa"><i class="fa fa-file-text-o"></i></div></a> <a href="https://toolspivot.com/zh/plagiarism-checker" title="Plagiarism Checker"><div class="ver_img has-fa"><i class="fa fa-search"></i></div></a> <a href="https://toolspivot.com/zh/sitemap-generator-tool" title="Sitemap Generator"><div class="ver_img has-fa"><i class="fa fa-sitemap"></i></div></a> <a href="https://toolspivot.com/zh/robots-txt-generator" title="Robots.txt Generator"><div class="ver_img has-fa"><i class="fa fa-android"></i></div></a> <a href="https://toolspivot.com/zh/reverse-image-search" title="Reverse Image Search"><div class="ver_img has-fa"><i class="fa fa-picture-o"></i></div></a> <a href="https://toolspivot.com/zh/keywords-research-tool" title="Keywords Research"><div class="ver_img has-fa"><i class="fa fa-key"></i></div></a> <a href="https://toolspivot.com/zh/backlink-maker" title="Backlink Maker"><div class="ver_img has-fa"><i class="fa fa-link"></i></div></a> <a href="https://toolspivot.com/zh/meta-tag-generator" title="Meta Tag Generator"><div class="ver_img has-fa"><i class="fa fa-tags"></i></div></a> <a href="https://toolspivot.com/zh/page-speed-checker" title="Page Speed Checker"><div class="ver_img has-fa"><i class="fa fa-tachometer"></i></div></a> <a href="https://toolspivot.com/zh/article-rewriter-tool" title="Article Rewriter"><div class="ver_img has-fa"><i class="fa fa-pencil-square-o"></i></div></a> </div> <div class="col-lg-4 col-md-4 col-sm-4 col-xs-12 f_contect pl30" style="min-height: 230px;"> <div class="mor_pages"> <p>QUICK LINKS</p> <li><a href="https://toolspivot.com/zh/">家</a></li><li><a href="https://toolspivot.com/zh/page/changelog">Changelog</a></li><li><a href="https://toolspivot.com/zh/page/privacy-policy">Privacy Policy</a></li><li><a href="https://toolspivot.com/zh/page/terms-of-service">Terms of Service</a></li><li><a href="https://toolspivot.com/zh/page/write-for-us">为我们写信</a></li><li><a href="https://toolspivot.com/zh/contact">联系我们</a></li><li><a href="https://toolspivot.com/zh/page/about-us">关于我们</a></li> </div> </div> </div> </div> </div> <div class="clearfix"></div> <div style="position: relative;"> <div class="container-fluid p10 footer"> <div class="container pn"> <div class="col-md-6 col-sm-12 col-xs-12 text-center pull-right_big"> </div> <div class="col-md-6 col-sm-12 col-xs-12"> <p class="text-center margin0">版权所有 © 2018-2026 ToolsPivot.com 保留所有权利。 </p> </div> </div> </div> </div> <script type="text/javascript"> $("body").append('<div class="top">↑</div>'),$(window).scroll(function(){$(this).scrollTop()>220?$(".top").fadeIn(500):$(".top").fadeOut(500)}),$(".top").click(function(a){return a.preventDefault(),$("html, body").animate({scrollTop:0},500),!1}) </script> <script> jQuery(document).ready(function(){ jQuery("#newsletterSubscribe").click(function(e) { e.preventDefault(); var newsletterEmail = jQuery('#newsletterEmail').val(); if (newsletterEmail == '') { sweetAlert(oopsStr, inputEm, "error"); }else { jQuery.post(baseUrl + 'newsletter', {subscribe: '1', email: newsletterEmail}, function (data) { if (data.success) sweetAlert('Success', data.msg, "success"); else sweetAlert(oopsStr, data.msg, "error"); }); } }); }); </script> <!-- Bootstrap --> <script src="https://toolspivot.com/theme/smallseo/js/bootstrap.min.js?v=1743851074" type="text/javascript"></script> <!-- Sweet Alert --> <script type='text/javascript' src='https://toolspivot.com/theme/smallseo/js/sweetalert.min.js?v=1743851074'></script> <!-- App JS --> <script src="https://toolspivot.com/theme/smallseo/js/app.js?v=1779073530" type="text/javascript"></script> <!-- Master JS --> <script src="https://toolspivot.com/zh/rainbow/master-js" type="text/javascript"></script> <!-- Sign in --> <div class="modal fade loginme" id="signin" role="dialog" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h4 class="modal-title">登入</h4> </div> <form method="POST" action="https://toolspivot.com/zh/account/login" class="loginme-form"> <div class="modal-body"> <div class="alert alert-warning"> <button type="button" class="close dismiss">×</button><span></span> </div> <div class="info">使用您的用户名登录</div> <div class="form-group"> <label>用户名 <br /> <input type="text" name="username" class="form-input width96" /> </label> </div> <div class="form-group"> <label>密码 <br /> <input type="password" name="password" class="form-input width96" /> </label> </div> </div> <div class="modal-footer"> <button type="submit" class="btn btn-primary pull-left">登入</button> <div class="pull-right align-right"> <a href="https://toolspivot.com/zh/account/forget">忘记密码</a><br /> <a href="https://toolspivot.com/zh/account/resend">重新发送激活电子邮件</a> </div> </div> <input type="hidden" name="signin" value="f4a671bd4896d5bafd5ba0ab53c17fba" /> <input type="hidden" name="quick" value="48a29ea3d1e4a64ca231ce4bd04c0bce" /> </form> </div> </div> </div> <!-- Sign up --> <div class="modal fade loginme" id="signup" role="dialog" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h4 class="modal-title">报名</h4> </div> <form action="https://toolspivot.com/zh/account/register" method="POST" class="loginme-form"> <div class="modal-body"> <div class="alert alert-warning"> <button type="button" class="close dismiss">×</button><span></span> </div> <div class="info">使用您的电子邮件地址注册</div> <div class="form-group"> <label>用户名 <br /> <input type="text" name="username" class="form-input width96" /> </label> </div> <div class="form-group"> <label>电子邮件 <br /> <input type="text" name="email" class="form-input width96" /> </label> </div> <div class="form-group"> <label>姓名 <br /> <input type="text" name="full" class="form-input width96" /> </label> </div> <div class="form-group"> <label>密码 <br /> <input type="password" name="password" class="form-input width96" /> </label> </div> </div> <div class="modal-footer"> <button type="submit" class="btn btn-primary">报名</button> </div> <input type="hidden" name="signup" value="f4a671bd4896d5bafd5ba0ab53c17fba" /> <input type="hidden" name="quick" value="5535aeedefd24a594f78cb0c9a6ed6e3" /> </form> </div> </div> </div> <!-- XD Box --> <div class="modal fade loginme" id="xdBox" role="dialog" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button id="xdClose" type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h4 class="modal-title" id="xdTitle"></h4> </div> <div class="modal-body" id="xdContent"> </div> </div> </div> </div> <script> $("#collapse0").collapse();</script></body> </html> <!-- Cookie consent banner — GDPR/ePrivacy compliance. Renders only if no consent cookie set yet. --> <div id="bvCookieBar" style="display:none;position:fixed;left:0;right:0;bottom:0;background:#1a202c;color:#fff;padding:14px 20px;z-index:9998;box-shadow:0 -2px 12px rgba(0,0,0,0.15);font-size:14px;line-height:1.5;"> <div style="max-width:1200px;margin:0 auto;display:flex;gap:16px;align-items:center;flex-wrap:wrap;"> <div style="flex:1;min-width:240px;"> 🍪 We use cookies for analytics, ad personalization, and to improve your experience. By continuing to use this site, you agree to our <a href="https://toolspivot.com/zh/page/privacy-policy" style="color:#fa4c10;text-decoration:underline;">Privacy Policy</a>. </div> <div style="display:flex;gap:8px;flex-wrap:wrap;"> <button type="button" id="bvCookieAccept" style="background:#fa4c10;color:#fff;border:0;padding:9px 18px;border-radius:6px;font-weight:600;cursor:pointer;">Accept all</button> <button type="button" id="bvCookieDecline" style="background:transparent;color:#fff;border:1px solid rgba(255,255,255,0.3);padding:9px 16px;border-radius:6px;font-weight:600;cursor:pointer;">Reject</button> </div> </div> </div> <script> (function(){ var COOKIE = 'bv_cookie_consent'; var bar = document.getElementById('bvCookieBar'); // Read consent cookie function getConsent() { var m = document.cookie.match(/(?:^|; )bv_cookie_consent=([^;]+)/); return m ? decodeURIComponent(m[1]) : null; } function setConsent(val) { var d = new Date(); d.setTime(d.getTime() + 365 * 86400 * 1000); document.cookie = COOKIE + '=' + val + '; expires=' + d.toUTCString() + '; path=/; SameSite=Lax'; } if (!getConsent()) { bar.style.display = ''; } document.getElementById('bvCookieAccept').addEventListener('click', function(){ setConsent('accepted'); bar.style.display = 'none'; // Optionally re-fire analytics with consent if (typeof gtag === 'function') gtag('consent', 'update', { ad_storage: 'granted', analytics_storage: 'granted' }); }); document.getElementById('bvCookieDecline').addEventListener('click', function(){ setConsent('declined'); bar.style.display = 'none'; if (typeof gtag === 'function') gtag('consent', 'update', { ad_storage: 'denied', analytics_storage: 'denied' }); }); })(); </script>