Meta Tag Generator v1.0

Site Title
Site Description
Site Keywords (Separate with commas)
Allow robots to index your website?
Allow robots to follow all links?
What type of content will your site display?
What is your site's primary language?

(Optional Meta Tags)

Search engines should revisit this page after     days.


Author:



A meta tag generator is an online tool that produces ready-to-paste HTML code for your webpage's title, description, keywords, and robots directives. ToolsPivot's Meta Tag Generator builds all of these tags from a single form, including charset and language declarations, without requiring you to write a single line of HTML yourself.

How to Use ToolsPivot's Meta Tag Generator

  1. Enter your page title: Type a title that describes the page in 60 characters or fewer. Place your main keyword near the beginning for stronger search visibility.

  2. Write a description: Add a summary of your page content in 150 to 155 characters. Think of it as a short pitch that convinces someone to click your result in Google.

  3. Add keywords: List relevant terms separated by commas. Five to ten focused keywords work better than 30 generic ones. Need help picking the right terms? Run your topic through a keywords research tool first.

  4. Set robots and content options: Choose whether search engines should index the page and follow its links. Then pick your character encoding (UTF-8 covers most sites) and select a primary language.

  5. Fill optional fields if needed: Add an author name and a revisit interval in days. These are useful for blogs, news sites, and content that updates on a regular schedule.

  6. Copy the output: ToolsPivot generates the complete HTML code block. Copy it and paste it between the tags of your page. Done.

The entire process takes under a minute per page. For sites with hundreds of pages, you can generate tags in quick succession by clearing the form and starting fresh each time.

What ToolsPivot's Meta Tag Generator Produces

The generator doesn't just spit out a title and description. It builds a full set of meta tags that cover the core HTML metadata search engines and browsers expect to find. Here's exactly what you get:

  • Title tag: The clickable headline that appears in search results. Google displays roughly 60 characters on desktop and fewer on mobile, so every word matters.

  • Meta description: The summary text shown below your title in SERPs. A well-written description can lift click-through rates by 5% or more compared to pages that let Google auto-generate one.

  • Meta keywords: A comma-separated keyword list. Google stopped using this tag for rankings back in 2009, but Bing, Yandex, and some CMS platforms still reference it.

  • Robots directive: Controls whether search engines index the page and follow its outbound links. You get two toggles: index/noindex and follow/nofollow.

  • Content-type and charset: Declares the character encoding for proper text rendering. UTF-8 is the standard for most websites, but the tool also supports UTF-16, ISO-8859-1, and WINDOWS-1252 for legacy systems.

  • Language declaration: Tells search engines which language the page targets. You can choose from 10 options including English, Spanish, French, Arabic, Japanese, and Hindi.

  • Author tag: Attributes the page content to a specific person. Particularly useful for blogs, news outlets, and publications that want author-level visibility in search.

  • Revisit-after tag: Suggests a recrawl interval in days. While Google doesn't strictly follow this directive, other crawlers and smaller search engines may use it as a signal.

All of these tags are formatted as valid HTML and wrapped in a single code block you can copy with one click. Before generating new tags, it's smart to check what's already on your page using the meta tags analyzer.

Why Use ToolsPivot's Meta Tag Generator

  • No sign-up, no limits: Generate tags for as many pages as you need. There's no account requirement, no daily cap, and no paywall. Most competing tools either limit free usage or require registration after a few tries.

  • Correct HTML syntax every time: Manually coding meta tags means worrying about quotation marks, self-closing slashes, and attribute order. The generator handles syntax so you don't have to debug misplaced brackets at 2 AM.

  • All tag types from one form: Instead of writing title, description, keywords, robots, charset, and language tags separately, you fill out one form and get the entire block. That saves real time when you're optimizing 50 or 100 pages.

  • Robots configuration built in: Setting noindex or nofollow incorrectly can either hide your page from Google or leak link equity to pages you don't want crawled. The toggle-based interface removes guesswork. For more granular crawl control, pair it with the robots.txt generator.

  • Works with any website platform: The output is raw HTML. Paste it into WordPress, Shopify, Wix, Squarespace, a custom-coded site, or any CMS that gives you access to the section.

  • International language support: The language selector covers 10 languages, making it practical for multilingual sites that need proper hreflang context alongside their meta tags.

  • Pairs with AI-powered alternatives: If you want the tool to write your title and description for you instead of typing them manually, ToolsPivot also offers an AI meta title generator and an AI meta description generator that produce ready-made copy.

Reading Your Generated Meta Tag Code

The output might look intimidating if you've never touched HTML before. It's actually pretty simple once you know what each line does.

