onpage
Skill0 starsChanged 2 days agoMITView on GitHub
Audit and fix the on-page elements of one URL: title element, meta description, H1 and heading outline, canonical, robots directives, internal links, image alt text, structured data and content depth. Reads what a crawler sees with the page, schema and cite commands, explains why Google may rewrite a title link (six causes from Google's own documentation) and what to change first. Use when the user says 'on-page SEO', 'optimize this page', 'audit this one page', 'why did Google change my title', 'page checklist', 'check my H1', 'is this page ready to publish'.
In this repository44 other files it gives its agents.
- AGENTS.mdAGENTS.md
- agent-readySkill
- ai-citationsSkill
- ai-crawlersSkill
- ai-logsSkill
- ai-trackerSkill
- backlinksSkill
- cannibalizationSkill
- canonicalsSkill
- citabilitySkill
- comparison-pagesSkill
- competitorsSkill
- content-briefSkill
- content-decaySkill
- content-qualitySkill
- core-web-vitalsSkill
- ecommerce-seoSkill
- ga4-aiSkill
- ghost-publishSkill
- gsc-bingSkill
- hreflangSkill
- imagesSkill
- indexingSkill
- internal-linksSkill
- llms-txtSkill
- local-seoSkill
- measure-rollbackSkill
- platformsSkill
- pseo-quality-gateSkill
- quick-winsSkill
- redirects-migrationSkill
- schemaSkill
- seo-planSkill
- seo-reportSkill
- setupSkill
- site-architectureSkill
- sitemapsSkill
- static-site-publishSkill
- sxoSkill
- tech-auditSkill
- titles-metaSkill
- topic-clustersSkill
- weekly-checkSkill
- wordpress-publishSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 5 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 27
Run the element checks in the table below.
- Very specific: line 34
Read the page text yourself.
- Distinctive: line 70
Do not state or enforce a title or description character limit.
- Distinctive: line 71
Do not claim a change will raise rankings.
- Very specific: line 72
Do not recommend FAQ or HowTo markup for rich results (see schema).
- Distinctive: line 73
Do not edit pages the user did not name.
- Distinctive: line 74
Do not copy a competitor's title or text.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
On-page: one URL, facts first
Goal: a short list of changes for one page, each tied to something observed in the page or to Google's documentation. No scores, no invented thresholds. Google publishes no length limit for titles or descriptions, so this skill reports lengths as facts and does not call a length "wrong".
Inputs
- The URL, and the query the page should serve (from the user, or from
gsc --dims query,page, see thegsc-bingskill). - Permission to edit the page. Only suggest edits to pages the user owns.
Steps
- See what a crawler sees:
Fields used:npx sitetiller page https://example.com/guides/invoice-template --jsonstatus,chain,robotsTxtGooglebot.allowed,noindex,robotsMeta,xRobots,title,titleCount,description,descriptionCount,h1(array),headings(level,text),canonical,canonicalCount,ogTitle,lang,words,tables,images,imagesWithoutAlt,internalLinks,links(href,internal,anchor),schemaTypes,schemaBlocks(valid). - Gate checks. If any fails, stop and fix it before touching copy:
statusis 200 andchainhas no extra hops;robotsTxtGooglebot.allowedis true;noindexis false.canonicalis empty or points to this URL (if it points elsewhere, seecanonicals).canonicalCountabove 1 is a bug.titleCountis 1 anddescriptionCountis 1.
- Run the element checks in the table below.
- Lint structured data and check quotability:
npx sitetiller schema https://example.com/guides/invoice-template --json npx sitetiller cite https://example.com/guides/invoice-template --jsonschemareturnstypesandfindings(level,type,message).citereturns per-sectionfirstSentenceWords,numbers,hasList,hasTable,linksand asummaryof shares. Treatciteas a reading aid, not a ranking factor. See theschemaskill for which types to use. - Read the page text yourself. Counts cannot say whether the page answers the query. Apply the content questions in
references/checklist.md. - Report, then (if the user agrees) make one change set per page and measure it with
measure-rollback.
Element checks
| Element | Observed in | What to check | Basis |
| Title | title | One title element. Descriptive and concise, distinct from other pages, not stuffed or boilerplate, brand at the start or end behind a delimiter, same language as the page | Google title link doc |
| Title vs H1 | title, h1 | The H1 should state the same subject. Title and H1 saying different things is a rewrite risk | Google title link doc |
| Description | description | Unique, summarises the page accurately, can carry facts such as price, author or date, not a keyword list | Google snippet doc |
| H1 and outline | h1, headings | One clearly most prominent main title. No level jumps that hide structure; headings describe the section below them | Google title link doc (main title); structure is a readability check, not a Google rule |
| Canonical | canonical | Self-referential or a deliberate other URL; absolute URL | Google consolidate doc |
| Robots | noindex, robotsMeta, xRobots | Nothing blocks indexing unless intended | see the indexing skill |
| Internal links | internalLinks, links | Crawlable <a href>, descriptive anchors; the page itself is linked from at least one other page (see internal-links) | Google link doc |
| Images | images, imagesWithoutAlt | Informative images have alt text; alt text is also anchor text for image links | Google link doc |
| Schema | schemaTypes, schemaBlocks[].valid | Valid JSON, types fit the page, markup matches visible content | Google structured data docs |
| Depth | words, tables, cite summary | Compare to the pages that rank, never to a word target. Google lists "targeting a word count" as a warning sign | Google helpful content doc |
Why Google may show a different title link
From Google's title link documentation, rewrites happen for these six page-level causes. Check each against title, h1, headings:
- Half-empty title: part of the title text is missing (for example only a separator and brand).
- Obsolete title: a recurring page keeps an old date or year while the visible title is newer.
- Inaccurate title: the title does not reflect what the page is about.
- Micro-boilerplate: several pages share one title and differ only by a small detail.
- No clear main title: several large headings look equally important.
- Language or script mismatch: the title uses a different language or writing system than the page.
The same page also names a seventh case for domain-level site names: Google may drop a repeated site name from the title link. Google builds title links from the title element, the main visible title, headings,
og:title, other prominent text, anchor text, links pointing at the page andWebSitestructured data. So the fix is usually to make the page consistent, not to rewrite only the title. Google says it can take days to weeks to notice changes.
To see what Google shows, search the exact query in a logged-out browser window and compare with title. Record the difference; do not infer a cause from one search.
Output to the user
- Gate checks: pass or the one blocking problem.
- A table: element, current value (quoted), finding, proposed change, source. Lengths as plain numbers.
- The top three changes by expected effect, ordered: blockers, title and H1 consistency, content gaps.
- How to measure: snapshot with
measure-rollback, change one thing, wait 14 to 28 days.
Guardrails
- Do not state or enforce a title or description character limit. Google says there is none and that display is cut to fit the device width.
- Do not claim a change will raise rankings. Say what Google documents and what will be measured.
- Do not recommend FAQ or HowTo markup for rich results (see
schema). - Do not edit pages the user did not name.
- Do not copy a competitor's title or text. Use competitors to find gaps, not wording.
References
examples/page.json: real output of this skill's command on sitetiller.com (2026-11-13), seeexamples/README.md.references/checklist.md(content questions from Google's helpful content guidance)references/sources.md
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

