Catalog / apirg.org
81

SEO audit for apirg.org

APIRG | Alberta Public Interest Research Group

other

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

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

Alberta Public Interest Research Group

50
pages crawled
50
indexable pages
0
errors
27
warnings
570
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Content 92 0 14 99
Agent Readiness 96 0 6 54
Titles 96 0 6 0
Headings 99 0 1 0
Cache 100 0 0 50
Duplicate 100 0 0 4
Images 100 0 0 7
Meta Description 100 0 0 46
Performance 100 0 0 200
Security 100 0 0 59
Structured Data 100 0 0 50
URL 100 0 0 1
Findings

Warnings (4 rules)

warning Control has no accessible name

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

warning Missing <h1>

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

Notices (18 rules)

notice Heading levels skip a level

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

notice No llms.txt for AI agents

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

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

notice No main landmark for AI agents

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

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

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

notice Low text-to-HTML ratio

Rule content.low_ratio · Content · 50 occurrence(s)

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

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

  • https://apirg.org/ — this page reads as difficult (Flesch Reading Ease 39, 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://apirg.org/a-night-of-art-and-resistance-with-kmmortal/ — 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://apirg.org/angela-davis-march-15-2014-at-7pm/ — this page reads as difficult (Flesch Reading Ease 49, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://apirg.org/apirg-13-14-agm/ — 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.
  • https://apirg.org/apirg-fall-funding-rounds-get-your-rad-social-justice-eventprojectgroups-some-funding/ — this page reads as very difficult (Flesch Reading Ease -17, 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://apirg.org/apirg-library-open-house-october-30-11-3pm/ — this page reads as very difficult (Flesch Reading Ease 26, 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://apirg.org/apirgs-annual-general-meeting-october-13-2015/ — 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://apirg.org/apirgs-annual-general-meeting-october-17-630pm/ — 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://apirg.org/apirgs-fall-funding-round/ — this page reads as very difficult (Flesch Reading Ease 18, 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://apirg.org/apirgs-fee-opt-out-is-now-online/ — 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://apirg.org/aprg-101/ — 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://apirg.org/aprg-presents-art-of-protest/ — this page reads as very difficult (Flesch Reading Ease 20, 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://apirg.org/call-for-facilitators-intersectionality-series-as-part-of-uofa-pride-week-march-5-6/ — 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://apirg.org/fall/ — 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://apirg.org/guided-tour-of-edmonton-institute-for-women-feb-25-and-mar-12/ — 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://apirg.org/intersections-of-queer-symposium-march-5-and-6-2014/ — this page reads as very difficult (Flesch Reading Ease 19, 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://apirg.org/its-funding-time-due-september-26th/ — 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://apirg.org/janani-balasubramanian-feb-22-23/ — 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://apirg.org/join-apirgs-board-of-directors/ — 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://apirg.org/results-are-in-meet-apirgs-2014-2015-board-of-directors/ — this page reads as very difficult (Flesch Reading Ease 26, 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://apirg.org/unsettling-colonial-modernity-islamicate-contexts-call-for-undergrad-posters/ — this page reads as very difficult (Flesch Reading Ease 30, 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://apirg.org/untying-the-knot-applications-due-oct-5/ — 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://apirg.org/volunteer-opportunities/ — this page reads as very difficult (Flesch Reading Ease 20, 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://apirg.org/vote-2015/ — 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://apirg.org/workshop-series-challenging-white-supremacy-in-community-organizing/ — 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.

notice Duplicate meta description across pages

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

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

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

