A · Very good

Page SEO Inspection

https://vedhora.com/
Crawled 12 Nov, 06:10 UTC (8 hr ago)
HTTP 200 90 KB 76 ms TTFB
Download PDF

PDF export is a paid feature

A PDF of the full report, ready to send to a client or a colleague, comes with Basic at $19 a month and every plan above it, along with saved history. The report itself stays free to read.

See the plans
On-Page Checklist 77% Complete
Primary focus: 14 images have no width and height, so the page shifts as they load (hurting CLS). Fix now →
Filter:

Full diagnostics

Every check that ran, grouped by what it affects. Problems appear first in each group.

Meta Tags & Search Snippet Simulator

The tags that decide how this page is titled and described in search results.

✓ 2100% · excellent
Live snippet simulation
Title width: 520px / 580px
V Vedhora vedhora.com
Vedhora • Vedic Astrology, Free Kundli & Vedic Panchang

Free Vedic Kundli, Kundli Milan and daily Panchang, with a personal astrologer powered by AI that reads your own dashas and transits.

Title tag 520px of 580px

The title length is well judged.

Rendered width

Desktop520px/ 580px
Mobile468px/ 920px

Measured in Arial at the size Google renders result titles, accurate to within a fraction of a percent of a browser. Characters: 55.

Meta description 133 characters

The meta description length is well judged.

Crawling & indexing

Whether search engines can reach, read and index this page at all.

i 2✓ 1588% · good
Redirect chain 1 redirects

The URL redirects once before resolving, costing an extra round trip.

308 https://vedhora.com/
200 https://www.vedhora.com/
How to fix
How to fix
Link to the final URL directly so visitors and crawlers skip the hop.
www and https versions 1 found

The other spellings of this address arrive here, but not in one permanent step: a chain costs time on every visit, and a temporary redirect tells search engines the move may not last.

http://vedhora.com/ → 308 → 308 → https://www.vedhora.com/ (2 redirects)
How to fix
How to fix
Redirect each spelling straight to the final address with a 301 or 308.
HTTP status HTTP 200

The page returns 200 OK.

Robots directives

No directive prevents indexing.

Canonical tag

The canonical correctly references this page.

https://www.vedhora.com
Language

Language is declared as "en".

lang="en"
hreflang

No hreflang annotations, which is correct for a single-language page.

Viewport

The viewport is configured for mobile.

width=device-width, initial-scale=1
Character encoding

The page declares UTF-8 encoding.

Favicon

A favicon is declared.

Mixed content

All resources load securely.

URL length 24 characters

The URL is 24 characters.

URL readability

The URL is clean and readable.

URL depth 0 levels deep

The page is 0 levels deep.

URL parameters

The URL has no query parameters.

robots.txt 0 KB

robots.txt is present and does not block crawling.

XML sitemap 289 URLs

A sitemap is published, listing 289 URLs.

Lists 289 URLs

Missing pages (404) HTTP 404

A page that does not exist returns HTTP 404, so search engines drop dead addresses.

Content & metadata

What the page says it is about, and how it reads.

✓ 11100% · excellent
Word count 808 Substantive
Headings 17 Structured
H1 tags 1 Exactly one
Text ratio 6.6% Text vs markup
Heading outline 17 headings
H1 Personalized Vedic Astrology
H2 From the Blog
H3 Yogini Dasha: When Two Clocks Agree
H3 What a Lamp's Flame Tells You
H3 Eclipses: Rahu, Ketu and the Shadow
H3 Twins: Same Minute, Different Lives
H3 Uttarayana: When the Sun Turns North
H3 The Palm-Leaf Mystery of Nadi
H3 Why Saturday Comes Before Sunday
H3 Jupiter Exalted in Cancer 2027: Who Benefits Most
H2 Learn Vedic Astrology, Step by Step
H3 How to Read a Birth Chart in 6 Steps
H3 What Is Lagna? Your Ascendant and Why Birth Time Matters
H3 The 12 Houses, Simply Explained
Open Graph tags

Open Graph tags are present.

Twitter card

twitter:card is set to summary_large_image.

H1 tag

The page has exactly one h1.

Personalized Vedic Astrology
Heading hierarchy

The heading outline descends in order.

Content length 808 words

The page has roughly 808 words.

Text-to-HTML ratio 6.6% text

Text is 6.6% of the page source.

Table headers

No data tables on this page, so there are no columns to label.

Keyword placement

The page's prominent terms appear in its title, description or headings.

Where these terms appear

TermCountDensityTitleDescriptionHeadings
min142.83%✕✕✓
read112.22%✕✓✓
vedic71.41%✓✓✓
birth71.41%✕✕✓
canada61.21%✕✕✕
Keyword repetition

