885 Commits

Author SHA1 Message Date
simlarsen
3a379fb87c chore: npm audit fix 2026-02-23 02:33:07 +00:00
Jamie Mallers
3e416c1679 feat: Add GA4 CTA click tracking across all pages
Track clicks on 'Get started free' and 'Request demo' CTAs via
gtag events (cta_get_started, cta_request_demo) and GTM dataLayer.

This enables GA4 conversion tracking for CTA clicks, which was
previously missing (GA audit found zero conversion events).

Uses event delegation so it automatically tracks all CTA links
including dynamically rendered ones.

Added to: homepage, pricing, demo, blog posts, blog list,
status page, and industry pages.
2026-02-20 14:46:19 +00:00
Nawaz Dhandala
ab83172d60 feat: preload Tailwind CSS and Google Fonts to improve loading performance and reduce layout shifts 2026-02-19 18:04:49 +00:00
simlarsen
3348f44bf1 chore: npm audit fix 2026-02-19 02:31:47 +00:00
Nawaz Dhandala
8e91a786f9 refactor: streamline route definition for CLI endpoint 2026-02-16 10:39:43 +00:00
Nawaz Dhandala
02d16446f1 feat: update documentation links in CLI and MCP server pages for improved navigation 2026-02-16 10:32:28 +00:00
Nawaz Dhandala
5d5517258b Refactor code structure for improved readability and maintainability 2026-02-16 08:59:39 +00:00
Nawaz Dhandala
196e9cae10 refactor: Enhance error handling in getBlogPost method to return null on failure 2026-02-13 11:33:02 +00:00
simlarsen
25f9b826cf chore: npm audit fix 2026-02-11 02:38:02 +00:00
Jamie Mallers
6b0756cd3a feat(analytics): add GA4 sign_up and page view tracking
- Fire sign_up event on successful registration (Accounts/Register.tsx)
- Fire page_view_pricing event on pricing page load
- Fire page_view_demo event on demo page load
- All events use dataLayer.push for GTM/GA4 compatibility
2026-02-09 13:54:44 +00:00
Nawaz Dhandala
bf5846e7f4 fix(ProductCompare): improve question formatting for clarity in FAQ section 2026-02-08 22:25:06 +00:00
Simon Larsen
9efb070334 Merge pull request #2276 from OneUptime/fix/seo-better-uptime-enhanced
SEO: Add FAQ schema to compare pages + enhance Better Uptime content
2026-02-08 18:46:52 +00:00
Nawaz Dhandala
85e7dd1150 fix(sitemap): update comment format for clarity on blog tag sitemaps removal 2026-02-08 18:16:51 +00:00
Jamie Mallers
62f6900dd2 Merge origin/master - resolve conflict in product-compare.ejs
Keep both:
- Updated meta description from master
- FAQ schema for rich snippets from this branch
2026-02-08 15:20:49 +00:00
Jamie Mallers
51cf4a88bf SEO: Add FAQ schema + enhance Better Uptime comparison content
Changes:
1. Add JSON-LD FAQ schema to all compare pages for rich snippets
2. Expand Better Uptime FAQs from 4 to 8 questions
3. Add more detailed answers covering:
   - Better Uptime → Better Stack rebrand context
   - Self-hosting advantages
   - Detailed pricing comparison
   - Feature differences

Target: /compare/better-uptime at position 13.5 for 'better uptime' query
Expected: Rich snippet eligibility + better content relevance
2026-02-08 09:21:54 +00:00
Simon Larsen
0dfd38d263 Merge pull request #2275 from OneUptime/fix/seo-compare-page-titles
fix(seo): improve compare page title tags for better CTR
2026-02-07 20:44:53 +00:00
Simon Larsen
66424eee24 Merge pull request #2274 from OneUptime/fix/seo-meta-descriptions
fix(seo): unique meta descriptions for product pages
2026-02-07 20:44:14 +00:00
Jamie Mallers
d7efe2445c fix(seo): improve compare page title tags for better CTR
Changed title pattern from:
'OneUptime vs [Product]: Open-Source Alternative | 2026 Comparison'

To:
'[Product] Alternative - OneUptime | Open Source | 2026 Comparison'

