Catalog / outoftheshadows.global
65

SEO audit for outoftheshadows.global

Home | Out of the Shadows

other

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

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

This Out of the Shadows Index tracks how 60 countries across 6 regions – home to  83% of the world’s children – are preventing and responding to sexual…

Screenshot of outoftheshadows.global
50
pages crawled
50
indexable pages
0
errors
245
warnings
407
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Structured Data 37 0 105 0
Links 70 0 50 0
Performance 70 0 50 149
Duplicate 81 0 32 5
Meta Description 98 0 4 3
Content 99 0 2 88
Hreflang 99 0 2 0
Agent Readiness 100 0 0 4
Cache 100 0 0 50
Canonical 100 0 0 2
Crawlability 100 0 0 1
Images 100 0 0 96
Security 100 0 0 3
Social 100 0 0 6
Findings

Warnings (11 rules)

warning Lorem-ipsum placeholder text in a live page

Rule content.lorem_ipsum · Content · 2 occurrence(s)

warning Duplicate page content

Rule duplicate.content · Duplicate · 2 occurrence(s)

warning Near-duplicate page content

Rule duplicate.near · Duplicate · 28 occurrence(s)

warning Duplicate <title> across pages

Rule duplicate.title · Duplicate · 2 occurrence(s)

warning hreflang set has no self-reference

Rule hreflang.missing_self · Hreflang · 2 occurrence(s)

warning Hero/LCP image is lazy-loaded (loading=lazy delays LCP)

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

  • https://outoftheshadows.global/ — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/data-explorer — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en/countries — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en/countries/algeria — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en/countries/angola — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en/countries/argentina — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en/countries/burkina-faso — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en/countries/cameroon — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en/countries/cote-divoire — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en/countries/dem-rep-of-congo — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en/countries/ethiopia — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en/countries/madagascar — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en/countries/niger — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en/countries/pakistan — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en/countries/saudi-arabia — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en/countries/sri-lanka — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/en/countries/uzbekistan — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/es/ — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/es/paises — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/es/paises/angola — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/fr/ — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/fr/pays — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/fr/pays/angola — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://outoftheshadows.global/rankings — the likely hero/LCP image (together-for-girls.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.

warning Internal link points to a redirect

Rule links.redirect_target · Links · 50 occurrence(s)

warning BreadcrumbList present but structurally incomplete

Rule schema.breadcrumb_incomplete · Structured Data · 5 occurrence(s)

  • https://outoftheshadows.global/ — a BreadcrumbList is present but structurally incomplete — missing required itemListElement. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://outoftheshadows.global/en — a BreadcrumbList is present but structurally incomplete — missing required itemListElement. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://outoftheshadows.global/es/ — a BreadcrumbList is present but structurally incomplete — missing required itemListElement. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://outoftheshadows.global/fr/ — a BreadcrumbList is present but structurally incomplete — missing required itemListElement. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://outoftheshadows.global/rankings — a BreadcrumbList is present but structurally incomplete — missing required itemListElement. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.

warning Rich-result schema missing required properties

Rule schema.invalid · Structured Data · 50 occurrence(s)

warning LocalBusiness schema missing required properties (name/address)

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

  • https://outoftheshadows.global/ — 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), which enrich the result.
  • https://outoftheshadows.global/data-explorer — 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), which enrich the result.
  • https://outoftheshadows.global/en — 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), which enrich the result.
  • https://outoftheshadows.global/en/countries — 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), which enrich the result.
  • https://outoftheshadows.global/en/countries/algeria — 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), which enrich the result.
  • https://outoftheshadows.global/en/countries/angola — 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), which enrich the result.
  • https://outoftheshadows.global/en/countries/argentina — 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), which enrich the result.
  • https://outoftheshadows.global/en/countries/burkina-faso — 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), which enrich the result.
  • https://outoftheshadows.global/en/countries/cameroon — 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), which enrich the result.
  • https://outoftheshadows.global/en/countries/cote-divoire — 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), which enrich the result.
  • https://outoftheshadows.global/en/countries/dem-rep-of-congo — 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), which enrich the result.
  • https://outoftheshadows.global/en/countries/ethiopia — 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), which enrich the result.
  • https://outoftheshadows.global/en/countries/madagascar — 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), which enrich the result.
  • https://outoftheshadows.global/en/countries/niger — 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), which enrich the result.
  • https://outoftheshadows.global/en/countries/pakistan — 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), which enrich the result.
  • https://outoftheshadows.global/en/countries/saudi-arabia — 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), which enrich the result.
  • https://outoftheshadows.global/en/countries/sri-lanka — 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), which enrich the result.
  • https://outoftheshadows.global/en/countries/uzbekistan — 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), which enrich the result.
  • https://outoftheshadows.global/es/ — 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), which enrich the result.
  • https://outoftheshadows.global/es/paises — 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), which enrich the result.
  • https://outoftheshadows.global/es/paises/angola — 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), which enrich the result.
  • https://outoftheshadows.global/fr/ — 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), which enrich the result.
  • https://outoftheshadows.global/fr/pays — 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), which enrich the result.
  • https://outoftheshadows.global/fr/pays/angola — 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), which enrich the result.
  • https://outoftheshadows.global/rankings — 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), which enrich the result.

