Plugin Directory

Changeset 3476275


Ignore:
Timestamp:
03/06/2026 10:52:06 AM (3 weeks ago)
Author:
quantumcloud
Message:

LLMs.txt and AI Analytics support

Location:
seo-help
Files:
107 added
5 edited

Legend:

Unmodified
Added
Removed
  • seo-help/trunk/assets/css/style.css

    r3426808 r3476275  
    21612161  display: block;
    21622162}
     2163
     2164
     2165.llms-grid{
     2166  display: grid; grid-template-columns: 1fr 350px; gap: 20px; margin-top: 20px;
     2167}
     2168.llms-main-card{
     2169  background:#fff; padding:25px; border-radius:8px; box-shadow:0 2px 10px rgba(0,0,0,0.1); transition: all 0.2s ease;
     2170}
     2171
     2172.llms-main-card:hover {
     2173  transform: translateY(-2px);
     2174  box-shadow: 0 6px 20px rgba(0, 0, 0, .08);
     2175}
     2176.post-types-grid{
     2177  display:grid; grid-template-columns: 1fr 1fr; gap:10px;
     2178}
     2179
     2180#llms-status-indicator{
     2181  padding:10px; border-radius:4px; background:#d1e7dd; color:#0f5132; margin-bottom:15px;
     2182}
     2183#llms-log{
     2184  font-size:11px; color:#666; max-height:200px; overflow-y:auto; border-top:1px solid #ccc; padding-top:10px;
     2185}
     2186.llms-sidebar{
     2187  background: #fff;
     2188  border-radius:8px;
     2189  transition: all 0.2s ease;
     2190}
     2191.llms-sidebar:hover{
     2192  transform: translateY(-2px);
     2193  box-shadow: 0 6px 20px rgba(0, 0, 0, .08);
     2194}
     2195.llms-sidebar-box{
     2196  background:#fff; padding:20px; border-radius:8px;
     2197}
     2198.llms-file-link{
     2199  background-color: #EFEAFF;
     2200    padding: 12px 10px;
     2201    border-radius: 4px;
     2202}
     2203.llms-file-link a{
     2204  display: block;
     2205}
     2206
     2207@media (max-width: 767px) {
     2208  .llms-grid {
     2209      grid-template-columns: 1fr;
     2210  }
     2211}
     2212
     2213
     2214
     2215.ai-stats-container { display: flex; gap: 20px; margin: 20px 0; flex-wrap: wrap; }
     2216.ai-card {
     2217    background: #fff; border-radius: 8px; padding: 20px; flex: 1;
     2218    min-width: 200px; box-shadow: 0 2px 5px rgba(0,0,0,0.05); border-left: 4px solid #2271b1;
     2219transition: all 0.2s ease;
     2220display: flex;
     2221    justify-content: center;
     2222    align-items: center;
     2223    flex-direction: column;
     2224}
     2225.ai-card h3 { margin: 0; font-size: 14px; color: #646970; text-transform: uppercase; letter-spacing: 0.5px; }
     2226.ai-card .value { font-size: 28px; font-weight: bold; margin: 10px 0 5px 0; color: #1d2327; }
     2227.ai-card .subtitle { font-size: 12px; color: #a0a5aa; font-style: italic; }
     2228.ai-card.all-time { border-left-color: #2271b1; }
     2229.ai-card.week { border-left-color: #46b450; }
     2230.ai-card.month { border-left-color: #ffb900; }
     2231.ai-card.quarter { border-left-color: #d63638; }
     2232.ai-card:hover {
     2233transform: translateY(-2px);
     2234box-shadow: 0 6px 20px rgba(0, 0, 0, .08);
     2235}
     2236
     2237.ai-leaderboard-wrap{
     2238  display: flex;
     2239  gap: 20px;
     2240  margin: 20px 0;
     2241  flex-wrap: wrap;
     2242  background: #fff;
     2243  padding: 15px 15px;
     2244  border-radius: 4px;
     2245  border: 1px solid #ddd;
     2246}
     2247
     2248.ai-leaderboard-path-wrap,
     2249.trend-container{
     2250  flex:1;
     2251}
     2252
     2253.ai-leaderboard-container {
     2254  background: #fff;
     2255  border-radius: 12px;
     2256  padding: 24px;
     2257  box-shadow: 0 4px 15px rgba(0,0,0,0.05);
     2258  border: 1px solid #e2e8f0;
     2259  transition: all 0.2s ease;
     2260}
     2261.ai-leaderboard-container:hover {
     2262  transform: translateY(-2px);
     2263  box-shadow: 0 6px 20px rgba(0, 0, 0, .08);
     2264}
     2265.ai-leaderboard-header {
     2266  display: flex;
     2267  align-items: center;
     2268  gap: 10px;
     2269  margin-bottom: 20px;
     2270  border-bottom: 1px solid #f1f5f9;
     2271  padding-bottom: 15px;
     2272}
     2273.ai-leaderboard-header h2 { margin: 0; font-size: 1.2rem; color: #1e293b; }
     2274.ai-leaderboard-header .dashicons { color: #f59e0b; font-size: 24px; width: 24px; height: 24px; }
     2275
     2276.bot-rank-row { margin-bottom: 18px; }
     2277.bot-info { display: flex; justify-content: space-between; margin-bottom: 6px; font-weight: 600; }
     2278.bot-name { color: #334155; font-size: 14px; }
     2279.bot-percentage { color: #64748b; font-size: 12px; }
     2280
     2281.progress-bar-bg {
     2282  background: #f1f5f9;
     2283  border-radius: 10px;
     2284  height: 8px;
     2285  width: 100%;
     2286  overflow: hidden;
     2287}
     2288.progress-bar-fill {
     2289  background: linear-gradient(90deg, #3b82f6 0%, #2563eb 100%);
     2290  height: 100%;
     2291  border-radius: 10px;
     2292  transition: width 1s ease-in-out;
     2293}
     2294/* Distinct colors for top 3 */
     2295.rank-0 .progress-bar-fill { background: linear-gradient(90deg, #f59e0b, #d97706); }
     2296.rank-1 .progress-bar-fill { background: linear-gradient(90deg, #94a3b8, #64748b); }
     2297.rank-2 .progress-bar-fill { background: linear-gradient(90deg, #cd7f32, #a0522d); }
     2298
     2299.ai-path-card {
     2300  background: #ffffff;
     2301  border: 1px solid #d1d5db;
     2302  border-radius: 10px;
     2303  padding: 0;
     2304  margin-top: 20px;
     2305  overflow: hidden;
     2306  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
     2307  transition: all 0.2s ease;
     2308}
     2309.ai-path-card:hover {
     2310  transform: translateY(-2px);
     2311  box-shadow: 0 6px 20px rgba(0, 0, 0, .08);
     2312}
     2313.ai-path-header {
     2314  padding: 16px 20px;
     2315  background: #f9fafb;
     2316  border-bottom: 1px solid #e5e7eb;
     2317  display: flex;
     2318  justify-content: space-between;
     2319  align-items: center;
     2320}
     2321.ai-path-header h2 { margin: 0; font-size: 16px; font-weight: 600; color: #111827; }
     2322
     2323.path-row {
     2324  display: flex;
     2325  align-items: center;
     2326  padding: 14px 20px;
     2327  border-bottom: 1px solid #f3f4f6;
     2328  transition: background 0.15s;
     2329}
     2330.path-row:hover { background: #f0f7ff; }
     2331.path-row:last-child { border-bottom: none; }
     2332
     2333.path-main { flex: 1; min-width: 0; padding-right: 20px; }
     2334.path-url-display {
     2335  display: block;
     2336  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
     2337  font-size: 13px;
     2338  color: #2563eb;
     2339  text-decoration: none;
     2340  white-space: nowrap;
     2341  overflow: hidden;
     2342  text-overflow: ellipsis;
     2343  font-weight: 500;
     2344}
     2345.path-url-display:hover { text-decoration: underline; }
     2346.path-meta-info { font-size: 11px; color: #6b7280; margin-top: 3px; }
     2347
     2348.path-metrics { display: flex; align-items: center; gap: 24px; text-align: right; }
     2349.metric-box .label { display: block; font-size: 10px; text-transform: uppercase; color: #9ca3af; letter-spacing: 0.05em; }
     2350.metric-box .val { font-size: 15px; font-weight: 700; color: #374151; }
     2351
     2352.ai-pressure-badge {
     2353  background: #fee2e2;
     2354  color: #991b1b;
     2355  padding: 2px 8px;
     2356  border-radius: 99px;
     2357  font-size: 10px;
     2358  font-weight: 700;
     2359}
  • seo-help/trunk/assets/js/admin_footer.js

    r3426808 r3476275  
    18551855            });
    18561856
    1857     })
     1857    });
     1858
     1859
     1860   
     1861    jQuery(document).ready(function($) {
     1862        $('#llms-settings-form').on('submit', function(e) {
     1863            e.preventDefault();
     1864            const $btn = $('#llms-generate-btn');
     1865            const $log = $('#llms-log');
     1866           
     1867            $btn.prop('disabled', true).text('Generating Markdown...');
     1868            $log.prepend('<div>Starting generation...</div>');
     1869
     1870            $.post(ajaxurl, {
     1871                action: 'llms_generate_txt',
     1872                data: $(this).serialize(),
     1873                _ajax_nonce: qcld_seo_ajax_nonce
     1874            }, function(res) {
     1875                if(res.success) {
     1876                    $log.prepend('<div style="color:green;">Success: ' + res.data.file_size + ' bytes written.</div>');
     1877                    alert('llms.txt has been generated successfully!');
     1878                } else {
     1879                    $log.prepend('<div style="color:red;">Error: ' + res.data + '</div>');
     1880                }
     1881                $btn.prop('disabled', false).text('Save & Generate llms.txt');
     1882            });
     1883        });
     1884
     1885        $('#llms-reset-btn').on('click', function() {
     1886            if(confirm('Reset all LLM settings?')) {
     1887                $.post(ajaxurl, { action: 'llms_reset_pro' }, function() { location.reload(); });
     1888            }
     1889        });
     1890    });
    18581891       
    18591892       
    18601893
    18611894})(jQuery);
     1895
     1896
  • seo-help/trunk/inc/youtube_subtitle_to_vendor.php

    r3426808 r3476275  
    2828
    2929                                <br>
    30                                 <p><b><?php esc_html_e( 'PHP Version 8.2+ is required for Google Calender to work.', 'qcld-seo-help' ); ?></b></p>
    31                                 <p><b><?php esc_html_e( 'Your PHP Version is', 'qcld-seo-help' ); ?> <?php echo PHP_VERSION ?></b></p>
     30                                <p style="color:indianred"><b><?php esc_html_e( 'PHP Version 8.2+ is required for Google Calender to work.', 'qcld-seo-help' ); ?></b></p>
     31                                <p style="color:indianred"><b><?php esc_html_e( 'Your PHP Version is', 'qcld-seo-help' ); ?> <?php echo PHP_VERSION ?></b></p>
    3232                                <br>
    3333                                <button class="btn btn-primary" id="qc_seo_gc_download"><?php esc_html_e( 'Download and Install the Google Client', 'qcld-seo-help' ); ?></button>
  • seo-help/trunk/qc-project-linkbait-main.php

    r3426808 r3476275  
    11<?php
    22/*
    3 * Plugin Name: QC SEO Help for AI Content Writer, Subtitle to Article
     3* Plugin Name: AI content generator and autoblogging SEO Help
    44* Plugin URI: https://wordpress.org/plugins/seo-help
    55* Description: AI content generator and autoblogging
    6 * Version: 6.7.5
     6* Version: 6.7.8
    77* Author: QuantumCloud
    8 * Author URI: https://www.dna88.com/
     8* Author URI: https://www.quantumcloud.com/
    99* Requires at least: 4.6
    1010* Tested up to: 6.9
     
    8080require_once( 'inc/qc-content-generator-page.php' );
    8181
     82require_once( 'inc/ai-bot-tracker.php' );
     83require_once( 'inc/ai-llms-txt-generator.php' );
     84
    8285require_once( 'inc/parsedown.php' );
    8386if (  file_exists( qcld_seo_PLUGIN_DIRNAME . '/autoload.php' ) && version_compare( PHP_VERSION, '8.2.0', '>=' )  ) {
     
    119122      'qcpromo_seo_help_promo_page_callaback'
    120123    );
     124
     125    add_submenu_page(
     126      'seo-help',
     127      esc_html__('AI Bot Analytics', 'seo-help'),
     128      esc_html__('AI Bot Analytics', 'seo-help'),
     129      'manage_options',
     130      'ai-bot-trackers',
     131      'qcld_seo_help_ai_tracker_render_dashboard'
     132    );
     133
     134    add_submenu_page(
     135        'seo-help',
     136        esc_html__('LLMS TXT Generator','seo-help'),
     137        esc_html__('LLMS TXT Generator','seo-help'),
     138        'manage_options',
     139        'qcld-llms-txt-generator',
     140        'qcld_seo_help_render_admin_page'
     141      );
    121142
    122143
  • seo-help/trunk/readme.txt

    r3426808 r3476275  
    1 === QC SEO Help for AI Content Writer, Subtitle to Article ===
     1=== QC SEO Help for llms.txt, AI Analytics, AI Content Writer, Subtitle to Article ===
    22Contributors: quantumcloud
    33Donate link: https://www.dna88.com
     
    66Requires PHP: 5.6
    77Tested up to: 6.9
    8 Stable tag: 6.7.5
     8Stable tag: 6.7.8
    99License: GPLv2 or later
    1010License URI: https://www.dna88.com
    1111
    12 SEO Help AI Content Writer, Autoblogging, Subtitle to Article. OpenAI, Gemini, YouTube Subtitle to Article, RSS Feed to Post, Autoblogging
     12SEO Help with llms.txt, AI Bot Analytics, AI Content Writer, Autoblogging, Subtitle to Article. OpenAI, Gemini, YouTube Subtitle to Article, Autoblogging
    1313
    1414== Description ==
    15 = SEO Help with YouTube Subtitle to SEO Article Generator with AI, One Click Turbo AI Content Writer, AI Image Generator and RSS Feed AutoBlogging with OpenAI or Google Gemini =
     15= SEO Help with llms.txt, AI Analytics, YouTube Subtitle to SEO Article Generator with AI, One Click Turbo AI Content Writer, AI Image Generator and RSS Feed AutoBlogging with OpenAI or Google Gemini =
    1616
    1717Powered by OpenAI ChatGPT or Google Gemini AI for <strong>AI content writing</strong> and DALL-E for AI Image Generator, SEO Help is a unique WordPress plugin with various helpful SEO Tools. With SEO Help you can also <strong>curate contents, <strong>turn YouTube video Subtitles to a Blog article using AI</strong>, autoblog, import RSS Feeds to Posts</strong> within a few minutes. SEO Help also adds an AI writing tool floating icon on your WordPress backend. We are adding a suite of helpful and unique tools to this plugin that can help your website rank higher in search engines result pages (SERP).
     
    2323
    2424> //-> Try our <strong>[ChatBot with AI - WPBot](https://wordpress.org/plugins/chatbot/)</strong>. It is an easy to use, Native, No coding required, AI ChatBot to provide Automated Live Chat Support. Use ChatBot to <strong>answer user questions</strong> and also <strong>Lead Generation</strong> from the users using <strong>conversational forms</strong>. It can be also be powered by DialogFlow, Tavily or OpenAI ChatGPT or simply use the built-in features to provide Live support and collect user data.
     25
     26
     27= LLMs.txt for AI Bots =
     28
     29LLMs.txt for AI Bots acts as your site’s digital handshake for AI. It automates the generation of a specialized, AI-ready index that helps high-tier Large Language Models instantly identify and interpret your most valuable pages.
     30
     31While traditional robots.txt and XML sitemaps were built for old-school search crawlers, modern AI agents require a different approach. As platforms like Perplexity and Claude increasingly browse the live web, they function best with a clean, structured directory of high-priority URLs.
     32
     33An `llms.txt` file provides exactly that: a lightweight Markdown or plain-text list of your essential public content. It allows you to group, annotate, and describe your links specifically for AI consumption, moving beyond simple web crawling into true content understanding.
     34
     35
     36= AI LLM Bot Tracker and AI Bot Analytics =
     37
     38Is your website ready for the AI era? **AI LLM Bot Tracker** is a robust analytics solution for monitoring how artificial intelligence systems, search LLM AI Bot crawlers engage with your WordPress site.
     39
     40As traditional SEO evolves into **LLMO (Large Language Model Optimization)**, understanding how platforms like ChatGPT, Gemini, Perplexity, SearchGPT, and Claude-SearchBot "see" your site is critical. Without this data, you are essentially invisible to the engines that are redefining how users find information.
     41
     42The AI Analytics feature is a 24/7 silent sentry, capturing every AI interaction without slowing down your site. From tracking training data scraping to identifying which pages AI models value most, you get a clear picture of your digital footprint in the AI ecosystem.
     43
     44* **AI Visit Logs** – Real-time timestamps, bot identities, and specific pages accessed.
     45* **Content Valuation** – Identify exactly which parts of your site AI systems are prioritizing for their models.
     46* **Scraping Patterns** – See when and how often GPT, Claude, or Gemini are ingesting your data.
     47* **Global Origins** – Track the geographic source and IP addresses of AI traffic.
     48* **Technical Health** – Monitor response codes (200, 404, etc.) to ensure bots aren't hitting dead ends.
     49* **Automatic Detection of 60+ AI Bots** – Comprehensive coverage including OpenAI (GPTBot, OAI-SearchBot), Anthropic (ClaudeBot), Google (Gemini, Google-Extended), Meta (FacebookBot), and niche research bots like Devin and LinerBot.
     50* **Deep Analytics Dashboard** – Filter logs by date, URL, or bot family to spot 30-day trends and "Top Visitor" leaderboards.
     51* **CSV Export** – Take your data offline for advanced reporting or stakeholder presentations.
     52* **Performance Focused** – Lightweight architecture adds <0.01s to page load time with zero external API calls.
     53* **Smart Cache Detection** – Includes built-in guides for configuring bot tracking alongside common caching layers.
     54* **Privacy & Compliance** – 100% local data storage. No human tracking and fully GDPR compliant.
     55* **Log Management** – Automated log rotation and bulk actions keep your database lean and fast.
     56
    2557
    2658= OpenAI ChatGPT or Google Gemini Powered AI Content Writing =
     
    225257== Changelog ==
    226258
     259= 6.7.8 =
     260# Added AI Bot Analytics
     261# Added LLMs.txt support
     262
    227263= 6.7.4 =
    228264# Fixed YouTube subtitle
Note: See TracChangeset for help on using the changeset viewer.