notice Likely hero image lacks fetchpriority=high

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

  • https://apirg.org/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/a-night-of-art-and-resistance-with-kmmortal/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/angela-davis-march-15-2014-at-7pm/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/apirg-13-14-agm/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/apirg-fall-funding-rounds-get-your-rad-social-justice-eventprojectgroups-some-funding/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/apirg-library-open-house-october-30-11-3pm/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/apirgs-annual-general-meeting-october-13-2015/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/apirgs-annual-general-meeting-october-17-630pm/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/apirgs-fall-funding-round/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/apirgs-fee-opt-out-is-now-online/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/aprg-101/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/aprg-presents-art-of-protest/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/call-for-facilitators-intersectionality-series-as-part-of-uofa-pride-week-march-5-6/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/fall/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/guided-tour-of-edmonton-institute-for-women-feb-25-and-mar-12/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/intersections-of-queer-symposium-march-5-and-6-2014/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/its-funding-time-due-september-26th/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/janani-balasubramanian-feb-22-23/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/join-apirgs-board-of-directors/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/results-are-in-meet-apirgs-2014-2015-board-of-directors/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/unsettling-colonial-modernity-islamicate-contexts-call-for-undergrad-posters/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/untying-the-knot-applications-due-oct-5/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/volunteer-opportunities/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/vote-2015/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://apirg.org/workshop-series-challenging-white-supremacy-in-community-organizing/ — the likely hero/LCP image (apirg-logo-bow.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.

notice Meta description too long

Rule meta_desc.too_long · Meta Description · 39 occurrence(s)

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

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

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

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

  • https://apirg.org/ — 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://apirg.org/a-night-of-art-and-resistance-with-kmmortal/ — 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://apirg.org/angela-davis-march-15-2014-at-7pm/ — 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://apirg.org/apirg-13-14-agm/ — 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://apirg.org/apirg-fall-funding-rounds-get-your-rad-social-justice-eventprojectgroups-some-funding/ — 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://apirg.org/apirg-library-open-house-october-30-11-3pm/ — 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://apirg.org/apirgs-annual-general-meeting-october-13-2015/ — 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://apirg.org/apirgs-annual-general-meeting-october-17-630pm/ — 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://apirg.org/apirgs-fall-funding-round/ — 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://apirg.org/apirgs-fee-opt-out-is-now-online/ — 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://apirg.org/aprg-101/ — 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://apirg.org/aprg-presents-art-of-protest/ — 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://apirg.org/call-for-facilitators-intersectionality-series-as-part-of-uofa-pride-week-march-5-6/ — 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://apirg.org/fall/ — 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://apirg.org/guided-tour-of-edmonton-institute-for-women-feb-25-and-mar-12/ — 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://apirg.org/intersections-of-queer-symposium-march-5-and-6-2014/ — 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://apirg.org/its-funding-time-due-september-26th/ — 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://apirg.org/janani-balasubramanian-feb-22-23/ — 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://apirg.org/join-apirgs-board-of-directors/ — 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://apirg.org/results-are-in-meet-apirgs-2014-2015-board-of-directors/ — 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://apirg.org/unsettling-colonial-modernity-islamicate-contexts-call-for-undergrad-posters/ — 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://apirg.org/untying-the-knot-applications-due-oct-5/ — 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://apirg.org/volunteer-opportunities/ — 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://apirg.org/vote-2015/ — 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://apirg.org/workshop-series-challenging-white-supremacy-in-community-organizing/ — 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://apirg.org/ — 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://apirg.org/a-night-of-art-and-resistance-with-kmmortal/ — 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://apirg.org/angela-davis-march-15-2014-at-7pm/ — 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://apirg.org/apirg-13-14-agm/ — 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://apirg.org/apirg-fall-funding-rounds-get-your-rad-social-justice-eventprojectgroups-some-funding/ — 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://apirg.org/apirg-library-open-house-october-30-11-3pm/ — 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://apirg.org/apirgs-annual-general-meeting-october-13-2015/ — 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://apirg.org/apirgs-annual-general-meeting-october-17-630pm/ — 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://apirg.org/apirgs-fall-funding-round/ — 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://apirg.org/apirgs-fee-opt-out-is-now-online/ — 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://apirg.org/aprg-101/ — 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://apirg.org/aprg-presents-art-of-protest/ — 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://apirg.org/call-for-facilitators-intersectionality-series-as-part-of-uofa-pride-week-march-5-6/ — 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://apirg.org/fall/ — 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://apirg.org/guided-tour-of-edmonton-institute-for-women-feb-25-and-mar-12/ — 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://apirg.org/intersections-of-queer-symposium-march-5-and-6-2014/ — 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://apirg.org/its-funding-time-due-september-26th/ — 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://apirg.org/janani-balasubramanian-feb-22-23/ — 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://apirg.org/join-apirgs-board-of-directors/ — 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://apirg.org/results-are-in-meet-apirgs-2014-2015-board-of-directors/ — 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://apirg.org/unsettling-colonial-modernity-islamicate-contexts-call-for-undergrad-posters/ — 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://apirg.org/untying-the-knot-applications-due-oct-5/ — 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://apirg.org/volunteer-opportunities/ — 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://apirg.org/vote-2015/ — 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://apirg.org/workshop-series-challenging-white-supremacy-in-community-organizing/ — 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 No structured data detected