The </code> tag stands alone. It's the one tag that doesn't use the <code><meta></code> element because browsers display it directly in the tab bar and search engines pull it as the clickable headline. Everything else follows a pattern: <code><meta name="something" content="your value"></code>.</p> <p>The <code>name="description"</code> line is what Google typically shows as the snippet below your title. The <code>name="robots"</code> line controls crawling behavior. If you chose "Yes" for both indexing and following, the output reads <code>content="index, follow"</code>, which is also the default behavior even without the tag. So why include it? Because being explicit prevents ambiguity, especially on large sites where different pages need different directives.</p> <p>The <code>http-equiv="Content-Type"</code> line declares your character encoding. If you picked UTF-8 (and you probably should), this line tells browsers how to decode text on your page. Skipping it can cause garbled characters for international visitors.</p> <p>Once you've reviewed the output, copy the entire block and paste it inside your page's <code><head></code> section, before the closing <code></head></code> tag. If you're using WordPress, a plugin like Yoast SEO or RankMath handles this for you. On Shopify, you'd edit the theme.liquid file. On a static HTML site, open the file in any text editor and paste directly.</p> <h2>Who Needs a Meta Tag Generator?</h2> <p>Bloggers launching new posts are the most obvious users, but they're far from the only ones.</p> <p><strong>E-commerce store owners</strong> managing hundreds of product pages need unique metadata for every listing. Duplicate or missing descriptions mean Google picks its own snippet, and that snippet often doesn't match what you'd want a shopper to see. Running a <a href="https://toolspivot.com/website-seo-checker">website SEO checker</a> across your catalog will quickly show how many pages are missing meta tags entirely.</p> <p><strong>SEO professionals and agencies</strong> generate meta tags at scale during site audits and migrations. When a client moves from one CMS to another, metadata can get stripped. Having a quick generator on hand means you can rebuild tags for 200 pages in an afternoon instead of a week. Combine it with a <a href="https://toolspivot.com/sitemap-generator-tool">sitemap generator</a> to make sure every page gets submitted to Google after the migration.</p> <p><strong>Freelance developers</strong> building custom themes or CMS templates use the generator to understand proper tag structure. Rather than memorizing attribute syntax, they reference the output as a boilerplate for dynamic template logic.</p> <p><strong>Content marketers</strong> running landing pages for ad campaigns need metadata that matches the campaign's messaging. A/B testing different meta descriptions can move click-through rates by 5 to 30%, depending on how generic the original was. Pair your tags with a <a href="https://toolspivot.com/keyword-density-checker">keyword density checker</a> to make sure your on-page content actually aligns with what you promised in the snippet.</p> <p><strong>Students and beginners</strong> learning HTML and SEO use the generator as a hands-on reference. Instead of reading a textbook about meta tags, they fill in the form, see the code, and understand what each line does. It's a faster learning loop.</p> <h2>Meta Tags That Search Engines Actually Care About</h2> <p>Not all meta tags carry the same weight. Google's own documentation is clear about which ones influence rankings and click behavior, and which ones get ignored.</p> <table class="table table-bordered"> <thead> <tr> <th>Meta Tag</th> <th>Used by Google?</th> <th>Impact</th> </tr> </thead> <tbody> <tr> <td>Title tag</td> <td>Yes</td> <td>Direct ranking factor. The single most important on-page SEO element after content itself.</td> </tr> <tr> <td>Meta description</td> <td>Sometimes</td> <td>Not a ranking factor, but directly affects click-through rate. Google may rewrite it if it doesn't match the query.</td> </tr> <tr> <td>Meta keywords</td> <td>No</td> <td>Ignored by Google since 2009. Bing may still reference it. Low priority.</td> </tr> <tr> <td>Robots tag</td> <td>Yes</td> <td>Controls indexing and link-following behavior. Misusing noindex can deindex entire sections of a site.</td> </tr> <tr> <td>Charset</td> <td>Yes</td> <td>Affects text rendering. W3C recommends UTF-8 for all web content.</td> </tr> <tr> <td>Language</td> <td>Partially</td> <td>Helps with geo-targeting. Works best alongside hreflang tags for multilingual sites.</td> </tr> <tr> <td>Viewport</td> <td>Yes</td> <td>Required for mobile-friendly rendering. Google's mobile-first indexing expects it.</td> </tr> </tbody> </table> <p>The takeaway: spend most of your effort on the title tag and description. They're the two fields that actually move the needle. For social media sharing, you'll also want <a href="https://toolspivot.com/open-graph-generator">Open Graph tags</a> (for Facebook and LinkedIn) and <a href="https://toolspivot.com/twitter-card-generator">Twitter Card tags</a> (for X). Those are separate from standard HTML meta tags and require their own markup.</p> <h2>Character Limits Worth Memorizing</h2> <p>Google doesn't count characters. It counts pixels. But pixel widths vary by letter (a lowercase "i" is narrower than an uppercase "W"), so character counts are still the most practical guideline for writers who aren't measuring pixel widths in a design tool.</p> <p>For title tags, aim for 50 to 60 characters. Google's display limit on desktop is roughly 580 pixels, which works out to about 60 characters of mixed-case text. On mobile, it's a bit tighter. Front-load your primary keyword and brand name near the start so they don't get cut off.</p> <p>For meta descriptions, keep them between 150 and 160 characters on desktop. Mobile results may show less, so the most important information belongs in the first 120 characters. If Google decides your description doesn't match the searcher's query, it'll pull a snippet from your page content instead. Writing a tight, accurate description reduces the chances of that happening.</p> <p>For keywords, there's no hard limit, but 5 to 10 terms is a sensible range. Stuffing 50 keywords into the tag won't help. It might even flag your page to crawlers that still check the field. To find the right keywords, run your topic through ToolsPivot's <a href="https://toolspivot.com/ai-keyword-cluster-ideas">keyword cluster tool</a> before filling in the generator.</p> <h2>Common Questions About Meta Tag Generators</h2> <div id="bvfaq1"><div class="panel panel-default accordion_box"><div class="panel-heading" role="tab" id="bvfaq1-0-h"><h4 class="panel-title"><a class="acordion_link external collapsed" role="button" data-toggle="collapse" data-parent="#bvfaq1" href="#bvfaq1-0" aria-expanded="false" aria-controls="bvfaq1-0" rel="nofollow"><i class="more-less glyphicon glyphicon-menu-up"></i><span class="acordion_q">What does a meta tag generator do?</span></a></h4></div><div id="bvfaq1-0" class="panel-collapse collapse" role="tabpanel" aria-labelledby="bvfaq1-0-h" aria-expanded="false"><div class="panel-body acordion_body"><p>A meta tag generator creates HTML code for your webpage's title, description, keywords, and other metadata. You fill in a form with your page details, and the tool outputs properly formatted code you paste into your site's <code><head></code> section. ToolsPivot's version also covers robots directives, charset, and language tags.</p></div></div></div><div class="panel panel-default accordion_box"><div class="panel-heading" role="tab" id="bvfaq1-1-h"><h4 class="panel-title"><a class="acordion_link external collapsed" role="button" data-toggle="collapse" data-parent="#bvfaq1" href="#bvfaq1-1" aria-expanded="false" aria-controls="bvfaq1-1" rel="nofollow"><i class="more-less glyphicon glyphicon-menu-up"></i><span class="acordion_q">Are meta tags still important for SEO?</span></a></h4></div><div id="bvfaq1-1" class="panel-collapse collapse" role="tabpanel" aria-labelledby="bvfaq1-1-h" aria-expanded="false"><div class="panel-body acordion_body"><p>Title tags remain one of Google's confirmed ranking factors. Meta descriptions don't affect rankings directly, but they influence click-through rates, which signals relevance to Google over time. Robots tags control whether a page gets indexed at all. So yes, meta tags still play a meaningful role in any SEO workflow.</p></div></div></div><div class="panel panel-default accordion_box"><div class="panel-heading" role="tab" id="bvfaq1-2-h"><h4 class="panel-title"><a class="acordion_link external collapsed" role="button" data-toggle="collapse" data-parent="#bvfaq1" href="#bvfaq1-2" aria-expanded="false" aria-controls="bvfaq1-2" rel="nofollow"><i class="more-less glyphicon glyphicon-menu-up"></i><span class="acordion_q">How long should a meta title be?</span></a></h4></div><div id="bvfaq1-2" class="panel-collapse collapse" role="tabpanel" aria-labelledby="bvfaq1-2-h" aria-expanded="false"><div class="panel-body acordion_body"><p>Keep your meta title under 60 characters to avoid truncation in Google's search results. Google measures pixel width rather than characters, but 60 characters of mixed-case text fits within the display limit for most queries. Shorter titles (under 50 characters) are fine too, as long as they describe the page clearly.</p></div></div></div><div class="panel panel-default accordion_box"><div class="panel-heading" role="tab" id="bvfaq1-3-h"><h4 class="panel-title"><a class="acordion_link external collapsed" role="button" data-toggle="collapse" data-parent="#bvfaq1" href="#bvfaq1-3" aria-expanded="false" aria-controls="bvfaq1-3" rel="nofollow"><i class="more-less glyphicon glyphicon-menu-up"></i><span class="acordion_q">What's the ideal meta description length?</span></a></h4></div><div id="bvfaq1-3" class="panel-collapse collapse" role="tabpanel" aria-labelledby="bvfaq1-3-h" aria-expanded="false"><div class="panel-body acordion_body"><p>Write meta descriptions between 150 and 160 characters. Google shows about 920 pixels of description text on desktop, which translates to roughly 155 characters. Mobile results may truncate earlier, so front-load the most important details. Use ToolsPivot's <a href="https://toolspivot.com/word-counter-tool">word counter tool</a> to check character counts before pasting.</p></div></div></div><div class="panel panel-default accordion_box"><div class="panel-heading" role="tab" id="bvfaq1-4-h"><h4 class="panel-title"><a class="acordion_link external collapsed" role="button" data-toggle="collapse" data-parent="#bvfaq1" href="#bvfaq1-4" aria-expanded="false" aria-controls="bvfaq1-4" rel="nofollow"><i class="more-less glyphicon glyphicon-menu-up"></i><span class="acordion_q">Do meta keywords still matter?</span></a></h4></div><div id="bvfaq1-4" class="panel-collapse collapse" role="tabpanel" aria-labelledby="bvfaq1-4-h" aria-expanded="false"><div class="panel-body acordion_body"><p>Google officially stopped using the meta keywords tag for ranking in 2009. Bing may still reference it to a limited degree. The tag won't hurt your site if used sparingly, but don't expect it to boost rankings on Google. Focus your energy on writing strong titles and descriptions instead.</p></div></div></div><div class="panel panel-default accordion_box"><div class="panel-heading" role="tab" id="bvfaq1-5-h"><h4 class="panel-title"><a class="acordion_link external collapsed" role="button" data-toggle="collapse" data-parent="#bvfaq1" href="#bvfaq1-5" aria-expanded="false" aria-controls="bvfaq1-5" rel="nofollow"><i class="more-less glyphicon glyphicon-menu-up"></i><span class="acordion_q">Can I use a meta tag generator for WordPress?</span></a></h4></div><div id="bvfaq1-5" class="panel-collapse collapse" role="tabpanel" aria-labelledby="bvfaq1-5-h" aria-expanded="false"><div class="panel-body acordion_body"><p>Absolutely. The HTML output from ToolsPivot works on any platform, including WordPress. If you use an SEO plugin like Yoast or RankMath, you can paste the title and description directly into the plugin's fields. For sites without an SEO plugin, add the generated code to your theme's <code>header.php</code> file inside the <code><head></code> tags.</p></div></div></div><div class="panel panel-default accordion_box"><div class="panel-heading" role="tab" id="bvfaq1-6-h"><h4 class="panel-title"><a class="acordion_link external collapsed" role="button" data-toggle="collapse" data-parent="#bvfaq1" href="#bvfaq1-6" aria-expanded="false" aria-controls="bvfaq1-6" rel="nofollow"><i class="more-less glyphicon glyphicon-menu-up"></i><span class="acordion_q">How is this different from the AI meta title generator?</span></a></h4></div><div id="bvfaq1-6" class="panel-collapse collapse" role="tabpanel" aria-labelledby="bvfaq1-6-h" aria-expanded="false"><div class="panel-body acordion_body"><p>The standard Meta Tag Generator lets you type your own title, description, and keywords, then wraps them in correct HTML syntax. The AI meta title generator writes the title copy for you based on a topic or keyword. Use both together: generate your copy with AI, then plug it into the Meta Tag Generator to get the full HTML code block with robots, charset, and language tags included.</p></div></div></div><div class="panel panel-default accordion_box"><div class="panel-heading" role="tab" id="bvfaq1-7-h"><h4 class="panel-title"><a class="acordion_link external collapsed" role="button" data-toggle="collapse" data-parent="#bvfaq1" href="#bvfaq1-7" aria-expanded="false" aria-controls="bvfaq1-7" rel="nofollow"><i class="more-less glyphicon glyphicon-menu-up"></i><span class="acordion_q">Is ToolsPivot's Meta Tag Generator free?</span></a></h4></div><div id="bvfaq1-7" class="panel-collapse collapse" role="tabpanel" aria-labelledby="bvfaq1-7-h" aria-expanded="false"><div class="panel-body acordion_body"><p>Yes, 100% free with no registration and no usage limits. You can generate meta tags for an unlimited number of pages without creating an account. There are no premium tiers or locked features.</p></div></div></div><div class="panel panel-default accordion_box"><div class="panel-heading" role="tab" id="bvfaq1-8-h"><h4 class="panel-title"><a class="acordion_link external collapsed" role="button" data-toggle="collapse" data-parent="#bvfaq1" href="#bvfaq1-8" aria-expanded="false" aria-controls="bvfaq1-8" rel="nofollow"><i class="more-less glyphicon glyphicon-menu-up"></i><span class="acordion_q">What happens if I don't add meta tags to my pages?</span></a></h4></div><div id="bvfaq1-8" class="panel-collapse collapse" role="tabpanel" aria-labelledby="bvfaq1-8-h" aria-expanded="false"><div class="panel-body acordion_body"><p>Search engines will try to generate their own snippets from your page content. The result is often a poorly formatted or irrelevant preview in search results. Without a robots tag, Google defaults to "index, follow," which is fine for most pages but leaves you with no control over pages you'd prefer to keep out of the index.</p></div></div></div><div class="panel panel-default accordion_box"><div class="panel-heading" role="tab" id="bvfaq1-9-h"><h4 class="panel-title"><a class="acordion_link external collapsed" role="button" data-toggle="collapse" data-parent="#bvfaq1" href="#bvfaq1-9" aria-expanded="false" aria-controls="bvfaq1-9" rel="nofollow"><i class="more-less glyphicon glyphicon-menu-up"></i><span class="acordion_q">Should I use noindex on any pages?</span></a></h4></div><div id="bvfaq1-9" class="panel-collapse collapse" role="tabpanel" aria-labelledby="bvfaq1-9-h" aria-expanded="false"><div class="panel-body acordion_body"><p>Yes. Thank-you pages, internal search results, duplicate filtered views, and staging environments should all carry a noindex directive. Indexing these pages wastes crawl budget and can create duplicate content problems. Run your site through a <a href="https://toolspivot.com/spider-simulator">spider simulator</a> to see exactly which pages search engines can access.</p></div></div></div><div class="panel panel-default accordion_box"><div class="panel-heading" role="tab" id="bvfaq1-10-h"><h4 class="panel-title"><a class="acordion_link external collapsed" role="button" data-toggle="collapse" data-parent="#bvfaq1" href="#bvfaq1-10" aria-expanded="false" aria-controls="bvfaq1-10" rel="nofollow"><i class="more-less glyphicon glyphicon-menu-up"></i><span class="acordion_q">How do I check if my meta tags are working?</span></a></h4></div><div id="bvfaq1-10" class="panel-collapse collapse" role="tabpanel" aria-labelledby="bvfaq1-10-h" aria-expanded="false"><div class="panel-body acordion_body"><p>After adding the tags, use Google Search Console's URL Inspection tool to see how Google reads your page. For a quick check outside of Search Console, ToolsPivot's meta tags analyzer pulls your live metadata and shows you exactly what's on the page. You can also run an <a href="https://toolspivot.com/open-graph-checker">Open Graph checker</a> to verify social sharing tags separately.</p></div></div></div><div class="panel panel-default accordion_box"><div class="panel-heading" role="tab" id="bvfaq1-11-h"><h4 class="panel-title"><a class="acordion_link external collapsed" role="button" data-toggle="collapse" data-parent="#bvfaq1" href="#bvfaq1-11" aria-expanded="false" aria-controls="bvfaq1-11" rel="nofollow"><i class="more-less glyphicon glyphicon-menu-up"></i><span class="acordion_q">Can I generate Open Graph and Twitter Card tags here?</span></a></h4></div><div id="bvfaq1-11" class="panel-collapse collapse" role="tabpanel" aria-labelledby="bvfaq1-11-h" aria-expanded="false"><div class="panel-body acordion_body"><p>The Meta Tag Generator focuses on standard HTML meta tags (title, description, keywords, robots, charset, language). For Open Graph tags used by Facebook and LinkedIn, use the Open Graph generator. For Twitter-specific cards, use the Twitter Card generator. Together, these three tools cover your full metadata stack.</p> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "What does a meta tag generator do?", "acceptedAnswer": { "@type": "Answer", "text": "A meta tag generator creates HTML code for your webpage's title, description, keywords, and other metadata. You fill in a form with your page details, and the tool outputs properly formatted code you paste into your site's head section. ToolsPivot's version also covers robots directives, charset, and language tags." } }, { "@type": "Question", "name": "Are meta tags still important for SEO?", "acceptedAnswer": { "@type": "Answer", "text": "Title tags remain one of Google's confirmed ranking factors. Meta descriptions don't affect rankings directly, but they influence click-through rates, which signals relevance to Google over time. Robots tags control whether a page gets indexed at all. So yes, meta tags still play a meaningful role in any SEO workflow." } }, { "@type": "Question", "name": "How long should a meta title be?", "acceptedAnswer": { "@type": "Answer", "text": "Keep your meta title under 60 characters to avoid truncation in Google's search results. Google measures pixel width rather than characters, but 60 characters of mixed-case text fits within the display limit for most queries. Shorter titles under 50 characters are fine too, as long as they describe the page clearly." } }, { "@type": "Question", "name": "What's the ideal meta description length?", "acceptedAnswer": { "@type": "Answer", "text": "Write meta descriptions between 150 and 160 characters. Google shows about 920 pixels of description text on desktop, which translates to roughly 155 characters. Mobile results may truncate earlier, so front-load the most important details." } }, { "@type": "Question", "name": "Do meta keywords still matter?", "acceptedAnswer": { "@type": "Answer", "text": "Google officially stopped using the meta keywords tag for ranking in 2009. Bing may still reference it to a limited degree. The tag won't hurt your site if used sparingly, but don't expect it to boost rankings on Google. Focus your energy on writing strong titles and descriptions instead." } }, { "@type": "Question", "name": "Can I use a meta tag generator for WordPress?", "acceptedAnswer": { "@type": "Answer", "text": "Absolutely. The HTML output from ToolsPivot works on any platform, including WordPress. If you use an SEO plugin like Yoast or RankMath, you can paste the title and description directly into the plugin's fields. For sites without an SEO plugin, add the generated code to your theme's header.php file inside the head tags." } }, { "@type": "Question", "name": "How is this different from the AI meta title generator?", "acceptedAnswer": { "@type": "Answer", "text": "The standard Meta Tag Generator lets you type your own title, description, and keywords, then wraps them in correct HTML syntax. The AI meta title generator writes the title copy for you based on a topic or keyword. Use both together: generate your copy with AI, then plug it into the Meta Tag Generator to get the full HTML code block with robots, charset, and language tags included." } }, { "@type": "Question", "name": "Is ToolsPivot's Meta Tag Generator free?", "acceptedAnswer": { "@type": "Answer", "text": "Yes, 100% free with no registration and no usage limits. You can generate meta tags for an unlimited number of pages without creating an account. There are no premium tiers or locked features." } }, { "@type": "Question", "name": "What happens if I don't add meta tags to my pages?", "acceptedAnswer": { "@type": "Answer", "text": "Search engines will try to generate their own snippets from your page content. The result is often a poorly formatted or irrelevant preview in search results. Without a robots tag, Google defaults to index follow, which is fine for most pages but leaves you with no control over pages you'd prefer to keep out of the index." } }, { "@type": "Question", "name": "Should I use noindex on any pages?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Thank-you pages, internal search results, duplicate filtered views, and staging environments should all carry a noindex directive. Indexing these pages wastes crawl budget and can create duplicate content problems." } }, { "@type": "Question", "name": "How do I check if my meta tags are working?", "acceptedAnswer": { "@type": "Answer", "text": "After adding the tags, use Google Search Console's URL Inspection tool to see how Google reads your page. For a quick check outside of Search Console, ToolsPivot's meta tags analyzer pulls your live metadata and shows you exactly what's on the page." } }, { "@type": "Question", "name": "Can I generate Open Graph and Twitter Card tags here?", "acceptedAnswer": { "@type": "Answer", "text": "The Meta Tag Generator focuses on standard HTML meta tags including title, description, keywords, robots, charset, and language. For Open Graph tags used by Facebook and LinkedIn, use the Open Graph generator. For Twitter-specific cards, use the Twitter Card generator. Together, these three tools cover your full metadata stack." } } ] } </script></p><section class="bv-related-tools" aria-label="Related tools"></div></div></div></div><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/blog-finder" title="Blog Finder"> <span class="bv-related-tool-icon"><img alt="Blog Finder" src="https://toolspivot.com/theme/smallseo/icons/blog-finder.png?v=1743852526" loading="lazy" /></span> <span class="bv-related-tool-name">Blog Finder</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/page-authority-checker" title="Page Authority Checker"> <span class="bv-related-tool-icon"><img alt="Page Authority Checker" src="https://toolspivot.com/theme/smallseo/icons/no_image.png?v=1780401052" loading="lazy" /></span> <span class="bv-related-tool-name">Page Authority Checker</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/word-counter-tool" title="Word Counter"> <span class="bv-related-tool-icon"><img alt="Word Counter" src="https://toolspivot.com/theme/smallseo/icons/word-count-pro.png?v=1743851430" loading="lazy" /></span> <span class="bv-related-tool-name">Word Counter</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/twitter-graph-checker" title="Twitter Graph Checker"> <span class="bv-related-tool-icon"><img alt="Twitter Graph Checker" src="https://toolspivot.com/theme/smallseo/icons/open_check.png?v=1743854824" loading="lazy" /></span> <span class="bv-related-tool-name">Twitter Graph Checker</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/page-speed-checker" title="Page Speed Checker"> <span class="bv-related-tool-icon"><img alt="Page Speed Checker" src="https://toolspivot.com/theme/smallseo/icons/google_pagespeed.png?v=1779002277" loading="lazy" /></span> <span class="bv-related-tool-name">Page Speed Checker</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/open-graph-generator" title="Open Graph Generator"> <span class="bv-related-tool-icon"><img alt="Open Graph Generator" src="https://toolspivot.com/theme/smallseo/icons/open_graph.png?v=1743853794" loading="lazy" /></span> <span class="bv-related-tool-name">Open Graph Generator</span> <span class="bv-related-tool-arrow"><i class="fa fa-arrow-right" aria-hidden="true"></i></span> </a></div></section> </p> <br /> <div class="clearfix"></div> <div class="latest_blog_area mb30 mt20"> <div class="tool_heading text-center mb20"> <div class="th-title">LATEST BLOGS</div> </div> <div class="col-md-12 pn mv10"> <div class="col-md-6 col-xs-12 mv10"> <div class="innerpare"> <a href="https://toolspivot.com/blog/turnitin-plagiarism-checker-alternative"> <img src="https://toolspivot.com/core/library/imagethumb.php?w=500&=260&src=https://toolspivot.com/uploads/blog/2026/07/turnitin-plagiarism-checker-alternative-featured-09079b39.webp" class="img-responsive" alt="Turnitin Plagiarism Checker Alternative You Can Use Without an Institution" loading="lazy" decoding="async"> </a> <div class="absolute"> <h3 class="blog-card-title"> <a href="https://toolspivot.com/blog/turnitin-plagiarism-checker-alternative">Turnitin Plagiarism Checker Alternative You Can Use Without an Institution</a> </h3> <div class="aboutBlog"><span id="date">3 Jul  </span>/ <span id="views">1477</span> views  /  by <span id="readtime">Nadeem Raza</span> </div> </div> </div> </div> <div class="col-md-6 col-xs-12 mv10"> <div class="innerpare"> <a href="https://toolspivot.com/blog/free-quetext-plagiarism-checker-alternative"> <img src="https://toolspivot.com/core/library/imagethumb.php?w=500&=260&src=https://toolspivot.com/uploads/blog/2026/07/Free-Quetext-Alternative-966d47ec.webp" class="img-responsive" alt="Free Quetext Plagiarism Checker Alternative: (Tested)" loading="lazy" decoding="async"> </a> <div class="absolute"> <h3 class="blog-card-title"> <a href="https://toolspivot.com/blog/free-quetext-plagiarism-checker-alternative">Free Quetext Plagiarism Checker Alternative: (Tested)</a> </h3> <div class="aboutBlog"><span id="date">2 Jul  </span>/ <span id="views">304</span> views  /  by <span id="readtime">Nadeem Raza</span> </div> </div> </div> </div></div></div><div class="clearfix"></div> </div> <div class="col-md-4" id="rightCol" > <div class="search_dots_section p20 box_shadow_border"> <div class="tool_heading text-center"> <div class="fs18 mn th-title">SEARCH</div> <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" aria-label="Search"><span class="glyphicon glyphicon-search" aria-hidden="true"></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"><span class="ad-label">Advertisement</span><div class="sideXd"><!-- New Sidebar --> <ins class="adsbygoogle" style="display:block;width:100%;min-height:250px" data-ad-client="ca-pub-3744783675211834" data-ad-slot="5576900894" data-ad-format="auto" data-full-width-responsive="true"></ins> <script>(adsbygoogle=window.adsbygoogle||[]).push({});</script></div></div> <div class="popular_tool_box box_shadow_border pn mb10 dp-poptools"> <ul> <li class="popular-seo-t pn"> <div class="mn p10 pop-title"> Popular DocPivot Tools </div> </li> <li class="pg-hovr"><div class="icon_image"><svg viewBox="0 0 40 40" width="30" height="30" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><text x="3" y="14" font-size="11" font-weight="700" fill="currentColor" stroke="none" font-family="system-ui,-apple-system,sans-serif">PPT</text><path d="M9 20l10 10" stroke-width="2.4"/><path d="M19 24v6h-6" stroke-width="2.4"/><text x="37" y="37" text-anchor="end" font-size="11" font-weight="700" fill="currentColor" stroke="none" font-family="system-ui,-apple-system,sans-serif">PDF</text></svg></div><a href="https://toolspivot.com/doc/powerpoint-to-pdf">PowerPoint to PDF</a></li><li class="pg-hovr"><div class="icon_image"><svg viewBox="0 0 40 40" width="30" height="30" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><text x="3" y="14" font-size="11" font-weight="700" fill="currentColor" stroke="none" font-family="system-ui,-apple-system,sans-serif">TXT</text><path d="M9 20l10 10" stroke-width="2.4"/><path d="M19 24v6h-6" stroke-width="2.4"/><text x="37" y="37" text-anchor="end" font-size="11" font-weight="700" fill="currentColor" stroke="none" font-family="system-ui,-apple-system,sans-serif">PDF</text></svg></div><a href="https://toolspivot.com/doc/text-to-pdf">Text to PDF</a></li><li class="pg-hovr"><div class="icon_image"><svg viewBox="0 0 40 40" width="30" height="30" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><rect x="6" y="6" width="22" height="22" rx="3" stroke-dasharray="4 3"/><rect x="12" y="12" width="22" height="22" rx="3"/><path d="M20 34v-8M16 30l4 4 4-4"/></svg></div><a href="https://toolspivot.com/doc/flatten-pdf">Flatten PDF</a></li><li class="pg-hovr"><div class="icon_image"><svg viewBox="0 0 40 40" width="30" height="30" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><text x="3" y="14" font-size="11" font-weight="700" fill="currentColor" stroke="none" font-family="system-ui,-apple-system,sans-serif">PDF</text><path d="M9 20l10 10" stroke-width="2.4"/><path d="M19 24v6h-6" stroke-width="2.4"/><text x="37" y="37" text-anchor="end" font-size="11" font-weight="700" fill="currentColor" stroke="none" font-family="system-ui,-apple-system,sans-serif">TXT</text></svg></div><a href="https://toolspivot.com/doc/pdf-to-text">PDF to Text</a></li><li class="pg-hovr"><div class="icon_image"><svg viewBox="0 0 40 40" width="30" height="30" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><text x="3" y="14" font-size="11" font-weight="700" fill="currentColor" stroke="none" font-family="system-ui,-apple-system,sans-serif">PDF</text><path d="M9 20l10 10" stroke-width="2.4"/><path d="M19 24v6h-6" stroke-width="2.4"/><text x="37" y="37" text-anchor="end" font-size="11" font-weight="700" fill="currentColor" stroke="none" font-family="system-ui,-apple-system,sans-serif">XLS</text></svg></div><a href="https://toolspivot.com/doc/pdf-to-excel">PDF to Excel</a></li><li class="pg-hovr"><div class="icon_image"><svg viewBox="0 0 40 40" width="30" height="30" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M22 4H11a3 3 0 0 0-3 3v26a3 3 0 0 0 3 3h18a3 3 0 0 0 3-3V14z"/><path d="M22 4v10h10"/></svg></div><a href="https://toolspivot.com/doc/pdf-to-epub">PDF to EPUB</a></li><li class="pg-hovr"><div class="icon_image"><svg viewBox="0 0 40 40" width="30" height="30" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><text x="3" y="14" font-size="11" font-weight="700" fill="currentColor" stroke="none" font-family="system-ui,-apple-system,sans-serif">PDF</text><path d="M9 20l10 10" stroke-width="2.4"/><path d="M19 24v6h-6" stroke-width="2.4"/><text x="37" y="37" text-anchor="end" font-size="11" font-weight="700" fill="currentColor" stroke="none" font-family="system-ui,-apple-system,sans-serif">PPT</text></svg></div><a href="https://toolspivot.com/doc/pdf-to-powerpoint">PDF to PowerPoint</a></li><li class="pg-hovr"><div class="icon_image"><svg viewBox="0 0 40 40" width="30" height="30" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><rect x="3" y="9" width="14" height="14" rx="2.5"/><circle cx="7.5" cy="13.5" r="1.5"/><path d="M3 20l4-3.5 4.5 4"/><path d="M20 26h11M26 21l5 5-5 5"/><path d="M23 9c4-4 10-4 14 0v11H23z"/><circle cx="23" cy="9" r="2" fill="currentColor" stroke="none"/><circle cx="37" cy="9" r="2" fill="currentColor" stroke="none"/></svg></div><a href="https://toolspivot.com/doc/png-to-svg">PNG to SVG</a></li><li class="pg-hovr"><div class="icon_image"><svg viewBox="0 0 40 40" width="30" height="30" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><rect x="3" y="9" width="14" height="14" rx="2.5"/><circle cx="7.5" cy="13.5" r="1.5"/><path d="M3 20l4-3.5 4.5 4"/><path d="M20 26h11M26 21l5 5-5 5"/><path d="M23 9c4-4 10-4 14 0v11H23z"/><circle cx="23" cy="9" r="2" fill="currentColor" stroke="none"/><circle cx="37" cy="9" r="2" fill="currentColor" stroke="none"/></svg></div><a href="https://toolspivot.com/doc/jpg-to-svg">JPG to SVG</a></li><li class="pg-hovr border-bottom"><div class="icon_image"><svg viewBox="0 0 40 40" width="30" height="30" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><rect x="3" y="9" width="14" height="14" rx="2.5"/><circle cx="7.5" cy="13.5" r="1.5"/><path d="M3 20l4-3.5 4.5 4"/><path d="M20 26h11M26 21l5 5-5 5"/><path d="M23 9c4-4 10-4 14 0v11H23z"/><circle cx="23" cy="9" r="2" fill="currentColor" stroke="none"/><circle cx="37" cy="9" r="2" fill="currentColor" stroke="none"/></svg></div><a href="https://toolspivot.com/doc/webp-to-svg">WebP to SVG</a></li> </ul> </div> <div class="sidebar_adds p5 mt15 box_shadow_border"><span class="ad-label">Advertisement</span><div class="sideXd"><!-- Multiplex --> <ins class="adsbygoogle" style="display:block;width:100%;min-height:400px" data-ad-client="ca-pub-3744783675211834" data-ad-slot="7692867693" data-ad-format="autorelaxed" data-matched-content-ui-type="image_stacked" data-matched-content-columns-num="1" data-matched-content-rows-num="3"></ins> <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"><div class="mn p10 pop-title">Popular AI Tools</div></li><li class="pg-hovr"><div class="icon_image" style="background-image:url(https://toolspivot.com/theme/smallseo/icons/geo-audit.png);background-size:contain;background-repeat:no-repeat;background-position:center;"></div><a href="https://toolspivot.com/geo-audit">GEO Audit Tool</a></li><li class="pg-hovr"><div class="icon_image" style="background-image:url(https://toolspivot.com/theme/smallseo/icons/llms-txt-generator.png);background-size:contain;background-repeat:no-repeat;background-position:center;"></div><a href="https://toolspivot.com/llms-txt-generator">llms.txt Generator</a></li><li class="pg-hovr"><div class="icon_image" style="background-image:url(https://toolspivot.com/theme/smallseo/icons/ai-content-detector.png);background-size:contain;background-repeat:no-repeat;background-position:center;"></div><a href="https://toolspivot.com/ai-content-detector">AI Content Detector</a></li><li class="pg-hovr"><div class="icon_image" style="background-image:url(https://toolspivot.com/theme/smallseo/icons/ai-humanizer.png);background-size:contain;background-repeat:no-repeat;background-position:center;"></div><a href="https://toolspivot.com/ai-humanizer">AI Humanizer</a></li><li class="pg-hovr"><div class="icon_image" style="background-image:url(https://toolspivot.com/theme/smallseo/icons/ai-keyword-cluster-ideas.png);background-size:contain;background-repeat:no-repeat;background-position:center;"></div><a href="https://toolspivot.com/ai-keyword-cluster-ideas">AI Keyword Cluster Idea</a></li><li class="pg-hovr"><div class="icon_image" style="background-image:url(https://toolspivot.com/theme/smallseo/icons/ai-seo-meta-title-generator.png);background-size:contain;background-repeat:no-repeat;background-position:center;"></div><a href="https://toolspivot.com/ai-meta-title-generator">AI Meta Title Generator</a></li><li class="pg-hovr"><div class="icon_image" style="background-image:url(https://toolspivot.com/theme/smallseo/icons/ai-seo-meta-description-generator.png);background-size:contain;background-repeat:no-repeat;background-position:center;"></div><a href="https://toolspivot.com/ai-meta-description-generator">AI Meta Description Generator</a></li><li class="pg-hovr"><div class="icon_image" style="background-image:url(https://toolspivot.com/theme/smallseo/icons/article_rewriter_pro.png);background-size:contain;background-repeat:no-repeat;background-position:center;"></div><a href="https://toolspivot.com/paraphrasing-tool">Paraphrasing Tool</a></li><li class="pg-hovr border-bottom"><div class="icon_image" style="background-image:url(https://toolspivot.com/theme/smallseo/icons/article_rewriter_pro.png);background-size:contain;background-repeat:no-repeat;background-position:center;"></div><a href="https://toolspivot.com/article-rewriter-tool">Article Rewriter</a></li></ul></div><div class="sidebar_adds p5 mt15 box_shadow_border"><span class="ad-label">Advertisement</span><div class="sideXd"><!-- After Popular AI Tools --> <ins class="adsbygoogle" style="display:block;width:100%;min-height:250px" data-ad-client="ca-pub-3744783675211834" data-ad-slot="7276995379" data-ad-format="auto" data-full-width-responsive="true"></ins> <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"><div class="mn p10 pop-title">Popular SEO Tools</div></li><li class="pg-hovr"><div class="icon_image website-seo-score"></div><a href="https://toolspivot.com/website-seo-checker">Website SEO Checker</a></li><li class="pg-hovr"><div class="icon_image plagrism-checker"></div><a href="https://toolspivot.com/plagiarism-checker">Plagiarism Checker</a></li><li class="pg-hovr"><div class="icon_image word-count-checker"></div><a href="https://toolspivot.com/word-counter-tool">Word Counter</a></li><li class="pg-hovr"><div class="icon_image keyword-position-checker"></div><a href="https://toolspivot.com/keyword-rank-checker">Keyword Rank Checker</a></li><li class="pg-hovr"><div class="icon_image grammer-chacker"></div><a href="https://toolspivot.com/grammar-checker">Free Grammar Checker Online</a></li><li class="pg-hovr"><div class="icon_image readability-checker"></div><a href="https://toolspivot.com/readability-checker">Readability Checker</a></li><li class="pg-hovr"><div class="icon_image reverse-image"></div><a href="https://toolspivot.com/reverse-image-search">Reverse Image Search</a></li><li class="pg-hovr"><div class="icon_image" style="background-image:url(https://toolspivot.com/theme/smallseo/icons/keywordsug.png);background-size:contain;background-repeat:no-repeat;background-position:center;"></div><a href="https://toolspivot.com/keywords-research-tool">Keywords Research Tool</a></li><li class="pg-hovr"><div class="icon_image keyword-dencity-checker"></div><a href="https://toolspivot.com/keyword-density-checker">Keyword Density Checker</a></li><li class="pg-hovr border-bottom"><div class="icon_image" style="background-image:url(https://toolspivot.com/theme/smallseo/icons/html-edit.png);background-size:contain;background-repeat:no-repeat;background-position:center;"></div><a href="https://toolspivot.com/markdown-editor">Markdown Editor</a></li></ul></div><div class="sidebar_adds p5 mt15 box_shadow_border"><span class="ad-label">Advertisement</span><div class="sideXd"><!-- After Popular SEO Tools --> <ins class="adsbygoogle" style="display:block;width:100%;min-height:250px" data-ad-client="ca-pub-3744783675211834" data-ad-slot="6571357712" data-ad-format="auto" data-full-width-responsive="true"></ins> <script>(adsbygoogle=window.adsbygoogle||[]).push({});</script></div></div> </div> </div> </div> <br /></div></div></div><!-- Bug Button --> <style> /* REPORT A BUG - a 48px circle, not a slab. * * It used to be a 136x47 orange rectangle, which made it the fourth orange CTA * on a tool page (the tool's own "Choose files" and the action button are the * other two) and the most permanently visible one - competing with the button * we actually want pressed. As a small icon it competes by SIZE instead of by * colour: 48px against a 300px action bar reads as subordinate at a glance. * * MOVED TO THE LEFT CORNER. The right corner now carries the chat launcher * and the back-to-top control; a third circle stacked in the same column read * as clutter, and on a 375px screen the stack reached a third of the height. * Left also separates the two supports: ask on the right, report on the left. */ #bug-btn { position: fixed; left: 12px; /* --aic-b is raised by ai-chat.js while the cookie consent bar is on screen, so these controls never sit on top of it. Falls back to 12px when the script has not run. */ bottom: var(--aic-b, 12px); width: 48px; /* 44px is the touch-target floor; 48 has margin */ height: 48px; border-radius: 50%; background: #fa4c10; color: #fff; display: flex; align-items: center; justify-content: center; text-decoration: none; box-shadow: 0 2px 8px rgba(0,0,0,.28); /* Under the back-to-top, so if they ever do meet the arrow still wins. */ z-index: 9999; transition: transform .18s ease, box-shadow .18s ease; } #bug-btn:hover, #bug-btn:focus-visible { color: #fff; text-decoration: none; transform: translateY(-2px); box-shadow: 0 4px 14px rgba(0,0,0,.34); } #bug-btn:focus-visible { outline: 3px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 6px rgba(250,76,16,.45); } #bug-btn .fa { font-size: 20px; line-height: 1; } /* AN ICON ALONE DOES NOT SAY WHAT IT DOES. The accessible name is on the link for screen readers; this is the same thing for everyone else, revealed on hover or keyboard focus so the button stays a circle at rest. */ #bug-btn .bug-btn-label { position: absolute; left: 58px; /* flies out to the right of a left-corner button */ white-space: nowrap; background: #1c1c1c; color: #fff; font-size: 13px; font-weight: 600; padding: 6px 10px; border-radius: 6px; opacity: 0; transform: translateX(6px); pointer-events: none; transition: opacity .18s ease, transform .18s ease; } #bug-btn .bug-btn-label { transform: translateX(-6px); } #bug-btn:hover .bug-btn-label, #bug-btn:focus-visible .bug-btn-label { opacity: 1; transform: translateX(0); } /* On a phone there is no hover and the label would sit under the thumb, so the circle stands alone - the accessible name still carries the meaning. */ @media (max-width: 767px) { #bug-btn .bug-btn-label { display: none; } } @media (prefers-reduced-motion: reduce) { #bug-btn, #bug-btn .bug-btn-label { transition: none; } #bug-btn:hover, #bug-btn:focus-visible { transform: none; } } /* --------------------------------------------------------------------------- AI chat widget. Layout follows the modern support-widget convention: a flat light panel rather than a coloured header bar, a floating identity card naming who is answering, assistant text with no bubble around it, and a pill composer. The brand mark is ours - the ToolsPivot icon from the favicon setting. Stacking order in the bottom-right column, measured not assumed: launcher bottom var(--aic-b), z 10001 (primary support action, 56px) .top 68px above it, z 10000 (back-to-top, shifted to clear it) #bug-btn moved to the LEFT corner - see its block above. --aic-b is raised by ai-chat.js while the cookie consent bar is on screen, and .aic-hold keeps both controls hidden until window.load. --------------------------------------------------------------------------- */ .aic-hold #aic-launch, .aic-hold #bug-btn { visibility: hidden; opacity: 0; } #aic-launch, #bug-btn { transition: opacity .25s ease; } #aic-launch { position: fixed; right: 12px; bottom: var(--aic-b, 12px); width: 56px; height: 56px; border: 0; border-radius: 50%; background: #fa4c10; color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 14px rgba(250,76,16,.38); z-index: 10001; transition: transform .18s ease, box-shadow .18s ease, opacity .25s ease; } /* A speech bubble, not the ToolsPivot mark: the mark is orange and light grey, so on an orange disc its orange half disappears - and this control's job is to say "chat". The mark identifies the assistant inside the panel instead. */ #aic-launch .fa { font-size: 23px; line-height: 1; } #aic-launch:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(250,76,16,.5); } #aic-launch:focus-visible { outline: 3px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 6px rgba(250,76,16,.45); } body.aic-on .top { bottom: calc(var(--aic-b, 12px) + 68px) !important; } #aic-panel { position: fixed; right: 12px; bottom: calc(var(--aic-b, 12px) + 68px); width: 380px; max-width: calc(100vw - 24px); height: 580px; max-height: calc(100vh - 150px); background: #f6f4f3; /* flat light field, no header bar */ border: 1px solid #e8e2de; border-radius: 16px; box-shadow: 0 18px 48px rgba(28,12,4,.22); display: flex; flex-direction: column; overflow: hidden; z-index: 10002; font-family: 'open sans', sans-serif; transform-origin: bottom right; animation: aic-in .18s ease-out; } @keyframes aic-in { from { opacity: 0; transform: scale(.94) translateY(8px); } } /* --- header ------------------------------------------------------------- */ /* One bar carrying identity and the close control, rather than a floating close row above a separate floating card: two stacked chrome layers ate the top of the panel and read as two unrelated things. Identity belongs in the header - who is answering, and that it is a machine. A support widget that hides that is one people distrust the moment it gets something wrong. */ #aic-head { flex: 0 0 auto; display: flex; align-items: center; gap: 11px; /* 16px left matches #aic-log's padding, so the header mark and every message avatar sit on one vertical edge. It was 14px and they were 2px apart, which is exactly the sort of gap that reads as sloppy without being obvious. */ padding: 12px 12px 12px 16px; background: #fff; border-bottom: 1px solid #e8e2de; } #aic-close { width: 34px; height: 34px; border: 0; border-radius: 50%; flex: 0 0 34px; background: rgba(0,0,0,.05); color: #3f3a37; cursor: pointer; font-size: 15px; line-height: 1; display: flex; align-items: center; justify-content: center; /* 34px visual, 44px hit area - the target rule is about what the finger must reach, not what the eye must see. */ position: relative; } #aic-close::before { content: ''; position: absolute; top: -5px; left: -5px; right: -5px; bottom: -5px; } #aic-close:hover { background: rgba(0,0,0,.11); } #aic-close:focus-visible { outline: 2px solid #fa4c10; outline-offset: 2px; } #aic-mark { position: relative; width: 38px; height: 38px; flex: 0 0 38px; } #aic-head .aic-ttl { flex: 1 1 auto; min-width: 0; } /* The disc is black because the icon itself is: every uploaded ToolsPivot Icon has an opaque black field and none is transparent, so the image fills the circle and its own background becomes the disc. */ #aic-mark .aic-disc { width: 38px; height: 38px; border-radius: 50%; overflow: hidden; background: #000; } #aic-mark img { width: 100%; height: 100%; display: block; } #aic-mark .aic-dot { position: absolute; top: -1px; right: -1px; width: 11px; height: 11px; border-radius: 50%; background: #22c55e; border: 2px solid #fff; } #aic-head h2 { font-size: 15px; font-weight: 700; margin: 0; color: #1f1b19; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } #aic-head .aic-sub { font-size: 12.5px; color: #7d726c; margin: 1px 0 0; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* --- message list ------------------------------------------------------- */ #aic-log { flex: 1 1 auto; overflow-y: auto; padding: 16px; } .aic-msg { display: flex; gap: 10px; margin: 0 0 16px; font-size: 14.5px; line-height: 1.6; } .aic-msg:last-child { margin-bottom: 0; } .aic-me { justify-content: flex-end; } .aic-col { min-width: 0; max-width: 88%; } /* margin-top centres the avatar on the first LINE BOX of the message, not on the row: measured 1.8px low at margin-top:1px, so -1px lands it. Line box is 23.2px (14.5px x 1.6) against a 28px avatar. */ .aic-av { width: 28px; height: 28px; border-radius: 50%; flex: 0 0 28px; background: #000; margin-top: -1px; overflow: hidden; } .aic-av img { width: 100%; height: 100%; display: block; } /* Assistant text carries no bubble: the avatar already marks the speaker, and an unboxed answer reads as prose rather than as a chat artefact. */ .aic-ai .aic-b { background: transparent; border: 0; padding: 2px 0 0; color: #2b2622; } .aic-me .aic-b { background: #fa4c10; color: #fff; padding: 10px 14px; border-radius: 16px 16px 4px 16px; } .aic-note .aic-b { color: #2b2622; } .aic-err .aic-b { background: #fdf3f3; border: 1px solid #f0c9c9; color: #8a2020; padding: 10px 13px; border-radius: 12px; } /* --- source card -------------------------------------------------------- */ /* This is the conversion: the answer names a tool, this opens it. */ .aic-src { margin: 10px 0 0; padding: 0; list-style: none; } .aic-src li { margin: 6px 0 0; } .aic-src a { display: flex; align-items: center; gap: 8px; padding: 10px 13px; background: #fff; border: 1px solid #e8e2de; border-radius: 12px; color: #b23a0c; font-size: 13.5px; font-weight: 600; text-decoration: none; transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease; } .aic-src a .aic-sarrow { margin-left: auto; opacity: .55; font-size: 12px; } .aic-src a:hover, .aic-src a:focus-visible { border-color: #fa4c10; color: #8f2e0a; text-decoration: none; transform: translateX(2px); box-shadow: 0 2px 8px rgba(250,76,16,.14); } .aic-src a:focus-visible { outline: 2px solid #fa4c10; outline-offset: 1px; } /* --- suggested questions ------------------------------------------------ */ /* An empty chat is a blank page problem: people do not know what it can answer, so they ask nothing. Editable in admin, not hardcoded. */ #aic-sug { margin: 16px 0 0; } #aic-sug .aic-sug-h { font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; color: #9b8d85; margin: 0 0 8px; font-weight: 700; } .aic-chip { display: block; width: 100%; text-align: left; background: #fff; border: 1px solid #e8e2de; border-radius: 12px; padding: 11px 13px; margin: 0 0 8px; font-size: 13.5px; color: #433b36; cursor: pointer; font-family: inherit; line-height: 1.45; transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease; } .aic-chip:hover { border-color: #fa4c10; color: #1f1b19; transform: translateX(2px); box-shadow: 0 2px 8px rgba(250,76,16,.14); } .aic-chip:focus-visible { outline: 2px solid #fa4c10; outline-offset: 1px; } /* --- escalation to a human --------------------------------------------- */ /* Offered only when the assistant could not answer. Progressive disclosure: a button first, fields only once pressed, so a dead end becomes a route to a person without putting a form in front of everyone. */ .aic-esc { margin: 12px 0 0; padding: 13px; background: #fff; border: 1px solid #e8e2de; border-radius: 14px; } .aic-esc-h { font-size: 13.5px; color: #433b36; margin: 0 0 10px; font-weight: 600; } .aic-esc .aic-btn { display: inline-flex; align-items: center; gap: 7px; background: #fa4c10; color: #fff; border: 0; border-radius: 999px; padding: 10px 18px; font-size: 13.5px; font-weight: 600; cursor: pointer; font-family: inherit; min-height: 42px; } .aic-esc .aic-btn:hover { background: #e34410; } .aic-esc .aic-btn:focus-visible { outline: 3px solid #fff; box-shadow: 0 0 0 5px rgba(250,76,16,.45); } .aic-esc .aic-btn[disabled] { opacity: .5; cursor: not-allowed; } /* Visible labels, not placeholder-only: a placeholder disappears the moment someone types, which is exactly when they need to know what the field was. */ .aic-f { margin: 0 0 10px; } .aic-f label { display: block; font-size: 12px; font-weight: 600; color: #6b5f59; margin: 0 0 4px; } .aic-f label .aic-opt { font-weight: 400; color: #9b8d85; } .aic-f input, .aic-f textarea { width: 100%; border: 1px solid #e2dad5; border-radius: 10px; padding: 10px 12px; font-size: 16px; /* 16px stops iOS zooming on focus */ font-family: inherit; color: #222; background: #faf8f7; line-height: 1.4; } .aic-f textarea { resize: vertical; min-height: 72px; } .aic-f input:focus, .aic-f textarea:focus { border-color: #fa4c10; background: #fff; outline: 2px solid rgba(250,76,16,.22); } .aic-f .aic-ferr { display: block; font-size: 12px; color: #b02a2a; margin: 4px 0 0; } .aic-esc-ok { font-size: 13.5px; color: #1d6b3a; margin: 0; display: flex; gap: 7px; align-items: flex-start; } /* Three dots, not a spinner: the wait is short and this says "composing". */ .aic-dots span { display: inline-block; width: 6px; height: 6px; margin-right: 3px; background: #bcaea6; border-radius: 50%; animation: aic-bounce 1s infinite; } .aic-dots span:nth-child(2) { animation-delay: .15s; } .aic-dots span:nth-child(3) { animation-delay: .3s; } @keyframes aic-bounce { 0%,60%,100% { opacity: .35; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-2px); } } /* --- privacy notice ----------------------------------------------------- */ /* Says plainly that the question leaves the site, because it does: it goes to an AI provider to be answered. Dismissible and remembered, so it informs once instead of nagging. */ #aic-note { flex: 0 0 auto; display: flex; align-items: flex-start; gap: 8px; margin: 0 14px; padding: 10px 12px; background: #fff; border: 1px solid #e8e2de; border-radius: 12px; } #aic-note p { flex: 1 1 auto; margin: 0; font-size: 11.5px; line-height: 1.5; color: #7d726c; } #aic-note a { color: #b23a0c; text-decoration: underline; } #aic-note a:hover, #aic-note a:focus-visible { color: #8f2e0a; } #aic-note .aic-nx { flex: 0 0 24px; width: 24px; height: 24px; border: 0; border-radius: 50%; background: transparent; color: #9b8d85; cursor: pointer; font-size: 12px; line-height: 1; display: flex; align-items: center; justify-content: center; position: relative; } /* 24px visual, 44px reachable */ #aic-note .aic-nx::before { content: ''; position: absolute; top: -10px; left: -10px; right: -10px; bottom: -10px; } #aic-note .aic-nx:hover { background: rgba(0,0,0,.06); color: #3f3a37; } #aic-note .aic-nx:focus-visible { outline: 2px solid #fa4c10; outline-offset: 1px; } /* --- composer ----------------------------------------------------------- */ #aic-foot { flex: 0 0 auto; padding: 10px 14px 14px; display: flex; gap: 8px; align-items: flex-end; } #aic-cw { flex: 1 1 auto; display: flex; align-items: flex-end; gap: 6px; background: #fff; border: 1px solid #e2dad5; border-radius: 24px; padding: 4px 4px 4px 16px; } #aic-cw:focus-within { border-color: #fa4c10; box-shadow: 0 0 0 3px rgba(250,76,16,.16); } #aic-q { flex: 1 1 auto; resize: none; border: 0; background: transparent; padding: 11px 0; font-size: 16px; /* 16px stops iOS zooming on focus */ line-height: 1.4; max-height: 96px; font-family: inherit; color: #222; } #aic-q:focus { outline: none; } #aic-send { flex: 0 0 auto; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #fa4c10; color: #fff; cursor: pointer; font-size: 14px; display: flex; align-items: center; justify-content: center; transition: background .15s ease; } #aic-send:hover { background: #e34410; } #aic-send:focus-visible { outline: 3px solid #fff; box-shadow: 0 0 0 5px rgba(250,76,16,.45); } #aic-send[disabled] { opacity: .4; cursor: not-allowed; } #aic-cap { padding: 12px 16px; margin: 0 14px 10px; background: #fff; border: 1px solid #e8e2de; border-radius: 14px; } #aic-cap p { font-size: 13px; margin: 0 0 8px; color: #555; } @media (max-width: 767px) { #aic-panel { right: 12px; left: 12px; width: auto; bottom: calc(var(--aic-b, 12px) + 64px); height: auto; top: 12px; /* full height on a phone */ max-height: none; } .aic-col { max-width: 90%; } } @media (prefers-reduced-motion: reduce) { #aic-launch, .aic-chip, .aic-src a, #aic-send, #bug-btn { transition: none; } #aic-launch:hover, .aic-chip:hover, .aic-src a:hover { transform: none; } #aic-panel { animation: none; } .aic-dots span { animation: none; opacity: .6; } } </style> <a id="bug-btn" href="https://toolspivot.com/report-bug" rel="nofollow" title="Report a Bug" aria-label="Report a Bug" onclick="this.href = this.href.split('?')[0] + '?url=' + encodeURIComponent(window.location.href)"> <i class="fa fa-bug" aria-hidden="true"></i> <span class="bug-btn-label">Report a Bug</span> </a> <!-- Bug Button End--> <script>document.documentElement.className += ' aic-hold';</script> <button id="aic-launch" type="button" aria-expanded="false" aria-controls="aic-panel" title="Ask a question" aria-label="Ask a question"> <i class="fa fa-comment" aria-hidden="true"></i> </button> <script> window.AICHAT_CFG = { ask: "https:\/\/toolspivot.com\/ai-chat\/ask", verify: "https:\/\/toolspivot.com\/ai-chat\/captchaverify", contact: "https:\/\/toolspivot.com\/ai-chat\/contact", privacy: "https:\/\/toolspivot.com\/page\/privacy-policy", lang: "en", sitekey: "", icon: "https:\/\/toolspivot.com\/uploads\/74432335_ToolsPivot Icon.png", suggest: ["Check if my content is plagiarised.","Check if my content is AI-written.","Check if my website is GEO-optimized","Check if my website is SEO-optimized"], t: {"title":"Ask ToolsPivot","open":"Ask a question","close":"Close","intro":"Ask about any tool on ToolsPivot and I will point you to it.","ph":"Ask a question","send":"Send","think":"Thinking","err":"Something went wrong. Please try again.","rate":"You have reached the question limit. Please try again later.","src":"Sources","sub":"Answers from ToolsPivot’s own pages","role":"AI assistant","note":"Your question is sent to an AI provider to write the answer. We do not store your messages.","notelnk":"Privacy Policy","notedis":"Dismiss","sugh":"Try asking","esc":"Still need help?","escbtn":"Message our team","cname":"Your name","cmail":"Your email","cmsg":"How can we help?","csend":"Send message","cok":"Thanks. We have your message and will reply by email.","cbad":"Please enter a valid email address.","copt":"optional","cap":"Please confirm you are human to continue.","capfail":"Verification failed. Please try again."}}; </script> <script src="https://toolspivot.com/theme/smallseo/js/ai-chat.js?v=20260906p" defer></script> <div class="f_intro_bg text-center"> <form class="navbar-form mn" action="#"> <img src="https://toolspivot.com/theme/smallseo/img/form_subcribe_footer_brand.png?v=1788577768" class="f_icon" alt="" 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/"><img src="https://toolspivot.com/uploads/ToolsPivot Logo Light.png" alt="ToolsPivot" width="398" height="78" loading="lazy" decoding="async" /></a> <div class="contect_info col-xs-12 pn"> <p>CONTACT US</p> <span>info@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/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/plagiarism-checker" title="Plagiarism Checker"><div class="ver_img has-fa"><i class="fa fa-search"></i></div></a> <a href="https://toolspivot.com/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/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/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/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/backlink-maker" title="Backlink Maker"><div class="ver_img has-fa"><i class="fa fa-link"></i></div></a> <a href="https://toolspivot.com/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/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/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> <ul style="list-style:none;margin:0;padding:0;"> <li><a href="https://toolspivot.com/">Home</a></li><li><a href="https://toolspivot.com/page/changelog">Changelog</a></li><li><a href="https://toolspivot.com/page/dmca">Copyright & DMCA</a></li><li><a href="https://toolspivot.com/page/privacy-policy">Privacy Policy</a></li><li><a href="https://toolspivot.com/page/terms-of-service">Terms of Service</a></li><li><a href="https://toolspivot.com/page/write-for-us">Write for Us</a></li><li><a href="https://toolspivot.com/contact">Contact US</a></li><li><a href="https://toolspivot.com/doc">DocPivot</a></li><li><a href="https://toolspivot.com/page/about-us">About Us</a></li> </ul> </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">Copyright © 2018-2026 by ToolsPivot.com All Rights Reserved. </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 (self-contained UI: mega-menu, TOC, etc. — safe to defer). No manual ?v= needed: themeLink() already appends ?v=filemtime, so editing this file busts the two-month JS cache in .htaccess by itself. --> <script src="https://toolspivot.com/theme/smallseo/js/app.js?v=1786855079" type="text/javascript" defer></script> <!-- Navbar mega menus. On every page now, not just /doc/*, because ToolsPivot's navbar carries All PDF Tools and All Image Tools too. The script returns immediately when there is no `.dp-mega-wrap` on the page, so anywhere the menus are absent it costs one querySelectorAll. Deferred: the panels are plain lists of links until it runs, so nothing is broken in flight. --> <script src="https://toolspivot.com/theme/smallseo/js/docpivot/megamenu.js?v=1786408068" type="text/javascript" defer></script> <!-- Master JS --> <script src="https://toolspivot.com/rainbow/master-js?v=3d84fe0b9a" type="text/javascript"></script> <!-- 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> <div class="modal-title" id="xdTitle"></div> </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 and ad personalisation. Choose whether to allow non-essential cookies. Essential cookies keep the site working and are always on. See our <a href="https://toolspivot.com/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=([^;]+)/); if (!m) return null; try { return decodeURIComponent(m[1]); } catch (e) { return 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', ad_user_data: 'granted', ad_personalization: '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', ad_user_data: 'denied', ad_personalization: 'denied', analytics_storage: 'denied' }); }); })(); </script>