Catalog / patricktombola.net
65

SEO audit for patricktombola.net

PATRICK TOMBOLA. Photographer and videojournalist based in the Middle East.

media

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

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

Patrick Tombola is a multimedia photographer and videojournalist based in the Middle East, working on editorials and personal projects worldwide.

50
pages crawled
50
indexable pages
0
errors
254
warnings
414
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Content 70 0 50 50
Headings 70 0 50 0
Mobile 70 0 50 0
Rendering 70 0 50 0
Security 70 0 50 50
Duplicate 98 0 3 42
Titles 99 0 1 4
Agent Readiness 100 0 0 1
Meta Description 100 0 0 18
Performance 100 0 0 100
Social 100 0 0 50
Structured Data 100 0 0 50
URL 100 0 0 49
Findings

Warnings (8 rules)

warning Thin content (low word count)

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

warning Homepage duplicated across protocol/host variants (no redirect)

Rule duplicate.protocol_host · Duplicate · 1 occurrence(s)

  • https://patricktombola.net/ — https://www.patricktombola.net/ serves the same homepage content with a 200 and no redirect — Google sees a duplicate. Pick one canonical host/scheme and 301-redirect the others.

warning Duplicate <title> across pages

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

warning Content-Type header doesn't match the actual content

Rule headers.content_type_mismatch · Security · 50 occurrence(s)

  • https://patricktombola.net/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/About/1 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/About/2 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Contact/1 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/1 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/10 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/11 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/12 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/13 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/14 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/15 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/16 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/17 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/18 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/2 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/3 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/4 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/5 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/6 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/7 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/8 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/9 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Photography/Italy%27s-slaves---ongoing/1 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Tearsheets/1 — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://patricktombola.net/Video/thumbs — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".

warning Content only rendered by JavaScript (invisible to non-JS crawlers & AI)

Rule rendering.js_shell · Rendering · 50 occurrence(s)

  • https://patricktombola.net/ — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/About/1 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/About/2 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Contact/1 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/1 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/10 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/11 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/12 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/13 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/14 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/15 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/16 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/17 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/18 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/2 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/3 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/4 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/5 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/6 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/7 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/8 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Editorials/Aleppo%27s-courts/9 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Photography/Italy%27s-slaves---ongoing/1 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Tearsheets/1 — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.
  • https://patricktombola.net/Video/thumbs — Raw HTML has 0 words and 0 links — this page is built by JavaScript in the browser. Googlebot renders JS but delays it, and most crawlers and AI assistants (ChatGPT, Perplexity, Claude) don't run JavaScript at all, so to them the page looks empty. Server-render or pre-render your main content and navigation.

warning Title likely truncated in SERP (too wide)

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

Notices (12 rules)

notice No llms.txt for AI agents

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

notice Duplicate meta description across pages

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

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

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

notice Meta description too short

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

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

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

  • https://patricktombola.net/ — 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://patricktombola.net/About/1 — 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://patricktombola.net/About/2 — 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://patricktombola.net/Contact/1 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/1 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/10 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/11 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/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://patricktombola.net/Editorials/Aleppo%27s-courts/13 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/14 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/15 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/16 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/17 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/18 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/2 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/3 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/4 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/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://patricktombola.net/Editorials/Aleppo%27s-courts/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://patricktombola.net/Editorials/Aleppo%27s-courts/7 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/8 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/9 — 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://patricktombola.net/Photography/Italy%27s-slaves---ongoing/1 — 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://patricktombola.net/Tearsheets/1 — 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://patricktombola.net/Video/thumbs — 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://patricktombola.net/ — 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://patricktombola.net/About/1 — 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://patricktombola.net/About/2 — 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://patricktombola.net/Contact/1 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/1 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/10 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/11 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/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://patricktombola.net/Editorials/Aleppo%27s-courts/13 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/14 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/15 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/16 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/17 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/18 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/2 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/3 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/4 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/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://patricktombola.net/Editorials/Aleppo%27s-courts/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://patricktombola.net/Editorials/Aleppo%27s-courts/7 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/8 — 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://patricktombola.net/Editorials/Aleppo%27s-courts/9 — 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://patricktombola.net/Photography/Italy%27s-slaves---ongoing/1 — 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://patricktombola.net/Tearsheets/1 — 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://patricktombola.net/Video/thumbs — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.

notice Missing recommended security headers

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