Rationale:
- Puts competitor name first (matches search intent)
- 'Alternative' keyword prominent (what users search for)
- Shorter, more scannable

Also improved meta description to be more action-oriented with clear value props.

Targets: /compare/better-uptime (position 13.5, 803 impressions)
2026-02-07 17:01:18 +00:00
Jamie Mallers
1bf4c52518 fix(seo): unique meta descriptions for product pages
Multiple product pages had identical generic meta descriptions:
'OneUptime monitors websites, APIs, and servers...'

This hurt CTR because Google showed the same text for different pages.

Updated with unique, keyword-rich descriptions:
- /product/status-page: Focus on free, unlimited subscribers, Statuspage alternative
- /product/monitoring: Focus on global locations, alerts, Datadog alternative
- /product/incident-management: Focus on features, integrations
- /product/on-call: Focus on rotations, escalations, PagerDuty alternative
- /about: Focus on open source, GitHub stars, mission

Expected impact: Improved CTR from search results
2026-02-07 16:53:21 +00:00
Jamie Mallers
8348bf6897 fix(seo): noindex tag pages and remove from sitemap
Google Search Console shows 0/10,519 pages indexed. Root cause: 5,000+
thin tag pages are diluting site quality signals and consuming crawl budget.

Changes:
- Add noindex,follow meta tag to blog tag pages (ListByTag.ejs)
- Remove tag sitemaps from sitemap index (Sitemap.ts)

