Catalog / birdi.io
65

SEO audit for birdi.io

Birdi | The Collaborative Geospatial Platform for Teams

saas

Health 65/100 (fair) · 50 pages crawled · generated 2026-08-26

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

Birdi brings your whole team together around geospatial data. Keep projects moving with one collaborative platform for exploring, understanding, and sharing 2D and 3D insights.

Screenshot of birdi.io
50
pages crawled
50
indexable pages
0
errors
68
warnings
490
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Agent Readiness 70 0 50 21
Content 90 0 16 63
Structured Data 99 0 1 25
Titles 99 0 1 4
Duplicate 100 0 0 2
Headings 100 0 0 1
Images 100 0 0 50
Links 100 0 0 2
Meta Description 100 0 0 19
Mobile 100 0 0 50
Performance 100 0 0 145
Security 100 0 0 100
Social 100 0 0 8
Findings

Warnings (4 rules)

warning Control has no accessible name

Rule agent.control_no_name · Agent Readiness · 50 occurrence(s)

warning Schema describes content not visible on the page

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

  • https://www.birdi.io/get-access-mid-large-businesses — a schema name/headline ("Get Access to Birdi | Small Teams to Mid Large Businesses") does not appear in the page's visible text — Google's policies prohibit marking up content not visible to readers. This is a heuristic (a static-HTML substring check): JS-rendered or abbreviated names can be false positives, so verify before removing.

warning Title likely truncated in SERP (too wide)

Rule title.too_long · Titles · 1 occurrence(s)

Notices (21 rules)

notice Heading levels skip a level

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

notice No llms.txt for AI agents

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

  • https://www.birdi.io/ — no llms.txt found at the site root — add one so AI agents get a curated site summary

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

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

  • https://www.birdi.io/ — this page reads as difficult (Flesch Reading Ease 41, 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.birdi.io/about — 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.
  • https://www.birdi.io/birdi-demo-booked — this page reads as very difficult (Flesch Reading Ease 28, 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.birdi.io/blog — this page reads as difficult (Flesch Reading Ease 34, 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.birdi.io/book-a-demo — 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.
  • https://www.birdi.io/book-your-demo-time — this page reads as very difficult (Flesch Reading Ease 29, 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.birdi.io/careers — this page reads as difficult (Flesch Reading Ease 43, 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.birdi.io/centrally-manage-geospatial-data — this page reads as very difficult (Flesch Reading Ease 23, 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.birdi.io/complaints — this page reads as very difficult (Flesch Reading Ease 28, 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.birdi.io/construction — this page reads as very difficult (Flesch Reading Ease 23, 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.birdi.io/current-jobs — this page reads as very difficult (Flesch Reading Ease 28, 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.birdi.io/drone-services — this page reads as difficult (Flesch Reading Ease 42, 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.birdi.io/enterprise — this page reads as very difficult (Flesch Reading Ease 27, 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.birdi.io/events-contact — this page reads as very difficult (Flesch Reading Ease 29, 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.birdi.io/features — this page reads as difficult (Flesch Reading Ease 38, 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.birdi.io/features/visualize-any-geospatial-data-set — this page reads as very difficult (Flesch Reading Ease 27, 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.birdi.io/get-access — this page reads as very difficult (Flesch Reading Ease 25, 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.birdi.io/government — this page reads as very difficult (Flesch Reading Ease 4, 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.birdi.io/insurance — this page reads as very difficult (Flesch Reading Ease 3, 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.birdi.io/join-partner-program — this page reads as very difficult (Flesch Reading Ease 22, 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.birdi.io/mining-resources — this page reads as very difficult (Flesch Reading Ease 4, 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.birdi.io/pricing — this page reads as very difficult (Flesch Reading Ease 4, 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.birdi.io/thank-you — this page reads as very difficult (Flesch Reading Ease 16, 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.birdi.io/thank-you-for-requesting-access — this page reads as difficult (Flesch Reading Ease 33, 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.birdi.io/utilities — this page reads as very difficult (Flesch Reading Ease -2, 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 · 2 occurrence(s)

notice Multiple <h1> elements

Rule h1.multiple · Headings · 1 occurrence(s)

notice Likely hero image lacks fetchpriority=high

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

  • https://www.birdi.io/ — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/about — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/birdi-demo-booked — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/blog — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/blog-youre-subscribed — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/book-a-demo — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/book-your-demo-time — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/careers — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/complaints — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/construction — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/current-jobs — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/drone-services — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/events-contact — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/features — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/get-access — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/government — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/insurance — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/join-partner-program — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/mining-resources — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/partner-program — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/partner-resources-hub — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/pricing — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/privacy — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/terms-and-conditions — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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.birdi.io/utilities — the likely hero/LCP image (6269073bf80b8f35897b149d_group%20481511.svg) 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 Images without width/height (layout shift / CLS)

