E2E SEO Assistant
irinabuht12-oss/marketing-skills
Full SEO workflow covering technical audits, content gaps, backlink opportunities, on-page fixes, and content briefs.
Analyze and improve the internal link structure of an AEM Edge Delivery Services site.
$ npx skills add adobe/skills --skill internal-linking -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install adobe/skills internal-linking --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/aem/edge-delivery-services-content-ops/skills/internal-linking .claude/skills/internal-linking && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "internal-linking" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services-content-ops/skills/internal-linking into .claude/skills/internal-linking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "internal-linking", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services-content-ops/skills/internal-linkingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add adobe/skills --skill internal-linking -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install adobe/skills internal-linking --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/aem/edge-delivery-services-content-ops/skills/internal-linking .agents/skills/internal-linking && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "internal-linking" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services-content-ops/skills/internal-linking into .agents/skills/internal-linking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "internal-linking", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add adobe/skills --skill internal-linking -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install adobe/skills internal-linking --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/aem/edge-delivery-services-content-ops/skills/internal-linking .cursor/skills/internal-linking && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "internal-linking" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services-content-ops/skills/internal-linking into .cursor/skills/internal-linking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "internal-linking", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/adobe/skills.git --path plugins/aem/edge-delivery-services-content-ops/skills/internal-linking--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add adobe/skills --skill internal-linking -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install adobe/skills internal-linking --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/aem/edge-delivery-services-content-ops/skills/internal-linking .gemini/skills/internal-linking && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "internal-linking" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services-content-ops/skills/internal-linking into .gemini/skills/internal-linking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "internal-linking", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install adobe/skills internal-linkingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add adobe/skills --skill internal-linking -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/aem/edge-delivery-services-content-ops/skills/internal-linking .github/skills/internal-linking && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "internal-linking" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services-content-ops/skills/internal-linking into .github/skills/internal-linking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "internal-linking", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add adobe/skills --skill internal-linking -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install adobe/skills internal-linking --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/aem/edge-delivery-services-content-ops/skills/internal-linking .opencode/skills/internal-linking && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "internal-linking" agent skill from https://github.com/adobe/skills/tree/main/plugins/aem/edge-delivery-services-content-ops/skills/internal-linking into .opencode/skills/internal-linking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "internal-linking", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
internal-linkingAnalyze and improve the internal link structure of an AEM Edge Delivery Services site.
Internal Linking is an agent skill from adobe/skills. Analyze and improve the internal link structure of an AEM Edge Delivery Services site. Builds a link graph from the query index and page content, identifies orphan pages, hub pages, and content silos, and generates specific linking recommendations with suggested anchor text and placement. Use when improving site navigation, fixing orphan pages, strengthening topical authority, or auditing link equity distribution.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `CHANGELOG.md`, `package.json` and `references/internal-linking-reference.md`).
It sits in Marketing & SEO, covering On-page SEO and Link building. It works with Adobe Experience Manager. The repository describes itself as: Adobe Skills for Agents. The licence is Apache-2.0.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 985c436. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Internal Linking loads about 1.8k tokens when it runs, and up to ~2.5k if it reads all its reference files. Until then it costs about 109 tokens; SKILL.md has 804 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from adobe/skills at commit 985c436, republished under its Apache-2.0 licence (© adobe). 804 words, ~1,848 tokens.
.claude/skills/internal-linking/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Crawl an EDS site's query index and .plain.html page content to build a complete internal link graph. Analyze the graph to find orphan pages, weak connections, content silos, and linking opportunities, then produce specific recommendations with exact anchor text and placement.
This skill fetches external web pages for analysis. When fetching:
.plain.html variants).Do not use for external/backlink auditing, broken link checking, non-EDS sites, or unscoped sites with 500+ pages.
For recommendation format templates, troubleshooting, link classification details, and table schemas, see references/internal-linking-reference.md.
Before starting, create a checklist to track progress:
.plain.html for each page and extract all internal linksFetch https://<domain>/query-index.json. If paginated (has total and offset), fetch all pages using ?limit=500&offset=0. Build a map of all paths to their titles and descriptions — this is the universe of pages to analyze.
If the user specifies a path prefix (e.g., /blog/), filter to that prefix. If there are 200+ pages, recommend scoping and confirm before proceeding.
// Fetch and paginate the query index
async function fetchQueryIndex(domain) {
const pages = [];
let offset = 0;
const limit = 500;
let total = Infinity;
while (offset < total) {
const res = await fetch(`https://${domain}/query-index.json?limit=${limit}&offset=${offset}`);
const json = await res.json();
total = json.total ?? json.data.length;
pages.push(...json.data);
offset += limit;
if (!json.total) break; // not paginated
}
return pages; // each entry has: path, title, description, lastModified
}For each page in the inventory, fetch <path>.plain.html and extract all <a> elements. Record the source page, target path (normalized — strip domain, query params, fragments), anchor text, and surrounding context.
Classify links as body contextual, block, or CTA (see reference file for definitions). Also fetch /nav.plain.html and /footer.plain.html once to tag structural links.
// Extract internal links from a page's .plain.html
async function extractLinks(domain, path) {
const res = await fetch(`https://${domain}${path}.plain.html`);
const html = await res.text();
const linkPattern = /<a\s+[^>]*href="([^"]*)"[^>]*>(.*?)<\/a>/gi;
const links = [];
let match;
while ((match = linkPattern.exec(html)) !== null) {
const href = new URL(match[1], `https://${domain}`);
if (href.hostname === domain) {
links.push({
source: path,
target: href.pathname.replace(/\/$/, ''),
anchorText: match[2].replace(/<[^>]*>/g, '').trim(),
});
}
}
return links;
}Batch fetches in groups of 10-20 for large sites. Report progress as you go.
Construct a directed graph: nodes = pages from the query index, edges = body links between them.
For each page, compute inbound and outbound body link counts (exclude nav/footer from primary counts). Present the top 10 most-linked and bottom 10 least-linked pages in a table (see reference file for table format).
List all pages with zero inbound body links. For each, note whether it appears in nav or footer, its outbound link count, and its title/description. Pages with zero inbound links of any kind are critical priority.
Hub pages have outbound body links exceeding 2x the site average. List them with their role (pillar / index / landing).
Content silos are clusters that link heavily internally but rarely cross-link to other clusters. For each silo, report pages, internal link count, cross-silo link count, and the silo ratio (internal / total). A ratio above 0.8 suggests isolation. Recommend specific cross-silo links with anchor text.
Compute overall link health metrics:
Group pages by path prefix or topical similarity. For each cluster, check whether pages link to each other, whether a pillar page exists, and whether obvious connections are missing.
For each orphan and under-linked page, provide a specific recommendation: which page should link to it, where in that page's content the link should go, the exact suggested sentence with anchor text, and a rationale. Follow the recommendation format in the reference file.
Provide at least one recommendation per orphan, and at least one per under-linked page (1-2 inbound links). Include cross-silo bridge links where topics naturally overlap. Always use descriptive anchor text — never "click here" or "read more."
Compile findings into a structured report:
Summary — Total pages, total internal body links, average inbound per page, orphan count and percentage, silos detected.
Sections — Orphan pages, hub pages, content silos, link distribution health (rated Healthy / Needs Improvement / Poor), and all recommendations prioritized as:
© adobe, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in plugins/aem/edge-delivery-services-content-ops/skills/internal-linking of adobe/skills.
Open the folder on GitHubat commit 985c436
Internal Linking next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Internal Linking this skilladobe/skills | 196 | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| E2E SEO Assistantirinabuht12-oss/marketing-skills | 3.9k | — | ~1.9k | Automated safety check: Pass | None | |
| Internal Linking OptimizerViryaZheng/recomby-geo | 460 | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Content Quality Auditoraaron-he-zhu/aaron-marketing-skills | 2.9k | 1 repos | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| SEO Aeo Internal Linkinghenryalouf/ruflow | 156 | — | ~949 | Automated safety check: Pass | MIT | |
| SEO Aeo Internal Linkingsickn33/agentic-awesome-skills | 47k | 1 repos | ~2.3k | Automated safety check: Pass | MIT |
irinabuht12-oss/marketing-skills
Full SEO workflow covering technical audits, content gaps, backlink opportunities, on-page fixes, and content briefs.
ViryaZheng/recomby-geo
A skill your agent uses when improving internal link structure, anchor text, orphan pages, crawl depth, site architecture, or link equity flow.
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when auditing content quality, E-E-A-T, or publish readiness; runs a typed 80-item CORE-EEAT profile with evidence coverage, veto checks, and a fix plan.
henryalouf/ruflow
Maps internal link opportunities between pages with anchor text, placement instructions, orphan page detection, and cannibalization checks.
sickn33/agentic-awesome-skills
Maps internal link opportunities between pages with relevant anchor text, placement instructions, orphan-page detection, and cannibalisation checks.
majiayu000/claude-skill-registry
This skill should be used when the user asks to "audit content quality", "EEAT score", "E-E-A-T audit", "content quality check", "CORE-EEAT audit", "helpful content assessment", "experience…
adobe/skills
Scaffolds, implements, deploys and debugs Adobe Runtime actions in App Builder projects, with templates for webhooks, events, database CRUD, sequences and Asset Compute workers.
adobe/skills
Launches Chrome with an unpacked extension over CDP, opens its sidepanel, popup or options page, and hands over to cdp-connect for clicks, typing and screenshots.
adobe/skills
Extracts icons, metadata, text, forms, videos and social links from any web page with playwright-cli, with SVG icon classification and cleanup.
adobe/skills
Detect all languages used on a webpage — both declared (html@lang, hreflang alternate links, nested lang= attributes, meta content-language) and actually present in the body text (Google CLD3 via…
adobe/skills
Prepare any webpage for clean interaction by detecting and removing disruptive overlays (cookie banners, GDPR consent, modals, popups, newsletter signups, paywalls, login walls).
adobe/skills
Reduce a webpage to a structural skeleton with semantic tokens.
Works with
Categories
Analyze and improve the internal link structure of an AEM Edge Delivery Services site. Internal Linking is an agent skill from adobe/skills. Analyze and improve the internal link structure of an AEM Edge Delivery Services site.
Internal Linking fits situations like: improving site navigation; fixing orphan pages; strengthening topical authority; auditing link equity distribution.
Run `npx skills add adobe/skills --skill internal-linking -a claude-code`. Or copy the skill folder (plugins/aem/edge-delivery-services-content-ops/skills/internal-linking in adobe/skills) into .claude/skills/internal-linking in your project. Claude Code loads it when a task matches its description.
Run `npx skills add adobe/skills --skill internal-linking -a codex`. Or copy the skill folder (plugins/aem/edge-delivery-services-content-ops/skills/internal-linking in adobe/skills) into .agents/skills/internal-linking in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add adobe/skills --skill internal-linking -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/internal-linking, .gemini/skills/internal-linking, .github/skills/internal-linking and .opencode/skills/internal-linking in your project.
SKILL.md names no scripts, command-line tools or credentials: Internal Linking is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Internal Linking is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 683 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Internal Linking: E2E SEO Assistant (irinabuht12-oss/marketing-skills, 3.9k stars), Internal Linking Optimizer (ViryaZheng/recomby-geo, 460 stars), Content Quality Auditor (aaron-he-zhu/aaron-marketing-skills, 2.9k stars) and SEO Aeo Internal Linking (henryalouf/ruflow, 156 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
adobe (a GitHub organization) maintains it in adobe/skills, which has 196 GitHub stars. The repository holds 65 skills in this directory. The repository was last updated on October 7, 2026.
Source: adobe/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.