Catalog / omarfarooq.dev
83

SEO audit for omarfarooq.dev

Omar Farooq Shah - Fullstack Developer

portfolio

Health 83/100 (good) · 50 pages crawled · generated 2026-08-26

Download Markdown report (feed to ChatGPT / Claude / Cursor)

Full Stack Developer from Pakistan. React.js, Next.js, Remix.js,React Router v7 (formerly remix.js) & Golang. Explore my portfolio & projects.

Screenshot of omarfarooq.dev
50
pages crawled
49
indexable pages
0
errors
20
warnings
316
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Content 89 0 18 47
Canonical 99 0 1 0
Structured Data 99 0 1 0
Agent Readiness 100 0 0 3
Cache 100 0 0 49
Duplicate 100 0 0 30
Meta Description 100 0 0 14
Performance 100 0 0 124
Security 100 0 0 49
Findings

Warnings (3 rules)

warning Missing canonical tag

Rule canonical.missing · Canonical · 1 occurrence(s)

warning LocalBusiness schema missing required properties (name/address)

Rule schema.localbusiness_incomplete · Structured Data · 1 occurrence(s)

  • https://www.omarfarooq.dev/ — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (telephone, openingHoursSpecification, geo, priceRange), which enrich the result.

Notices (14 rules)

notice Invalid ARIA role

Rule agent.aria_invalid_role · Agent Readiness · 1 occurrence(s)

notice Heading levels skip a level

Rule agent.heading_skip · Agent Readiness · 1 occurrence(s)

notice No llms.txt for AI agents

Rule agent.llms_txt_missing · Agent Readiness · 1 occurrence(s)

notice Page served uncached (no-store/private or CDN bypass)

Rule cache.not_cacheable · Cache · 49 occurrence(s)

notice Main text is hard to read (low Flesch Reading Ease)

Rule content.readability_poor · Content · 12 occurrence(s)

  • https://www.omarfarooq.dev/ — this page reads as very difficult (Flesch Reading Ease 24, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.omarfarooq.dev/apps — this page reads as very difficult (Flesch Reading Ease 12, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.omarfarooq.dev/apps/babypips-lot-size-calculator — this page reads as difficult (Flesch Reading Ease 49, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.omarfarooq.dev/apps/bankrate-mortgage-calculator — this page reads as difficult (Flesch Reading Ease 47, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.omarfarooq.dev/apps/birthday-countdown-candles-up — this page reads as difficult (Flesch Reading Ease 48, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.omarfarooq.dev/apps/forex-economic-calendar — this page reads as difficult (Flesch Reading Ease 37, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.omarfarooq.dev/apps/forex-event — this page reads as difficult (Flesch Reading Ease 44, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.omarfarooq.dev/apps/grade-calculator — this page reads as difficult (Flesch Reading Ease 49, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.omarfarooq.dev/apps/ipo-calendar — this page reads as difficult (Flesch Reading Ease 46, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.omarfarooq.dev/apps/lottery-post-results — this page reads as difficult (Flesch Reading Ease 46, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.omarfarooq.dev/apps/pa-lottery — this page reads as difficult (Flesch Reading Ease 47, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.omarfarooq.dev/apps/satta-matka-kalyan — this page reads as difficult (Flesch Reading Ease 45, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.

notice Duplicate meta description across pages

Rule duplicate.meta_desc · Duplicate · 30 occurrence(s)

notice Likely hero image lacks fetchpriority=high