No term is repeated unnaturally often.

Keyword cloud

The page's most frequent terms, from 495 words of content.

What this page is about

Term size reflects how often it appears. Density is not a ranking factor, this is a view of the page's subject, not a target to hit.

minreadvedicbirthcanadachartsunastrologycentraleasternaustraliawhyrahureadtheeuropeafricavedhoradashatwoclocksexplainedtimeascendantsteppanchangdatekundliquestionsmattercalculatebstpacificmountainwesternceteetaestblogjyotishdashas
Share image 1200 × 630 px

The share image loads and is 1200 × 630 pixels, the right size and shape for a large card.

AI & answer readiness

Whether answer engines and AI overviews can extract and trust this page.

i 5✓ 550% · fair
AI crawlers 10/10 All allowed
Readable without JS Yes Served complete
Identity 1/2 Partly declared
Quotable signals 1/4 Schema, date, author, answers
Answer readiness 0 found

No heading is followed by a concise 40 to 60 word answer, the shape featured snippets and AI overviews extract.

How to fix
How to fix
Open at least one section with a direct 40 to 60 word answer to the question its heading poses.
Content freshness

The page publishes no date. Not expected on a page like this; worth adding if its content goes out of date.

How to fix
How to fix
<time datetime="2026-09-17">17 September 2026</time>, or datePublished in Article structured data.
Answer schema

No structured data an answer engine can lift directly, such as FAQPage, HowTo or Article.

How to fix
How to fix
Mark up question-and-answer content as FAQPage, or step-by-step content as HowTo.
Page subject

No structured data describes what this page is about.

Found: WebApplication, Organization, WebSite
None of these declare the page's subject.

3 types: WebApplication, Organization, WebSite

How to fix
How to fix
Describe the page with the type that fits it, Article for writing, Product for a product, FAQPage for questions and answers. Boilerplate like Organization and BreadcrumbList identifies the site, not the page.
llms.txt for AI agents

No llms.txt. AI coding agents have no curated map of this site.

https://www.vedhora.com/llms.txt returned nothing
How to fix
How to fix
A markdown file at /llms.txt listing your most useful pages with one-line descriptions. It does not affect how AI assistants cite you in answers, and nobody has shown that it does. What it helps is agents reading your documentation directly: Anthropic supports it, Perplexity uses it to choose pages, and Cursor, Continue and Cline navigate docs with it. Worth doing for a documentation or API site, and safe to skip otherwise.
Attribution

Attribution signals present: publisher in structured data, author meta tag, privacy policy.

publisher in structured data, author meta tag, privacy policy

Extractable structure 808 words

808 words across 17 headings, 2 lists and 0 tables.

Publisher identity

The page names who is behind it: Vedhora.

Readable without JavaScript

The page reads the same with and without JavaScript.

AI crawler access 10 checked

Every AI crawler checked is allowed to read this page.

Speed & delivery

What makes the page slow, and what the loading experience measures.

i 1✓ 1192% · excellent
Rendered page
The page as it rendered on a mobile viewport during the performance test
Mobile, measured
The page as it rendered on a desktop viewport
Desktop, measured
LCP Good
0.94s

Largest Contentful Paint

Target ≤ 2.5s

What this measures

How long until the largest thing on screen, usually the hero image, video or headline block, has finished rendering. It is a proxy for "when did this page feel loaded".

What moves it: Serve the hero image in a modern format at the size it is displayed, preload it, and remove render-blocking CSS and JavaScript ahead of it. A slow server response delays it too, so check TTFB first.

INP Good
6ms

Interaction to Next Paint

Target ≤ 200ms

What this measures

How long the page takes to respond visibly after a tap, click or key press, measured across every interaction, not just the first. High INP is what makes a page feel unresponsive even once it looks ready.

What moves it: Break up long JavaScript tasks so the main thread is free to respond, defer work that is not needed for the interaction, and avoid large re-renders on every event.

CLS Good
0

Cumulative Layout Shift

Target ≤ 0.1

What this measures

How much visible content jumps around while the page loads. This is what makes someone tap the wrong thing because a banner or image pushed the layout down underneath their finger.

What moves it: Give images and video explicit width and height so the browser reserves the space, reserve room for ads and embeds, and avoid inserting content above what is already on screen.

FCP Good
0.94s

First Contentful Paint

Target ≤ 1.8s

What this measures

How long until anything at all appears, the first text or image painted. It separates "the page starts slowly" from "the biggest element is slow": a fast FCP with a slow LCP points at the hero, while both slow points at the server.

