{"id":314452,"date":"2026-05-28T11:09:48","date_gmt":"2026-05-28T11:09:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cwv-monitor-lcp-cls-inp-page-speed-tracking\/"},"modified":"2026-05-28T11:09:24","modified_gmt":"2026-05-28T11:09:24","slug":"rayetun-site-monitor","status":"publish","type":"plugin","link":"https:\/\/fi.wordpress.org\/plugins\/rayetun-site-monitor\/","author":23382822,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.2","requires":"6.2","requires_php":"8.0","requires_plugins":null,"header_name":"Rayetun Site Monitor","header_author":"Md Rayhan Uddin","header_description":"Monitors real-user Core Web Vitals (LCP, CLS, INP, FCP, TTFB) for every page \u2014 zero configuration required. View scores and trends inside your WordPress dashboard.","assets_banners_color":"3c5be9","last_updated":"2026-05-28 11:09:24","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/wise.com\/pay\/me\/mdrayhanu2","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/rayetun-site-monitor\/","header_author_uri":"https:\/\/rayetun.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":122,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"rayetun","date":"2026-05-28 11:09:24"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3551975,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3551975,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3551975,"resolution":"772x250","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"<strong>Main Dashboard<\/strong> \u2014 Score cards with P75 values, Good\/NI\/Poor distribution bars, and sparkline trend charts for all five metrics","2":"<strong>Slowest Pages Table<\/strong> \u2014 Ranked by LCP with element attribution, samples, and inline PSI lab test results","3":"<strong>Posts List Integration<\/strong> \u2014 Core Web Vitals column showing color-coded metrics, progress bars, and PSI quick-link","4":"<strong>Settings Page<\/strong> \u2014 Email digest frequency","5":"<strong>Settings Page<\/strong> \u2014 Threshold Alerts","6":"<strong>Settings Page<\/strong> \u2014 Webhook notifications, and PageSpeed Insights API key configuration"}},"plugin_section":[262246],"plugin_tags":[187460,194867,5896,247,31208],"plugin_category":[54],"plugin_contributors":[263109],"plugin_business_model":[],"class_list":["post-314452","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-core-web-vitals","plugin_tags-lcp","plugin_tags-page-speed","plugin_tags-performance","plugin_tags-real-user-monitoring","plugin_category-security-and-spam-protection","plugin_contributors-rayetun","plugin_committers-rayetun"],"banners":{"banner":"https:\/\/ps.w.org\/rayetun-site-monitor\/assets\/banner-772x250.png?rev=3551975","banner_2x":"https:\/\/ps.w.org\/rayetun-site-monitor\/assets\/banner-1544x500.png?rev=3551975","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/rayetun-site-monitor\/assets\/icon-256x256.png?rev=3551975","icon_2x":"https:\/\/ps.w.org\/rayetun-site-monitor\/assets\/icon-256x256.png?rev=3551975","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Stop guessing about your site's performance.<\/strong> Rayetun Site Monitor gives you real-user Core Web Vitals data collected directly from your visitors' browsers \u2014 no external account, no API key, no tracking from third parties.<\/p>\n\n<p>Activate it. Visit a few pages. Within seconds you'll see live performance metrics on your WordPress dashboard.<\/p>\n\n<h3>\u26a1 Why This Plugin?<\/h3>\n\n<p>Unlike Search Console (which shows aggregated, delayed data), Rayetun Site Monitors <strong>every page in real-time<\/strong> from the moment of activation. No sample-size thresholds. No waiting for Google to collect data. Just instant, actionable insights.<\/p>\n\n<ul>\n<li>\ud83c\udfaf <strong>Zero configuration<\/strong> \u2014 activate and data flows immediately<\/li>\n<li>\ud83d\udcca <strong>Real users, real data<\/strong> \u2014 field metrics from actual visitors (not synthetic robots)<\/li>\n<li>\ud83d\udd12 <strong>Your data stays yours<\/strong> \u2014 everything lives in your WordPress database<\/li>\n<li>\u26a1 <strong>No impact on performance<\/strong> \u2014 sub-4KB beacon, loaded with defer, zero blocking<\/li>\n<li>\ud83d\udd10 <strong>GDPR-friendly<\/strong> \u2014 no cookies, no third-party data sharing<\/li>\n<\/ul>\n\n\n\n<h3>\ud83d\udcc8 What It Measures<\/h3>\n\n<p>The plugin tracks all five Core Web Vitals and presents them with Google's official thresholds:<\/p>\n\n\n\n\n  Metric\n  Target\n  What It Means\n\n\n\n\n  <strong>LCP<\/strong> \u2014 Largest Contentful Paint\n  \u2264 2.5s\n  How fast your main content appears\n\n\n  <strong>CLS<\/strong> \u2014 Cumulative Layout Shift\n  \u2264 0.1\n  How stable your page layout stays\n\n\n  <strong>INP<\/strong> \u2014 Interaction to Next Paint\n  \u2264 200ms\n  How responsive your site feels to clicks\n\n\n  <strong>FCP<\/strong> \u2014 First Contentful Paint\n  \u2264 1.8s\n  How fast anything appears on screen\n\n\n  <strong>TTFB<\/strong> \u2014 Time to First Byte\n  \u2264 800ms\n  How quick your server responds\n\n\n\n\n\n\n<h3>\ud83d\udda5\ufe0f The Dashboard<\/h3>\n\n<p>A single glance tells you everything about your site's performance:<\/p>\n\n<ul>\n<li><strong>Score cards<\/strong> \u2014 P75 value per metric with color-coded Good \/ Needs Improvement \/ Poor badges<\/li>\n<li><strong>Distribution bars<\/strong> \u2014 see at a glance what % of page loads fall into each rating band<\/li>\n<li><strong>Sparkline trend charts<\/strong> \u2014 watch how each metric improves (or worsens) over 7, 14, or 30 days<\/li>\n<li><strong>Slowest Pages ranking<\/strong> \u2014 which URLs need the most work, sorted by LCP<\/li>\n<li><strong>Device split<\/strong> \u2014 toggle between All Devices, Mobile Only, or Desktop Only<\/li>\n<li><strong>Date range &amp; URL filters<\/strong> \u2014 drill into specific time periods and individual pages<\/li>\n<\/ul>\n\n\n\n<h3>\ud83d\udd0d LCP Element Attribution<\/h3>\n\n<p>\"My LCP is slow. But <em>what<\/em> is slow?\"<\/p>\n\n<p>Rayetun Site Monitor answers that automatically. The beacon captures the exact DOM element responsible for Largest Contentful Paint \u2014 whether it's a hero image, a video embed, a heading, or a background. See the element tag, CSS class, and image source right alongside the metric.<\/p>\n\n<p><strong>No guesswork. No DevTools digging. Just answers.<\/strong><\/p>\n\n\n\n<h3>\ud83e\uddea PageSpeed Insights Lab Tests<\/h3>\n\n<p>Click <strong>PSI \u2197<\/strong> on any page row and Google's lab test runs instantly inside your WordPress admin. Compare your real-user data (Field LCP P75) with Google's synthetic lab test in a single view:<\/p>\n\n<ul>\n<li>Lab performance score<\/li>\n<li>Lab metrics: LCP, FCP, CLS, TBT<\/li>\n<li>Field LCP P75 (real-user percentile)<\/li>\n<li>Failed Opportunities list (unused JS, render-blocking resources, unoptimized images)<\/li>\n<li>One-hour result caching to stay under API limits<\/li>\n<\/ul>\n\n<p>No plugin configuration needed \u2014 the plugin works without an API key. Add a free key to get 25,000 requests\/day instead of 25.<\/p>\n\n\n\n<h3>\ud83d\udcec Alerts &amp; Notifications<\/h3>\n\n<p><strong>Email Digests<\/strong>\n* Daily or weekly summaries with P75 scores and trend arrows\n* See which pages improved and which got worse at a glance<\/p>\n\n<p><strong>Threshold Alerts<\/strong>\n* Set performance targets per metric\n* Instant email notification when any page exceeds your limit\n* Never miss a regression<\/p>\n\n<p><strong>Webhook Notifications<\/strong>\n* POST alerts to Slack, Discord, Zapier, Make, or any HTTP endpoint\n* Perfect for automating performance reviews in team workflows<\/p>\n\n\n\n<h3>\ud83d\udce4 Export to CSV<\/h3>\n\n<p>Download raw performance data for any date range and device filter. Up to 50,000 rows, compatible with:\n* Excel \/ Google Sheets\n* BI tools (Tableau, Power BI, Looker)\n* Custom data analysis pipelines<\/p>\n\n\n\n<h3>\ud83d\udd17 WordPress Integrations<\/h3>\n\n<p><strong>Site Health<\/strong>\nCore Web Vitals status appears in Tools \u2192 Site Health so you see performance right alongside other site diagnostics.<\/p>\n\n<p><strong>Posts &amp; Pages Column<\/strong>\nEvery post and page list shows a quick Core Web Vitals summary:\n* Color-coded metric badges (green = good, amber = needs work, red = poor)\n* Progress bars showing how close you are to targets\n* Quick-link to run a PSI lab test<\/p>\n\n<p><strong>Dashboard Widget<\/strong>\nP75 scores for LCP, INP, and CLS with trend arrows on your WordPress home dashboard. Monitor performance without leaving the home screen.<\/p>\n\n\n\n<h3>\u26a1 Performance &amp; Privacy<\/h3>\n\n<p><strong>Zero Impact on Your Site Speed<\/strong>\n* Front-end beacon: &lt; 4 KB (minified + gzipped)\n* Loaded with <code>defer<\/code> \u2014 completely non-blocking\n* Uses browser's native PerformanceObserver API \u2014 no external libraries\n* Runs after your page is fully loaded<\/p>\n\n<p><strong>Your Data Stays Yours<\/strong>\n* All performance metrics stored in your own WordPress database\n* Zero cookies, zero tracking pixels\n* Beacon sends data <strong>only<\/strong> to your site's REST API (not to Google, not to us, not to anyone)\n* GDPR-compatible when used appropriately<\/p>\n\n\n\n<h3>External Services<\/h3>\n\n<p>This plugin contacts external services <strong>only when explicitly triggered by an admin action<\/strong> or through an opt-in configuration. No data is transmitted automatically in the background.<\/p>\n\n<h4>\ud83d\udd2c Google PageSpeed Insights API<\/h4>\n\n<p><strong>Triggered by:<\/strong> Clicking the <strong>PSI \u2197<\/strong> button on a page row (manual, admin-only action)<\/p>\n\n<p><strong>Data sent:<\/strong> The page URL being tested (e.g., <code>https:\/\/example.com\/my-page\/<\/code>). No visitor data, no personal information.<\/p>\n\n<p><strong>Recipient:<\/strong> Google LLC<\/p>\n\n<p><strong>Endpoints:<\/strong>\n- <code>https:\/\/www.googleapis.com\/pagespeedonline\/v5\/runPagespeed<\/code> \u2014 API endpoint\n- <code>https:\/\/pagespeed.web.dev\/<\/code> \u2014 report viewer (browser link only, no plugin data sent)<\/p>\n\n<p><strong>Privacy:<\/strong> <a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a> | <a href=\"https:\/\/policies.google.com\/terms\">Terms of Service<\/a><\/p>\n\n<h4>\ud83d\udcda Google web.dev Documentation Links<\/h4>\n\n<p>The WordPress Site Health integration displays links to Google's public Core Web Vitals documentation. These are standard hyperlinks that open in a browser tab \u2014 <strong>the plugin sends no HTTP requests to these URLs.<\/strong><\/p>\n\n<ul>\n<li><code>https:\/\/web.dev\/articles\/lcp\/<\/code><\/li>\n<li><code>https:\/\/web.dev\/articles\/cls\/<\/code><\/li>\n<li><code>https:\/\/web.dev\/articles\/inp\/<\/code><\/li>\n<li><code>https:\/\/web.dev\/articles\/fcp\/<\/code><\/li>\n<li><code>https:\/\/web.dev\/articles\/ttfb\/<\/code><\/li>\n<\/ul>\n\n<h4>\ud83d\udd14 Webhook Notifications (opt-in)<\/h4>\n\n<p><strong>Triggered by:<\/strong> Site admin enabling the feature and configuring a URL in <strong>Settings \u2192 Webhook Notifications<\/strong>, <strong>and<\/strong> a performance threshold being exceeded<\/p>\n\n<p><strong>Data sent:<\/strong> Site name, site URL, metric name, P75 value, threshold, and the page URL that triggered the alert. No visitor data.<\/p>\n\n<p><strong>Recipient:<\/strong> The URL configured by the site admin (Slack workspace, Discord server, Zapier account, custom server, etc.). The plugin author has no access to webhook destinations.<\/p>\n\n<h4>\ud83c\udfe0 Front-end Beacon (your site only)<\/h4>\n\n<p>The JavaScript beacon collects performance data <strong>only from your own site's REST API<\/strong> at <code>\/wp-json\/rayetun-site-monitor\/v1\/collect<\/code>. Zero data is sent to external servers. Visitor metrics stay on your server.<\/p>\n\n\n\n<h3>Support<\/h3>\n\n<p>Found a bug? Have a feature request? Visit the <a href=\"https:\/\/wordpress.org\/support\/plugin\/rayetun-site-monitor\/\">plugin support forum<\/a> on WordPress.org.<\/p>\n\n<p>If it's urgent please contact: rayetun2.0@gmail.com<\/p>\n\n<!--section=installation-->\n<ol>\n<li><strong>Upload<\/strong> the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install directly from <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong><\/li>\n<li><strong>Activate<\/strong> the plugin from the Plugins screen<\/li>\n<li><strong>Navigate<\/strong> to <strong>Site Monitor<\/strong> in the WordPress admin sidebar<\/li>\n<li><strong>Browse<\/strong> your site in any browser \u2014 data appears within seconds<\/li>\n<\/ol>\n\n<p><strong>That's it.<\/strong> No API keys to hunt down. No forms to fill. No waiting for data to accumulate. Just activate and go.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"why%20is%20my%20dashboard%20empty%20after%20activation%3F\"><h3>Why is my dashboard empty after activation?<\/h3><\/dt>\n<dd><p>The plugin collects metrics from real visitors. Open a few pages on your site in a web browser after activation, then refresh the dashboard. You'll see data within seconds of each page view.<\/p><\/dd>\n<dt id=\"will%20this%20slow%20down%20my%20site%3F\"><h3>Will this slow down my site?<\/h3><\/dt>\n<dd><p>No. The beacon loads with the <code>defer<\/code> attribute (non-blocking) and is under 4 KB. It uses the browser's native PerformanceObserver API \u2014 no external library downloads, no render-blocking scripts. Your page speed is unaffected.<\/p><\/dd>\n<dt id=\"how%20is%20this%20different%20from%20google%20search%20console%3F\"><h3>How is this different from Google Search Console?<\/h3><\/dt>\n<dd><p><strong>Search Console<\/strong> shows aggregated, multi-day-old data that requires a minimum sample size before displaying. <strong>Rayetun<\/strong> shows data from the moment of activation for every individual page, broken down by device, with real-time threshold alerts and PSI lab tests triggered on-demand.<\/p><\/dd>\n<dt id=\"how%20long%20is%20data%20kept%3F\"><h3>How long is data kept?<\/h3><\/dt>\n<dd><p>Data older than 30 days is automatically purged by a daily WordPress cron job. This keeps your database lean with zero manual cleanup.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20plugins%3F\"><h3>Does it work with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. The JavaScript beacon runs in the visitor's browser after page load completes, regardless of server-side caching.<\/p><\/dd>\n<dt id=\"how%20do%20i%20use%20the%20pagespeed%20insights%20integration%3F\"><h3>How do I use the PageSpeed Insights integration?<\/h3><\/dt>\n<dd><p>Click <strong>PSI \u2197<\/strong> on any row in the Slowest Pages table or the Posts\/Pages list column. The PSI API works without a key. To avoid Google's anonymous rate limits on high-traffic sites, get a free API key at <a href=\"https:\/\/developers.google.com\/speed\/docs\/insights\/v5\/get-started\">developers.google.com<\/a> and paste it into <strong>Site Monitor \u2192 Settings<\/strong>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20send%20alerts%20to%20slack%20or%20discord%3F\"><h3>How do I send alerts to Slack or Discord?<\/h3><\/dt>\n<dd><p>Go to <strong>Site Monitor \u2192 Settings \u2192 Webhook Notifications<\/strong>, toggle it on, and paste your endpoint URL. For Slack, use an Incoming Webhook URL. For Discord, append <code>\/slack<\/code> to the webhook URL. Alerts fire only when a configured threshold is exceeded.<\/p><\/dd>\n<dt id=\"can%20i%20export%20the%20data%3F\"><h3>Can I export the data?<\/h3><\/dt>\n<dd><p>Yes. The <strong>Export CSV<\/strong> button downloads up to 50,000 rows for your selected date range and device filter. The file opens directly in Excel, Google Sheets, or any BI tool.<\/p><\/dd>\n<dt id=\"is%20multisite%20supported%3F\"><h3>Is multisite supported?<\/h3><\/dt>\n<dd><p>Currently designed for single-site installs. Multisite support is on the roadmap for a future release.<\/p><\/dd>\n<dt id=\"does%20it%20conflict%20with%20yoast%20seo%2C%20rank%20math%2C%20or%20other%20plugins%3F\"><h3>Does it conflict with Yoast SEO, Rank Math, or other plugins?<\/h3><\/dt>\n<dd><p>No. Rayetun Site Monitor is completely standalone \u2014 it doesn't read, modify, or interfere with any other plugin's data.<\/p><\/dd>\n<dt id=\"what%20if%20i%20have%20a%20custom%20wordpress%20installation%20or%20a%20heavily%20modified%20site%3F\"><h3>What if I have a custom WordPress installation or a heavily modified site?<\/h3><\/dt>\n<dd><p>The plugin is built on WordPress standards (REST API, WP-Cron, options API) and works with any properly configured WordPress site. It's been tested on WordPress 6.2+ with PHP 8.0+.<\/p>\n\n<\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release featuring real-user monitoring for LCP, CLS, INP, FCP, and TTFB.<\/li>\n<li>LCP Element Attribution \u2014 the beacon captures the DOM element causing LCP (tag, id, CSS class, image src) and displays it alongside each page's score in the Slowest Pages table.<\/li>\n<li>Admin dashboard with score cards, Good\/NI\/Poor distribution bars, sparkline trend charts (7\/14\/30 days), and a Slowest Pages by LCP table.<\/li>\n<li>Filter data by date range and by individual page URL. One-click Clear All Data.<\/li>\n<li>30-day rolling data retention with automatic daily cleanup.<\/li>\n<li>Scheduled email digest (daily or weekly) with P75 scores and trend arrows.<\/li>\n<li>Dashboard adds All \/ Mobile \/ Desktop filter that applies to all charts, cards, and tables.<\/li>\n<li>Performance alerts \u2014 email notification when any page exceeds configurable thresholds.<\/li>\n<li>WordPress Site Health integration (Tools \u2192 Site Health).<\/li>\n<li>Export to CSV \u2014 one-click export of raw vitals data for any date range and device filter. Up to 50,000 rows.<\/li>\n<li>Web Vitals column on Posts and Pages list screens.<\/li>\n<li>Dashboard widget showing P75 for LCP, INP, and CLS with trend arrows.<\/li>\n<li>Native PerformanceObserver beacon \u2014 no external library or CDN dependency.<\/li>\n<\/ul>","raw_excerpt":"Real-user performance monitoring for Core Web Vitals. LCP, CLS, INP, FCP &amp; TTFB dashboards with PSI lab tests, alerts &amp; webhooks \u2014 zero config.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/314452","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=314452"}],"author":[{"embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/rayetun"}],"wp:attachment":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=314452"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=314452"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=314452"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=314452"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=314452"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=314452"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}