Rule images.hero_no_fetchpriority · Performance · 15 occurrence(s)

  • https://www.omarfarooq.dev/apps — the likely hero/LCP image (yi7bvmhj_jnljqa-1pjc6pwui-q4syeerffjojv-_b0js2klargu3akaijiatg2fnqqcjgshdvxvxlmclgt66a=w480-h960-rw) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.omarfarooq.dev/apps/babypips-lot-size-calculator — the likely hero/LCP image (yi7bvmhj_jnljqa-1pjc6pwui-q4syeerffjojv-_b0js2klargu3akaijiatg2fnqqcjgshdvxvxlmclgt66a=w480-h960-rw) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.omarfarooq.dev/apps/bankrate-mortgage-calculator — the likely hero/LCP image (180x180bb.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.omarfarooq.dev/apps/forex-economic-calendar — the likely hero/LCP image (400x400bb-75.webp) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.omarfarooq.dev/apps/forex-event — the likely hero/LCP image (180x180bb.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.omarfarooq.dev/apps/gold-price-pakistan — the likely hero/LCP image (360x360bb.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.omarfarooq.dev/apps/grade-calculator — the likely hero/LCP image (180x180bb.png˝) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.omarfarooq.dev/apps/ipo-calendar — the likely hero/LCP image (400x400bb-75.webp) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.omarfarooq.dev/apps/lottery-post-results — the likely hero/LCP image (400x400bb-75.webp) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.omarfarooq.dev/apps/pa-lottery — the likely hero/LCP image (180x180bb.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.omarfarooq.dev/apps/psca-e-challan-check-app — the likely hero/LCP image (135x135bb.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.omarfarooq.dev/apps/satta-matka-kalyan — the likely hero/LCP image (135x135bb.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.omarfarooq.dev/apps/simple-expense-tracker — the likely hero/LCP image (360x360bb.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.omarfarooq.dev/apps/wapda-bill-check — the likely hero/LCP image (180x180bb.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.omarfarooq.dev/apps/wapda-bill-checker-app — the likely hero/LCP image (180x180bb.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.

notice Legacy <meta name=keywords> tag present (Google ignores it)

Rule meta.keywords_present · Content · 17 occurrence(s)

notice Legacy image format (jpg/png/gif) with no next-gen fallback

Rule perf.images_legacy_format · Performance · 11 occurrence(s)

notice No ETag header (no conditional GET for unchanged pages)

Rule perf.no_etag · Performance · 49 occurrence(s)

  • https://www.omarfarooq.dev/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/babypips-lot-size-calculator — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/babypips-lot-size-calculator/privacy-policy — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/babypips-lot-size-calculator/terms — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/bankrate-mortgage-calculator — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/bankrate-mortgage-calculator/privacy-policy — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/bankrate-mortgage-calculator/terms — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/birthday-countdown-candles-up — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/birthday-countdown-candles-up/privacy-policy — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/birthday-countdown-candles-up/terms — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/forex-economic-calendar — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/forex-economic-calendar/privacy-policy — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/forex-economic-calendar/terms — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/forex-event — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/forex-event/privacy-policy — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/forex-event/terms — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/grade-calculator — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/grade-calculator/privacy-policy — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/grade-calculator/terms — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/ipo-calendar — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/ipo-calendar/privacy-policy — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/ipo-calendar/terms — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/apps/simple-expense-tracker — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.omarfarooq.dev/support — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.

notice No Last-Modified header (no conditional GET for unchanged pages)

Rule perf.no_last_modified · Performance · 49 occurrence(s)

  • https://www.omarfarooq.dev/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/babypips-lot-size-calculator — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/babypips-lot-size-calculator/privacy-policy — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/babypips-lot-size-calculator/terms — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/bankrate-mortgage-calculator — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/bankrate-mortgage-calculator/privacy-policy — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/bankrate-mortgage-calculator/terms — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/birthday-countdown-candles-up — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/birthday-countdown-candles-up/privacy-policy — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/birthday-countdown-candles-up/terms — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/forex-economic-calendar — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/forex-economic-calendar/privacy-policy — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/forex-economic-calendar/terms — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/forex-event — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/forex-event/privacy-policy — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/forex-event/terms — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/grade-calculator — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/grade-calculator/privacy-policy — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/grade-calculator/terms — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/ipo-calendar — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/ipo-calendar/privacy-policy — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/ipo-calendar/terms — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/apps/simple-expense-tracker — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.omarfarooq.dev/support — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.