What moves it: Cut render-blocking CSS and JavaScript in the head, inline the styles needed for the first screen, and improve the server response time.

TTFBNo data
n/a

Real-user response time

Target ≤ 800ms

Needs real-user data from Chrome UX Report

Render-blocking resources 3 found

3 resources in <head> block the first paint, delaying when anything appears on screen.

stylesheet: /_next/static/css/07765f97b38371d2.css
stylesheet: /_next/static/css/323ade9cd44bd04a.css
script: /_next/static/chunks/polyfills-42372ed130431b0a.js
How to fix
How to fix
Add defer to scripts, inline critical CSS, and load the rest asynchronously.
Time to first byte

Time to first byte is 76 ms.

HTML size 90 KB

The HTML document is 90 KB.

Deprecated tags

No deprecated HTML tags are used.

Inline styles 15 found

15 inline style attributes.

Compression

The response is compressed with br.

Content-Encoding: br
Page weight 36 requests · 601 KB

The page loads 36 requests totalling 601 KB.

What loaded, by type

Type RequestsTransferred
script18of 13 declared424 KB
font274 KB
image7of 16 declared56 KB
stylesheet218 KB
document116 KB
other614 KB

Of these, 2 requests (179 KB) come from third-party domains. The HTML declares 16 images but only 7 loaded, the rest are lazy-loaded and fetched when scrolled to.

Third-party services 2 services · 179 KB

2 third-party services load on this page, adding 179 KB.

Third-party services

Service TransferredMain thread
Google Tag Manager178 KB95ms
Google Analytics1 KBunder 1ms

0.1s of main-thread time

Security

Transport security, reputation and the response headers that protect visitors.

! 1i 6✓ 646% · needs work
Clickjacking protection

Nothing prevents this page being embedded in a frame, which allows clickjacking.

How to fix
How to fix
Content-Security-Policy: frame-ancestors 'self'
Email addresses in the page 1 found

1 email address is written into the page as plain text, where harvesting bots collect them for spam and phishing.

[email protected]
How to fix
How to fix
Use a contact form, or show the address through a script or as an image. If the address must stay, give it a strong spam filter.
MIME sniffing

No X-Content-Type-Options header, so browsers may guess a resource type and execute it.

How to fix
How to fix
X-Content-Type-Options: nosniff
Referrer policy

No Referrer-Policy header, so full URLs may leak to third-party sites.

How to fix
How to fix
Referrer-Policy: strict-origin-when-cross-origin
Content Security Policy

No Content-Security-Policy, the main defence against cross-site scripting.

How to fix
How to fix
Content-Security-Policy: default-src 'self'
Permissions policy

No Permissions-Policy header, so any script or embed on the page may ask for the camera, microphone or location.

How to fix
How to fix
Permissions-Policy: camera=(), microphone=(), geolocation=()
security.txt

No security.txt, so somebody who finds a vulnerability has no published way to tell you about it.

https://www.vedhora.com/.well-known/security.txt
How to fix
How to fix
Publish /.well-known/security.txt with a Contact: line (an email address or a form) and an Expires: date.
HSTS

HTTPS is enforced with Strict-Transport-Security.

max-age=63072000
Cookie flags

The page sets no cookies, so there are none to expose.

Version disclosure

No software versions are disclosed in headers or the page.

TLS certificate 44 days left

The TLS certificate is valid for another 44 days, issued by Let's Encrypt.

44 days remaining
Google Web Risk

Not listed by Google Web Risk for malware, phishing or unwanted software.

TLS version TLS 1.3

Connections use TLS 1.3.

Server & domain

The server and the domain behind the page: protocol, network, registration and email records.

i 2✓ 571% · good
IPv6

www.vedhora.com has no IPv6 address. Visitors on IPv6-only mobile networks reach it through a translation gateway, which adds a step.

How to fix
How to fix
Add an AAAA record. Most hosts and every major CDN provide an IPv6 address.
DMARC policy

vedhora.com has no DMARC record, so mail servers have no instruction for mail that fails SPF or DKIM. Gmail and Yahoo require one from bulk senders.

How to fix
How to fix
Publish a TXT record at _dmarc.vedhora.com, starting with v=DMARC1; p=none; rua=mailto:[email protected] to collect reports, then tighten to quarantine or reject.
HTTP/2 HTTP/2

Served over HTTP/2, which loads a page's files in parallel over one connection.

CDN Vercel

Served through Vercel, a CDN, so visitors get the page from a server near them.

Domain expiry 317 days left

vedhora.com is registered until 26 Sep 2027 with Cloudflare, Inc.