Rule images.missing_dimensions · Images · 50 occurrence(s)

notice Internal link has no anchor text / accessible name

Rule links.no_anchor_text · Links · 2 occurrence(s)

  • https://www.birdi.io/partner-program — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://www.birdi.io/partner-resources-hub — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.

notice Meta description too short

Rule meta_desc.too_short · Meta Description · 3 occurrence(s)

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

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

  • https://www.birdi.io/ — 59 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/about — 69 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/birdi-demo-booked — 37 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/blog — 27 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/blog-youre-subscribed — 1 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/book-a-demo — 37 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/book-your-demo-time — 36 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/careers — 7 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/centrally-manage-geospatial-data — 46 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/construction — 39 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/drone-services — 15 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/enterprise — 52 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/facilities-maintenance — 9 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/features — 18 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/features/visualize-any-geospatial-data-set — 15 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/get-access — 2 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/government — 10 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/insurance — 10 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/mining-resources — 50 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/partner-program — 23 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/partner-resources-hub — 21 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/pricing — 39 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/thank-you — 36 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/thank-you-for-requesting-access — 36 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.birdi.io/utilities — 12 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.

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

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

  • https://www.birdi.io/ — 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.birdi.io/about — 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.birdi.io/birdi-demo-booked — 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.birdi.io/blog — 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.birdi.io/blog-youre-subscribed — 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.birdi.io/book-a-demo — 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.birdi.io/book-your-demo-time — 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.birdi.io/careers — 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.birdi.io/complaints — 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.birdi.io/construction — 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.birdi.io/current-jobs — 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.birdi.io/drone-services — 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.birdi.io/events-contact — 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.birdi.io/features — 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.birdi.io/get-access — 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.birdi.io/government — 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.birdi.io/insurance — 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.birdi.io/join-partner-program — 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.birdi.io/mining-resources — 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.birdi.io/partner-program — 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.birdi.io/partner-resources-hub — 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.birdi.io/pricing — 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.birdi.io/privacy — 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.birdi.io/terms-and-conditions — 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.birdi.io/utilities — 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 Slow server response

Rule perf.slow_response · Performance · 1 occurrence(s)

notice Missing recommended security headers

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

notice target=_blank link without rel=noopener (tab-napping)

Rule security.unsafe_cross_origin_links · Security · 50 occurrence(s)

  • https://www.birdi.io/ — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/about — 14 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/birdi-demo-booked — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/blog — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/blog-youre-subscribed — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/book-a-demo — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/book-your-demo-time — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/careers — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/complaints — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/construction — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/current-jobs — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/drone-services — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/events-contact — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/features — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/get-access — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/government — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/insurance — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/join-partner-program — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/mining-resources — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/partner-program — 7 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/partner-resources-hub — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/pricing — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/privacy — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/terms-and-conditions — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://www.birdi.io/utilities — 6 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".

notice Title tag is identical to the H1 (missed keyword variation)

Rule title.same_as_h1 · Titles · 2 occurrence(s)

notice Title is very short