notice Missing recommended security headers

Rule security.missing_headers · Security · 49 occurrence(s)

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://www.omarfarooq.dev/apps
Mobile apps — Omar.Developer
200 yes 175 49
https://www.omarfarooq.dev/
Omar Farooq Shah - Fullstack Developer
200 yes 276 48
https://www.omarfarooq.dev/support
Support — Omar.Developer
200 yes 49 48
https://www.omarfarooq.dev/apps/babypips-lot-size-calculator
Babypips Lot Size Calculator — Omar.Developer
200 yes 184 4
https://www.omarfarooq.dev/apps/bankrate-mortgage-calculator
Bankrate Mortgage Calculator — Omar.Developer
200 yes 151 4
https://www.omarfarooq.dev/apps/forex-economic-calendar
Forex Economic Calendar — Omar.Developer
200 yes 163 4
https://www.omarfarooq.dev/apps/forex-event
Forex Event Calendar — Omar.Developer
200 yes 150 4
https://www.omarfarooq.dev/apps/gold-price-pakistan
Gold Price Pakistan — Omar.Developer
200 yes 164 4
https://www.omarfarooq.dev/apps/grade-calculator
Final Grades Calculator — Omar.Developer
200 yes 139 4
https://www.omarfarooq.dev/apps/ipo-calendar
IPO Calendar — Omar.Developer
200 yes 163 4
https://www.omarfarooq.dev/apps/lottery-post-results
Lottery Post Results — Omar.Developer
200 yes 158 4
https://www.omarfarooq.dev/apps/pa-lottery
PA Lottery — Omar.Developer
200 yes 163 4
https://www.omarfarooq.dev/apps/satta-matka-kalyan
Satta Matka Kalyan — Omar.Developer
200 yes 140 4
https://www.omarfarooq.dev/apps/simple-expense-tracker
Simple Expense Tracker — Omar.Developer
200 yes 171 4
https://www.omarfarooq.dev/apps/wapda-bill-check
WAPDA Bill check — Omar.Developer
200 yes 150 4
https://www.omarfarooq.dev/apps/wapda-bill-checker-app
MEPCO Online Bill — Omar.Developer
200 yes 150 4
https://www.omarfarooq.dev/apps/psca-e-challan-check-app
PSCA E-Challan Check App — Omar.Developer
200 yes 155 2
https://www.omarfarooq.dev/apps/babypips-lot-size-calculator/terms
Terms & Conditions for Babypips Lot Size Calculator — Omar.Developer
200 yes 488 2
https://www.omarfarooq.dev/apps/bankrate-mortgage-calculator/terms
Terms & Conditions for Bankrate Mortgage Calculator — Omar.Developer
200 yes 551 2
https://www.omarfarooq.dev/apps/forex-economic-calendar/terms
Terms & Conditions for Forex Economic Calendar — Omar.Developer
200 yes 523 2
https://www.omarfarooq.dev/apps/forex-event/terms
Terms & Conditions for Forex Event Calendar — Omar.Developer
200 yes 520 2
https://www.omarfarooq.dev/apps/gold-price-pakistan/terms
Terms & Conditions for Gold Price Pakistan — Omar.Developer
200 yes 541 2
https://www.omarfarooq.dev/apps/grade-calculator/terms
Terms & Conditions for Final Grades Calculator — Omar.Developer
200 yes 512 2
https://www.omarfarooq.dev/apps/ipo-calendar/terms
Terms & Conditions for IPO Calendar — Omar.Developer
200 yes 602 2
https://www.omarfarooq.dev/apps/lottery-post-results/terms
Terms & Conditions for Lottery Post Results — Omar.Developer
200 yes 517 2
https://www.omarfarooq.dev/apps/pa-lottery/terms
Terms & Conditions for PA Lottery — Omar.Developer
200 yes 525 2
https://www.omarfarooq.dev/apps/satta-matka-kalyan/terms
Terms & Conditions for Satta Matka Kalyan — Omar.Developer
200 yes 559 2
https://www.omarfarooq.dev/apps/simple-expense-tracker/terms
Terms & Conditions for Simple Expense Tracker — Omar.Developer
200 yes 501 2
https://www.omarfarooq.dev/apps/wapda-bill-check/terms
Terms & Conditions for WAPDA Bill check — Omar.Developer
200 yes 528 2
https://www.omarfarooq.dev/apps/wapda-bill-checker-app/terms
Terms & Conditions for MEPCO Online Bill — Omar.Developer
200 yes 533 2
https://www.omarfarooq.dev/apps/babypips-lot-size-calculator/privacy-policy
Privacy Policy for Babypips Lot Size Calculator — Omar.Developer
200 yes 635 1
https://www.omarfarooq.dev/apps/bankrate-mortgage-calculator/privacy-policy
Privacy Policy for Bankrate Mortgage Calculator — Omar.Developer
200 yes 638 1
https://www.omarfarooq.dev/apps/forex-economic-calendar/privacy-policy
Privacy Policy for Forex Economic Calendar — Omar.Developer
200 yes 614 1
https://www.omarfarooq.dev/apps/forex-event/privacy-policy
Privacy Policy for Forex Event Calendar — Omar.Developer
200 yes 611 1
https://www.omarfarooq.dev/apps/gold-price-pakistan/privacy-policy
Privacy Policy for Gold Price Pakistan — Omar.Developer
200 yes 669 1
https://www.omarfarooq.dev/apps/grade-calculator/privacy-policy
Privacy Policy for Final Grades Calculator — Omar.Developer
200 yes 626 1
https://www.omarfarooq.dev/apps/ipo-calendar/privacy-policy
Privacy Policy for IPO Calendar — Omar.Developer
200 yes 670 1
https://www.omarfarooq.dev/apps/lottery-post-results/privacy-policy
Privacy Policy for Lottery Post Results — Omar.Developer
200 yes 643 1
https://www.omarfarooq.dev/apps/pa-lottery/privacy-policy
Privacy Policy for PA Lottery — Omar.Developer
200 yes 642 1
https://www.omarfarooq.dev/apps/satta-matka-kalyan/privacy-policy
Privacy Policy for Satta Matka Kalyan — Omar.Developer
200 yes 594 1
https://www.omarfarooq.dev/apps/simple-expense-tracker/privacy-policy
Privacy Policy for Simple Expense Tracker — Omar.Developer
200 yes 637 1
https://www.omarfarooq.dev/apps/wapda-bill-check/privacy-policy
Privacy Policy for WAPDA Bill check — Omar.Developer
200 yes 677 1
https://www.omarfarooq.dev/apps/wapda-bill-checker-app/privacy-policy
Privacy Policy for MEPCO Online Bill — Omar.Developer
200 yes 678 1
https://www.omarfarooq.dev/apps/birthday-countdown-candles-up
Birthday Countdown: CandlesUp — Omar.Developer
200 yes 108 2
https://www.omarfarooq.dev/apps/hours-calculator
Hours Calculator — Omar.Developer
200 yes 104 2
https://www.omarfarooq.dev/apps/birthday-countdown-candles-up/terms
Terms & Conditions for Birthday Countdown: CandlesUp — Omar.Developer
200 yes 504 2
https://www.omarfarooq.dev/apps/hours-calculator/terms
Terms & Conditions for Hours Calculator — Omar.Developer
200 yes 499 2
https://www.omarfarooq.dev/apps/birthday-countdown-candles-up/privacy-policy
Privacy Policy for Birthday Countdown: CandlesUp — Omar.Developer
200 yes 627 1
https://www.omarfarooq.dev/apps/hours-calculator/privacy-policy
Privacy Policy for Hours Calculator — Omar.Developer
200 yes 627 1
https://www.omarfarooq.dev/cv.pdf 200 no 0 1

Audit your own site — free

157 checks, internal PageRank, render-diff. No signup, results in ~30s.

Scan your site →