@orion-studios/payload-seo-audit 1.0.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 +127 -0
- package/bin/init.js +267 -0
- package/dist/api/backlinks-import.d.ts +4 -0
- package/dist/api/backlinks-import.d.ts.map +1 -0
- package/dist/api/backlinks-import.js +182 -0
- package/dist/api/cron.d.ts +4 -0
- package/dist/api/cron.d.ts.map +1 -0
- package/dist/api/cron.js +89 -0
- package/dist/api/index.d.ts +10 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +21 -0
- package/dist/api/page-result.d.ts +4 -0
- package/dist/api/page-result.d.ts.map +1 -0
- package/dist/api/page-result.js +93 -0
- package/dist/api/page-results.d.ts +4 -0
- package/dist/api/page-results.d.ts.map +1 -0
- package/dist/api/page-results.js +83 -0
- package/dist/api/run-stream.d.ts +4 -0
- package/dist/api/run-stream.d.ts.map +1 -0
- package/dist/api/run-stream.js +273 -0
- package/dist/api/run.d.ts +4 -0
- package/dist/api/run.d.ts.map +1 -0
- package/dist/api/run.js +102 -0
- package/dist/api/snapshot-report.d.ts +4 -0
- package/dist/api/snapshot-report.d.ts.map +1 -0
- package/dist/api/snapshot-report.js +130 -0
- package/dist/api/snapshots.d.ts +4 -0
- package/dist/api/snapshots.d.ts.map +1 -0
- package/dist/api/snapshots.js +138 -0
- package/dist/api/trend.d.ts +4 -0
- package/dist/api/trend.d.ts.map +1 -0
- package/dist/api/trend.js +71 -0
- package/dist/collections/SeoAuthoritySnapshots.d.ts +3 -0
- package/dist/collections/SeoAuthoritySnapshots.d.ts.map +1 -0
- package/dist/collections/SeoAuthoritySnapshots.js +83 -0
- package/dist/collections/SeoKeywordVisibility.d.ts +3 -0
- package/dist/collections/SeoKeywordVisibility.d.ts.map +1 -0
- package/dist/collections/SeoKeywordVisibility.js +65 -0
- package/dist/collections/SeoPageResults.d.ts +3 -0
- package/dist/collections/SeoPageResults.d.ts.map +1 -0
- package/dist/collections/SeoPageResults.js +170 -0
- package/dist/collections/SeoSnapshots.d.ts +3 -0
- package/dist/collections/SeoSnapshots.d.ts.map +1 -0
- package/dist/collections/SeoSnapshots.js +131 -0
- package/dist/components/hooks/useSeoApi.d.ts +7 -0
- package/dist/components/hooks/useSeoApi.d.ts.map +1 -0
- package/dist/components/hooks/useSeoApi.js +31 -0
- package/dist/components/hooks/useSeoPageResults.d.ts +19 -0
- package/dist/components/hooks/useSeoPageResults.d.ts.map +1 -0
- package/dist/components/hooks/useSeoPageResults.js +62 -0
- package/dist/components/hooks/useSeoSnapshot.d.ts +8 -0
- package/dist/components/hooks/useSeoSnapshot.d.ts.map +1 -0
- package/dist/components/hooks/useSeoSnapshot.js +39 -0
- package/dist/components/hooks/useSeoTrend.d.ts +8 -0
- package/dist/components/hooks/useSeoTrend.d.ts.map +1 -0
- package/dist/components/hooks/useSeoTrend.js +38 -0
- package/dist/components/layout/SeoReportHeader.d.ts +10 -0
- package/dist/components/layout/SeoReportHeader.d.ts.map +1 -0
- package/dist/components/layout/SeoReportHeader.js +18 -0
- package/dist/components/layout/SeoReportShell.d.ts +9 -0
- package/dist/components/layout/SeoReportShell.d.ts.map +1 -0
- package/dist/components/layout/SeoReportShell.js +17 -0
- package/dist/components/pdf/PdfDownloadButton.d.ts +9 -0
- package/dist/components/pdf/PdfDownloadButton.d.ts.map +1 -0
- package/dist/components/pdf/PdfDownloadButton.js +80 -0
- package/dist/components/tables/IssueTable.d.ts +11 -0
- package/dist/components/tables/IssueTable.d.ts.map +1 -0
- package/dist/components/tables/IssueTable.js +121 -0
- package/dist/components/tables/PageResultsTable.d.ts +18 -0
- package/dist/components/tables/PageResultsTable.d.ts.map +1 -0
- package/dist/components/tables/PageResultsTable.js +96 -0
- package/dist/components/types.d.ts +107 -0
- package/dist/components/types.d.ts.map +1 -0
- package/dist/components/types.js +22 -0
- package/dist/components/utils/formatters.d.ts +15 -0
- package/dist/components/utils/formatters.d.ts.map +1 -0
- package/dist/components/utils/formatters.js +98 -0
- package/dist/components/utils/scoreHelpers.d.ts +17 -0
- package/dist/components/utils/scoreHelpers.d.ts.map +1 -0
- package/dist/components/utils/scoreHelpers.js +139 -0
- package/dist/components/views/SeoDashboard.d.ts +3 -0
- package/dist/components/views/SeoDashboard.d.ts.map +1 -0
- package/dist/components/views/SeoDashboard.js +239 -0
- package/dist/components/views/SeoPageReport.d.ts +3 -0
- package/dist/components/views/SeoPageReport.d.ts.map +1 -0
- package/dist/components/views/SeoPageReport.js +234 -0
- package/dist/components/views/SeoSnapshotReport.d.ts +3 -0
- package/dist/components/views/SeoSnapshotReport.d.ts.map +1 -0
- package/dist/components/views/SeoSnapshotReport.js +224 -0
- package/dist/components/visualization/CategoryScoreCard.d.ts +11 -0
- package/dist/components/visualization/CategoryScoreCard.d.ts.map +1 -0
- package/dist/components/visualization/CategoryScoreCard.js +17 -0
- package/dist/components/visualization/CategoryScoreGrid.d.ts +9 -0
- package/dist/components/visualization/CategoryScoreGrid.d.ts.map +1 -0
- package/dist/components/visualization/CategoryScoreGrid.js +32 -0
- package/dist/components/visualization/IssueCategoryChart.d.ts +8 -0
- package/dist/components/visualization/IssueCategoryChart.d.ts.map +1 -0
- package/dist/components/visualization/IssueCategoryChart.js +47 -0
- package/dist/components/visualization/MetricCard.d.ts +11 -0
- package/dist/components/visualization/MetricCard.d.ts.map +1 -0
- package/dist/components/visualization/MetricCard.js +17 -0
- package/dist/components/visualization/MetricCardRow.d.ts +7 -0
- package/dist/components/visualization/MetricCardRow.d.ts.map +1 -0
- package/dist/components/visualization/MetricCardRow.js +12 -0
- package/dist/components/visualization/ScoreBar.d.ts +11 -0
- package/dist/components/visualization/ScoreBar.d.ts.map +1 -0
- package/dist/components/visualization/ScoreBar.js +34 -0
- package/dist/components/visualization/ScoreGauge.d.ts +11 -0
- package/dist/components/visualization/ScoreGauge.d.ts.map +1 -0
- package/dist/components/visualization/ScoreGauge.js +28 -0
- package/dist/components/visualization/ScoreTrendChart.d.ts +9 -0
- package/dist/components/visualization/ScoreTrendChart.d.ts.map +1 -0
- package/dist/components/visualization/ScoreTrendChart.js +43 -0
- package/dist/components/visualization/SeverityBadge.d.ts +8 -0
- package/dist/components/visualization/SeverityBadge.d.ts.map +1 -0
- package/dist/components/visualization/SeverityBadge.js +14 -0
- package/dist/config.d.ts +38 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +36 -0
- package/dist/exports/components.d.ts +4 -0
- package/dist/exports/components.d.ts.map +1 -0
- package/dist/exports/components.js +9 -0
- package/dist/globals/SeoDashboard.d.ts +3 -0
- package/dist/globals/SeoDashboard.d.ts.map +1 -0
- package/dist/globals/SeoDashboard.js +25 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/utilities/access.d.ts +8 -0
- package/dist/utilities/access.d.ts.map +1 -0
- package/dist/utilities/access.js +11 -0
- package/dist/utilities/auth.d.ts +7 -0
- package/dist/utilities/auth.d.ts.map +1 -0
- package/dist/utilities/auth.js +28 -0
- package/dist/utilities/checks.d.ts +3 -0
- package/dist/utilities/checks.d.ts.map +1 -0
- package/dist/utilities/checks.js +255 -0
- package/dist/utilities/crawler.d.ts +14 -0
- package/dist/utilities/crawler.d.ts.map +1 -0
- package/dist/utilities/crawler.js +152 -0
- package/dist/utilities/gsc.d.ts +15 -0
- package/dist/utilities/gsc.d.ts.map +1 -0
- package/dist/utilities/gsc.js +69 -0
- package/dist/utilities/helpers.d.ts +7 -0
- package/dist/utilities/helpers.d.ts.map +1 -0
- package/dist/utilities/helpers.js +44 -0
- package/dist/utilities/pagespeed.d.ts +3 -0
- package/dist/utilities/pagespeed.d.ts.map +1 -0
- package/dist/utilities/pagespeed.js +49 -0
- package/dist/utilities/providers.d.ts +3 -0
- package/dist/utilities/providers.d.ts.map +1 -0
- package/dist/utilities/providers.js +18 -0
- package/dist/utilities/runAudit.d.ts +14 -0
- package/dist/utilities/runAudit.d.ts.map +1 -0
- package/dist/utilities/runAudit.js +224 -0
- package/dist/utilities/scoring.d.ts +3 -0
- package/dist/utilities/scoring.d.ts.map +1 -0
- package/dist/utilities/scoring.js +45 -0
- package/dist/utilities/triggers.d.ts +3 -0
- package/dist/utilities/triggers.d.ts.map +1 -0
- package/dist/utilities/triggers.js +39 -0
- package/dist/utilities/types.d.ts +87 -0
- package/dist/utilities/types.d.ts.map +1 -0
- package/dist/utilities/types.js +2 -0
- package/package.json +63 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.scoreSEOIssues = void 0;
|
|
4
|
+
const helpers_1 = require("../utilities/helpers");
|
|
5
|
+
const categories = [
|
|
6
|
+
'metadata',
|
|
7
|
+
'indexability',
|
|
8
|
+
'structure',
|
|
9
|
+
'links',
|
|
10
|
+
'media',
|
|
11
|
+
'structuredData',
|
|
12
|
+
'performance',
|
|
13
|
+
];
|
|
14
|
+
const scoreCategory = (issues, category) => {
|
|
15
|
+
const penalty = issues
|
|
16
|
+
.filter((issue) => issue.category === category)
|
|
17
|
+
.reduce((sum, issue) => sum + helpers_1.severityWeights[issue.severity], 0);
|
|
18
|
+
return Math.max(0, Math.min(100, 100 - penalty));
|
|
19
|
+
};
|
|
20
|
+
const scoreSEOIssues = (issues) => {
|
|
21
|
+
const scores = categories.reduce((acc, category) => {
|
|
22
|
+
acc[category] = scoreCategory(issues, category);
|
|
23
|
+
return acc;
|
|
24
|
+
}, {
|
|
25
|
+
metadata: 100,
|
|
26
|
+
indexability: 100,
|
|
27
|
+
structure: 100,
|
|
28
|
+
links: 100,
|
|
29
|
+
media: 100,
|
|
30
|
+
structuredData: 100,
|
|
31
|
+
performance: 100,
|
|
32
|
+
});
|
|
33
|
+
const weightedOverall = scores.metadata * 0.2 +
|
|
34
|
+
scores.indexability * 0.2 +
|
|
35
|
+
scores.structure * 0.15 +
|
|
36
|
+
scores.links * 0.1 +
|
|
37
|
+
scores.media * 0.1 +
|
|
38
|
+
scores.structuredData * 0.1 +
|
|
39
|
+
scores.performance * 0.15;
|
|
40
|
+
return {
|
|
41
|
+
...scores,
|
|
42
|
+
overall: Math.round(weightedOverall),
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
exports.scoreSEOIssues = scoreSEOIssues;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triggers.d.ts","sourceRoot":"","sources":["../../src/utilities/triggers.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,4BAA4B,GAAU,MAAM,MAAM,kBAG9D,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAU,MAAM,MAAM,kBAG1D,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.triggerSeoAuditForGlobal = exports.triggerSeoAuditForCollection = void 0;
|
|
4
|
+
const SEO_TRIGGER_COLLECTIONS = new Set(['projects', 'services', 'posts', 'authors', 'categories', 'tags']);
|
|
5
|
+
const SEO_TRIGGER_GLOBALS = new Set(['home', 'services-page', 'work-page', 'blog-page', 'about', 'contact']);
|
|
6
|
+
const shouldTriggerFromCollection = (slug) => SEO_TRIGGER_COLLECTIONS.has(slug);
|
|
7
|
+
const shouldTriggerFromGlobal = (slug) => SEO_TRIGGER_GLOBALS.has(slug);
|
|
8
|
+
const getBaseUrl = () => (process.env.NEXT_PUBLIC_SERVER_URL || '').replace(/\/$/, '');
|
|
9
|
+
const triggerSEOAudit = async () => {
|
|
10
|
+
const baseUrl = getBaseUrl();
|
|
11
|
+
const secret = process.env.SEO_AUDIT_SECRET;
|
|
12
|
+
if (!baseUrl || !secret)
|
|
13
|
+
return;
|
|
14
|
+
try {
|
|
15
|
+
await fetch(`${baseUrl}/api/seo/run`, {
|
|
16
|
+
method: 'POST',
|
|
17
|
+
headers: {
|
|
18
|
+
'content-type': 'application/json',
|
|
19
|
+
'x-seo-audit-secret': secret,
|
|
20
|
+
},
|
|
21
|
+
body: JSON.stringify({ runType: 'publish-triggered' }),
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
console.warn('SEO publish-triggered run failed:', error);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const triggerSeoAuditForCollection = async (slug) => {
|
|
29
|
+
if (!shouldTriggerFromCollection(slug))
|
|
30
|
+
return;
|
|
31
|
+
await triggerSEOAudit();
|
|
32
|
+
};
|
|
33
|
+
exports.triggerSeoAuditForCollection = triggerSeoAuditForCollection;
|
|
34
|
+
const triggerSeoAuditForGlobal = async (slug) => {
|
|
35
|
+
if (!shouldTriggerFromGlobal(slug))
|
|
36
|
+
return;
|
|
37
|
+
await triggerSEOAudit();
|
|
38
|
+
};
|
|
39
|
+
exports.triggerSeoAuditForGlobal = triggerSeoAuditForGlobal;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
export type SEOIssueSeverity = 'critical' | 'high' | 'medium' | 'low' | 'info';
|
|
2
|
+
export type SEOIssueCategory = 'metadata' | 'indexability' | 'structure' | 'links' | 'media' | 'structuredData' | 'performance';
|
|
3
|
+
export type SEOIssue = {
|
|
4
|
+
fingerprint: string;
|
|
5
|
+
ruleID: string;
|
|
6
|
+
category: SEOIssueCategory;
|
|
7
|
+
severity: SEOIssueSeverity;
|
|
8
|
+
message: string;
|
|
9
|
+
recommendation?: string;
|
|
10
|
+
};
|
|
11
|
+
export type SEOCheckResult = {
|
|
12
|
+
title?: string;
|
|
13
|
+
metaDescription?: string;
|
|
14
|
+
canonical?: string;
|
|
15
|
+
robotsMeta?: string;
|
|
16
|
+
h1Count: number;
|
|
17
|
+
headingOrderIssues: number;
|
|
18
|
+
internalLinks: number;
|
|
19
|
+
externalLinks: number;
|
|
20
|
+
imagesTotal: number;
|
|
21
|
+
imagesMissingAlt: number;
|
|
22
|
+
structuredDataBlocks: number;
|
|
23
|
+
issues: SEOIssue[];
|
|
24
|
+
};
|
|
25
|
+
export type SEOPageScore = {
|
|
26
|
+
metadata: number;
|
|
27
|
+
indexability: number;
|
|
28
|
+
structure: number;
|
|
29
|
+
links: number;
|
|
30
|
+
media: number;
|
|
31
|
+
structuredData: number;
|
|
32
|
+
performance: number;
|
|
33
|
+
overall: number;
|
|
34
|
+
};
|
|
35
|
+
export type SEOPageResult = {
|
|
36
|
+
url: string;
|
|
37
|
+
path: string;
|
|
38
|
+
statusCode: number;
|
|
39
|
+
check: SEOCheckResult;
|
|
40
|
+
score: SEOPageScore;
|
|
41
|
+
};
|
|
42
|
+
export type SEOSnapshotSummary = {
|
|
43
|
+
pagesCrawled: number;
|
|
44
|
+
pagesChecked: number;
|
|
45
|
+
issueCounts: Record<SEOIssueSeverity, number>;
|
|
46
|
+
scores: SEOPageScore;
|
|
47
|
+
};
|
|
48
|
+
export type SEOPageSpeedSummary = {
|
|
49
|
+
averagePerformanceScore?: number;
|
|
50
|
+
averageLCPMs?: number;
|
|
51
|
+
averageCLS?: number;
|
|
52
|
+
};
|
|
53
|
+
export type SEOAuditRunType = 'scheduled' | 'manual' | 'publish-triggered';
|
|
54
|
+
export type SEOSiteRecord = {
|
|
55
|
+
id: number | string;
|
|
56
|
+
name?: string | null;
|
|
57
|
+
domain?: string | null;
|
|
58
|
+
canonicalHost?: string | null;
|
|
59
|
+
sitemapURL?: string | null;
|
|
60
|
+
keyURLs?: Array<{
|
|
61
|
+
url?: string | null;
|
|
62
|
+
}> | null;
|
|
63
|
+
crawlSettings?: {
|
|
64
|
+
maxPages?: number | null;
|
|
65
|
+
maxDepth?: number | null;
|
|
66
|
+
requestTimeoutMs?: number | null;
|
|
67
|
+
includePatterns?: Array<{
|
|
68
|
+
pattern?: string | null;
|
|
69
|
+
}> | null;
|
|
70
|
+
excludePatterns?: Array<{
|
|
71
|
+
pattern?: string | null;
|
|
72
|
+
}> | null;
|
|
73
|
+
} | null;
|
|
74
|
+
integrations?: {
|
|
75
|
+
enablePageSpeed?: boolean | null;
|
|
76
|
+
enableSearchConsole?: boolean | null;
|
|
77
|
+
} | null;
|
|
78
|
+
thresholds?: {
|
|
79
|
+
targetLCPMs?: number | null;
|
|
80
|
+
targetCLS?: number | null;
|
|
81
|
+
} | null;
|
|
82
|
+
};
|
|
83
|
+
export type SEOProviderAdapter = {
|
|
84
|
+
name: string;
|
|
85
|
+
isConfigured: () => boolean;
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utilities/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@orion-studios/payload-seo-audit",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Professional SEO audit system for Payload CMS 3.0 + Next.js 15 projects",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"default": "./dist/index.js"
|
|
11
|
+
},
|
|
12
|
+
"./api": {
|
|
13
|
+
"types": "./dist/api/index.d.ts",
|
|
14
|
+
"default": "./dist/api/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./components": {
|
|
17
|
+
"types": "./dist/exports/components.d.ts",
|
|
18
|
+
"default": "./dist/exports/components.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist",
|
|
23
|
+
"bin"
|
|
24
|
+
],
|
|
25
|
+
"bin": {
|
|
26
|
+
"payload-seo-audit": "./bin/init.js"
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "tsc",
|
|
30
|
+
"dev": "tsc --watch",
|
|
31
|
+
"prepublishOnly": "npm run build"
|
|
32
|
+
},
|
|
33
|
+
"keywords": [
|
|
34
|
+
"payload",
|
|
35
|
+
"payloadcms",
|
|
36
|
+
"cms",
|
|
37
|
+
"seo",
|
|
38
|
+
"audit",
|
|
39
|
+
"nextjs",
|
|
40
|
+
"lighthouse",
|
|
41
|
+
"analytics"
|
|
42
|
+
],
|
|
43
|
+
"author": "Orion Studios",
|
|
44
|
+
"license": "MIT",
|
|
45
|
+
"peerDependencies": {
|
|
46
|
+
"next": "^15.0.0",
|
|
47
|
+
"payload": "^3.0.0",
|
|
48
|
+
"react": "^19.0.0"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@types/node": "^22.0.0",
|
|
52
|
+
"@types/react": "^19.0.0",
|
|
53
|
+
"payload": "^3.75.0",
|
|
54
|
+
"typescript": "^5.6.0"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"cheerio": "^1.0.0",
|
|
58
|
+
"googleapis": "^144.0.0",
|
|
59
|
+
"html2pdf.js": "^0.10.2",
|
|
60
|
+
"lucide-react": "^0.460.0",
|
|
61
|
+
"recharts": "^2.15.0"
|
|
62
|
+
}
|
|
63
|
+
}
|