# Rankfile — site-domobot.vercel.app

Crawled 46 pages of https://site-domobot.vercel.app on 2026-10-20; 46 answered and were checked. Sitemap advertises 42 URLs. The 50-page crawl limit was not reached; this still does not guarantee full site coverage.
**Measured** tasks come from the crawl, computed by code, with the pages as evidence. **Judgement** tasks were written by Rankfile's strategist model from the same crawl: review them before acting. Judgement model: `kilo:nvidia/nemotron-3-super-120b-a12b:free`.

## How to run this file

From the repository of the site, give this file to your coding agent (Claude Code, Cursor, Codex…):

> Read rankfile.md. Work through the tasks in order. For each task, load the skill it names from `.claude/skills/<skill>/SKILL.md` and the site skill `.claude/skills/seo-site-domobot-vercel-app/SKILL.md`, find the templates or pages concerned in this codebase, make the change, and tick its checkbox. Stop and ask before deleting pages or changing URLs.

## Summary

Domobot is a publisher‑focused site that catalogs humanoid robot models with spec sheets, news, and buying guides. The biggest SEO opportunity is to add structured data and comprehensive buying‑guide content that targets commercial intent queries like ‘buy humanoid robot 2026’.

| Area | Score |
|---|---|
| Overall | 94 |
| Technical (crawl, indexing, sitemap, links) | 94 |
| Content (titles, descriptions, headings, depth) | 96 |
| Structured data | 100 |
| AI search readiness | 96 |
| HTML response (server-side download time) | 83 |

Scores are 100 minus what the measured tasks below cost, weighted by severity and by the share of pages affected. They are a progress gauge for this file, not a ranking prediction.

## Measured tasks (8)

These tasks were computed from the crawl and include page-level evidence. Work through them first.

### 1. [ ] 1 page shows part of its text only after JavaScript runs

`priority: high` `measured` `skill: technical-seo-checker`

**Why:** Rankfile rendered these pages in a browser: the text is there for visitors but not in the HTML the server sends. AI crawlers do not run JavaScript and Google renders it later, so this text may not count.

**Evidence**
Seen on 1 of 6.
  - https://site-domobot.vercel.app/compare — 25 words served, 159 after JavaScript

**Do:** Render this content on the server or at build time (pre-render the route, or move the data fetch into the server component / getStaticProps), so the text is in the first HTML response.

**Done when:** A new Rankfile scan no longer reports `js-content`.

---

### 2. [ ] 1 page shifts layout while loading

`priority: high` `measured` `skill: technical-seo-checker`

**Why:** Cumulative Layout Shift measured during load in a phone browser. Over 0.1 needs improvement, over 0.25 is poor: content jumps under the reader's finger.

**Evidence**
Seen on 1 of 6.
  - https://site-domobot.vercel.app/compare — CLS 0.463

**Do:** Give images, embeds and ads explicit `width`/`height` (or `aspect-ratio`), reserve space for content loaded after the page (tables, banners), and avoid inserting elements above existing content.

**Done when:** A new Rankfile scan no longer reports `lab-cls`.

---

### 3. [ ] 4 pages take over 2.5 s to show the main content on a phone

`priority: medium` `measured` `skill: technical-seo-checker`

