Sign in Start free

JavaScript rendering check

Google renders JavaScript, but on a delay and with limits. Content that only exists after hydration may be indexed late, partially, or not at all. This skill compares raw HTML against rendered DOM to find exactly what is missing.

CATEGORY
Technical SEO
FORMAT
javascript-rendering-check.md
STEPS
6
PRICE
Free - no account
WHEN TO REACH FOR THIS

Use when a site renders content client-side and you need to confirm search engines actually see it, especially after a framework change or migration.

The skill file

javascript-rendering-check.md
---
name: javascript-rendering-check
description: Use when a site renders content client-side and you need to confirm search engines actually see it, especially after a framework change or migration.
---

# JavaScript rendering check

Google renders JavaScript, but on a delay and with limits. Content that only exists after hydration may be indexed late, partially, or not at all. This skill compares raw HTML against rendered DOM to find exactly what is missing.

## What you need first

- The URL of one page per template
- Access to view-source and a rendering tool

## Method

1. Fetch the raw HTML with JavaScript disabled and record what is present: title, meta description, canonical, headings, body copy, links.
2. Render the same URL and diff the two. Anything that only appears after rendering is at risk.
3. Check internal links specifically - links injected by JavaScript, or triggered by onclick rather than href, may never be followed.
4. Confirm the canonical and meta robots exist in raw HTML. A canonical injected client-side is frequently ignored.
5. Test with Search Console URL Inspection on the live URL and read the rendered HTML it reports, which is the authoritative view.
6. For anything critical still missing, move it server-side rather than trying to make the client-side version render faster.

## What this produces

A per-template diff of raw versus rendered content, with each at-risk element marked as move-server-side or acceptable.

## Where this goes wrong

- Trusting a third-party renderer over Search Console URL Inspection
- Assuming that because a page ranks, its JavaScript content is being read
- Leaving canonicals and robots directives to client-side injection

---

From the QuQi skill library - https://www.quqi.io/skills/javascript-rendering-check
Free to download · no account, no email

What you need first

  • The URL of one page per template
  • Access to view-source and a rendering tool

Method

  1. 01 Fetch the raw HTML with JavaScript disabled and record what is present: title, meta description, canonical, headings, body copy, links.
  2. 02 Render the same URL and diff the two. Anything that only appears after rendering is at risk.
  3. 03 Check internal links specifically - links injected by JavaScript, or triggered by onclick rather than href, may never be followed.
  4. 04 Confirm the canonical and meta robots exist in raw HTML. A canonical injected client-side is frequently ignored.
  5. 05 Test with Search Console URL Inspection on the live URL and read the rendered HTML it reports, which is the authoritative view.
  6. 06 For anything critical still missing, move it server-side rather than trying to make the client-side version render faster.

What this produces

A per-template diff of raw versus rendered content, with each at-risk element marked as move-server-side or acceptable.

Where this goes wrong

  • Trusting a third-party renderer over Search Console URL Inspection
  • Assuming that because a page ranks, its JavaScript content is being read
  • Leaving canonicals and robots directives to client-side injection

Use this skill in your own AI

The download is a plain markdown file with the name and trigger in its frontmatter. Where an assistant supports skills it can load itself, that frontmatter is what it reads to decide this one applies.

Claude Code Save it as ~/.claude/skills/javascript-rendering-check/SKILL.md and Claude loads it on its own when what you are doing matches the trigger line. Put it in .claude/skills inside a project instead if the whole team should have it.
Claude Upload the file in the skills section of your settings. Once it is there it applies itself in any conversation where the trigger fits, so you do not have to remember it exists.
ChatGPT There is no skills format to install into, so paste the file contents into a Project instruction or a Custom GPT instead. It then applies to every chat in that project rather than only the one you paste it into.
Anything else Paste the markdown into the chat before your question. It works in any assistant, it just has to be pasted again each time.

Questions about this skill

When is a raw versus rendered comparison the right check rather than a crawl with rendering enabled?

When a site renders content client-side, particularly after a framework change or a migration. A crawler with rendering switched on reports what that tool's engine produced, not what Google's did. Comparing the raw HTML against the rendered DOM for the same URL is the comparison that settles whether your content depends on JavaScript, which is the question underneath the symptom.

What do I need in hand before starting?

One URL per template, a way to fetch the raw HTML with JavaScript disabled, and Search Console URL Inspection on the live URL. Test the homepage only and you miss routing faults that appear on the second click. Skip URL Inspection and you are trusting a third-party renderer over the one view that reports what Google itself managed to render.

What do I end up with, and which part gets used?

A per-template diff of raw against rendered content, each at-risk element marked move server-side or acceptable. The rows for canonical, meta robots and internal links are the ones acted on: a canonical injected client-side is frequently ignored, and links added by script or fired from an onclick handler rather than an href may never be followed, which is why deep pages go undiscovered.

What is the mistake that ruins this, and what does it cost?

Assuming that because a page ranks, its JavaScript content is being read. A page can rank on its raw HTML alone while half the body copy never enters the index, and you discover it when a competitor covers the same ground in served HTML. When something critical is missing, move it server-side rather than making the client-side version render faster; that queue is not yours to control.

More in Technical SEO