optbrew 0.0.0-stage → 0.1.2
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/.claude-plugin/marketplace.json +6 -0
- package/.claude-plugin/plugin.json +6 -0
- package/.codex-plugin/plugin.json +13 -0
- package/CHANGELOG.md +50 -0
- package/LICENSE +21 -0
- package/README.ko.md +149 -0
- package/README.md +148 -2
- package/THIRD_PARTY_NOTICES.md +10 -0
- package/bin/optbrew.mjs +4 -0
- package/docs/platforms.md +107 -0
- package/docs/release.md +14 -0
- package/lib/cli.mjs +116 -0
- package/lib/doctor.mjs +45 -0
- package/lib/install.mjs +158 -0
- package/lib/paths.mjs +30 -0
- package/lib/records.mjs +44 -0
- package/lib/reinstall.mjs +92 -0
- package/lib/transaction.mjs +205 -0
- package/lib/update.mjs +189 -0
- package/package.json +39 -4
- package/plugin.json +13 -0
- package/skills/optbrew/LICENSE +21 -0
- package/skills/optbrew/SKILL.md +17 -0
- package/skills/optbrew/THIRD_PARTY_NOTICES.md +10 -0
- package/skills/optbrew/agents/openai.yaml +4 -0
- package/skills/optbrew/bundle-manifest.json +687 -0
- package/skills/optbrew/licenses/firecrawl-seo-audit.txt +15 -0
- package/skills/optbrew/licenses/magnus-seo.txt +21 -0
- package/skills/optbrew/licenses/marketing-search.txt +21 -0
- package/skills/optbrew/licenses/mblode-seo.txt +21 -0
- package/skills/optbrew/licenses/naver-searchadvisor.txt +29 -0
- package/skills/optbrew/licenses/seranking-seo.txt +21 -0
- package/skills/optbrew/modules/firecrawl-seo-audit/GUIDE.md +64 -0
- package/skills/optbrew/modules/magnus-seo/GUIDE.md +79 -0
- package/skills/optbrew/modules/magnus-seo/README.md +45 -0
- package/skills/optbrew/modules/magnus-seo/assets/audit-report-template.md +76 -0
- package/skills/optbrew/modules/magnus-seo/references/aeo-methodology.md +105 -0
- package/skills/optbrew/modules/magnus-seo/references/agent-readable-content.md +28 -0
- package/skills/optbrew/modules/magnus-seo/references/content-and-entity-architecture.md +100 -0
- package/skills/optbrew/modules/magnus-seo/references/content-strategy-seo.md +142 -0
- package/skills/optbrew/modules/magnus-seo/references/discovery-and-freshness.md +47 -0
- package/skills/optbrew/modules/magnus-seo/references/evidence-boundaries.md +75 -0
- package/skills/optbrew/modules/magnus-seo/references/ghost-metadata.md +204 -0
- package/skills/optbrew/modules/magnus-seo/references/implementation-playbook.md +114 -0
- package/skills/optbrew/modules/magnus-seo/references/measurement-and-experimentation.md +47 -0
- package/skills/optbrew/modules/magnus-seo/references/onpage-seo.md +154 -0
- package/skills/optbrew/modules/magnus-seo/references/platform-guidance.md +30 -0
- package/skills/optbrew/modules/magnus-seo/references/schema-markup.md +244 -0
- package/skills/optbrew/modules/magnus-seo/references/source-index.md +36 -0
- package/skills/optbrew/modules/magnus-seo/references/structured-data.md +56 -0
- package/skills/optbrew/modules/magnus-seo/references/technical-seo.md +99 -0
- package/skills/optbrew/modules/magnus-seo/scripts/aeo_audit.py +158 -0
- package/skills/optbrew/modules/magnus-seo/scripts/build_prompt_matrix.py +52 -0
- package/skills/optbrew/modules/magnus-seo/templates/aeo-implementation-plan.md +53 -0
- package/skills/optbrew/modules/magnus-seo/templates/citation-observation-log.md +16 -0
- package/skills/optbrew/modules/magnus-seo/templates/llms.txt.template +15 -0
- package/skills/optbrew/modules/magnus-seo/templates/question-cluster.md +27 -0
- package/skills/optbrew/modules/magnus-seo/templates/robots-ai-crawlers.txt +23 -0
- package/skills/optbrew/modules/marketing-search/skills/ai-seo/GUIDE.md +483 -0
- package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/agent-readiness.md +57 -0
- package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/citations-vs-recommendations.md +85 -0
- package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/content-patterns.md +287 -0
- package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/content-types.md +71 -0
- package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/format-volatility.md +98 -0
- package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/okf.md +104 -0
- package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/platform-ranking-factors.md +154 -0
- package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/youtube-ai-citations.md +60 -0
- package/skills/optbrew/modules/marketing-search/skills/analytics/GUIDE.md +303 -0
- package/skills/optbrew/modules/marketing-search/skills/analytics/references/event-library.md +260 -0
- package/skills/optbrew/modules/marketing-search/skills/analytics/references/ga4-implementation.md +300 -0
- package/skills/optbrew/modules/marketing-search/skills/analytics/references/gtm-implementation.md +390 -0
- package/skills/optbrew/modules/marketing-search/skills/content-strategy/GUIDE.md +432 -0
- package/skills/optbrew/modules/marketing-search/skills/content-strategy/references/content-distribution.md +83 -0
- package/skills/optbrew/modules/marketing-search/skills/content-strategy/references/headless-cms.md +194 -0
- package/skills/optbrew/modules/marketing-search/skills/programmatic-seo/GUIDE.md +231 -0
- package/skills/optbrew/modules/marketing-search/skills/programmatic-seo/references/playbooks.md +308 -0
- package/skills/optbrew/modules/marketing-search/skills/schema/GUIDE.md +172 -0
- package/skills/optbrew/modules/marketing-search/skills/schema/references/schema-examples.md +398 -0
- package/skills/optbrew/modules/marketing-search/skills/seo-audit/GUIDE.md +492 -0
- package/skills/optbrew/modules/marketing-search/skills/seo-audit/references/ai-writing-detection.md +200 -0
- package/skills/optbrew/modules/marketing-search/skills/seo-audit/references/international-seo.md +230 -0
- package/skills/optbrew/modules/marketing-search/skills/site-architecture/GUIDE.md +350 -0
- package/skills/optbrew/modules/marketing-search/skills/site-architecture/references/mermaid-templates.md +216 -0
- package/skills/optbrew/modules/marketing-search/skills/site-architecture/references/navigation-patterns.md +305 -0
- package/skills/optbrew/modules/marketing-search/skills/site-architecture/references/site-type-templates.md +293 -0
- package/skills/optbrew/modules/mblode-seo/GUIDE.md +74 -0
- package/skills/optbrew/modules/mblode-seo/references/answer-engines.md +58 -0
- package/skills/optbrew/modules/mblode-seo/references/audit.md +78 -0
- package/skills/optbrew/modules/mblode-seo/references/brief-template.md +47 -0
- package/skills/optbrew/modules/mblode-seo/references/monitoring.md +56 -0
- package/skills/optbrew/modules/mblode-seo/references/nextjs-implementation.md +65 -0
- package/skills/optbrew/modules/mblode-seo/references/research-protocol.md +37 -0
- package/skills/optbrew/modules/mblode-seo/references/sources.md +47 -0
- package/skills/optbrew/modules/mblode-seo/references/validation-evidence.md +21 -0
- package/skills/optbrew/modules/naver-searchadvisor/GUIDE.md +75 -0
- package/skills/optbrew/modules/naver-searchadvisor/NOTICE.md +59 -0
- package/skills/optbrew/modules/naver-searchadvisor/references/INDEX.md +97 -0
- package/skills/optbrew/modules/naver-searchadvisor/scripts/audit.mjs +742 -0
- package/skills/optbrew/modules/naver-searchadvisor/scripts/robots.mjs +77 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-ai-search-share-of-voice/GUIDE.md +94 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-api/GUIDE.md +186 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-api/references/api-surface-map.md +207 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-api/references/auth-and-keys.md +182 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-api/references/integration-patterns.md +283 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-api/references/rate-limits-and-credits.md +235 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-competitor-gap-analysis/GUIDE.md +117 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-content-audit/GUIDE.md +155 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-content-audit/references/cite.md +84 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-content-audit/references/core-eeat.md +147 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-content-audit/templates/verdict.md +63 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-firecrawl/GUIDE.md +141 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-firecrawl/references/preflight.md +73 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-geo/GUIDE.md +159 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-google/GUIDE.md +393 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-google/assets/templates/cwv-audit-report.md +48 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-google/assets/templates/gsc-performance-report.md +44 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-google/assets/templates/indexation-status-report.md +43 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/auth-setup.md +160 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/cross-skill-integration.md +187 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/ga4-data-api.md +184 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/indexing-api.md +109 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/keyword-planner-api.md +66 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/nlp-api.md +55 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/pagespeed-crux-api.md +204 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/rate-limits-quotas.md +75 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/search-console-api.md +156 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/supplementary-apis.md +99 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/youtube-api.md +49 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-keyword-niche/GUIDE.md +174 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-page/GUIDE.md +174 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-plan/GUIDE.md +220 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-schema/GUIDE.md +135 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-schema/references/google-rich-results.md +89 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-schema/templates/article.json +23 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-schema/templates/breadcrumb-list.json +18 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-schema/templates/faq-page.json +22 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-schema/templates/local-business.json +32 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-schema/templates/product.json +25 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-sitemap/GUIDE.md +128 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-technical-audit/GUIDE.md +235 -0
- package/skills/optbrew/modules/seranking-seo/skills/seo-technical-audit/references/severity-mapping.md +133 -0
- package/skills/optbrew/references/ai-crawlers.json +21 -0
- package/skills/optbrew/references/ai-crawlers.md +24 -0
- package/skills/optbrew/references/api.md +45 -0
- package/skills/optbrew/references/check-registry.json +28 -0
- package/skills/optbrew/references/evidence.md +9 -0
- package/skills/optbrew/references/intake.md +9 -0
- package/skills/optbrew/references/measurement.md +29 -0
- package/skills/optbrew/references/policies.md +7 -0
- package/skills/optbrew/references/profiles.json +13 -0
- package/skills/optbrew/references/remediations.json +12 -0
- package/skills/optbrew/references/report.md +29 -0
- package/skills/optbrew/references/routing.md +15 -0
- package/skills/optbrew/references/schemas/contract.schema.json +51 -0
- package/skills/optbrew/references/scoring.md +62 -0
- package/skills/optbrew/scripts/adapters/anthropic.mjs +116 -0
- package/skills/optbrew/scripts/adapters/imports.mjs +81 -0
- package/skills/optbrew/scripts/audit.mjs +124 -0
- package/skills/optbrew/scripts/cli.mjs +41 -0
- package/skills/optbrew/scripts/core/bootstrap.mjs +31 -0
- package/skills/optbrew/scripts/core/bundle.mjs +73 -0
- package/skills/optbrew/scripts/core/capabilities.mjs +19 -0
- package/skills/optbrew/scripts/core/collector.mjs +250 -0
- package/skills/optbrew/scripts/core/compare.mjs +47 -0
- package/skills/optbrew/scripts/core/contracts.mjs +144 -0
- package/skills/optbrew/scripts/core/cost-ledger.mjs +95 -0
- package/skills/optbrew/scripts/core/crawlers.mjs +11 -0
- package/skills/optbrew/scripts/core/derive.mjs +168 -0
- package/skills/optbrew/scripts/core/facts.mjs +189 -0
- package/skills/optbrew/scripts/core/findings.mjs +54 -0
- package/skills/optbrew/scripts/core/html.mjs +53 -0
- package/skills/optbrew/scripts/core/metrics.mjs +97 -0
- package/skills/optbrew/scripts/core/protocol.mjs +125 -0
- package/skills/optbrew/scripts/core/report.mjs +742 -0
- package/skills/optbrew/scripts/core/scope.mjs +52 -0
- package/skills/optbrew/scripts/core/score.mjs +71 -0
- package/skills/optbrew/scripts/core/weights.mjs +139 -0
- package/skills/optbrew/source-lock.json +2686 -0
- package/source-lock.json +2686 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
ISC License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Firecrawl
|
|
4
|
+
|
|
5
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
+
purpose with or without fee is hereby granted, provided that the above
|
|
7
|
+
copyright notice and this permission notice appear in all copies.
|
|
8
|
+
|
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
10
|
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
11
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
12
|
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
13
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
14
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
15
|
+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Magnus Hedemark
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Corey Haines
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Matthew Blode
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 JaceProgramming
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
NOTE: This MIT license covers the original work in this repository only —
|
|
26
|
+
SKILL.md, scripts/, tools/, README.md, NOTICE.md, and references/INDEX.md.
|
|
27
|
+
|
|
28
|
+
The documents under references/guide/ are the copyrighted property of
|
|
29
|
+
NAVER Corporation and are NOT covered by this license. See NOTICE.md.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 SE Ranking
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Firecrawl SEO Audit
|
|
2
|
+
|
|
3
|
+
Use this to turn a website into a specific, prioritized SEO audit.
|
|
4
|
+
|
|
5
|
+
## Onboarding Interview
|
|
6
|
+
|
|
7
|
+
Infer the site, target keywords, and output format from context. If the site is clear, proceed immediately.
|
|
8
|
+
|
|
9
|
+
Ask at most 1-3 concise questions only if blocked, such as the site URL, required target keywords, or whether a specific page/competitor set matters.
|
|
10
|
+
|
|
11
|
+
## Firecrawl Collection Plan
|
|
12
|
+
|
|
13
|
+
1. Map the site with Firecrawl to understand URL structure.
|
|
14
|
+
2. Scrape key pages: homepage, product/service pages, pricing, docs, blog, about, and high-value landing pages.
|
|
15
|
+
3. Extract title tags, meta descriptions, headings, internal links, content structure, canonical signals when visible, and image alt text when available.
|
|
16
|
+
4. Search target keywords when provided; scrape top ranking pages for comparison.
|
|
17
|
+
|
|
18
|
+
## Parallel Work
|
|
19
|
+
|
|
20
|
+
If appropriate, use sub-agents or equivalent parallel task runners:
|
|
21
|
+
|
|
22
|
+
- Site Structure: URL patterns, sitemap health, internal linking, orphan/broken pages.
|
|
23
|
+
- On-Page SEO: titles, meta descriptions, H1/H2 hierarchy, content quality.
|
|
24
|
+
- Keyword And SERP: target keywords, ranking pages, competitor page patterns.
|
|
25
|
+
- Technical Issues: broken links, duplicate content signals, missing metadata.
|
|
26
|
+
|
|
27
|
+
## Final Deliverable
|
|
28
|
+
|
|
29
|
+
```markdown
|
|
30
|
+
# SEO Audit: [Site]
|
|
31
|
+
|
|
32
|
+
## Executive Summary
|
|
33
|
+
[Top risks and opportunities]
|
|
34
|
+
|
|
35
|
+
## Site Structure
|
|
36
|
+
[Pages found, URL quality, sitemap/internal-link notes]
|
|
37
|
+
|
|
38
|
+
## On-Page SEO
|
|
39
|
+
[Per-page title, meta, headings, content, linking notes]
|
|
40
|
+
|
|
41
|
+
## Keyword Opportunities
|
|
42
|
+
[Target keywords, missing pages, content gaps]
|
|
43
|
+
|
|
44
|
+
## Competitor/SERP Comparison
|
|
45
|
+
[Who outranks the site and why]
|
|
46
|
+
|
|
47
|
+
## Prioritized Recommendations
|
|
48
|
+
[High/medium/low impact fixes with exact changes]
|
|
49
|
+
|
|
50
|
+
## Sources
|
|
51
|
+
[URLs scraped and what was checked]
|
|
52
|
+
|
|
53
|
+
## Rerun Inputs
|
|
54
|
+
workflow: firecrawl-seo-audit
|
|
55
|
+
site: [url]
|
|
56
|
+
keywords: [list]
|
|
57
|
+
output: [markdown/json]
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Quality Bar
|
|
61
|
+
|
|
62
|
+
- Make recommendations specific, not generic.
|
|
63
|
+
- Show the page or source behind each issue.
|
|
64
|
+
- Distinguish technical findings from content strategy guesses.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# SEO
|
|
2
|
+
|
|
3
|
+
A full-spectrum search visibility skill. It treats traditional SEO, Answer Engine Optimization (AEO), and Generative Engine Optimization (GEO) as overlapping work across different search and answer surfaces, not as separate collections of ranking hacks.
|
|
4
|
+
|
|
5
|
+
## Operating model
|
|
6
|
+
|
|
7
|
+
1. **Scope the surface and outcome.** Name the provider, product or search surface, audience, entity, questions, business outcome, and exclusions. Define whether success means crawl access, index eligibility, retrieval, mention, citation, citation correctness, share of voice, referral, or conversion.
|
|
8
|
+
2. **Inspect and research.** Audit the public/rendered page and technical delivery. Read current first-party provider guidance and authoritative subject sources. Treat practitioner claims and vendor studies as hypotheses unless methods and scope support more.
|
|
9
|
+
3. **Map intent to canonical content.** Use topics and question clusters, but avoid manufacturing near-duplicate pages. Assign one canonical answer location, entity ownership, evidence, freshness owner, and internal links.
|
|
10
|
+
4. **Improve people-first content and structure.** Put a concise answer near the relevant heading, then supporting evidence, qualifications, and useful detail. Preserve natural prose, distinct point of view, accessibility, and human value.
|
|
11
|
+
5. **Implement only supported controls.** Fix crawlability, indexability, metadata, internal links, page experience, textual content, structured-data parity, sitemaps, freshness, and provider-specific crawler or preview controls. Optional files such as `llms.txt` or Markdown representations are provider-scoped proposals, not universal requirements.
|
|
12
|
+
6. **Measure at the correct boundary.** Freeze prompts and versions, capture exact answers and citations, score citation correctness, and use provider-native reports where available. Separate implementation evidence from observed visibility and causal claims.
|
|
13
|
+
7. **Verify and learn.** Recheck the rendered/public boundary, validate structured data, inspect search-console or provider evidence, and run bounded one-variable experiments. Do not declare success from HTTP 200, parseable JSON-LD, a single answer, or a third-party score.
|
|
14
|
+
|
|
15
|
+
## Terminology and boundaries
|
|
16
|
+
|
|
17
|
+
- **SEO** is the umbrella: improving a site's eligibility, discoverability, interpretation, and useful visibility in search systems.
|
|
18
|
+
- **AEO** is a stakeholder label for answer-oriented work, including direct answers, snippets, knowledge surfaces, and answer-engine inclusion.
|
|
19
|
+
- **GEO** is a stakeholder label for visibility in generated answers, especially being selected, cited, or factually absorbed into a synthesized response. The term originated in the 2024 KDD paper by Aggarwal et al.; it does not establish a universal algorithm.
|
|
20
|
+
- **LLMO** and **AI-search optimization** are overlapping labels. Preserve the target organization's term, then define the measurable outcome and provider scope.
|
|
21
|
+
- These terms do not guarantee ranking, inclusion, citation, traffic, recommendation, or conversion. A mention is not a citation, a citation is not proof of correctness, and a citation is not a click.
|
|
22
|
+
|
|
23
|
+
## Evidence rules
|
|
24
|
+
|
|
25
|
+
Use these labels in plans and reports:
|
|
26
|
+
|
|
27
|
+
- **Primary documentation:** provider, standards body, schema vocabulary, or tool owner describes its own behavior.
|
|
28
|
+
- **Observed:** recorded crawl, rendered page, provider dashboard, exact answer, URL, or reproducible local result.
|
|
29
|
+
- **Independent study:** disclosed method and dataset, with generalization limits stated.
|
|
30
|
+
- **Vendor-reported:** useful for hypothesis generation, not a universal rule.
|
|
31
|
+
- **Inference:** reasoned interpretation beyond direct observation.
|
|
32
|
+
- **Unresolved:** provider-dependent, stale, contradicted, or not verified.
|
|
33
|
+
|
|
34
|
+
Reject claims such as “FAQ schema guarantees citations,” “short paragraphs are required by all engines,” “`llms.txt` is a search standard,” or “allowing a crawler guarantees inclusion.” Record source URL, access date, provider scope, exact support, what it does not prove, confidence, and refresh trigger for every material claim.
|
|
35
|
+
|
|
36
|
+
## Reference routing
|
|
37
|
+
|
|
38
|
+
| Need | Read |
|
|
39
|
+
|---|---|
|
|
40
|
+
| Crawlability, indexability, robots, sitemaps, performance, canonicals, mobile, HTTPS | `references/technical-seo.md` |
|
|
41
|
+
| Titles, descriptions, headings, content quality, links, images | `references/onpage-seo.md` |
|
|
42
|
+
| Schema.org, JSON-LD, rich-result eligibility, visible parity | `references/schema-markup.md` and `references/structured-data.md` |
|
|
43
|
+
| Topics, question clusters, entities, answer blocks, evidence architecture | `references/content-and-entity-architecture.md` |
|
|
44
|
+
| Full answer/generative implementation sequence and completion gate | `references/implementation-playbook.md` |
|
|
45
|
+
| Provider guidance, crawler identities, robots and preview controls | `references/platform-guidance.md` and `references/discovery-and-freshness.md` |
|
|
46
|
+
| `llms.txt`, Markdown delivery, content negotiation, provider support | `references/agent-readable-content.md` |
|
|
47
|
+
| Outcome definitions, confidence, and rejected claims | `references/evidence-boundaries.md` |
|
|
48
|
+
| Prompt sets, citation logs, metrics, experiments, and confounders | `references/measurement-and-experimentation.md` |
|
|
49
|
+
| Ghost metadata and injection | `references/ghost-metadata.md` |
|
|
50
|
+
| Content strategy, topic clusters, keywords, gaps, SERP features | `references/content-strategy-seo.md` |
|
|
51
|
+
| Source URLs, access dates, authority tiers, and refresh notes | `references/source-index.md` |
|
|
52
|
+
|
|
53
|
+
## Scripts and templates
|
|
54
|
+
|
|
55
|
+
Run from the skill directory:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
python3 scripts/aeo_audit.py <local-page.html> --json
|
|
59
|
+
python3 scripts/build_prompt_matrix.py <topics.json> --output prompt-matrix.json
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The upstream script tests are source-maintenance material and are not part of this distributed bundle. The scripts are read-only and use the Python standard library. The direct URL option is disabled in optbrew. Use `node skills/optbrew/scripts/audit.mjs --context <run-context.json> --modules magnus-seo --output-dir <run-dir>` to inspect collector-preserved HTML. The parser can also read that HTML from stdin with `--stdin --source-url <collected-url>`. It does not execute JavaScript, call an LLM, publish, submit URLs, or change crawler policy. Templates cover implementation plans, question clusters, citation observations, optional `llms.txt`, and crawler-policy decisions.
|
|
63
|
+
|
|
64
|
+
## Audit output
|
|
65
|
+
|
|
66
|
+
Use `assets/audit-report-template.md` and distinguish:
|
|
67
|
+
|
|
68
|
+
- **Observed findings:** what the inspected page, response, dashboard, or answer actually shows.
|
|
69
|
+
- **Recommended changes:** proposed actions with owner, risk, expected mechanism, and verification.
|
|
70
|
+
- **Provider scope:** which engine or search surface the evidence applies to.
|
|
71
|
+
- **Status:** implemented, verified, observed, inferred, or unresolved.
|
|
72
|
+
|
|
73
|
+
## When not to use
|
|
74
|
+
|
|
75
|
+
Do not use this skill alone for only mechanical copy-editing, ordinary article writing, CMS administration, or a generic request to “rank better” without a defined target, evidence boundary, or measurable outcome. Route those to the relevant writing, copy-editing, CMS, or product skill.
|
|
76
|
+
|
|
77
|
+
## Portability
|
|
78
|
+
|
|
79
|
+
Use the host agent's normal mechanisms to load references, templates, and scripts. Do not assume a particular profile system, orchestrator, memory service, CMS, search console, or provider API.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# SEO
|
|
2
|
+
|
|
3
|
+
One umbrella skill for technical SEO, on-page optimization, Answer Engine Optimization (AEO), and Generative Engine Optimization (GEO). It helps an agent improve search discoverability and AI-answer visibility without confusing provider-specific evidence with universal ranking rules.
|
|
4
|
+
|
|
5
|
+
## Why Install This Skill
|
|
6
|
+
|
|
7
|
+
Search visibility now spans ranked results, direct answers, AI Overviews, conversational search, and generated answers. This skill consolidates the former SEO audit and AEO workflows so an agent can inspect the technical foundation, improve human-useful content, implement supported controls, and measure citations and referrals with explicit evidence boundaries.
|
|
8
|
+
|
|
9
|
+
## What You Get
|
|
10
|
+
|
|
11
|
+
| Path | Purpose |
|
|
12
|
+
|---|---|
|
|
13
|
+
| `GUIDE.md` | Umbrella routing, terminology, workflow, evidence rules, and completion boundary |
|
|
14
|
+
| `references/` | Technical SEO, on-page SEO, schema, content strategy, AEO/GEO implementation, provider guidance, agent-readable content, and measurement |
|
|
15
|
+
| `templates/` | Implementation plan, question cluster, citation observation, optional `llms.txt`, and crawler-policy templates |
|
|
16
|
+
| `scripts/aeo_audit.py` | Read-only structural audit of local HTML or a URL |
|
|
17
|
+
| `scripts/build_prompt_matrix.py` | Deterministic prompt-set generation |
|
|
18
|
+
| `scripts/test_aeo_scripts.py` | Offline regression tests for the scripts |
|
|
19
|
+
| `evals/evals.json` | Output-quality evaluation cases |
|
|
20
|
+
|
|
21
|
+
## Quick Start
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
python3 scripts/aeo_audit.py https://example.com/article --json
|
|
25
|
+
python3 scripts/build_prompt_matrix.py topics.json --output prompt-matrix.json
|
|
26
|
+
python3 -m pytest scripts/test_aeo_scripts.py
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The scripts are read-only and use Python's standard library. They do not call an LLM, publish, submit URLs, or modify robots policy.
|
|
30
|
+
|
|
31
|
+
## Triggers
|
|
32
|
+
|
|
33
|
+
- Audit or improve technical SEO, on-page SEO, schema, content discoverability, or search visibility
|
|
34
|
+
- Implement or assess AEO, GEO, LLMO, AI-search optimization, or generative search visibility
|
|
35
|
+
- Make content easier for people and answer systems to understand, retrieve, cite, and verify
|
|
36
|
+
- Build question clusters, answer-first content, evidence blocks, entity architecture, or canonical topic maps
|
|
37
|
+
- Assess AI crawler controls, preview controls, sitemaps, freshness, `llms.txt`, Markdown delivery, or content negotiation
|
|
38
|
+
- Design frozen prompt sets, citation logs, share-of-voice checks, or bounded AI-search experiments
|
|
39
|
+
- Complete Ghost metadata, social cards, or schema injection in support of search visibility
|
|
40
|
+
|
|
41
|
+
## Requirements
|
|
42
|
+
|
|
43
|
+
- Python 3.9+ for bundled scripts
|
|
44
|
+
- Network access when auditing a URL; local HTML works offline
|
|
45
|
+
- Provider dashboards, CMS credentials, and Search Console access are optional and belong to the relevant platform workflow
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# SEO Audit Report Template
|
|
2
|
+
|
|
3
|
+
Scaffold for new SEO audit projects. Copy this into your pyramid root.
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# SEO Audit: [Site/Page URL]
|
|
7
|
+
|
|
8
|
+
**Audit date:** YYYY-MM-DD
|
|
9
|
+
**Auditor:** seo-specialist profile
|
|
10
|
+
**Scope:** [Full site / Single page / Content strategy]
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## L1 Summary
|
|
15
|
+
|
|
16
|
+
### Overall Health: [Good / Fair / Poor]
|
|
17
|
+
### Score: [N/100]
|
|
18
|
+
|
|
19
|
+
### Priority Findings
|
|
20
|
+
1. [Critical] → [Action]
|
|
21
|
+
2. [Critical] → [Action]
|
|
22
|
+
|
|
23
|
+
### Moderate Findings
|
|
24
|
+
1. [Important] → [Action]
|
|
25
|
+
|
|
26
|
+
### Quick Wins
|
|
27
|
+
1. [Low effort, high impact] → [Action]
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## L2 Analysis Files
|
|
32
|
+
|
|
33
|
+
### Technical SEO
|
|
34
|
+
- Crawlability and indexability
|
|
35
|
+
- Page speed / Core Web Vitals
|
|
36
|
+
- Mobile-friendliness
|
|
37
|
+
- HTTPS and security
|
|
38
|
+
- Canonical URLs and hreflang
|
|
39
|
+
- Sitemap and robots.txt
|
|
40
|
+
|
|
41
|
+
### On-Page SEO
|
|
42
|
+
- Title tags and meta descriptions
|
|
43
|
+
- Heading structure
|
|
44
|
+
- Keyword usage
|
|
45
|
+
- Content quality and length
|
|
46
|
+
- Internal linking
|
|
47
|
+
- Image optimization
|
|
48
|
+
- URL structure
|
|
49
|
+
|
|
50
|
+
### Schema Validation
|
|
51
|
+
- JSON-LD structure
|
|
52
|
+
- Schema.org types used
|
|
53
|
+
- Rich result eligibility
|
|
54
|
+
- Validation results
|
|
55
|
+
|
|
56
|
+
### Content Gap Analysis
|
|
57
|
+
- Target keywords
|
|
58
|
+
- Current rankings
|
|
59
|
+
- Competitor analysis
|
|
60
|
+
- Gap identification
|
|
61
|
+
- Priority recommendations
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## L3 Dossiers
|
|
66
|
+
|
|
67
|
+
### Raw Data
|
|
68
|
+
- Full crawl results
|
|
69
|
+
- Schema validation output
|
|
70
|
+
- Keyword research data
|
|
71
|
+
- Competitor SERP data
|
|
72
|
+
|
|
73
|
+
### Methodology Notes
|
|
74
|
+
- Tools used
|
|
75
|
+
- Assumptions and limitations
|
|
76
|
+
- Data collection dates
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Search, Answer, and Generative Engine Optimization
|
|
2
|
+
|
|
3
|
+
## Working definition
|
|
4
|
+
|
|
5
|
+
SEO is the umbrella discipline for improving a site's eligibility, discovery, interpretation, and useful visibility in search systems. AEO and GEO are overlapping labels for work on answer-producing surfaces. Use the stakeholder's label, but define the actual provider, mechanism, and measurable outcome.
|
|
6
|
+
|
|
7
|
+
- **AEO** commonly emphasizes direct answers, featured snippets, knowledge surfaces, and answer-engine inclusion.
|
|
8
|
+
- **GEO** commonly emphasizes generated answers, source selection, citation, and whether source evidence is reflected in the answer. The term was formalized as Generative Engine Optimization in Aggarwal et al.'s KDD 2024 paper.
|
|
9
|
+
- **LLMO** and **AI-search optimization** are overlapping industry labels, not standardized disciplines.
|
|
10
|
+
|
|
11
|
+
None of these labels identifies a universal ranking algorithm or guarantees inclusion, citation, recommendation, traffic, or conversion.
|
|
12
|
+
|
|
13
|
+
## Generative search model
|
|
14
|
+
|
|
15
|
+
Many current systems combine search or retrieval with generation, but their indexes, ranking systems, crawlers, models, interfaces, and policies differ. A useful working decomposition is:
|
|
16
|
+
|
|
17
|
+
1. query interpretation or fan-out;
|
|
18
|
+
2. candidate retrieval;
|
|
19
|
+
3. source selection or reranking;
|
|
20
|
+
4. answer synthesis;
|
|
21
|
+
5. citation, link, or attribution rendering;
|
|
22
|
+
6. user click, action, or conversion.
|
|
23
|
+
|
|
24
|
+
This model helps locate evidence. It is not a provider specification. A publisher can improve the quality and accessibility of its content and observe outcomes, but cannot directly control a provider's retrieval or generation decision.
|
|
25
|
+
|
|
26
|
+
## What the strongest evidence supports
|
|
27
|
+
|
|
28
|
+
### Academic evidence
|
|
29
|
+
|
|
30
|
+
Aggarwal et al. (KDD 2024, arXiv:2311.09735) introduced GEO and evaluated content transformations in a controlled benchmark of generative engines. The paper reports that some transformations, including adding citations, quotations, and statistics, improved its benchmark visibility metrics, while effects varied by domain and method. Its metrics account for the amount and position of answer text associated with a citation, rather than treating every citation as an equivalent blue-link impression. This is evidence for testable hypotheses in that benchmark, not a cross-provider ranking recipe.
|
|
31
|
+
|
|
32
|
+
Liu et al. (2023, arXiv:2304.09848) found substantial citation-support and sentence-support failures in generative search answers. Citation presence therefore cannot substitute for checking whether the cited source supports the adjacent claim.
|
|
33
|
+
|
|
34
|
+
Later papers and surveys may provide useful hypotheses, but check version, venue, dataset, engine, prompt set, and reproducibility before treating a reported lift as portable.
|
|
35
|
+
|
|
36
|
+
### First-party guidance
|
|
37
|
+
|
|
38
|
+
Google says its AI Overviews and AI Mode use core Search systems and that ordinary SEO fundamentals remain relevant. It states that there are no additional technical requirements or special AI markup, and that Google Search does not use `llms.txt` for visibility. It recommends useful people-first content, clear technical structure, textual content, relevant media, internal links, accurate structured data, and truthful business or product data. Google also warns against scaled, inauthentic, or query-variant content created to manipulate AI responses.
|
|
39
|
+
|
|
40
|
+
Bing's AI Performance report exposes citations, cited pages, grounding queries, and trends across supported Microsoft AI experiences. Bing explicitly limits those metrics: they show citation activity, not ranking, authority, page importance, or placement.
|
|
41
|
+
|
|
42
|
+
OpenAI documents separate crawler controls for OAI-SearchBot, GPTBot, and ChatGPT-User. Allowing a search crawler can make a page eligible for consideration, but OpenAI does not guarantee placement. Anthropic and Perplexity publish their own crawler and robots guidance. Never transfer one provider's crawler semantics to another.
|
|
43
|
+
|
|
44
|
+
## Implementation principles
|
|
45
|
+
|
|
46
|
+
- Answer the user's question near the relevant heading, then provide evidence, scope, caveats, and useful detail. This is a usability and extraction hypothesis, not a universal formatting rule.
|
|
47
|
+
- Use clear headings, descriptive titles, coherent entity names, accessible text, links, tables, and lists where they help people. Do not reduce prose to fragments or duplicate pages for every query variant.
|
|
48
|
+
- Support material claims with primary sources, dates, methods, first-hand experience, or clearly labeled analysis. Preserve uncertainty.
|
|
49
|
+
- Keep visible content, metadata, JSON-LD, feeds, Markdown representations, and summaries semantically consistent. Structured data describes visible facts; it does not create them.
|
|
50
|
+
- Treat robots directives as access and preview policy controls. Separate search access, training use, user-triggered fetching, and commercial permissions where the provider supports those distinctions.
|
|
51
|
+
- Use sitemaps, truthful `lastmod`, IndexNow, and recrawl requests as discovery or freshness mechanisms where supported. None guarantees retrieval or citation.
|
|
52
|
+
- Treat `llms.txt` as an optional community proposal. It may be useful to a consumer that chooses to read it, but it is not a W3C, IETF, or universal search requirement, and Google says it ignores it for Search visibility.
|
|
53
|
+
|
|
54
|
+
## Outcome taxonomy
|
|
55
|
+
|
|
56
|
+
Track these separately:
|
|
57
|
+
|
|
58
|
+
| Outcome | Meaning | Evidence |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| Crawl access | A named crawler fetched a resource | Logs, headers, provider documentation |
|
|
61
|
+
| Index eligibility | A resource can enter a provider index | Provider diagnostics; a 200 is insufficient |
|
|
62
|
+
| Retrieval | A resource was selected for a query or grounding step | Provider-native data or reproducible observation |
|
|
63
|
+
| Mention | The entity appears in generated text | Exact answer snapshot |
|
|
64
|
+
| Citation | The answer links or names the source | Exact answer and URL |
|
|
65
|
+
| Citation correctness | The source supports the adjacent claim | Source-to-claim comparison |
|
|
66
|
+
| Share of voice | Visibility relative to a defined comparator set | Frozen prompts and scoring rules |
|
|
67
|
+
| Referral | A user visits after an answer interaction | Analytics with attribution limits |
|
|
68
|
+
| Conversion | A defined downstream action occurs | Instrumented funnel and causal design |
|
|
69
|
+
|
|
70
|
+
## Measurement protocol
|
|
71
|
+
|
|
72
|
+
Freeze a prompt matrix with stable IDs, exact text, intent, target entity, expected source boundary, and version. Include definition, comparison, procedure, troubleshooting, current-status, disambiguation, and negative-control prompts.
|
|
73
|
+
|
|
74
|
+
For each observation preserve the date, provider, surface, model/version if known, account/location state, prompt ID, exact answer, cited URLs, mention and citation status, relevance, support, completeness, misleading claims, and provider changes. Normalize URLs for analysis without discarding originals.
|
|
75
|
+
|
|
76
|
+
Define a rubric before looking at results. A practical record can score target mention (0/1), target citation (0/1), citation relevance (0-2), citation support (0-2), answer completeness (0-2), and harmful or misleading claims (0/1). Keep human scoring, automated extraction, and provider-native dashboards distinct.
|
|
77
|
+
|
|
78
|
+
For experiments record: `hypothesis -> change -> expected mechanism -> prompt set -> window -> metric -> result -> confounders -> decision`. A before/after change supports an observation under stated conditions, not causal attribution, unless the design supports it. Repeated model outputs are not automatically independent observations.
|
|
79
|
+
|
|
80
|
+
## Claims to reject or narrow
|
|
81
|
+
|
|
82
|
+
Do not publish or encode as rules:
|
|
83
|
+
|
|
84
|
+
- fixed citation or conversion multipliers from an opaque vendor study;
|
|
85
|
+
- “FAQPage guarantees AI citations” or any universal schema multiplier;
|
|
86
|
+
- “short paragraphs,” exact-match questions, keyword variants, or chunking are required by all engines;
|
|
87
|
+
- allowing every AI crawler guarantees inclusion or citation;
|
|
88
|
+
- `llms.txt` is a universal standard or a Google ranking signal;
|
|
89
|
+
- a citation count proves authority, ranking, correctness, traffic, or revenue;
|
|
90
|
+
- a passing structural audit proves retrieval or citation.
|
|
91
|
+
|
|
92
|
+
Record authority tier, provider scope, access date, exact supporting observation, non-proof, confidence, and refresh trigger for every material claim.
|
|
93
|
+
|
|
94
|
+
## Sources
|
|
95
|
+
|
|
96
|
+
- Google, [Optimizing your website for generative AI features on Google Search](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide), accessed 2026-08-26.
|
|
97
|
+
- Google, [AI features and your website](https://developers.google.com/search/docs/appearance/ai-features), accessed 2026-08-26.
|
|
98
|
+
- Microsoft Bing, [Introducing AI Performance in Bing Webmaster Tools](https://blogs.bing.com/webmaster/February-2026/Introducing-AI-Performance-in-Bing-Webmaster-Tools-Public-Preview), accessed 2026-08-26.
|
|
99
|
+
- OpenAI, [Overview of OpenAI Crawlers](https://developers.openai.com/api/docs/bots), accessed 2026-08-26.
|
|
100
|
+
- OpenAI, [ChatGPT search](https://help.openai.com/en/articles/9237897), accessed 2026-08-26.
|
|
101
|
+
- Perplexity, [Perplexity Crawlers](https://docs.perplexity.ai/docs/resources/perplexity-crawlers), accessed 2026-08-26.
|
|
102
|
+
- Anthropic, [Does Anthropic crawl data from the web?](https://support.anthropic.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler), accessed 2026-08-26.
|
|
103
|
+
- Aggarwal et al., [GEO: Generative Engine Optimization](https://arxiv.org/html/2311.09735v3), KDD 2024, accessed 2026-08-26.
|
|
104
|
+
- Liu et al., [Evaluating Verifiability in Generative Search Engines](https://arxiv.org/abs/2304.09848), 2023, accessed 2026-08-26.
|
|
105
|
+
- [llms.txt proposal](https://llmstxt.org/), accessed 2026-08-26.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Agent-readable content
|
|
2
|
+
|
|
3
|
+
## `llms.txt`
|
|
4
|
+
|
|
5
|
+
`llms.txt` is a community proposal for a concise Markdown map of a site: identity, scope, and links to useful pages or Markdown documents. It is not a universal standard and is not required for Google Search or Google AI features; Google says it ignores the file for those systems. Use it only when the site wants to offer an optional curated context surface to consumers that choose to read it.
|
|
6
|
+
|
|
7
|
+
Keep it factual, short, maintained, and consistent with public pages. Do not put secrets, private URLs, unsupported claims, or a duplicate site map that nobody owns. A link in `llms.txt` does not bypass robots, authentication, indexing, or provider policy.
|
|
8
|
+
|
|
9
|
+
## Markdown delivery
|
|
10
|
+
|
|
11
|
+
A site may offer a Markdown representation or content negotiation, but this is an implementation choice, not a universal AEO requirement. Keep HTML and Markdown semantically equivalent, preserve links and dates, and test caching, canonical behavior, content type, and access controls. Do not assume an AI client sends `Accept: text/markdown` or that a provider will prefer it.
|
|
12
|
+
|
|
13
|
+
## Provider selection
|
|
14
|
+
|
|
15
|
+
Before implementing an agent-readable surface, answer:
|
|
16
|
+
|
|
17
|
+
- Which consumer is expected to use it?
|
|
18
|
+
- Is there current provider documentation or only a proposal?
|
|
19
|
+
- Who maintains parity with HTML?
|
|
20
|
+
- What content is intentionally excluded?
|
|
21
|
+
- How will stale links and claims be detected?
|
|
22
|
+
- What does success mean, and how will it be observed?
|
|
23
|
+
|
|
24
|
+
## Primary references
|
|
25
|
+
|
|
26
|
+
- [llms.txt proposal](https://llmstxt.org/)
|
|
27
|
+
- [llms.txt repository](https://github.com/AnswerDotAI/llms-txt)
|
|
28
|
+
- [Google AI optimization guide](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide)
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# AEO content and entity architecture
|
|
2
|
+
|
|
3
|
+
## Page model
|
|
4
|
+
|
|
5
|
+
Treat a page as an answer asset with explicit contracts:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
entity/topic → audience → question cluster → canonical page → answer blocks
|
|
9
|
+
→ evidence → qualifiers → related links → owner → review trigger
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
A page should have one primary subject. A cluster may contain related questions, but do not create a page for every phrasing variant. Split when the audience, answer, evidence, freshness, or decision differs materially.
|
|
13
|
+
|
|
14
|
+
## Question cluster design
|
|
15
|
+
|
|
16
|
+
Collect questions from real user language, support tickets, sales calls, site search, forums, interviews, and observed answer prompts. Normalize them into intents:
|
|
17
|
+
|
|
18
|
+
- definition and disambiguation;
|
|
19
|
+
- “how does it work?” and procedure;
|
|
20
|
+
- comparison and alternatives;
|
|
21
|
+
- recommendation and fit;
|
|
22
|
+
- troubleshooting and failure recovery;
|
|
23
|
+
- current status, price, compatibility, policy, or availability.
|
|
24
|
+
|
|
25
|
+
For every question record:
|
|
26
|
+
|
|
27
|
+
- exact wording and normalized intent;
|
|
28
|
+
- named entities and aliases;
|
|
29
|
+
- expected answer type and confidence;
|
|
30
|
+
- canonical page/section;
|
|
31
|
+
- evidence and date boundary;
|
|
32
|
+
- caveat or non-answer condition;
|
|
33
|
+
- next useful internal link;
|
|
34
|
+
- owner and review trigger.
|
|
35
|
+
|
|
36
|
+
## Answer block pattern
|
|
37
|
+
|
|
38
|
+
```markdown
|
|
39
|
+
## [Reader's question]
|
|
40
|
+
|
|
41
|
+
[Direct answer in one or two sentences, including the scope or key qualification.]
|
|
42
|
+
|
|
43
|
+
[Evidence, mechanism, examples, trade-offs, and exceptions.]
|
|
44
|
+
|
|
45
|
+
[Primary source link at the claim it supports.]
|
|
46
|
+
|
|
47
|
+
[What this does not establish, if omission could mislead.]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The opening answer should stand alone when extracted, but it must not become falsely absolute. Put the entity, version, geography, date, and condition in the answer when they change its truth.
|
|
51
|
+
|
|
52
|
+
## Entity clarity
|
|
53
|
+
|
|
54
|
+
Use one canonical name consistently, then introduce legitimate aliases once. Disambiguate names that collide with other products, companies, people, places, or concepts. Link to authoritative identity pages where useful, but do not create `sameAs` links merely because a name looks similar.
|
|
55
|
+
|
|
56
|
+
Maintain a small entity record:
|
|
57
|
+
|
|
58
|
+
```text
|
|
59
|
+
canonical_name:
|
|
60
|
+
aliases:
|
|
61
|
+
entity_type:
|
|
62
|
+
identifier:
|
|
63
|
+
official_url:
|
|
64
|
+
related_entities:
|
|
65
|
+
not_this_entity:
|
|
66
|
+
last_verified:
|
|
67
|
+
owner:
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Do not infer identity from a search snippet. Verify official URLs, identifiers, ownership, and version scope.
|
|
71
|
+
|
|
72
|
+
## Evidence placement
|
|
73
|
+
|
|
74
|
+
Place evidence beside the claim it supports. Prefer:
|
|
75
|
+
|
|
76
|
+
1. official specification, documentation, filing, policy, or source code;
|
|
77
|
+
2. independent reproduction or reputable reporting;
|
|
78
|
+
3. first-hand observation with method and date;
|
|
79
|
+
4. vendor claim, explicitly attributed;
|
|
80
|
+
5. inference, explicitly marked.
|
|
81
|
+
|
|
82
|
+
A bibliography cannot repair a source mismatch. A source can support a fact without supporting the causal explanation drawn from it.
|
|
83
|
+
|
|
84
|
+
## Comparison pages
|
|
85
|
+
|
|
86
|
+
Comparisons need a shared evaluation frame. Record artifact/version, scope, criteria, test conditions, missing capabilities, and who measured the result. Separate fit, task success, latency, cost, reliability, and qualitative judgment. If conditions are not comparable, present parallel evidence and a decision framework instead of a ranking.
|
|
87
|
+
|
|
88
|
+
## Anti-patterns
|
|
89
|
+
|
|
90
|
+
- exact-match question pages with no distinct answer;
|
|
91
|
+
- a glossary that repeats a definition without sources or disambiguation;
|
|
92
|
+
- “answer-first” copy that hides material qualifications below the fold;
|
|
93
|
+
- inconsistent names, versions, dates, and units across pages;
|
|
94
|
+
- entity links chosen for SEO rather than identity confidence;
|
|
95
|
+
- a generic FAQ bolted onto an article solely to justify FAQPage markup;
|
|
96
|
+
- citations that support a neighboring claim but not the sentence they follow.
|
|
97
|
+
|
|
98
|
+
## Review gate
|
|
99
|
+
|
|
100
|
+
A content architecture passes when a reviewer can answer: what question is this page for, what entity does it describe, where is the canonical answer, what source proves each material claim, what would make it stale, and where should a reader go next?
|