Notices (17 rules)

notice Heading levels skip a level

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

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

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

notice Canonical points to a different URL

Rule canonical.non_self · Canonical · 2 occurrence(s)

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

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

  • https://outoftheshadows.global/ — this page reads as difficult (Flesch Reading Ease 36, 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://outoftheshadows.global/data-explorer — 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://outoftheshadows.global/en — this page reads as difficult (Flesch Reading Ease 36, 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://outoftheshadows.global/en/countries — this page reads as very difficult (Flesch Reading Ease 21, 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://outoftheshadows.global/en/countries/algeria — this page reads as difficult (Flesch Reading Ease 35, 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://outoftheshadows.global/en/countries/angola — this page reads as difficult (Flesch Reading Ease 36, 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://outoftheshadows.global/en/countries/argentina — this page reads as difficult (Flesch Reading Ease 35, 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://outoftheshadows.global/en/countries/bangladesh — this page reads as difficult (Flesch Reading Ease 35, 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://outoftheshadows.global/en/countries/burkina-faso — this page reads as difficult (Flesch Reading Ease 35, 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://outoftheshadows.global/en/countries/cameroon — this page reads as difficult (Flesch Reading Ease 36, 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://outoftheshadows.global/en/countries/cote-divoire — 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://outoftheshadows.global/en/countries/dem-rep-of-congo — this page reads as difficult (Flesch Reading Ease 36, 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://outoftheshadows.global/en/countries/egypt — this page reads as difficult (Flesch Reading Ease 36, 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://outoftheshadows.global/en/countries/ethiopia — this page reads as difficult (Flesch Reading Ease 36, 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://outoftheshadows.global/en/countries/ghana — this page reads as difficult (Flesch Reading Ease 36, 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://outoftheshadows.global/en/countries/madagascar — this page reads as difficult (Flesch Reading Ease 35, 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://outoftheshadows.global/en/countries/nepal — this page reads as difficult (Flesch Reading Ease 36, 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://outoftheshadows.global/en/countries/niger — this page reads as difficult (Flesch Reading Ease 36, 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://outoftheshadows.global/en/countries/pakistan — this page reads as difficult (Flesch Reading Ease 35, 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://outoftheshadows.global/en/countries/peru — 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://outoftheshadows.global/en/countries/saudi-arabia — this page reads as difficult (Flesch Reading Ease 36, 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://outoftheshadows.global/en/countries/sri-lanka — 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://outoftheshadows.global/en/countries/uzbekistan — this page reads as difficult (Flesch Reading Ease 36, 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://outoftheshadows.global/en/countries/venezuela — 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://outoftheshadows.global/rankings — 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.

notice Duplicate meta description across pages

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

notice Image alt text is keyword-stuffed (repetition / low variety)

Rule images.alt_stuffed · Images · 1 occurrence(s)

  • https://outoftheshadows.global/en/countries/sri-lanka — 1 image(s) have keyword-stuffed alt text — the same word repeated several times, or a long low-variety keyword list. Google's image guidance asks for short, descriptive alt text, not keyword lists; rewrite it to describe the image.

notice Image alt text is very long (possible keyword stuffing)

Rule images.alt_too_long · Images · 45 occurrence(s)

notice Images without width/height (layout shift / CLS)

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

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

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

notice Meta description too short

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

notice Missing Open Graph tags

Rule og.missing · Social · 6 occurrence(s)

notice Large DOM (over 1500 elements) slows rendering & interaction