317 days remaining
Domain age Under a year old

vedhora.com was registered on 26 Sep 2026, under a year ago. Age is not a ranking factor, but an established name is one buyers and partners look for.

SPF record

vedhora.com publishes an SPF record: v=spf1 include:_spf.mx.cloudflare.net ~all

ads.txt

No ad network loads on this page, so ads.txt is not needed.

Links, media & schema

Links, images and structured data.

! 1i 1✓ 1083% · good
Social share preview From this page's Open Graph tags
Image dimensions 14 found

14 images have no width and height, so the page shifts as they load (hurting CLS).

# / lineImage source
#1 L1/_next/image?url=%2Fblog%2Fyogini-dasha-when-two-clocks-agree%2Fcover.jpg&w=3840&q=75<img alt="Yogini Dasha: When Two Clocks Agree" loading="lazy" decoding="async" data-nimg="fill" class="object-cover hover:scale-105 transition-transform duration-300" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, 36…
#2 L1/_next/image?url=%2Fblog%2Fwhat-a-lamp-flame-tells-you%2Fcover.jpg&w=3840&q=75<img alt="What a Lamp's Flame Tells You" loading="lazy" decoding="async" data-nimg="fill" class="object-cover hover:scale-105 transition-transform duration-300" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, 360px" s…
#3 L1/_next/image?url=%2Fblog%2Feclipses-rahu-ketu-and-the-shadow%2Fcover.jpg&w=3840&q=75<img alt="Eclipses: Rahu, Ketu and the Shadow" loading="lazy" decoding="async" data-nimg="fill" class="object-cover hover:scale-105 transition-transform duration-300" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, 36…
#4 L1/_next/image?url=%2Fblog%2Ftwins-same-minute-different-lives%2Fcover.jpg&w=3840&q=75<img alt="Twins: Same Minute, Different Lives" loading="lazy" decoding="async" data-nimg="fill" class="object-cover hover:scale-105 transition-transform duration-300" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, 36…
#5 L1/_next/image?url=%2Fblog%2Futtarayana-when-the-sun-turns-north%2Fcover.jpg&w=3840&q=75<img alt="Uttarayana: When the Sun Turns North" loading="lazy" decoding="async" data-nimg="fill" class="object-cover hover:scale-105 transition-transform duration-300" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, 3…
#6 L1/_next/image?url=%2Fblog%2Fpalm-leaf-mystery-of-nadi%2Fcover.jpg&w=3840&q=75<img alt="The Palm-Leaf Mystery of Nadi" loading="lazy" decoding="async" data-nimg="fill" class="object-cover hover:scale-105 transition-transform duration-300" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, 360px" s…
#7 L1/_next/image?url=%2Fblog%2Fwhy-saturday-comes-before-sunday%2Fcover.jpg&w=3840&q=75<img alt="Why Saturday Comes Before Sunday" loading="lazy" decoding="async" data-nimg="fill" class="object-cover hover:scale-105 transition-transform duration-300" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, 360px…
#8 L1/_next/image?url=%2Fblog%2Fjupiter-exalted-in-cancer-2027%2Fcover.jpg&w=3840&q=75<img alt="Jupiter Exalted in Cancer 2027: Who Benefits Most" loading="lazy" decoding="async" data-nimg="fill" class="object-cover hover:scale-105 transition-transform duration-300" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 76…
#9 L1/_next/image?url=%2Fblog%2Fhow-to-read-a-birth-chart%2Fcover-labelled.jpg&w=3840&q=75<img alt="How to Read a Birth Chart in 6 Steps" loading="lazy" decoding="async" data-nimg="fill" class="object-cover group-hover:scale-105 transition-transform duration-300" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 640px) 10…
#10 L1/_next/image?url=%2Fblog%2Fwhat-is-lagna-ascendant-vedic-astrology%2Fcover.jpg&w=3840&q=75<img alt="What Is Lagna? Your Ascendant and Why Birth Time Matters" loading="lazy" decoding="async" data-nimg="fill" class="object-cover group-hover:scale-105 transition-transform duration-300" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(…
#11 L1/_next/image?url=%2Fblog%2Fthe-12-houses-explained%2Fcover-diamond.jpg&w=3840&q=75<img alt="The 12 Houses, Simply Explained" loading="lazy" decoding="async" data-nimg="fill" class="object-cover group-hover:scale-105 transition-transform duration-300" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 640px) 100vw, …
#12 L1/_next/image?url=%2Fblog%2Fthe-12-rashis-explained%2Fcover-diamond.jpg&w=3840&q=75<img alt="The 12 Rashis of the Vedic Zodiac" loading="lazy" decoding="async" data-nimg="fill" class="object-cover group-hover:scale-105 transition-transform duration-300" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 640px) 100vw…
#13 L1/_next/image?url=%2Fblog%2Fthe-27-nakshatras-explained%2Fcover.jpg&w=3840&q=75<img alt="The 27 Nakshatras: Are They Real, and Are They Your Soul?" loading="lazy" decoding="async" data-nimg="fill" class="object-cover group-hover:scale-105 transition-transform duration-300" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="…
#14 L1/_next/image?url=%2Fblog%2Fhow-your-dasha-clock-is-set-at-birth%2Fcover.jpg&w=3840&q=75<img alt="How Your Dasha Clock Is Set at Birth" loading="lazy" decoding="async" data-nimg="fill" class="object-cover group-hover:scale-105 transition-transform duration-300" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 640px) 10…
How to fix
How to fix
<img src="…" width="800" height="600">, the browser reserves the space before decoding.
Anchor text