notice Title is very short

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

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://patricktombola.net/
PATRICK TOMBOLA. Photographer and videojournalist based in the Middle East.
200 yes 0 0
https://patricktombola.net/About/1
About
200 yes 0 0
https://patricktombola.net/About/2
About
200 yes 0 0
https://patricktombola.net/Contact/1
Contact
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/1
SYRIA_DIE-ZEIT_COURT_20121214_307.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/10
SYRIA_DIE-ZEIT_COURT_20121213_107.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/11
SYRIA_DIE-ZEIT_COURT_20121213_123.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/12
SYRIA_DIE-ZEIT_COURT_20121213_91.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/13
SYRIA_DIE-ZEIT_COURT_20121215_296.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/14
SYRIA_DIE-ZEIT_COURT_20121214_560.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/15
SYRIA_KURDS_ALEPPO_20121205--312.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/16
SYRIA_DIE-ZEIT_COURT_20121214_536.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/17
SYRIA_KURDS_ALEPPO_20121206--169.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/18
SYRIA_DIE-ZEIT_COURT_20121214_517.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/19
SYRIA_DIE-ZEIT_COURT_20121213_250.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/2
SYRIA_DIE-ZEIT_COURT_20121215_420.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/20
SYRIA_DIE-ZEIT_COURT_20121213_23.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/21
SYRIA_DIE-ZEIT_COURT_20121212_999.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/22
SYRIA_DIE-ZEIT_COURT_20121212_893.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/23
SYRIA_DIE-ZEIT_COURT_20121212_847.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/24
SYRIA_DIE-ZEIT_COURT_20121212_831.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/25
SYRIA_ALEPPO_STREET_20121208--480.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/26
SYRIA_DIE-ZEIT_COURT_20121212_735.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/27
SYRIA_DIE-ZEIT_COURT_20121212_684.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/28
SYRIA_ALEPPO_STREET_20121207--204.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/3
SYRIA_DIE-ZEIT_COURT_20121216_473.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/4
SYRIA_DIE-ZEIT_COURT_20121215_399.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/5
SYRIA_DIE-ZEIT_COURT_20121215_392.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/6
SYRIA_DIE-ZEIT_COURT_20121213_188.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/7
SYRIA_DIE-ZEIT_COURT_20121215_374.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/8
SYRIA_DIE-ZEIT_COURT_20121215_371.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Aleppo%27s-courts/9
SYRIA_DIE-ZEIT_COURT_20121215_361.jpg
200 yes 0 0
https://patricktombola.net/Editorials/Gaza%27s-Rescuers/1
GAZA_WAR_AMBULANCE_2014_07_19_20361
200 yes 0 0
https://patricktombola.net/Editorials/Gaza%27s-Rescuers/10
GAZA_WAR_AMBULANCE_2014_07_19_20744
200 yes 0 0
https://patricktombola.net/Editorials/Gaza%27s-Rescuers/11
GAZA_WAR_AMBULANCE_2014_07_19_20747
200 yes 0 0
https://patricktombola.net/Editorials/Gaza%27s-Rescuers/12
GAZA_WAR_AMBULANCE_2014_07_19_20766
200 yes 0 0
https://patricktombola.net/Editorials/Gaza%27s-Rescuers/13
GAZA_WAR_AMBULANCE_2014_07_19_20786
200 yes 0 0
https://patricktombola.net/Editorials/Gaza%27s-Rescuers/14
GAZA_WAR_AMBULANCE_2014_07_19_20795
200 yes 0 0
https://patricktombola.net/Editorials/Gaza%27s-Rescuers/15
GAZA_WAR_AMBULANCE_2014_07_19_20837
200 yes 0 0
https://patricktombola.net/Editorials/Gaza%27s-Rescuers/2
GAZA_WAR_AMBULANCE_2014_07_19_20392
200 yes 0 0
https://patricktombola.net/Editorials/Gaza%27s-Rescuers/3
GAZA_WAR_AMBULANCE_2014_07_19_20502
200 yes 0 0
https://patricktombola.net/Editorials/Gaza%27s-Rescuers/4
GAZA_WAR_AMBULANCE_2014_07_19_20528
200 yes 0 0
https://patricktombola.net/Editorials/Gaza%27s-Rescuers/5
GAZA_WAR_AMBULANCE_2014_07_19_20578
200 yes 0 0
https://patricktombola.net/Editorials/Gaza%27s-Rescuers/6
GAZA_WAR_AMBULANCE_2014_07_19_20640
200 yes 0 0
https://patricktombola.net/Editorials/Gaza%27s-Rescuers/7
GAZA_WAR_AMBULANCE_2014_07_19_20671
200 yes 0 0
https://patricktombola.net/Editorials/Gaza%27s-Rescuers/8
GAZA_WAR_AMBULANCE_2014_07_19_20703
200 yes 0 0
https://patricktombola.net/Editorials/Gaza%27s-Rescuers/9
GAZA_WAR_AMBULANCE_2014_07_19_20712
200 yes 0 0
https://patricktombola.net/Photography/Italy%27s-slaves---ongoing/1
ITALY_SLAVES_2014_04_14750
200 yes 0 0
https://patricktombola.net/Tearsheets/1
TIME_20150803_42_1121282_ARTICLE-1
200 yes 0 0
https://patricktombola.net/Video/thumbs
Video
200 yes 0 0

Audit your own site — free

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

Scan your site →