Rule perf.dom_size_large · Performance · 4 occurrence(s)

  • https://outoftheshadows.global/en/countries/argentina — the page has 1506 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://outoftheshadows.global/en/countries/kenya — the page has 1651 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://outoftheshadows.global/en/countries/philippines — the page has 1523 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://outoftheshadows.global/en/countries/uganda — the page has 1539 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.

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

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

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

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

  • https://outoftheshadows.global/ — 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://outoftheshadows.global/data-explorer — 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://outoftheshadows.global/en — 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://outoftheshadows.global/en/countries — 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://outoftheshadows.global/en/countries/algeria — 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://outoftheshadows.global/en/countries/angola — 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://outoftheshadows.global/en/countries/argentina — 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://outoftheshadows.global/en/countries/burkina-faso — 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://outoftheshadows.global/en/countries/cameroon — 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://outoftheshadows.global/en/countries/cote-divoire — 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://outoftheshadows.global/en/countries/dem-rep-of-congo — 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://outoftheshadows.global/en/countries/ethiopia — 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://outoftheshadows.global/en/countries/madagascar — 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://outoftheshadows.global/en/countries/niger — 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://outoftheshadows.global/en/countries/pakistan — 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://outoftheshadows.global/en/countries/saudi-arabia — 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://outoftheshadows.global/en/countries/sri-lanka — 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://outoftheshadows.global/en/countries/uzbekistan — 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://outoftheshadows.global/es/ — 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://outoftheshadows.global/es/paises — 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://outoftheshadows.global/es/paises/angola — 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://outoftheshadows.global/fr/ — 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://outoftheshadows.global/fr/pays — 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://outoftheshadows.global/fr/pays/angola — 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://outoftheshadows.global/rankings — 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 · 50 occurrence(s)

  • https://outoftheshadows.global/ — 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://outoftheshadows.global/data-explorer — 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://outoftheshadows.global/en — 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://outoftheshadows.global/en/countries — 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://outoftheshadows.global/en/countries/algeria — 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://outoftheshadows.global/en/countries/angola — 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://outoftheshadows.global/en/countries/argentina — 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://outoftheshadows.global/en/countries/burkina-faso — 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://outoftheshadows.global/en/countries/cameroon — 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://outoftheshadows.global/en/countries/cote-divoire — 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://outoftheshadows.global/en/countries/dem-rep-of-congo — 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://outoftheshadows.global/en/countries/ethiopia — 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://outoftheshadows.global/en/countries/madagascar — 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://outoftheshadows.global/en/countries/niger — 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://outoftheshadows.global/en/countries/pakistan — 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://outoftheshadows.global/en/countries/saudi-arabia — 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://outoftheshadows.global/en/countries/sri-lanka — 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://outoftheshadows.global/en/countries/uzbekistan — 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://outoftheshadows.global/es/ — 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://outoftheshadows.global/es/paises — 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://outoftheshadows.global/es/paises/angola — 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://outoftheshadows.global/fr/ — 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://outoftheshadows.global/fr/pays — 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://outoftheshadows.global/fr/pays/angola — 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://outoftheshadows.global/rankings — 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 URL redirects to another URL