The anchor "read article" points to 8 different internal pages.

How to fix
How to fix
Vary anchor text to match each destination.
Structured data

Structured data is valid: WebApplication, Organization, WebSite.

WebApplication, Organization, WebSite

3 types: WebApplication, Organization, WebSite

Rich result eligibility

Eligible for rich results via Organization.

Organization

1 type: Organization

Link distribution 60 resources

58 internal and 2 external links.

58 internal, 2 external

58 internal, 2 external

Link rel attributes

Outbound link rel attributes look appropriate.

In-page anchors

In-page anchors resolve to real targets.

Image alt text

All images carry an alt attribute.

Image formats

No heavy legacy image formats found.

Image loading

Image loading strategy looks sound.

Responsive images

Images are served responsively or are small enough not to need it.

Broken links 25 checked

All 25 checked links resolve.

What to fix first

Ranked by impact against effort, the top of this list buys the most for the least work.

1
! Recommended 14 images have no width and height, so the page shifts as they load (hurting CLS).
<img src="…" width="800" height="600">, the browser reserves the space before decoding.
quick fix
2
! Recommended Nothing prevents this page being embedded in a frame, which allows clickjacking.
Content-Security-Policy: frame-ancestors 'self'
quick fix
3
· Notice 3 resources in <head> block the first paint, delaying when anything appears on screen.
Add defer to scripts, inline critical CSS, and load the rest asynchronously.
moderate
4
· Notice The page publishes no date. Not expected on a page like this; worth adding if its content goes out of date.
<time datetime="2026-09-17">17 September 2026</time>, or datePublished in Article structured data.
quick fix
5
· Notice No structured data describes what this page is about.
Describe the page with the type that fits it, Article for writing, Product for a product, FAQPage for questions and answers. Boilerplate like Organization and BreadcrumbList identifies the site, not the page.
quick fix
6
· Notice No heading is followed by a concise 40 to 60 word answer, the shape featured snippets and AI overviews extract.
Open at least one section with a direct 40 to 60 word answer to the question its heading poses.
moderate
7
· Notice The URL redirects once before resolving, costing an extra round trip.
Link to the final URL directly so visitors and crawlers skip the hop.
quick fix
8
· Notice No X-Content-Type-Options header, so browsers may guess a resource type and execute it.
X-Content-Type-Options: nosniff
quick fix
9
· Notice The other spellings of this address arrive here, but not in one permanent step: a chain costs time on every visit, and a temporary redirect tells search engines the move may not last.
Redirect each spelling straight to the final address with a 301 or 308.
quick fix
10
· Notice vedhora.com has no DMARC record, so mail servers have no instruction for mail that fails SPF or DKIM. Gmail and Yahoo require one from bulk senders.
Publish a TXT record at _dmarc.vedhora.com, starting with v=DMARC1; p=none; rua=mailto:[email protected] to collect reports, then tighten to quarantine or reject.
quick fix
11
· Notice No structured data an answer engine can lift directly, such as FAQPage, HowTo or Article.
Mark up question-and-answer content as FAQPage, or step-by-step content as HowTo.
moderate
12
· Notice No Content-Security-Policy, the main defence against cross-site scripting.
Content-Security-Policy: default-src 'self'
involved

Score breakdown

How each area scored. Categories that could not be measured are excluded rather than counted as zero.

Indexability & Crawling38 checks · 12 issues
78
On-Page Content & Structure22 checks · 4 issues
94
Core Web Vitals12 checks · 1 issue
99
Schema & Rich Snippets2 checks · 0 issues
100
Media & Links10 checks · 2 issues
94
Overall scoreGrade A · 65/86 passed
90