**Why:** Largest Contentful Paint measured by Rankfile in a phone browser on a slow 4G line (Lighthouse's mobile conditions). Google counts LCP over 2.5 s as needing improvement and over 4 s as poor. Lab figures: real visitors may be faster or slower.

**Evidence**
Seen on 4 of 6.
  - https://site-domobot.vercel.app/ — LCP 3.3 s
  - https://site-domobot.vercel.app/robots — LCP 2.8 s
  - https://site-domobot.vercel.app/guides — LCP 2.5 s
  - https://site-domobot.vercel.app/news — LCP 3.1 s

**Do:** Find the largest element (usually the hero image or heading): serve the image in AVIF/WebP at its displayed size with `fetchpriority="high"` and no lazy-loading, preload the font it uses, and cut the JavaScript that runs before it paints.

**Done when:** A new Rankfile scan no longer reports `lab-lcp`.

---

### 4. [ ] 1 page blocks the phone's main thread for over 600 ms

`priority: medium` `measured` `skill: technical-seo-checker`

**Why:** Total time of long JavaScript tasks while loading, on a phone CPU. It is what makes taps feel unresponsive (INP for real visitors).

**Evidence**
Seen on 1 of 6.
  - https://site-domobot.vercel.app/robots — 603 ms blocked · 173 KB of JavaScript

**Do:** Ship less JavaScript on these pages: split bundles per route, defer third-party scripts, and render static parts on the server instead of hydrating them.

**Done when:** A new Rankfile scan no longer reports `lab-tbt`.

---

### 5. [ ] 3 pages have under 200 words

`priority: medium` `measured` `skill: content-quality-auditor`

**Why:** Low visible word count alone does not indicate poor quality: tools, listings, legal pages and focused answers can be useful with little text.

**Evidence**
Seen on 3 of 42.
  - https://site-domobot.vercel.app/guides — 121 words
  - https://site-domobot.vercel.app/compare — 25 words
  - https://site-domobot.vercel.app/legal — 183 words

**Do:** Review whether each page fully serves its purpose and search intent. Add useful information only where something important is missing; do not add text to meet a word target.

**Done when:** A new Rankfile scan no longer reports `thin-content`.

---

### 6. [ ] 1 page has no meta description

`priority: medium` `measured` `skill: meta-tags-optimizer`

**Why:** Without one, search engines pick a snippet from the page, often a poor one.

**Evidence**
Seen on 1 of 42.
  - https://site-domobot.vercel.app/guides

**Do:** Write a concise, page-specific summary that accurately describes the content and gives searchers a reason to click; there is no fixed character target.

**Done when:** A new Rankfile scan no longer reports `description-missing`.

---

### 7. [ ] No llms.txt

`priority: low` `measured` `skill: geo-content-optimizer`

**Why:** llms.txt is a proposed file that gives AI assistants a curated map of the site. Adoption by search engines is not confirmed; cheap to add.

**Evidence**
  - https://site-domobot.vercel.app/llms.txt

**Do:** Serve `/llms.txt`: a short description of the site and a list of its key pages with one line each.

**Done when:** A new Rankfile scan no longer reports `llms-txt`.

---

### 8. [ ] 23 meta descriptions are unusually long

`priority: low` `measured` `skill: meta-tags-optimizer`

**Why:** Search engines may use a page excerpt instead, and snippet display varies by query and device. This length is a review cue, not a ranking threshold.

**Evidence**
Seen on 23 of 42.
  - https://site-domobot.vercel.app/robots/neura-4ne1 — 377 chars
  - https://site-domobot.vercel.app/robots/agibot-a2 — 352 chars
  - https://site-domobot.vercel.app/robots/apptronik-apollo — 363 chars
  - https://site-domobot.vercel.app/robots/boston-dynamics-atlas — 341 chars
  - https://site-domobot.vercel.app/robots/booster-t1 — 366 chars
  - https://site-domobot.vercel.app/robots/agility-digit — 398 chars
  - https://site-domobot.vercel.app/robots/engineai-pm01 — 361 chars
  - https://site-domobot.vercel.app/robots/figure-03 — 394 chars
  - https://site-domobot.vercel.app/robots/fourier-gr-3 — 392 chars
  - https://site-domobot.vercel.app/robots/galbot-g1 — 364 chars
  - https://site-domobot.vercel.app/robots/mentee-menteebot — 383 chars
  - https://site-domobot.vercel.app/robots/limx-oli — 352 chars
  - https://site-domobot.vercel.app/robots/kepler-forerunner-k2 — 388 chars
  - https://site-domobot.vercel.app/robots/1x-neo — 427 chars
  - https://site-domobot.vercel.app/robots/noetix-n2 — 340 chars
  - https://site-domobot.vercel.app/robots/tesla-optimus — 377 chars
  - https://site-domobot.vercel.app/robots/sanctuary-phoenix — 340 chars
  - https://site-domobot.vercel.app/robots/pndbotics-adam — 402 chars
  - https://site-domobot.vercel.app/robots/ubtech-walker-s2 — 365 chars
  - https://site-domobot.vercel.app/robots/unitree-r1 — 374 chars
  - …and 3 more

**Do:** Check whether the description is focused and useful; shorten it only if it is repetitive or includes unnecessary detail.

**Done when:** A new Rankfile scan no longer reports `description-length`.

## Suggestions to review (5)

These are strategist-model recommendations inferred from the same crawl. They are not measurements: validate the premise against the site, audience and search data before implementation.

### 9. [ ] Product schema missing offers and aggregateRating properties

`priority: high` `judgement` `skill: schema-markup-generator`

**Why:** Product pages such as /robots/neura-4ne1, /robots/agibot-a2 list schema with only name, brand, description, image; missing offers, aggregateRating, sku etc. (see schema array).

**Page:** /robots/neura-4ne1

**Do:** Add offers (price, priceCurrency, availability) and aggregateRating (if available) to Product JSON‑LD on all robot model pages.

**Done when:** The change is live and you can point to the page or template where it is.

---

### 10. [ ] Missing FAQ page targeting question-based queries

`priority: high` `judgement` `skill: seo-content-writer`

**Why:** Site lacks a dedicated FAQ page; users searching for 'how much does a humanoid robot cost?' or 'are humanoid robots safe for home use?' have no targeted landing page.

**Page:** /faq

**Do:** Create a new FAQ page at /faq with structured question-answer pairs covering buying, specs, safety, availability, and add FAQPage schema.

**Done when:** The change is live and you can point to the page or template where it is.

---

### 11. [ ] NewsArticle schema missing publisher logo and mainEntityOfPage clarity

`priority: medium` `judgement` `skill: schema-markup-generator`

**Why:** News article pages like /news/boston-dynamics-appoints-rohit-prasad-ceo have schema with headline, description, image, datePublished, dateModified, author, publisher, mainEntityOfPage but lack publisher logo URL and mainEntityOfPage may not point to the article itself.

**Page:** /news/boston-dynamics-appoints-rohit-prasad-ceo

**Do:** Add publisher { "@type": "Organization", "name": "Domobot", "logo": { "@type": "ImageObject", "url": "https://site-domobot.vercel.app/logo.png" } } and set mainEntityOfPage to the article URL.

**Done when:** The change is live and you can point to the page or template where it is.

---

### 12. [ ] Low internal linking to specific model pages

`priority: medium` `judgement` `skill: internal-linking-optimizer`

**Why:** Model pages for Tesla Optimus (/robots/tesla-optimus) and XPENG IRON (/robots/xpeng-iron) have only 9 inbound internal links each, far below site average of ~28, indicating weak internal authority flow.

**Do:** Add contextual internal links from relevant guides and news articles (e.g., from '/guides/how-to-read-humanoid-robot-spec-sheet' and news about Tesla/XPENG) using anchor text that includes the model name.

**Done when:** The change is live and you can point to the page or template where it is.

---

### 13. [ ] Many top-level pages lack H2 subheadings

`priority: low` `judgement` `skill: on-page-seo-auditor`

**Why:** Pages such as /robots (model list), /guides, /compare, /about, /legal contain zero H2 headings, limiting topical depth and semantic signals.

**Do:** Add descriptive H2 sections to break up content (e.g., 'How we collect data', 'Popular models', 'Comparison methodology') on each affected page.

**Done when:** The change is live and you can point to the page or template where it is.

## New pages to create

- [ ] `/brands` — Aggregates manufacturers for brand‑based browsing; users often search for specific makers like ‘NEURA Robotics’ or ‘Unitree’. A brand list captures this intent and distributes link equity to model pages. _(template: BrandList)_
- [ ] `/faq` — Captures question‑based queries (e.g., ‘how much does a humanoid robot cost?’) and supports GEO by providing concise, citable Q&A pairs. _(template: FAQ)_
- [ ] `/price-history` — Provides historical pricing trends for models, targeting commercial research queries such as ‘humanoid robot price trend 2026’. _(template: PriceGuide)_
- [ ] `/contact` — Allows users to reach out for partnerships or corrections, improving trust signals and offering a conversion point for business inquiries. _(template: ContactPage)_
- [ ] `/glossary` — Defines industry terms (DoF, payload, etc.) that appear in spec sheets, supporting both SEO and GEO by supplying clear, sourced definitions. _(template: Glossary)_

## Internal linking plan

- Add link from homepage "/" to "/brands" with anchor "Manufacturers".\n- Add link from "/guides/how-to-read-humanoid-robot-spec-sheet" to "/brands" anchor "See all manufacturers".\n- Add link from news article "/news/boston-dynamics-appoints-rohit-prasad-ceo" to model page "/robots/boston-dynamics-atlas" anchor "Boston Dynamics Atlas".\n- Add link from news article "/news/xpeng-iron-production-line-sales-2027" to model page "/robots/xpeng-iron" anchor "XPENG IRON".\n- Add link from "/compare" to "/robots/unitree-g1" anchor "Unitree G1" and to "/robots/tesla-optimus" anchor "Tesla Optimus".\n- Add link from "/about" to "/brands" anchor "Explore the companies behind the robots".\n- Add link from "/methodology" to "/glossary" anchor "Glossary of technical terms".

## Site files

- robots.txt: found, 1 Allow/Disallow rules
- sitemap: 42 URLs in 1 file(s), latest lastmod 2026-10-17T03:07:32.937Z
- llms.txt: missing

## Rendered in a phone browser

Lab measurements from Rankfile's browser: phone screen, slow 4G, CPU 4× slower (Lighthouse mobile conditions). Good: LCP ≤ 2.5 s, CLS ≤ 0.1, blocking time ≤ 200 ms.

| Page | Main content shown (LCP) | Layout shift (CLS) | Blocking time | JavaScript | Words served → after JS |
|---|---|---|---|---|---|
| / | 3.3 s | 0 | 264 ms | 173 KB | 1111 → 1111 |
| /robots | 2.8 s | 0.003 | 603 ms | 173 KB | 361 → 361 |
| /guides | 2.5 s | 0.002 | 174 ms | 173 KB | 121 → 121 |
| /compare | 2.0 s | 0.463 | 459 ms | 173 KB | 25 → 159 |
| /news | 3.1 s | 0 | 67 ms | 173 KB | 492 → 492 |
| /about | 1.4 s | 0 | 25 ms | 173 KB | 208 → 208 |

## Not checked

- Crawl coverage: 46 crawled pages against 42 sitemap URLs; sitemap may not include every site URL
- Core Web Vitals from real visitors: no GOOGLE_API_KEY is set, so the Chrome UX Report was not queried
- Rendering with JavaScript and lab speed: 6 of 46 pages rendered in a phone browser (one per site section); the others were read as served HTML
- Keyword positions and impressions: Search Console is read only for scans run from the app by a connected account
- Backlinks: no link index is connected
