{"id":380258,"date":"2026-10-05T08:33:18","date_gmt":"2026-10-05T08:33:18","guid":{"rendered":"https:\/\/ru.wordpress.org\/plugins\/hpc-stats\/"},"modified":"2026-10-05T09:50:58","modified_gmt":"2026-10-05T09:50:58","slug":"hpc-stats","status":"publish","type":"plugin","link":"https:\/\/hsb.wordpress.org\/plugins\/hpc-stats\/","author":23512879,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.7","stable_tag":"1.0.7","tested":"7.1.2","requires":"5.6","requires_php":"7.2","requires_plugins":null,"header_name":"HPC Stats","header_author":"\u041e\u041e\u041e \u00ab\u0413\u0438\u043f\u0435\u0440\u041f\u041a\u00bb","header_description":"\u041f\u0440\u043e\u0441\u0442\u0430\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043f\u043e\u0441\u0435\u0449\u0435\u043d\u0438\u0439 (\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u044b \u0438 \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u0438 \u043f\u043e \u0434\u043d\u044f\u043c \u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c). \u0411\u0435\u0437 cookie, \u0431\u0435\u0437 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0441\u0432\u043e\u0451\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e \u0441 152-\u0424\u0417, \u0434\u0440\u0443\u0436\u0438\u0442 \u0441 \u043a\u0435\u0448\u0435\u043c (REST-\u043f\u0438\u043a\u0441\u0435\u043b\u044c).","assets_banners_color":"2d5aa3","last_updated":"2026-10-05 09:50:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/itorbita.by","rating":0,"author_block_rating":0,"active_installs":0,"downloads":177,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","changelog"],"tags":{"1.0.6":{"tag":"1.0.6","author":"itorbita","date":"2026-10-05 08:38:47","revision":3728429},"1.0.7":{"tag":"1.0.7","author":"itorbita","date":"2026-10-05 09:50:58","revision":3728557}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3728518,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3728518,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3728518,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3728518,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.6","1.0.7"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3728518,"resolution":"1","location":"assets","locale":"","width":1200,"height":1280},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3728518,"resolution":"2","location":"assets","locale":"","width":1200,"height":1280},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3728518,"resolution":"3","location":"assets","locale":"","width":1200,"height":1280}},"screenshots":{"1":"Dashboard: pageviews and visitors by day, with a chart and the top pages.","2":"Settings: exclude admins, CDN\/proxy mode, retention period, and plugin data size.","3":"Help: what the numbers mean and how cookie-free counting works."}},"plugin_section":[],"plugin_tags":[232,7175,396,521,871],"plugin_category":[36,54],"plugin_contributors":[269719],"plugin_business_model":[],"class_list":["post-380258","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-pageviews","plugin_tags-privacy","plugin_tags-statistics","plugin_tags-visitors","plugin_category-analytics","plugin_category-security-and-spam-protection","plugin_contributors-itorbita","plugin_committers-itorbita"],"banners":{"banner":"https:\/\/ps.w.org\/hpc-stats\/assets\/banner-772x250.png?rev=3728518","banner_2x":"https:\/\/ps.w.org\/hpc-stats\/assets\/banner-1544x500.png?rev=3728518","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/hpc-stats\/assets\/icon-128x128.png?rev=3728518","icon_2x":"https:\/\/ps.w.org\/hpc-stats\/assets\/icon-256x256.png?rev=3728518","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/hpc-stats\/assets\/screenshot-1.png?rev=3728518","caption":"Dashboard: pageviews and visitors by day, with a chart and the top pages."},{"src":"https:\/\/ps.w.org\/hpc-stats\/assets\/screenshot-2.png?rev=3728518","caption":"Settings: exclude admins, CDN\/proxy mode, retention period, and plugin data size."},{"src":"https:\/\/ps.w.org\/hpc-stats\/assets\/screenshot-3.png?rev=3728518","caption":"Help: what the numbers mean and how cookie-free counting works."}],"raw_content":"<!--section=description-->\n<p>HPC Stats shows pageviews and visitor counts by day and by page \u2014 without any\nexternal services. All data stays on your own server.<\/p>\n\n<ul>\n<li>No cookies and no personal data collected \u2014 consent banners are not required for it.<\/li>\n<li>Cache-friendly (WP Super Cache, LiteSpeed): counting goes through a lightweight REST pixel, so it works even on fully cached pages.<\/li>\n<li>Aggregated storage (day x page), not a row per view \u2014 the database does not bloat.<\/li>\n<li>Cookie-free unique visitors: a daily hash of IP + User-Agent + a rotating salt; the raw IP is never stored.<\/li>\n<li>Per-page drill-down, search by URL, full page list.<\/li>\n<li>CDN \/ proxy detection and correct counting behind Cloudflare.<\/li>\n<li>Statistics are visible to the Editor role; settings are admin-only.<\/li>\n<\/ul>\n\n<p>A separate Pro add-on (sold at itorbita.by) adds: traffic sources and devices,\nevent tracking (outbound link clicks, downloads, custom events), outbound clicks\nper article, a dashboard widget, CSV export, and a date-range picker with quick\npresets.<\/p>\n\n<h3>How counting works<\/h3>\n\n<p>The page is served from cache as usual. A small script sends one hit\n(navigator.sendBeacon) to the plugin's REST endpoint after load. The server\nincrements counters for (date, page). Bots and rapid reloads are filtered out.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>The plugin sets no cookies and stores no IP addresses or other personal data.\nUnique visitors are derived from a daily, non-reversible hash that is rotated\nevery night. No data is sent to any third party.<\/p>\n\n<h3>Author<\/h3>\n\n<p>\u0410\u0432\u0442\u043e\u0440 \u2014 \u041e\u041e\u041e \u00ab\u0413\u0438\u043f\u0435\u0440\u041f\u041a\u00bb, \u0441\u0430\u0439\u0442 itorbita.by<\/p>\n\n<!--section=changelog-->\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Added screenshots and captions to the plugin page. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Fully self-contained free plugin: removed the Pro feature gate. Custom date\nranges and the retention period now work without any add-on; the Pro check and\nthe 90-day cap were dropped. Distinct prefix for the internal dedup transient.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Version aligned with the Pro add-on.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Plugin Check cleanup: plugin display name aligned with the readme, cleanup\nroutine escaping, prefixed uninstall variables.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Code hardening for the WordPress.org Plugin Check: output escaping, input\nsanitization, documented direct DB queries for the plugin's own tables.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Version aligned with the Pro add-on.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Settings: \"Plugin data\" section with total table size and a cleanup button\n(older than 1\/3\/6\/12 months, or all data). Cleanup also covers Pro tables.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release: pageview and visitor counting, dashboard, top and full\npage lists, per-page drill-down, CDN detection, help section. Advanced\nanalytics moved to a separate Pro add-on.<\/li>\n<\/ul>","raw_excerpt":"Simple internal visit statistics: pageviews and visitors by day and by page. No cookies, no personal data, data stays on your own server.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/380258","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=380258"}],"author":[{"embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/itorbita"}],"wp:attachment":[{"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=380258"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=380258"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=380258"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=380258"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=380258"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=380258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}