Rule redirect.single · Crawlability · 1 occurrence(s)

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

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

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://outoftheshadows.global/
Home | Out of the Shadows
200 yes 1537 50
https://outoftheshadows.global/rankings
Rankings | Out of the Shadows
200 yes 606 50
https://outoftheshadows.global/en/countries
Countries | Out of the Shadows
200 yes 696 46
https://outoftheshadows.global/en/countries/angola
Angola | Out of the Shadows
200 yes 1345 46
https://outoftheshadows.global/en/countries/algeria
Algeria | Out of the Shadows
200 yes 1288 44
https://outoftheshadows.global/en/countries/argentina
Argentina | Out of the Shadows
200 yes 1646 44
https://outoftheshadows.global/en/countries/bangladesh
Bangladesh | Out of the Shadows
200 yes 1241 44
https://outoftheshadows.global/en/countries/burkina-faso
Burkina Faso | Out of the Shadows
200 yes 1400 44
https://outoftheshadows.global/en/countries/cambodia
Cambodia | Out of the Shadows
200 yes 1430 44
https://outoftheshadows.global/en/countries/cameroon
Cameroon | Out of the Shadows
200 yes 1233 44
https://outoftheshadows.global/en/countries/china
China | Out of the Shadows
200 yes 1262 44
https://outoftheshadows.global/en/countries/cote-divoire
Cote d'Ivoire | Out of the Shadows
200 yes 1363 44
https://outoftheshadows.global/en/countries/dem-rep-of-congo
Dem. Rep. of Congo | Out of the Shadows
200 yes 1428 44
https://outoftheshadows.global/en/countries/egypt
Egypt | Out of the Shadows
200 yes 1331 44
https://outoftheshadows.global/en/countries/ethiopia
Ethiopia | Out of the Shadows
200 yes 1389 44
https://outoftheshadows.global/en/countries/ghana
Ghana | Out of the Shadows
200 yes 1367 44
https://outoftheshadows.global/en/countries/italy
Italy | Out of the Shadows
200 yes 1351 44
https://outoftheshadows.global/en/countries/kazakhstan
Kazakhstan | Out of the Shadows
200 yes 1356 44
https://outoftheshadows.global/en/countries/kenya
Kenya | Out of the Shadows
200 yes 2269 44
https://outoftheshadows.global/en/countries/madagascar
Madagascar | Out of the Shadows
200 yes 1309 44
https://outoftheshadows.global/en/countries/malaysia
Malaysia | Out of the Shadows
200 yes 1309 44
https://outoftheshadows.global/en/countries/mongolia
Mongolia | Out of the Shadows
200 yes 1467 44
https://outoftheshadows.global/en/countries/morocco
Morocco | Out of the Shadows
200 yes 1306 44
https://outoftheshadows.global/en/countries/mozambique
Mozambique | Out of the Shadows
200 yes 1370 44
https://outoftheshadows.global/en/countries/nepal
Nepal | Out of the Shadows
200 yes 1514 44
https://outoftheshadows.global/en/countries/niger
Niger | Out of the Shadows
200 yes 1314 44
https://outoftheshadows.global/en/countries/nigeria
Nigeria | Out of the Shadows
200 yes 1483 44
https://outoftheshadows.global/en/countries/pakistan
Pakistan | Out of the Shadows
200 yes 1377 44
https://outoftheshadows.global/en/countries/peru
Peru | Out of the Shadows
200 yes 1447 44
https://outoftheshadows.global/en/countries/philippines
Philippines | Out of the Shadows
200 yes 1757 44
https://outoftheshadows.global/en/countries/russia
Russia | Out of the Shadows
200 yes 1233 44
https://outoftheshadows.global/en/countries/rwanda
Rwanda | Out of the Shadows
200 yes 1416 44
https://outoftheshadows.global/en/countries/saudi-arabia
Saudi Arabia | Out of the Shadows
200 yes 1325 44
https://outoftheshadows.global/en/countries/serbia
Serbia | Out of the Shadows
200 yes 1320 44
https://outoftheshadows.global/en/countries/sri-lanka
Sri Lanka | Out of the Shadows
200 yes 1444 44
https://outoftheshadows.global/en/countries/tanzania
Tanzania | Out of the Shadows
200 yes 1489 44
https://outoftheshadows.global/en/countries/thailand
Thailand | Out of the Shadows
200 yes 1264 44
https://outoftheshadows.global/en/countries/uae
UAE | Out of the Shadows
200 yes 1326 44
https://outoftheshadows.global/en/countries/uganda
Uganda | Out of the Shadows
200 yes 1768 44
https://outoftheshadows.global/en/countries/uzbekistan
Uzbekistan | Out of the Shadows
200 yes 1336 44
https://outoftheshadows.global/en/countries/venezuela
Venezuela | Out of the Shadows
200 yes 1327 44
https://outoftheshadows.global/en/countries/vietnam
Vietnam | Out of the Shadows
200 yes 1372 44
https://outoftheshadows.global/es/paises
Out of the Shadows (ES) | Countries (Index)
200 yes 670 5
https://outoftheshadows.global/es/paises/angola
Out of the Shadows (ES) | Angola
200 yes 921 5
https://outoftheshadows.global/fr/pays
Out of the Shadows (FR) | Countries (Index)
200 yes 666 5
https://outoftheshadows.global/fr/pays/angola
Out of the Shadows (FR) | Angola
200 yes 922 5
https://outoftheshadows.global/data-explorer
Explore the Index | Out of the Shadows
200 yes 610 4
https://outoftheshadows.global/es/
Out of the Shadows (ES) | Home
200 yes 1486 4
https://outoftheshadows.global/fr/
Out of the Shadows (FR) | Home
200 yes 1487 4
https://outoftheshadows.global/en
Home | Out of the Shadows
200 yes 1537 2

Audit your own site — free

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

Scan your site →