This tells Google to:
1. Stop trying to index tag pages (they're thin content)
2. Still follow links on those pages to discover real content
3. Focus crawl budget on valuable pages (blog posts, product pages)

Expected impact:
- Improved crawl budget efficiency
- Better quality signals for the domain
- Gradual improvement in indexing of valuable pages
2026-02-07 15:49:51 +00:00
Jamie Mallers
69c0253862 Add GA4 conversion tracking for demo bookings and CTA clicks
- Add GA4 gtag event tracking alongside PostHog for demo bookings
- Add dataLayer push for GTM compatibility
- Add CTA click tracking for 'Get started' and 'Request demo' buttons
- Enable conversion funnel analysis in Google Analytics

This fixes the issue where GA4 Key Events showed 0 conversions
despite demos being booked (only tracked in PostHog previously).
2026-02-05 23:42:10 +00:00
Jamie Mallers
3c3ecfc698 Enhance compare pages: stronger positioning and CTAs
- Badge: 'Open Source Alternative' with GitHub link (reinforces positioning)
- H1: 'The Open-Source [Competitor] Alternative' (SEO + clear value prop)
- CTA: 'Start free — no credit card' (removes friction)
- Added trust signal: 'Self-host for free or use our cloud. No vendor lock-in.'

These changes make the compare pages more conversion-focused.
2026-02-03 15:16:51 +00:00
Jamie Mallers
c22f7fec46 Improve compare page SEO: add 'open-source alternative' positioning
- Title: 'OneUptime vs [Competitor]: Open-Source Alternative | 2026 Comparison'
- Meta: Highlights open-source, alternative positioning, and all-in-one value prop
- Targets high-intent search terms: '[competitor] alternative', 'open source [competitor]'

Affects all /compare/* pages (Datadog, PagerDuty, New Relic, Statuspage, etc.)
2026-02-03 15:12:45 +00:00
Jamie Mallers
5d8f8e248e Update homepage messaging: lead with open-source positioning
- Title: 'OneUptime | The Open-Source Observability Platform'
- Meta: Focus on unified platform, self-hostable
- H1: 'The Open-Source Observability Platform'
- Sub: Emphasize complete reliability stack (monitoring, incidents, status pages, APM)

Part of GTM refresh to improve SEO and conversion.
2026-02-03 14:54:29 +00:00
Nawaz Dhandala
d8cd92c504 feat: Update title and description in ListByTag.ejs for improved SEO 2026-01-29 21:38:17 +00:00
Nawaz Dhandala
0c64ba30b0 fix: Correct URL construction in generateBlogSitemapXml function 2026-01-29 08:08:40 +00:00
Nawaz Dhandala
b1bc7bfde4 fix: update canonical link generation in blog post view 2026-01-26 22:43:27 +00:00
Nawaz Dhandala
bae0338c36 fix: encode tag slugs in AllTagsFilter and Tags partials for proper URL formatting 2026-01-26 22:07:39 +00:00
Nawaz Dhandala
f656f23836 fix: encode tag slugs in generateTagsSitemapXml for proper URL formatting 2026-01-26 22:06:24 +00:00
Nawaz Dhandala
a8a79162e4 fix: ensure consistent response handling in sitemap generation routes 2026-01-26 22:02:57 +00:00
Nawaz Dhandala
e9d5a560ff Refactor migration files and improve code formatting
- Updated migration files to enhance readability by adjusting indentation and line breaks.
- Added missing commas in the index file for migration imports.
- Improved accessibility attributes in various UI components by ensuring proper aria-labels and roles.
- Refactored key event handlers in UI components for better clarity and consistency.
- Enhanced error message handling in form components to ensure proper display and accessibility.
- Updated legacy function comments for clarity and maintainability.
2026-01-26 19:23:58 +00:00
Nawaz Dhandala
d87b6da7c5 fix(dependencies): update random provider version and adjust lock file handling 2026-01-26 19:19:23 +00:00
Nawaz Dhandala
4316fdbf81 fix(vpat): update conformance status for Non-text Contrast to reflect full support 2026-01-26 16:58:08 +00:00
Nawaz Dhandala
ce7e10e3d9 feat(accessibility): enhance ARIA attributes and keyboard navigation across multiple components for improved accessibility 2026-01-26 16:53:41 +00:00
Nawaz Dhandala
21683de677 feat(accessibility): enhance ARIA roles and attributes across multiple components for improved screen reader support 2026-01-26 16:37:03 +00:00
Nawaz Dhandala
4dddec9966 feat(accessibility): enhance ARIA roles and attributes across components for improved screen reader support 2026-01-26 16:23:47 +00:00
Nawaz Dhandala
b79a287791 feat(accessibility): enhance ARIA attributes and alt text for improved screen reader support 2026-01-26 15:58:59 +00:00
Nawaz Dhandala
6bd4b7257d feat(legal): add VPAT page and update legal navigation 2026-01-26 14:41:48 +00:00
Nawaz Dhandala
d2e82fe50e feat(sitemap): implement paginated tags sitemap generation with caching 2026-01-25 18:51:23 +00:00
Nawaz Dhandala
30cb030470 feat(sitemap): enhance sitemap generation with multiple endpoints and caching mechanisms 2026-01-25 18:45:20 +00:00
Nawaz Dhandala
0a6035ed65 style(ProductCompare.ts, GenerateProvider.ts): improve code formatting for better readability 2026-01-22 18:11:21 +00:00
Nawaz Dhandala
70f9444aab feat(svg): add new SVG icons for better integration and visual consistency 2026-01-22 18:07:19 +00:00
Nawaz Dhandala
088333c91c style(pricing.ejs, product-compare.ejs): improve text wrapping and update image styling for better layout 2026-01-22 15:47:30 +00:00
Nawaz Dhandala
7fc7276207 feat(pricing.ejs): enhance Bitcoin payment interaction with clickable text and improved styling 2026-01-22 15:43:20 +00:00
Nawaz Dhandala
631bf12c23 style(pricing.ejs): adjust genesis text styling and update content for clarity 2026-01-22 15:19:28 +00:00
Nawaz Dhandala
5ce158ebf3 Refactor code structure for improved readability and maintainability 2026-01-22 15:18:17 +00:00
Nawaz Dhandala
4684f25f22 easter egg 2026-01-22 15:17:19 +00:00
Nawaz Dhandala
c74204ed1f chore(sitemap): remove outdated sitemap.xml file 2026-01-22 13:12:09 +00:00
Nawaz Dhandala
80125f500c chore(views): update card components to ensure full height for better layout consistency 2026-01-22 12:58:43 +00:00
Nawaz Dhandala
6644523c54 chore(robots.txt): update AI agent access rules and refine API disallow directive 2026-01-21 18:20:50 +00:00