Rule schema.none · Structured Data · 50 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 · 9 occurrence(s)

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://apirg.org/
APIRG | Alberta Public Interest Research Group
200 yes 257 50
https://apirg.org/joinus/
Apply to join the APIRG Board of Directors! | APIRG
200 yes 288 50
https://apirg.org/15th-annual-general-meeting/
15th Annual General Meeting | APIRG
200 yes 207 0
https://apirg.org/2017-board-elections-candidates/
2017 Board Elections Candidates | APIRG
200 yes 155 0
https://apirg.org/2018-by-election-nomination-package-available-now/
2018 By-Election Nomination Package available now | APIRG
200 yes 190 0
https://apirg.org/a-night-of-art-and-resistance-with-kmmortal/
A Night of Art and Resistance with K!mmortal | APIRG
200 yes 377 0
https://apirg.org/a-week-of-liberation-awol/
A Week of Liberation (AWOL) | APIRG
200 yes 176 0
https://apirg.org/angela-davis-march-15-2014-at-7pm/
ANGELA DAVIS. MARCH 15, 2014 at 7pm | APIRG
200 yes 509 0
https://apirg.org/apirg-13-14-agm/
APIRG 13-14 ANNUAL GENERAL MEETING – OCT 24 | APIRG
200 yes 172 0
https://apirg.org/apirg-20162017-programming-ttn/
APIRG 2016/2017 Programming: Transforming the Narrative | APIRG
200 yes 508 0
https://apirg.org/apirg-accomplices-launch-2/
APIRG Accomplices Launch! | APIRG
200 yes 147 0
https://apirg.org/apirg-board-of-director-elections-march-8-2017/
Call For Board of Director Nominations | APIRG
200 yes 267 0
https://apirg.org/apirg-fall-funding-rounds-get-your-rad-social-justice-eventprojectgroups-some-funding/
APIRG WINTER FUNDING ROUNDS: get your rad social justice event/project/groups some funding | APIRG
200 yes 146 0
https://apirg.org/apirg-is-hiring-a-working-group-coordinator-2/
APIRG Is Hiring a Working Group Coordinator | APIRG
200 yes 607 0
https://apirg.org/apirg-is-hiring-an-office-coordinator/
APIRG is hiring an Office Coordinator! | APIRG
200 yes 741 0
https://apirg.org/apirg-is-seeking-accountability-around-our-getting-beyond-words-workshop-series/
APIRG is seeking accountability around our Getting Beyond Words Workshop Series | APIRG
200 yes 537 0
https://apirg.org/apirg-library-open-house-october-30-11-3pm/
APIRG LIBRARY OPEN HOUSE: FEB 12 2015 1-4pm | APIRG
200 yes 435 0
https://apirg.org/apirgs-annual-general-meeting-october-13-2015/
APIRG’s ANNUAL GENERAL MEETING: october 13, 2015 | APIRG
200 yes 285 0
https://apirg.org/apirgs-annual-general-meeting-october-17-630pm/
APIRGs Annual General Meeting: October 17 @ 6:30pm | APIRG
200 yes 320 0
https://apirg.org/apirgs-fall-funding-round/
APIRGs FALL Funding Round 2014 | APIRG
200 yes 227 0
https://apirg.org/apirgs-fee-opt-out-is-now-online/
APIRG’s Dedicated Fee Opt-Out for Winter 2016: NOW ONLINE! | APIRG
200 yes 157 0
https://apirg.org/aprg-101/
AP!RG 101 | APIRG
200 yes 176 0
https://apirg.org/aprg-presents-art-of-protest/
AP!RG Presents: Art of Protest | APIRG
200 yes 223 0
https://apirg.org/by-election-announcement/
By-Election Announcement | APIRG
200 yes 344 0
https://apirg.org/call-for-facilitators-intersectionality-series-as-part-of-uofa-pride-week-march-5-6/
Call for Facilitators: Intersections of Queer, March 5-6 2015 | APIRG
200 yes 705 0
https://apirg.org/call-for-facilitators-intersections-of-queer/
CALL FOR FACILITATORS: Intersections of Queer Symposium | APIRG
200 yes 675 0
https://apirg.org/cro-hiring/
APIRG is hiring a CRO | APIRG
200 yes 735 0
https://apirg.org/dedicated-fee-opt-out-period/
Dedicated Fee Opt Out Period | APIRG
200 yes 216 0
https://apirg.org/dedicated-opt-out-period-winter-2019/
Dedicated Opt-Out Period — Winter 2019 | APIRG
200 yes 179 0
https://apirg.org/fall/
Fall at AP!RG | APIRG
200 yes 238 0
https://apirg.org/guided-tour-of-edmonton-institute-for-women-feb-25-and-mar-12/
Guided Tour of Edmonton Institute for Women, Feb 25 and Mar 12 | APIRG
200 yes 282 0
https://apirg.org/intersections-of-queer-symposium-march-5-and-6-2014/
Intersections of Queer Symposium: March 5 and 6, 2015 | APIRG
200 yes 327 0
https://apirg.org/intersections/
INTERSECTIONS OF QUEER SYMPOSIUM: MARCH 10 | APIRG
200 yes 144 0
https://apirg.org/its-funding-time-due-september-26th/
ITS FUNDING TIME! DUE JANUARY 30 2015 | APIRG
200 yes 170 0
https://apirg.org/janani-balasubramanian-feb-22-23/
Janani Balasubramanian, Feb 22-23 | APIRG
200 yes 368 0
https://apirg.org/join-apirgs-board-of-directors/
Join APIRG’s Board of Directors! | APIRG
200 yes 443 0
https://apirg.org/join-the-2021-apirg-almanac-creation-collective/
Join the 2021 APIRG Almanac Creation Collective | APIRG
200 yes 388 0
https://apirg.org/march-10-reina-gossett-making-a-way-out-of-no-way-trans-liberation-in-a-moment-of-heightened-violence-visibility/
March 10! Reina Gossett “Making A Way Out of No Way: Trans Liberation in a Moment of Heightened Violence & Visibility” | APIRG
200 yes 525 0
https://apirg.org/post-plebiscite-commitments/
Post-Plebiscite Commitments | APIRG
200 yes 472 0
https://apirg.org/results-are-in-meet-apirgs-2014-2015-board-of-directors/
RESULTS ARE IN! Meet APIRG’s 2014-2015 Board of Directors | APIRG
200 yes 202 0
https://apirg.org/saw/
APIRG at Sustainability Awareness Week! | APIRG
200 yes 394 0
https://apirg.org/solidarity-statement-with-the-university-of-alberta-anthropology-undergraduates/
Solidarity Statement with the University of Alberta Anthropology Undergraduates | APIRG
200 yes 397 0
https://apirg.org/unsettling-colonial-modernity-islamicate-contexts-call-for-undergrad-posters/
Unsettling Colonial Modernity: Islamicate Contexts – CALL FOR UNDERGRAD POSTERS | APIRG
200 yes 678 0
https://apirg.org/untying-the-knot-applications-due-oct-5/
untying the knot: applications due oct 5 | APIRG
200 yes 386 0
https://apirg.org/volunteer-opportunities/
Volunteer Opportunities! | APIRG
200 yes 202 0
https://apirg.org/vote-2015/
Congratulations 2015-2016 Board members! | APIRG
200 yes 151 0
https://apirg.org/what-makes-a-valuable-volunteer-experience-apirg-wants-your-input/
What makes a valuable Volunteer Experience? APIRG wants your input | APIRG
200 yes 150 0
https://apirg.org/who-the-fk-is-apirg/
Who the f#@k is APIRG??? | APIRG
200 yes 139 0
https://apirg.org/workshop-series-challenging-white-supremacy-in-community-organizing/
Challenging White Supremacy in Community Organizing | APIRG
200 yes 363 0
https://apirg.org/yes-faq/
#YesAPIRG FAQs | APIRG
200 yes 409 0

Audit your own site — free

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

Scan your site →