Rule title.too_short · Titles · 2 occurrence(s)

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://www.birdi.io/
Birdi | The Collaborative Geospatial Platform for Teams
200 yes 1580 50
https://www.birdi.io/about
About Us | Birdi
200 yes 771 50
https://www.birdi.io/birdi-geospatial-ai-geoai
GeoAI for Geospatial Workflows | Birdi
200 yes 1637 50
https://www.birdi.io/blog
Birdi Blog - Geospatial Tips and Insights
200 yes 445 50
https://www.birdi.io/book-a-demo
Book a Birdi Demo | Collaborative Geospatial Software For Teams
200 yes 159 50
https://www.birdi.io/careers
Careers at Birdi
200 yes 403 50
https://www.birdi.io/category/case-studies
Birdi Blog : Case Studies
200 yes 212 50
https://www.birdi.io/construction
Geospatial Software for Construction Teams | Birdi
200 yes 1640 50
https://www.birdi.io/consulting
Birdi for Consultants
200 yes 583 50
https://www.birdi.io/drone-services
Affordable Geospatial Software for Drone Services | Birdi
200 yes 581 50
https://www.birdi.io/enterprise
Geospatial Software for Enterprise Teams | Birdi
200 yes 827 50
https://www.birdi.io/facilities-maintenance
Birdi for Facilities and Maintenance
200 yes 380 50
https://www.birdi.io/features
Birdi features | Collaborate on geospatial data
200 yes 1237 50
https://www.birdi.io/government
Geospatial Software for Government | Birdi
200 yes 432 50
https://www.birdi.io/insurance
Geospatial Software for Insurance | Birdi
200 yes 418 50
https://www.birdi.io/mining-resources
Geospatial Software for Mining & Resources | Birdi
200 yes 889 50
https://www.birdi.io/partner-program
Birdi Partner Program | Recommended Geospatial Software
200 yes 1341 50
https://www.birdi.io/power-distributors
Birdi for Power Distributors
200 yes 734 50
https://www.birdi.io/pricing
Birdi Pricing | Plans for Collaborative Geospatial Work
200 yes 809 50
https://www.birdi.io/privacy
Privacy | Birdi
200 yes 1625 50
https://www.birdi.io/solo-professionals
Geospatial Software for Solo Professionals | Birdi
200 yes 699 50
https://www.birdi.io/teams
Geospatial Software for Growing Teams | Birdi
200 yes 621 50
https://www.birdi.io/terms-and-conditions
Birdi - Terms & Conditions
200 yes 12287 50
https://www.birdi.io/utilities
Geospatial Software for Utilities | Birdi
200 yes 535 50
https://www.birdi.io/get-access
Get Access to Birdi | Geospatial Software Made Simple
200 yes 116 11
https://www.birdi.io/get-access-solo-professionals
Get Access | Birdi for Small Businesses and Solo Professionals
200 yes 106 4
https://www.birdi.io/use-cases
Use Cases
200 yes 551 2
https://www.birdi.io/current-jobs
Current Jobs
200 yes 122 1
https://www.birdi.io/join-partner-program
Partner Program
200 yes 109 1
https://www.birdi.io/get-access-mid-large-businesses
Get Access to Birdi | Small Teams to Mid Large Businesses
200 yes 101 1
https://www.birdi.io/birdi-demo-booked
Your Birdi Demo is Booked In
200 yes 122 1
https://www.birdi.io/centrally-manage-geospatial-data
Geospatial Software for Centrally Managing Data | Birdi
200 yes 930 1
https://www.birdi.io/inspect-assets-buildings-infrastructure
Geospatial Software for Efficient & Scalable Inspections | Birdi
200 yes 883 1
https://www.birdi.io/make-maps-for-anything
Make Maps for Anything | Birdi – Collaborative Geospatial Software for Teams
200 yes 614 1
https://www.birdi.io/manage-reports-records
Geospatial Software for Managing Reports and Records | Birdi
200 yes 771 1
https://www.birdi.io/scale-operations-with-geospatial-data
Geospatial Software for Scaling Operations | Birdi
200 yes 727 1
https://www.birdi.io/blog-post/2025-recap-birdi-features-shipped-this-year
Birdi Blog: 2025 recap: Birdi features shipped this year
200 yes 710 0
https://www.birdi.io/blog-youre-subscribed
Thank you - Blog Subscriber
200 yes 98 0
https://www.birdi.io/book-your-demo-time
Book Your Birdi Demo Time
200 yes 128 0
https://www.birdi.io/complaints
Birdi Complaints
200 yes 111 0
https://www.birdi.io/events-contact
Birdi @ Events: Contact Us
200 yes 116 0
https://www.birdi.io/features/visualize-any-geospatial-data-set
Geospatial Software for Visualizing Geospatial Data Sets | Birdi
200 yes 1213 0
https://www.birdi.io/landing/australian-geospatial-software-for-construction
Australian Geospatial Software for Construction | Birdi
200 yes 1638 0
https://www.birdi.io/meeting-booked
Your Meeting is Booked In
200 yes 117 0
https://www.birdi.io/partner-resources-hub
Partner Resources
200 yes 1103 0
https://www.birdi.io/platform-onboarding-setup-booked
Platform Onboarding Setup Session Booked | Birdi
200 yes 140 0
https://www.birdi.io/reviews
Reviews | Hear From Happy Birdi Customers
200 yes 421 0
https://www.birdi.io/thank-you
Thank You - Birdi Demo for Mid-Large Businesses
200 yes 107 0
https://www.birdi.io/thank-you-for-requesting-access
Thank You for Requesting Platform Access | Birdi
200 yes 145 0
https://www.birdi.io/thank-you-requesting-access-sole-trader
Thank You for Requesting Access | Birdi for Sole Traders
200 yes 141 0

Audit your own site — free

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

Scan your site →