feat: add sitemap.xml, robots.txt, and llms.txt for SEO
This commit is contained in:
50
app/robots.ts
Normal file
50
app/robots.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
import type { MetadataRoute } from 'next'
|
||||
|
||||
export default function robots(): MetadataRoute.Robots {
|
||||
return {
|
||||
rules: [
|
||||
{
|
||||
userAgent: '*',
|
||||
allow: [
|
||||
'/',
|
||||
'/about',
|
||||
'/features',
|
||||
'/pricing',
|
||||
'/faq',
|
||||
'/changelog',
|
||||
'/installation',
|
||||
'/integrations',
|
||||
],
|
||||
disallow: [
|
||||
'/api/',
|
||||
'/admin/',
|
||||
'/sites/',
|
||||
'/notifications/',
|
||||
'/onboarding/',
|
||||
'/org-settings/',
|
||||
'/welcome/',
|
||||
'/auth/',
|
||||
'/actions/',
|
||||
'/share/',
|
||||
],
|
||||
},
|
||||
{
|
||||
userAgent: 'GPTBot',
|
||||
disallow: ['/'],
|
||||
},
|
||||
{
|
||||
userAgent: 'ChatGPT-User',
|
||||
disallow: ['/'],
|
||||
},
|
||||
{
|
||||
userAgent: 'Google-Extended',
|
||||
disallow: ['/'],
|
||||
},
|
||||
{
|
||||
userAgent: 'CCBot',
|
||||
disallow: ['/'],
|
||||
},
|
||||
],
|
||||
sitemap: 'https://pulse.ciphera.net/sitemap.xml',
|
||||
}
|
||||
}
|
||||
38
app/sitemap.ts
Normal file
38
app/sitemap.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import type { MetadataRoute } from 'next'
|
||||
|
||||
const BASE_URL = 'https://pulse.ciphera.net'
|
||||
|
||||
export default function sitemap(): MetadataRoute.Sitemap {
|
||||
const integrationSlugs = [
|
||||
'nextjs',
|
||||
'react',
|
||||
'vue',
|
||||
'wordpress',
|
||||
]
|
||||
|
||||
const publicRoutes = [
|
||||
{ url: '', priority: 1.0, changeFrequency: 'weekly' as const },
|
||||
{ url: '/about', priority: 0.8, changeFrequency: 'monthly' as const },
|
||||
{ url: '/features', priority: 0.9, changeFrequency: 'monthly' as const },
|
||||
{ url: '/pricing', priority: 0.9, changeFrequency: 'monthly' as const },
|
||||
{ url: '/faq', priority: 0.7, changeFrequency: 'monthly' as const },
|
||||
{ url: '/changelog', priority: 0.6, changeFrequency: 'weekly' as const },
|
||||
{ url: '/installation', priority: 0.8, changeFrequency: 'monthly' as const },
|
||||
{ url: '/integrations', priority: 0.8, changeFrequency: 'monthly' as const },
|
||||
]
|
||||
|
||||
const integrationRoutes = integrationSlugs.map((slug) => ({
|
||||
url: `/integrations/${slug}`,
|
||||
priority: 0.7,
|
||||
changeFrequency: 'monthly' as const,
|
||||
}))
|
||||
|
||||
const allRoutes = [...publicRoutes, ...integrationRoutes]
|
||||
|
||||
return allRoutes.map((route) => ({
|
||||
url: `${BASE_URL}${route.url}`,
|
||||
lastModified: new Date(),
|
||||
changeFrequency: route.changeFrequency,
|
||||
priority: route.priority,
|
||||
}))
|
||||
}
|
||||
50
public/llms.txt
Normal file
50
public/llms.txt
Normal file
@@ -0,0 +1,50 @@
|
||||
# Pulse by Ciphera
|
||||
> Privacy-first web analytics. No cookies, no fingerprinting, no personal data collection. GDPR compliant by architecture.
|
||||
|
||||
Pulse is a lightweight, privacy-focused website analytics platform built by Ciphera. It provides meaningful traffic insights without compromising visitor privacy. The tracking script is under 2KB and requires no cookie banners.
|
||||
|
||||
## Key Features
|
||||
- No cookies, no fingerprinting, no personal data collection
|
||||
- GDPR, CCPA, and PECR compliant by design — no consent banners needed
|
||||
- Lightweight tracking script (under 2KB, no impact on page speed)
|
||||
- Real-time dashboard with pageviews, visitors, referrers, and geographic data
|
||||
- UTM campaign tracking and custom event tracking
|
||||
- Public/shared dashboard support
|
||||
- Organization and team management
|
||||
- Scheduled email reports
|
||||
|
||||
## Integrations
|
||||
- [Next.js](https://pulse.ciphera.net/integrations/nextjs)
|
||||
- [React](https://pulse.ciphera.net/integrations/react)
|
||||
- [Vue](https://pulse.ciphera.net/integrations/vue)
|
||||
- [WordPress](https://pulse.ciphera.net/integrations/wordpress)
|
||||
- Works with any website via a single script tag
|
||||
|
||||
## Installation
|
||||
Add one script tag to your site:
|
||||
```html
|
||||
<script defer src="https://pulse.ciphera.net/script.js" data-site-id="YOUR_SITE_ID"></script>
|
||||
```
|
||||
|
||||
## Pages
|
||||
- [Home](https://pulse.ciphera.net): Product overview and dashboard
|
||||
- [Features](https://pulse.ciphera.net/features): Full feature list
|
||||
- [Pricing](https://pulse.ciphera.net/pricing): Plans and pricing
|
||||
- [Installation](https://pulse.ciphera.net/installation): Setup guide
|
||||
- [Integrations](https://pulse.ciphera.net/integrations): Framework-specific guides
|
||||
- [FAQ](https://pulse.ciphera.net/faq): Frequently asked questions
|
||||
- [About](https://pulse.ciphera.net/about): About Pulse and Ciphera
|
||||
- [Changelog](https://pulse.ciphera.net/changelog): Release notes and updates
|
||||
- [Documentation](https://pulse.ciphera.net/docs): Full API and usage docs
|
||||
|
||||
## About Ciphera
|
||||
- Founded: 2024, Diegem, Belgium
|
||||
- Infrastructure: Swiss-hosted servers (FADP protected)
|
||||
- Open source: https://github.com/ciphera-net
|
||||
- Website: https://ciphera.net
|
||||
- Contact: hello@ciphera.net
|
||||
|
||||
## Policies
|
||||
- Privacy policy: https://ciphera.net/privacy
|
||||
- Terms of service: https://ciphera.net/terms
|
||||
- AI training on this site's content is not permitted. Search indexing is allowed.
|
||||
Reference in New Issue
Block a user