skills/agentic-web-optimization/SKILL.md
Make web content maximally extractable by LLMs, Agentic RAG systems, and search indexers.
npx skillsauth add ariffazil/openclaw-workspace agentic-web-optimizationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Purpose: Make web content maximally extractable by LLMs, Agentic RAG systems, and search indexers. Target metric: τ≥0.99 (high signal-to-noise ratio, ΔS≤0) Domain: arif-sites / arif-fazil.com / any web property Sealed: 2026-07-01 · 999 Meterai
Goal: Explicitly allow AI crawlers. Block only known abusers.
User-agent: *
Allow: /
User-agent: GPTBot
Allow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: Anthropic-AI
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Bytespider
Allow: /
User-agent: Applebot
Allow: /
User-agent: Googlebot
Allow: /
User-agent: Bingbot
Allow: /
# Block known abusers
User-agent: CCBot
Disallow: /
User-agent: omgili
Disallow: /
Sitemap: https://<domain>/sitemap.xml
Why allow Bytespider? High-volume but feeds Perplexity and other RAG systems. Block only if bandwidth abuse detected.
llms.txt (root): Human-readable markdown with:
llms.json (root): Structured JSON with:
route_roles: every route with semantic descriptionmachine_surfaces: all agent-discovery URLssemantic_architecture: what techniques are deployed (pre_rendered, json_ld, etc.)last_updated: ISO 8601When adding new content: Always update both llms.txt AND llms.json with the new route + summary.
Problem: React/Vue SPAs render content client-side. LLM scrapers that don't execute JS see empty shells.
Solution: Pre-render article pages as static HTML via Puppeteer after build.
Script: scripts/prerender-articles.cjs
const puppeteer = require('puppeteer');
const fs = require('fs');
const path = require('path');
// For each article:
// 1. Navigate to live URL
// 2. Wait for React render
// 3. Extract rendered HTML
// 4. Wrap in semantic HTML5 with JSON-LD + meta tags
// 5. Save as {slug}/index.html in dist/
Key design decisions:
<article itemscope> wrapper for Schema.org microdata<h1>, <h2>, <p>, <blockquote> — semantic HTML5Deploy integration: Add pre-render step AFTER npm run build in deploy script:
npm run build
node scripts/prerender-articles.cjs
Schema: NewsArticle or BlogPosting
{
"@context": "https://schema.org",
"@type": "NewsArticle",
"headline": "...",
"description": "...",
"author": { "@type": "Person", "name": "...", "url": "..." },
"publisher": {
"@type": "Organization",
"name": "...",
"url": "...",
"logo": { "@type": "ImageObject", "url": "..." }
},
"datePublished": "2026-07-01",
"dateModified": "2026-07-01",
"mainEntityOfPage": "https://...",
"image": "https://...",
"keywords": "...",
"inLanguage": "ms",
"isAccessibleForFree": true,
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".cover-subtitle", ".pull-quote", ".callout"]
}
}
speakable tells voice-search AI which paragraphs to read aloud.
Per article page:
<title>{title} | {site_name}</title>
<meta name="description" content="{2-sentence summary}">
<meta name="author" content="{author}">
<meta name="keywords" content="{comma-separated}">
<meta name="robots" content="index, follow">
<link rel="canonical" href="{exact_url}">
<meta property="og:title" content="{title}">
<meta property="og:description" content="{summary}">
<meta property="og:type" content="article">
<meta property="og:url" content="{exact_url}">
<meta property="og:image" content="{image_url}">
<meta property="og:site_name" content="{site_name}">
<meta property="og:locale" content="{locale}">
<meta property="article:published_time" content="{date}">
<meta property="article:author" content="{author}">
<meta property="article:section" content="{section}">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="{title}">
<meta name="twitter:description" content="{summary}">
<meta name="twitter:image" content="{image_url}">
Canonical: Every page must have <link rel="canonical"> pointing to the exact live URL. Prevents duplicate content indexing.
Sitemap: Update sitemap.xml with:
<lastmod> in ISO 8601<changefreq> (weekly for dynamic, monthly for static)<priority> (0.9 for flagship content, 0.8 for standard, 0.5 for utility)Submit: Google Search Console + Bing Webmaster Tools via API if configured.
For SSG pre-rendered routes, add BEFORE the SPA fallback:
# SSG pre-rendered pages — serve static HTML instead of SPA shell
@makcikgpt path /wealth/makcikgpt/*
handle @makcikgpt {
try_files {path}/index.html /index.html
file_server
}
# SPA fallback (must come AFTER SSG handlers)
handle /wealth/* {
try_files /static/wealth.html /index.html
file_server
}
Rule: More specific routes MUST come before catch-all routes in Caddy.
After deployment, verify each layer:
# 1. robots.txt
curl -sf https://domain/robots.txt | grep "GPTBot"
# 2. llms.txt
curl -sf https://domain/llms.txt | head -5
# 3. SSR (article content in raw HTML, no JS needed)
curl -sf https://domain/wealth/makcikgpt/petronas-dna | grep "<article"
# 4. JSON-LD
curl -sf https://domain/wealth/makcikgpt/petronas-dna | grep "application/ld+json"
# 5. OG meta
curl -sf https://domain/wealth/makcikgpt/petronas-dna | grep "og:title"
# 6. Canonical
curl -sf https://domain/wealth/makcikgpt/petronas-dna | grep "canonical"
# 7. Sitemap
curl -sf https://domain/sitemap.xml | grep "makcikgpt"
The web is no longer just "pages for human eyes." It is a data substrate for machine intelligence.
Every page you publish is either:
- Signal (structured, semantic, machine-readable) — τ≥0.99
- Noise (JS-rendered, unstructured, opaque) — τ≤0.5
arifOS publishes signal. The machines read the truth before the humans see the design.
DITEMPA BUKAN DIBERI.
Forged: 2026-07-01 · Meta-Mesa Agentic Web Agent Source: arif-sites deploy + MakcikGPT SSR pipeline 999 SEAL ALIVE
development
Federation-wide gold (XAUUSD) trading capability. Python stack, OANDA broker, backtesting, macro signals, RSI strategy. Every organ has a role.
development
Capital claim state management — tracks claim lifecycle across WEALTH organ.
development
Archived constitutional warga placeholder retained only for audit provenance. Do not use for active work; use the live arifOS governance and constitutional skills instead.
testing
Warga (citizen) agent skills for AAA federation members. See subdirectories for specialized warga skills.