pagesight 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -57
- package/package.json +20 -4
- package/.github/workflows/ci.yml +0 -40
- package/.releaserc.json +0 -10
- package/CLAUDE.md +0 -52
- package/biome.json +0 -14
- package/brand.md +0 -275
- package/bun.lock +0 -1239
- package/lefthook.yml +0 -8
- package/tsconfig.json +0 -11
package/README.md
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
# Pagesight
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/pagesight)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
See your site the way search engines and AI see it.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
```bash
|
|
8
|
+
npm install pagesight
|
|
9
|
+
```
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
Most SEO tools flag "title over 60 characters" and "only one H1 allowed." [Google's own engineers say those rules don't exist.](#why-not-other-seo-tools) Pagesight skips the myths and goes to the sources.
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
## Tools
|
|
12
14
|
|
|
13
15
|
### `inspect`
|
|
14
16
|
|
|
15
17
|
Ask Google: is this page indexed? What canonical did you choose? Any crawl errors? Structured data issues?
|
|
16
18
|
|
|
17
|
-
Returns index status, canonical (yours vs Google's), crawl status, rich results validation, sitemaps, and referring URLs
|
|
19
|
+
Returns index status, canonical (yours vs Google's), crawl status, rich results validation, sitemaps, and referring URLs.
|
|
18
20
|
|
|
19
21
|
### `pagespeed`
|
|
20
22
|
|
|
@@ -22,10 +24,9 @@ Run Google Lighthouse on any URL:
|
|
|
22
24
|
|
|
23
25
|
- **Scores**: performance, accessibility, best-practices, seo
|
|
24
26
|
- **Core Web Vitals (lab)**: FCP, LCP, TBT, CLS, Speed Index, TTI
|
|
25
|
-
- **CrUX field data**: real Chrome user metrics
|
|
27
|
+
- **CrUX field data**: real Chrome user metrics (page + origin)
|
|
26
28
|
- **Opportunities**: ranked by severity with potential savings
|
|
27
29
|
- **Strategy**: `mobile` or `desktop`
|
|
28
|
-
- **Locale**: localized results (e.g., `pt-BR`)
|
|
29
30
|
|
|
30
31
|
### `crux`
|
|
31
32
|
|
|
@@ -33,56 +34,50 @@ Real-world Core Web Vitals from Chrome users (28-day rolling window):
|
|
|
33
34
|
|
|
34
35
|
- **Metrics**: LCP, FCP, INP, CLS, TTFB, RTT, navigation types, form factors
|
|
35
36
|
- **Granularity**: by URL or origin, by device (DESKTOP, PHONE, TABLET)
|
|
36
|
-
- **Data**: p75 values + histogram distributions
|
|
37
|
+
- **Data**: p75 values + histogram distributions
|
|
37
38
|
|
|
38
39
|
### `crux_history`
|
|
39
40
|
|
|
40
41
|
Core Web Vitals trends over time — up to 40 weekly data points (~10 months):
|
|
41
42
|
|
|
42
43
|
- Trend detection (improved/stable/worse) with percentage change
|
|
43
|
-
- Recent data points table for
|
|
44
|
+
- Recent data points table for core metrics
|
|
44
45
|
- Custom period count (1-40)
|
|
45
46
|
|
|
46
47
|
### `performance`
|
|
47
48
|
|
|
48
|
-
Google Search Console search analytics
|
|
49
|
+
Google Search Console search analytics:
|
|
49
50
|
|
|
50
51
|
- **Dimensions**: `query`, `page`, `country`, `device`, `date`, `searchAppearance`, `hour`
|
|
51
52
|
- **Search types**: `web`, `image`, `video`, `news`, `discover`, `googleNews`
|
|
52
53
|
- **Filters**: `equals`, `contains`, `notEquals`, `notContains`, `includingRegex`, `excludingRegex`
|
|
53
|
-
- **
|
|
54
|
-
- **Data freshness**: `all`, `final`, `hourly_all`
|
|
55
|
-
- **Pagination**: up to 25,000 rows with offset
|
|
54
|
+
- **Pagination**: up to 25,000 rows
|
|
56
55
|
|
|
57
56
|
### `robots`
|
|
58
57
|
|
|
59
|
-
|
|
58
|
+
Analyze any site's robots.txt:
|
|
60
59
|
|
|
61
60
|
- **Syntax validation** per [RFC 9309](https://www.rfc-editor.org/rfc/rfc9309)
|
|
62
|
-
- **AI crawler audit** —
|
|
61
|
+
- **AI crawler audit** — 139+ bots from the [ai-robots-txt](https://github.com/ai-robots-txt/ai.robots.txt) community registry
|
|
63
62
|
- **Bot categories**: training scrapers, AI search crawlers, AI assistants, AI agents
|
|
64
|
-
- **Per-bot status**: blocked or allowed, with the matched rule
|
|
65
|
-
- **Path checking**: is a specific path allowed for a specific user-agent?
|
|
66
|
-
- **Sitemaps**: lists all sitemaps declared in robots.txt
|
|
63
|
+
- **Per-bot status**: blocked or allowed, with the matched rule
|
|
67
64
|
|
|
68
65
|
```
|
|
69
|
-
=== robots.txt: https://www.
|
|
70
|
-
AI Crawlers:
|
|
71
|
-
Source: github.com/ai-robots-txt/ai.robots.txt
|
|
66
|
+
=== robots.txt: https://www.nytimes.com ===
|
|
67
|
+
AI Crawlers: 35 blocked, 104 allowed (of 139 known)
|
|
72
68
|
|
|
73
69
|
BLOCKED GPTBot (OpenAI) — GPT model training
|
|
74
70
|
BLOCKED ClaudeBot (Anthropic) — Claude model training
|
|
75
71
|
ALLOWED Claude-User (Anthropic) — User-initiated fetching
|
|
76
|
-
BLOCKED PerplexityBot (Perplexity) — Search indexing
|
|
77
72
|
```
|
|
78
73
|
|
|
79
74
|
### `sitemaps`
|
|
80
75
|
|
|
81
76
|
Search Console properties and sitemaps (read-only):
|
|
82
77
|
|
|
83
|
-
- `list_sites` — all
|
|
78
|
+
- `list_sites` — all properties with permission level
|
|
84
79
|
- `get_site` — details for a specific property
|
|
85
|
-
- `list_sitemaps` — sitemaps with error/warning counts
|
|
80
|
+
- `list_sitemaps` — sitemaps with error/warning counts
|
|
86
81
|
- `get_sitemap` — full details for a specific sitemap
|
|
87
82
|
|
|
88
83
|
### `setup`
|
|
@@ -95,23 +90,11 @@ Check auth status or walk through OAuth interactively.
|
|
|
95
90
|
|
|
96
91
|
1. Go to [Google Cloud Console](https://console.cloud.google.com/)
|
|
97
92
|
2. Create a project (or use existing)
|
|
98
|
-
3. Enable
|
|
99
|
-
- **Google Search Console API**
|
|
100
|
-
- **PageSpeed Insights API**
|
|
101
|
-
- **Chrome UX Report API**
|
|
93
|
+
3. Enable: **Search Console API**, **PageSpeed Insights API**, **Chrome UX Report API**
|
|
102
94
|
4. Create **OAuth client ID** (Desktop app) — for Search Console
|
|
103
95
|
5. Create **API key** — for PageSpeed and CrUX
|
|
104
96
|
|
|
105
|
-
### 2.
|
|
106
|
-
|
|
107
|
-
Use the `setup` tool to walk through OAuth, or manually:
|
|
108
|
-
|
|
109
|
-
1. Visit the auth URL with your client ID
|
|
110
|
-
2. Authorize access to Search Console
|
|
111
|
-
3. Copy the code from the redirect URL
|
|
112
|
-
4. Exchange it for a refresh token
|
|
113
|
-
|
|
114
|
-
### 3. Configure
|
|
97
|
+
### 2. Configure
|
|
115
98
|
|
|
116
99
|
```env
|
|
117
100
|
GSC_CLIENT_ID=your-client-id.apps.googleusercontent.com
|
|
@@ -120,11 +103,9 @@ GSC_REFRESH_TOKEN=your-refresh-token
|
|
|
120
103
|
GOOGLE_API_KEY=your-api-key
|
|
121
104
|
```
|
|
122
105
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
## Usage
|
|
106
|
+
The `robots` tool works without any credentials.
|
|
126
107
|
|
|
127
|
-
|
|
108
|
+
### 3. Use with your AI assistant
|
|
128
109
|
|
|
129
110
|
```json
|
|
130
111
|
{
|
|
@@ -143,37 +124,33 @@ Add to Claude Code, Cursor, or any MCP client:
|
|
|
143
124
|
}
|
|
144
125
|
```
|
|
145
126
|
|
|
146
|
-
Then just
|
|
127
|
+
Then just ask:
|
|
147
128
|
|
|
148
129
|
```
|
|
149
130
|
"Is https://mysite.com indexed?"
|
|
150
|
-
"
|
|
151
|
-
"Run pagespeed on my homepage, mobile"
|
|
152
|
-
"Show me CrUX data for my site on phones"
|
|
153
|
-
"How have my Core Web Vitals changed over the last 10 months?"
|
|
154
|
-
"Which queries bring traffic to this page?"
|
|
131
|
+
"Run pagespeed on my homepage"
|
|
155
132
|
"Which AI crawlers can access my site?"
|
|
156
|
-
"
|
|
157
|
-
"
|
|
133
|
+
"How have my Core Web Vitals changed?"
|
|
134
|
+
"Which queries bring traffic to this page?"
|
|
158
135
|
```
|
|
159
136
|
|
|
160
137
|
## Why not other SEO tools?
|
|
161
138
|
|
|
162
|
-
We
|
|
139
|
+
We checked every common SEO "rule" against official Google documentation:
|
|
163
140
|
|
|
164
|
-
- **"Title must be under 60 characters"** — Google: "there's no limit." Gary Illyes
|
|
141
|
+
- **"Title must be under 60 characters"** — Google: "there's no limit." Gary Illyes: "an externally made-up metric."
|
|
165
142
|
- **"Meta description must be 155 characters"** — Google: "there's no limit on how long a meta description can be."
|
|
166
143
|
- **"Only one H1 per page"** — John Mueller: "You can use H1 tags as often as you want. There's no limit."
|
|
167
|
-
- **"Minimum 300 words per page"** — Mueller: "the number of words on a page is not a quality factor
|
|
144
|
+
- **"Minimum 300 words per page"** — Mueller: "the number of words on a page is not a quality factor."
|
|
168
145
|
- **"Text-to-HTML ratio matters"** — Mueller: "it makes absolutely no sense at all for SEO."
|
|
169
146
|
|
|
170
|
-
Tools that flag these
|
|
147
|
+
Tools that flag these are reporting their opinions. Pagesight only reports what the sources actually return.
|
|
171
148
|
|
|
172
149
|
## Development
|
|
173
150
|
|
|
174
151
|
```bash
|
|
175
|
-
bun install
|
|
176
|
-
bun run start # start
|
|
152
|
+
bun install
|
|
153
|
+
bun run start # start server
|
|
177
154
|
bun run lint # biome check
|
|
178
155
|
bun run format # biome format
|
|
179
156
|
```
|
package/package.json
CHANGED
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pagesight",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "See your site the way search engines and AI see it.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"seo",
|
|
7
|
+
"geo",
|
|
8
|
+
"google-search-console",
|
|
9
|
+
"pagespeed-insights",
|
|
10
|
+
"core-web-vitals",
|
|
11
|
+
"web-performance",
|
|
12
|
+
"robots-txt",
|
|
13
|
+
"ai-crawlers",
|
|
14
|
+
"mcp"
|
|
15
|
+
],
|
|
16
|
+
"files": [
|
|
17
|
+
"src",
|
|
18
|
+
"README.md",
|
|
19
|
+
"LICENSE"
|
|
20
|
+
],
|
|
5
21
|
"type": "module",
|
|
6
22
|
"main": "src/index.ts",
|
|
7
23
|
"bin": {
|
|
@@ -9,9 +25,9 @@
|
|
|
9
25
|
},
|
|
10
26
|
"repository": {
|
|
11
27
|
"type": "git",
|
|
12
|
-
"url": "git+https://github.com/caiopizzol/
|
|
28
|
+
"url": "git+https://github.com/caiopizzol/pagesight.git"
|
|
13
29
|
},
|
|
14
|
-
"homepage": "https://github.com/caiopizzol/
|
|
30
|
+
"homepage": "https://github.com/caiopizzol/pagesight",
|
|
15
31
|
"author": "Caio Pizzol",
|
|
16
32
|
"scripts": {
|
|
17
33
|
"start": "bun run src/index.ts",
|
package/.github/workflows/ci.yml
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [main]
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
check:
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
steps:
|
|
13
|
-
- uses: actions/checkout@v4
|
|
14
|
-
- uses: oven-sh/setup-bun@v2
|
|
15
|
-
- run: bun install --frozen-lockfile
|
|
16
|
-
- run: bunx biome check src/
|
|
17
|
-
- run: bunx tsc --noEmit
|
|
18
|
-
|
|
19
|
-
release:
|
|
20
|
-
needs: check
|
|
21
|
-
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
|
|
22
|
-
runs-on: ubuntu-latest
|
|
23
|
-
permissions:
|
|
24
|
-
contents: write
|
|
25
|
-
issues: write
|
|
26
|
-
pull-requests: write
|
|
27
|
-
steps:
|
|
28
|
-
- uses: actions/checkout@v4
|
|
29
|
-
with:
|
|
30
|
-
fetch-depth: 0
|
|
31
|
-
- uses: actions/setup-node@v4
|
|
32
|
-
with:
|
|
33
|
-
node-version: 22
|
|
34
|
-
- uses: oven-sh/setup-bun@v2
|
|
35
|
-
- run: bun install --frozen-lockfile
|
|
36
|
-
- run: npx semantic-release
|
|
37
|
-
env:
|
|
38
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
39
|
-
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
40
|
-
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
package/.releaserc.json
DELETED
package/CLAUDE.md
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# Pagesight
|
|
2
|
-
|
|
3
|
-
MCP server for SEO, GEO, and web performance analysis. npm package: `pagesight`.
|
|
4
|
-
|
|
5
|
-
## Stack
|
|
6
|
-
|
|
7
|
-
- **Runtime**: Bun (not Node.js)
|
|
8
|
-
- **Language**: TypeScript
|
|
9
|
-
- **MCP SDK**: `@modelcontextprotocol/sdk`
|
|
10
|
-
- **Linter**: Biome
|
|
11
|
-
- **Git hooks**: Lefthook (pre-commit: biome + tsc)
|
|
12
|
-
|
|
13
|
-
## Architecture
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
src/
|
|
17
|
-
index.ts # MCP server entry, registers all tools
|
|
18
|
-
lib/
|
|
19
|
-
auth.ts # OAuth 2.0 + Service Account auth for GSC
|
|
20
|
-
gsc.ts # Google Search Console API client
|
|
21
|
-
psi.ts # PageSpeed Insights API client
|
|
22
|
-
crux.ts # Chrome UX Report API client
|
|
23
|
-
tools/
|
|
24
|
-
inspect.ts # URL Inspection tool
|
|
25
|
-
pagespeed.ts # PageSpeed Insights tool
|
|
26
|
-
crux.ts # CrUX + CrUX History tools
|
|
27
|
-
performance.ts # Search Analytics tool
|
|
28
|
-
sitemaps.ts # Sites + Sitemaps tool
|
|
29
|
-
setup.ts # Auth setup helper
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## APIs Used
|
|
33
|
-
|
|
34
|
-
| API | Auth | Env Var |
|
|
35
|
-
|-----|------|---------|
|
|
36
|
-
| Google Search Console | OAuth 2.0 / Service Account | `GSC_CLIENT_ID`, `GSC_CLIENT_SECRET`, `GSC_REFRESH_TOKEN` |
|
|
37
|
-
| PageSpeed Insights v5 | API key (optional) | `GOOGLE_API_KEY` |
|
|
38
|
-
| Chrome UX Report | API key (required) | `GOOGLE_API_KEY` |
|
|
39
|
-
|
|
40
|
-
## Commands
|
|
41
|
-
|
|
42
|
-
- `bun run src/index.ts` — start MCP server
|
|
43
|
-
- `bun run lint` — biome check
|
|
44
|
-
- `bun run format` — biome format
|
|
45
|
-
- `bun test` — run tests
|
|
46
|
-
|
|
47
|
-
## Conventions
|
|
48
|
-
|
|
49
|
-
- All tools have try/catch error handling with clean error messages
|
|
50
|
-
- Use Bun built-in APIs over third-party packages
|
|
51
|
-
- No HTML parsing or on-page analysis — only authoritative data sources
|
|
52
|
-
- Every check must be backed by an official API or standard (Google APIs, RFC 9309), not industry conventions
|
package/biome.json
DELETED
package/brand.md
DELETED
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "Pagesight"
|
|
3
|
-
tagline: "Lint your site for search engines and AI."
|
|
4
|
-
version: 2
|
|
5
|
-
language: en
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Pagesight
|
|
9
|
-
|
|
10
|
-
## Strategy
|
|
11
|
-
|
|
12
|
-
### Overview
|
|
13
|
-
|
|
14
|
-
Pagesight is an open-source MCP server that gives AI assistants direct access to how search engines and AI crawlers see your site. Google's index status, Core Web Vitals, search performance, structured data validation — plus a robots.txt analyzer that audits 139+ AI crawlers. All from authoritative sources, not made-up rules.
|
|
15
|
-
|
|
16
|
-
It was born from a developer maintaining multiple personal projects — tired of juggling SEO tools that flag "title too long" and "only one H1 allowed" when Google itself says those rules don't exist. Pagesight skips the myths and asks the sources directly: is this page indexed? What canonical did Google choose? Is GPTBot blocked or allowed? How fast is it for real Chrome users?
|
|
17
|
-
|
|
18
|
-
What it really does: it wraps three Google APIs — Search Console, PageSpeed Insights, and Chrome UX Report — plus an RFC 9309-compliant robots.txt analyzer with a live AI crawler registry into a single MCP server. Your assistant can inspect a URL, check performance, audit which AI bots can access your content, and diagnose search issues without you opening a dashboard.
|
|
19
|
-
|
|
20
|
-
The problem it solves: SEO tooling is built for marketers staring at dashboards, not developers shipping code. The MCP ecosystem fragmented it further — 15+ single-purpose servers, each wrapping one API, each with its own auth flow. And most SEO tools report rules that Google has explicitly debunked.
|
|
21
|
-
|
|
22
|
-
**Before Pagesight:** Install 5 MCP servers. Configure 5 auth flows. Get flagged for "multiple H1 tags" and "title over 60 characters" — neither of which Google cares about.
|
|
23
|
-
|
|
24
|
-
**After Pagesight:** One server. Google APIs + AI crawler intelligence. Only data from authoritative sources.
|
|
25
|
-
|
|
26
|
-
Long-term ambition: become the standard way AI assistants understand and optimize web presence — for both traditional search and generative AI.
|
|
27
|
-
|
|
28
|
-
### Positioning
|
|
29
|
-
|
|
30
|
-
**Category:** Open-source Google Search intelligence for AI assistants.
|
|
31
|
-
|
|
32
|
-
Not a SaaS platform. Not a dashboard. Not a wrapper for a paid API. Not another single-purpose MCP server. Not a tool that invents rules.
|
|
33
|
-
|
|
34
|
-
**Competitive landscape:**
|
|
35
|
-
- **Top layer:** Enterprise SaaS (Semrush, Ahrefs, Moz) — $100-500/mo, built for marketing teams, dashboard-centric, hundreds of made-up "SEO scores"
|
|
36
|
-
- **Mid layer:** Focused SaaS (Frase, Otterly.AI, Profound) — $25-500/mo, narrower scope, still subscription-based
|
|
37
|
-
- **Bottom layer:** Open-source MCP servers — free but fragmented. 5+ PageSpeed MCPs, 9+ Search Console MCPs, all silos with partial API coverage. DataForSEO MCP is comprehensive but wraps a paid API.
|
|
38
|
-
|
|
39
|
-
Pagesight sits below all of them in cost (free) and above all of them in accuracy (Google's own data, not approximations). It trades dashboards for raw API access that agents can use programmatically.
|
|
40
|
-
|
|
41
|
-
**Structural differentials:**
|
|
42
|
-
- Only MCP server unifying Google Search Console + PageSpeed Insights + Chrome UX Report + AI crawler audit
|
|
43
|
-
- Reports what authoritative sources report. Doesn't invent rules, scores, or thresholds.
|
|
44
|
-
- robots.txt analysis per RFC 9309 with 139+ AI crawlers from a live community registry
|
|
45
|
-
- Full Google API coverage — every read-only method, every parameter, every dimension
|
|
46
|
-
- Designed for AI assistants, not humans clicking through tabs
|
|
47
|
-
- Zero vendor lock-in — MIT license, works with Claude, Cursor, Codex, any MCP client
|
|
48
|
-
|
|
49
|
-
**Territory:** Pagesight owns the intersection of "developer tooling" and "Google Search data." The tool that makes Google's APIs conversational.
|
|
50
|
-
|
|
51
|
-
### Personality
|
|
52
|
-
|
|
53
|
-
**Dominant archetype:** The Architect — systematic, precise, evidence-based. Builds on verified foundations, not assumptions.
|
|
54
|
-
|
|
55
|
-
**Attributes the brand transmits:** precise, honest, unified, developer-native, evidence-based, practical
|
|
56
|
-
|
|
57
|
-
**What it is:**
|
|
58
|
-
- Google's data, made accessible to AI assistants
|
|
59
|
-
- A tool for builders who want facts, not opinions
|
|
60
|
-
- Evidence over convention
|
|
61
|
-
- Free as in freedom
|
|
62
|
-
- One tool that replaces five
|
|
63
|
-
|
|
64
|
-
**What it is not:**
|
|
65
|
-
- Not a tool that invents SEO rules
|
|
66
|
-
- Not a score generator that makes up numbers
|
|
67
|
-
- Not trying to be your SEO consultant
|
|
68
|
-
- Not a platform that wants your monthly payment
|
|
69
|
-
- Not enterprise software dressed up as open source
|
|
70
|
-
|
|
71
|
-
### Promise
|
|
72
|
-
|
|
73
|
-
Your site, seen through Google's eyes.
|
|
74
|
-
|
|
75
|
-
One install. Three APIs. No made-up rules.
|
|
76
|
-
|
|
77
|
-
If your AI assistant can't ask Google about your site, your SEO tool has failed.
|
|
78
|
-
|
|
79
|
-
**Base message:** Pagesight gives AI assistants direct access to what Google knows about your site — index status, performance, Core Web Vitals, search queries — so they can diagnose and fix issues with real data.
|
|
80
|
-
|
|
81
|
-
**Synthesizing phrase:** Pagesight exists so developers never have to open an SEO dashboard again.
|
|
82
|
-
|
|
83
|
-
### Guardrails
|
|
84
|
-
|
|
85
|
-
**Tone summary:** direct, technical, confident, evidence-based, helpful
|
|
86
|
-
|
|
87
|
-
**What the brand cannot be:**
|
|
88
|
-
- A tool that promises "10x your traffic"
|
|
89
|
-
- A score generator that assigns arbitrary numbers
|
|
90
|
-
- A tool that flags "issues" Google says don't matter
|
|
91
|
-
- A project that treats developers as secondary users
|
|
92
|
-
- Anything that feels like Salesforce
|
|
93
|
-
|
|
94
|
-
**Litmus test:** If Google's own documentation doesn't support the claim, don't make it.
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
## Voice
|
|
99
|
-
|
|
100
|
-
### Identity
|
|
101
|
-
|
|
102
|
-
We don't make up rules. We ask Google. Pagesight is an open-source MCP server that connects AI assistants to Google Search Console, PageSpeed Insights, and Chrome UX Report — the same data Google uses to evaluate your site.
|
|
103
|
-
|
|
104
|
-
We are not a marketing platform. We are not consultants. We are not SaaS. We are a developer tool that does one job well: make Google's search data accessible to AI assistants.
|
|
105
|
-
|
|
106
|
-
Most SEO tools flag "title over 60 characters" and "only one H1 allowed." Google's own engineers have said these rules are made up. We researched every common SEO rule against official documentation and built a tool that only reports what Google actually tells us.
|
|
107
|
-
|
|
108
|
-
**Essence:** Google's data, your AI assistant's hands.
|
|
109
|
-
|
|
110
|
-
### Tagline & Slogans
|
|
111
|
-
|
|
112
|
-
**Primary tagline:** Lint your site for search engines and AI.
|
|
113
|
-
*Use everywhere: README, homepage, social bios, conference talks.*
|
|
114
|
-
|
|
115
|
-
**Alternatives:**
|
|
116
|
-
- Google's search data + AI crawler intelligence for AI assistants.
|
|
117
|
-
- One MCP server. Three Google APIs. 139+ AI bots tracked.
|
|
118
|
-
- Ask Google, not SEO tools.
|
|
119
|
-
|
|
120
|
-
**Slogans for different contexts:**
|
|
121
|
-
- README hero: "Google Search Console + PageSpeed + CrUX in one MCP server."
|
|
122
|
-
- Technical: "Three Google APIs. Seven tools. One install."
|
|
123
|
-
- Community: "Stop guessing. Ask Google."
|
|
124
|
-
- Myth-busting: "Title length limits? Google says they don't exist. We checked."
|
|
125
|
-
- Developer pitch: "Your AI assistant's direct line to Google Search."
|
|
126
|
-
|
|
127
|
-
### Manifesto
|
|
128
|
-
|
|
129
|
-
Most SEO tools are built on myths.
|
|
130
|
-
|
|
131
|
-
"Title must be under 60 characters." Google: "there's no limit." "Only one H1 per page." John Mueller: "You can use H1 tags as often as you want." "Meta description must be 155 characters." Google: "There's no limit on how long a meta description can be." "Minimum 300 words per page." Mueller: "Word count is not a quality factor."
|
|
132
|
-
|
|
133
|
-
We checked every rule. We read the documentation. We watched the office hours. Most of what SEO tools flag has no basis in anything Google has ever said.
|
|
134
|
-
|
|
135
|
-
So we built something different.
|
|
136
|
-
|
|
137
|
-
Pagesight doesn't make up rules. It asks Google directly. Three APIs — Search Console, PageSpeed Insights, Chrome UX Report — unified into one MCP server that your AI assistant can use.
|
|
138
|
-
|
|
139
|
-
Is this page indexed? Ask Google. What canonical did Google choose? Ask Google. How fast is this page for real users? Ask Google. What queries bring traffic? Ask Google.
|
|
140
|
-
|
|
141
|
-
No scores we invented. No thresholds we made up. No "best practices" that are actually just blog posts from 2015.
|
|
142
|
-
|
|
143
|
-
Just Google's data. In your AI assistant's hands.
|
|
144
|
-
|
|
145
|
-
**Pagesight.**
|
|
146
|
-
|
|
147
|
-
### Message Pillars
|
|
148
|
-
|
|
149
|
-
**Evidence-Based**
|
|
150
|
-
Every data point comes from authoritative sources — Google's APIs, RFC 9309, community-maintained bot registries. We don't invent rules, assign scores, or set thresholds. If the source doesn't support it, we don't report it.
|
|
151
|
-
|
|
152
|
-
**Unified**
|
|
153
|
-
Three Google APIs plus AI crawler intelligence in one MCP server. Search Console for indexing and search data. PageSpeed Insights for Lighthouse audits. Chrome UX Report for real-world performance. robots.txt analyzer for AI bot access control. Eight tools. One install.
|
|
154
|
-
|
|
155
|
-
**Open**
|
|
156
|
-
MIT license. Free APIs only. No paid dependencies. No vendor lock-in. Works with Claude, Cursor, Codex, and every MCP-compatible client.
|
|
157
|
-
|
|
158
|
-
**Developer-Native**
|
|
159
|
-
Built with Bun. Configured with env vars. Speaks MCP over stdio. Designed to run inside AI workflows, not beside them. No dashboard. No browser. No login page.
|
|
160
|
-
|
|
161
|
-
**Myth-Free**
|
|
162
|
-
We researched every common SEO rule against Google's official documentation. Title length limits, H1 requirements, word count minimums — all debunked. Pagesight only reports what Google actually cares about.
|
|
163
|
-
|
|
164
|
-
### Phrases
|
|
165
|
-
|
|
166
|
-
- "Lint your site for search engines and AI."
|
|
167
|
-
- "Google's data, your AI assistant's hands."
|
|
168
|
-
- "One server. Three APIs. 139 bots. No made-up rules."
|
|
169
|
-
- "Stop guessing. Ask Google."
|
|
170
|
-
- "Your AI assistant's direct line to Google Search."
|
|
171
|
-
- "Is GPTBot blocked? Ask Pagesight."
|
|
172
|
-
- "Title length limits? Google says they don't exist."
|
|
173
|
-
- "We checked every SEO rule. Most are myths."
|
|
174
|
-
- "If the source doesn't report it, neither do we."
|
|
175
|
-
|
|
176
|
-
### Social Bios
|
|
177
|
-
|
|
178
|
-
**LinkedIn:**
|
|
179
|
-
Pagesight is an open-source MCP server that gives AI assistants direct access to Google Search Console, PageSpeed Insights, and Chrome UX Report. Inspect indexing status, track Core Web Vitals, analyze search performance — with real data from Google's APIs, not made-up rules. Built with Bun. MIT license.
|
|
180
|
-
|
|
181
|
-
**Instagram:**
|
|
182
|
-
Open-source MCP server for AI assistants
|
|
183
|
-
Google Search Console + PageSpeed + CrUX
|
|
184
|
-
No dashboards. No made-up rules. Just Google's data.
|
|
185
|
-
MIT License | Built with Bun
|
|
186
|
-
|
|
187
|
-
**X/Twitter:**
|
|
188
|
-
Open-source MCP server that gives AI assistants direct access to Google Search Console, PageSpeed Insights, and CrUX. No made-up SEO rules. Just Google's data.
|
|
189
|
-
|
|
190
|
-
**GitHub:**
|
|
191
|
-
Lint your site for search engines and AI. Google Search Console + PageSpeed Insights + Chrome UX Report in one MCP server.
|
|
192
|
-
|
|
193
|
-
### Tonal Rules
|
|
194
|
-
|
|
195
|
-
1. Speak in short, declarative sentences. No hedging.
|
|
196
|
-
2. Lead with what the tool does, not what it is.
|
|
197
|
-
3. Use developer vocabulary: install, configure, query, inspect — not "solutions," "empower," "leverage."
|
|
198
|
-
4. When citing an SEO claim, always reference the source. "Google says X" with a link, not "best practice suggests."
|
|
199
|
-
5. Never use marketing superlatives: "revolutionary," "game-changing," "next-generation," "cutting-edge."
|
|
200
|
-
6. When debunking a myth, quote the Google engineer directly. Names and dates.
|
|
201
|
-
7. Respect the reader's time. If it can be said in one line, don't use three.
|
|
202
|
-
8. Use code examples and terminal output over screenshots and diagrams.
|
|
203
|
-
9. Acknowledge what we don't cover. "Pagesight doesn't do X" is better than hiding it.
|
|
204
|
-
10. Never promise traffic results. Promise access to data.
|
|
205
|
-
11. Open source is a fact, not a selling point. Don't over-celebrate it.
|
|
206
|
-
12. "Google says" is our strongest argument. Use it.
|
|
207
|
-
|
|
208
|
-
**Identity boundaries:**
|
|
209
|
-
- We are not consultants who leave a report behind.
|
|
210
|
-
- We are not a platform trying to become your workflow.
|
|
211
|
-
- We are not a score generator that makes up numbers.
|
|
212
|
-
- We are not a startup looking for your email address.
|
|
213
|
-
- We are not building the next Semrush. We are building a bridge to Google's APIs.
|
|
214
|
-
|
|
215
|
-
| We Say | We Never Say |
|
|
216
|
-
|---|---|
|
|
217
|
-
| "Install Pagesight" | "Sign up for Pagesight" |
|
|
218
|
-
| "Ask Google" | "Optimize your digital presence" |
|
|
219
|
-
| "Google reports this page is not indexed" | "Our analysis shows SEO score 73/100" |
|
|
220
|
-
| "One MCP server, three Google APIs" | "All-in-one platform" |
|
|
221
|
-
| "CrUX shows p75 LCP of 2.1s" | "Your page speed needs improvement" |
|
|
222
|
-
| "Open source, MIT license" | "Free forever (with Pro tier)" |
|
|
223
|
-
| "Built for AI assistants" | "Built for teams of all sizes" |
|
|
224
|
-
| "Works with any MCP client" | "Seamless integration ecosystem" |
|
|
225
|
-
|
|
226
|
-
---
|
|
227
|
-
|
|
228
|
-
## Visual
|
|
229
|
-
|
|
230
|
-
### Colors
|
|
231
|
-
|
|
232
|
-
**Primary:** `#0A0A0A` (near-black)
|
|
233
|
-
Headlines, body text, primary UI elements. The default state. Clean, authoritative, no decoration.
|
|
234
|
-
|
|
235
|
-
**Secondary:** `#18181B` (zinc-900)
|
|
236
|
-
Card backgrounds, code blocks, secondary surfaces. Provides depth without competing.
|
|
237
|
-
|
|
238
|
-
**Accent:** `#4285F4` (Google blue)
|
|
239
|
-
Links, interactive elements, data highlights. References Google as the data source. Used sparingly.
|
|
240
|
-
|
|
241
|
-
**Good:** `#22C55E` (green-500)
|
|
242
|
-
Pass states, "indexed" indicators, good CrUX ratings. The "everything is fine" color.
|
|
243
|
-
|
|
244
|
-
**Warning:** `#EAB308` (yellow-500)
|
|
245
|
-
Warnings, "needs improvement" CrUX ratings. Attention without alarm.
|
|
246
|
-
|
|
247
|
-
**Error:** `#EF4444` (red-500)
|
|
248
|
-
Errors, "not indexed" states, poor CrUX ratings. Demands action.
|
|
249
|
-
|
|
250
|
-
**Muted:** `#71717A` (zinc-500)
|
|
251
|
-
Secondary text, descriptions, metadata. Stays out of the way.
|
|
252
|
-
|
|
253
|
-
**Background:** `#FAFAFA` (zinc-50)
|
|
254
|
-
Page backgrounds, light mode surfaces. Clean, not sterile.
|
|
255
|
-
|
|
256
|
-
**Avoid:** Gradients, purples (too SaaS), any neon or saturated palette that signals "marketing tool." Don't overuse Google blue — it's an accent, not a primary.
|
|
257
|
-
|
|
258
|
-
### Typography
|
|
259
|
-
|
|
260
|
-
**Display:** Inter — 700 weight
|
|
261
|
-
Headlines, hero text, brand name. Clean geometric sans-serif. Same family used by Linear and Vercel.
|
|
262
|
-
|
|
263
|
-
**Body:** Inter — 400/500 weight
|
|
264
|
-
Paragraphs, descriptions, UI text. Highly legible at all sizes.
|
|
265
|
-
|
|
266
|
-
**Mono:** JetBrains Mono — 400 weight
|
|
267
|
-
Code examples, terminal output, tool names, API responses, configuration snippets. This is a developer tool — monospace is a first-class citizen, not an afterthought.
|
|
268
|
-
|
|
269
|
-
### Style
|
|
270
|
-
|
|
271
|
-
**Design keywords:** systematic, minimal, structured, terminal-native, data-forward
|
|
272
|
-
|
|
273
|
-
**Reference brands:** Linear (systematic clarity), Vercel (developer-native), Resend (clean minimalism), Google Search Console (data authority)
|
|
274
|
-
|
|
275
|
-
**Direction:** The identity should communicate precision and data integrity, not decoration. Every visual element should feel like it belongs in a terminal or a well-designed README. Data tables and API responses are the hero content, not illustrations. If it wouldn't look right next to a `curl` output, reconsider it.
|