Give every occuz.com page its real date
Every page on occuz.com tells crawlers it was last changed on 30 September 2022, including the articles you published this year and the pages about Pixel & Intent. The date comes from one shared block of template code, so the fix is one change there plus a few lines in the article template. Below: what your pages say tonight, the code to paste, and a 5-minute check.
What your pages say tonight
Each article page prints two sets of social tags. The first is the article's own, and it is right. The second is a shared block that every one of the 77 pages prints, and it repeats the same tags with site-wide values that contradict the first set, including the 2022 date. Which one a given crawler keeps is up to that crawler. This is from Why 90% of Your Ad Clicks Will Never Convert (abridged, the lines are verbatim):
<!-- Open Graph / Twitter --> (the article's own block, correct)
<meta property="og:title" content="Why 90% of Your Ad Clicks Will Never Convert" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://occuz.com/article/why-90-percent-of-your-ad-clicks-will-never-convert" />
...
(then the shared block, on every page)
<meta property="og:type" content="website" />
<meta property="og:title" content="Occuz" />
<meta property="og:url" content="https://occuz.com/" />
<meta property="article:modified_time" content="2022-09-30T07:55:44+00:00" />
<meta property="og:image" content="images/200x100BSL%20copy.png" />
<meta name="twitter:label1" content="Est. reading time" />
<meta name="twitter:data1" content="5 minutes" />So a crawler reading that page is told it is both an article and a website, that its address is both the article and the homepage, and that it last changed in 2022. Your own sitemap already knows better: it gives the 53 articles their own dates, from 5 Jun 2025 to 2 Nov 2026. The template just never prints them.
Why it is worth an hour
- The Open Graph spec defines
article:modified_timeas "When the article was last changed" andarticle:published_timeas "When the article was first published" (ogp.me). Right now the first is wrong on every page and the second is missing. - Google's guide to dates asks for a visible date plus structured data: "We recommend that you add a subtype of CreativeWork (such as Article, BlogPosting, or VideoObject), and specify the datePublished and/or dateModified fields." It also says to "Make your dates and times consistent" (Google Search Central, byline dates).
- Our read, not proven: when an assistant picks which page to quote for "which tool shows which clicks are real buyers", a 2022 stamp on a 2026 article is an easy reason to pick someone else's page.
Honest limit: Google says it weighs several signals and does not promise to show any date. This fix makes every signal you control agree with each other.
The fix, in three edits
Shared head include: drop the 2022 line, stop contradicting article tags
In the template file that prints the block above on every page, remove the hard-coded article:modified_time, print the site-wide og: tags only on pages that have not printed their own, give each page its own og:url, and make og:image an absolute URL. Rename the two marked variables to yours.
<?php
/*
* Occuz: shared head include (the block every page prints; on an article page today it is
* lines 58-74 of the HTML). Read live from occuz.com on 2026-11-08 20:55 UTC.
* Paste-ready, but rename the two variables marked RENAME to whatever your templates already use.
*
* What changes:
* 1. The hard-coded article:modified_time = 2022-09-30T07:55:44+00:00 line is gone.
* Article pages print their own real dates (see 2-article-template-head.php).
* 2. og:type / og:title / og:description / og:url / og:image are printed only when the page
* has not already printed its own. Today article pages print BOTH sets, so a reader gets
* og:type "article" and og:type "website", and two different og:url values.
* 3. og:url is the page's own address instead of https://occuz.com/ on every page.
* 4. og:image is an absolute URL (Open Graph readers do not resolve "images/...").
* 5. The fixed "Est. reading time: 5 minutes" label is dropped (it shows on all 77 pages,
* including the legal pages).
*/
// RENAME: the canonical URL your page already prints in <link rel="canonical">.
$ogUrl = isset($pageCanonical) ? $pageCanonical
: 'https://occuz.com' . strtok($_SERVER['REQUEST_URI'], '?');
// RENAME: set $pageHasOwnOg = true; in any template that prints its own Open Graph block
// (the article template does), before this include runs.
if (empty($pageHasOwnOg)) { ?>
<meta property="og:type" content="website" />
<meta property="og:title" content="Occuz" />
<meta property="og:description" content="URL shortening platform with link tracking, AI analytics as well as social, Lead, Link in Bio, SMS & Email campaign creation and QR Codes generation with realtime dynamic editing" />
<meta property="og:url" content="<?= htmlspecialchars($ogUrl, ENT_QUOTES) ?>" />
<meta property="og:image" content="https://occuz.com/images/200x100BSL%20copy.png" />
<meta property="og:image:width" content="1024" />
<meta property="og:image:height" content="1025" />
<meta property="og:image:type" content="image/png" />
<meta property="og:site_name" content="Occuz" />
<meta property="article:publisher" content="https://www.facebook.com/occudiz/" />
<meta name="twitter:card" content="summary_large_image" />
<?php } ?>
<meta property="og:locale" content="en_US" />
<meta name="twitter:site" content="@occuz_" />
<meta name="msapplication-TileImage" content="https://occuz.com/images/200x100BSL%20copy.png" />
<?php /* No article:modified_time here any more. Only articles carry it, each with its own date. */ ?>
Article template: print the real dates and an Article block
Under the article's existing Open Graph block, print article:published_time, article:modified_time and one Article JSON-LD block from the article's own database row. Use the same date column your sitemap generator already reads for each article's <lastmod>.
<?php
/*
* Occuz: add to the article template, directly under the existing
* "<!-- Open Graph / Twitter -->" block (the one that already prints og:type "article").
*
* $article is the row your article page already loads from the blogs database.
* RENAME the date columns to yours. Use the same column your sitemap generator reads for
* <lastmod> on the /article/... URLs: that column already holds a different, real date for
* each article (the sitemap shows them). If you have no separate "updated" column, both
* lines can read the same column.
*/
$pageHasOwnOg = true; // tells the shared head include not to print its site-wide og: block
$published = (new DateTime($article['published_at']))->format(DATE_ATOM); // RENAME
$modified = (new DateTime($article['updated_at'] ?? $article['published_at']))->format(DATE_ATOM); // RENAME
$articleUrl = 'https://occuz.com/article/' . $article['slug']; // RENAME if your slug column differs
$articleTitle = $article['title']; // RENAME (the og:title you already print)
$articleImage = $article['image_url']; // RENAME (the og:image you already print, absolute)
?>
<meta property="article:published_time" content="<?= $published ?>" />
<meta property="article:modified_time" content="<?= $modified ?>" />
<script type="application/ld+json">
<?= json_encode([
'@context' => 'https://schema.org',
'@type' => 'Article',
'@id' => $articleUrl . '#article',
'mainEntityOfPage' => $articleUrl,
'headline' => $articleTitle,
'image' => [$articleImage],
'datePublished' => $published,
'dateModified' => $modified,
'author' => ['@type' => 'Organization', 'name' => 'Occuz', 'url' => 'https://occuz.com'],
'publisher' => ['@id' => 'https://occuz.com/#organization'],
], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) ?>
</script>
<?php
/*
* Optional, recommended by Google: show the same date on the page itself, near the title.
* <p class="post-date">Published <?= (new DateTime($article['published_at']))->format('j F Y') ?></p>
* Keep it identical to datePublished above.
*/
What it prints for one article, using the date your sitemap gives it:
{
"@context": "https://schema.org",
"@type": "Article",
"@id": "https://occuz.com/article/why-90-percent-of-your-ad-clicks-will-never-convert#article",
"mainEntityOfPage": "https://occuz.com/article/why-90-percent-of-your-ad-clicks-will-never-convert",
"headline": "Why 90% of Your Ad Clicks Will Never Convert",
"image": ["https://occuz.com/images/blog-images/blog-47.jpg"],
"datePublished": "2026-06-14T19:11:20+00:00",
"dateModified": "2026-06-14T19:11:20+00:00",
"author": { "@type": "Organization", "name": "Occuz", "url": "https://occuz.com" },
"publisher": { "@id": "https://occuz.com/#organization" }
}
One line in your site-wide schema: the logo
The Organization block on all 77 pages points crawlers to https://occuz.com/logo.png, which redirects to /oops. Point it at the image your og:image already uses, which loads:
"logo": "https://occuz.com/images/200x100BSL%20copy.png",<lastmod> only "if it's consistently and verifiably ... accurate" (Google, build a sitemap). A two-line fix is in 4-sitemap-static-lastmod.php.The 5-minute check
Once it is live:
- Open
view-source:on an article. Searcharticle:modified_time: one match, with that article's date. Searchog:type: one match,article. Search2022-09-30: no match. - Open
view-source:on /pricing. No2022-09-30, andog:urlishttps://occuz.com/pricing. - Paste the article URL into Google's Rich Results Test. "Article" shows up with
datePublishedanddateModified, no errors. - Open your new logo URL. The image loads instead of
/oops. - In Search Console, run URL Inspection and Request indexing on two or three articles so the new dates get read sooner.
All 77 URLs, as they read tonight
Every URL in your sitemap, what its head says today, and the date your own sitemap gives it. After the fix, the middle column should match the right one for every article.
Show all 77 URLs (53 articles, 24 other pages)
| Page | Says today | Your sitemap's date |
|---|---|---|
| / | 30 Sep 2022 | none on the site, take it from your files |
| /about | 30 Sep 2022 | none on the site, take it from your files |
| /analytics | 30 Sep 2022 | none on the site, take it from your files |
| /api | 30 Sep 2022 | none on the site, take it from your files |
| /articles | 30 Sep 2022 | none on the site, take it from your files |
| /contact | 30 Sep 2022 | none on the site, take it from your files |
| /domains | 30 Sep 2022 | none on the site, take it from your files |
| /faq | 30 Sep 2022 | none on the site, take it from your files |
| /intent-signals | 30 Sep 2022 | none on the site, take it from your files |
| /pricing | 30 Sep 2022 | none on the site, take it from your files |
| /standardcampaign | 30 Sep 2022 | none on the site, take it from your files |
| /smsemailcampaign | 30 Sep 2022 | none on the site, take it from your files |
| /contactcampaign | 30 Sep 2022 | none on the site, take it from your files |
| /leadscampaign | 30 Sep 2022 | none on the site, take it from your files |
| /linkinbio | 30 Sep 2022 | none on the site, take it from your files |
| /terms | 30 Sep 2022 | none on the site, take it from your files |
| /privacy | 30 Sep 2022 | none on the site, take it from your files |
| /dpa | 30 Sep 2022 | none on the site, take it from your files |
| /sla | 30 Sep 2022 | none on the site, take it from your files |
| /cookie | 30 Sep 2022 | none on the site, take it from your files |
| /acceptableuse | 30 Sep 2022 | none on the site, take it from your files |
| /refund | 30 Sep 2022 | none on the site, take it from your files |
| /dmca | 30 Sep 2022 | none on the site, take it from your files |
| /disclaimer | 30 Sep 2022 | none on the site, take it from your files |
| /article/the-untapped-power-of-short-urls-in-performance-marketing | 30 Sep 2022 | 2 Nov 2026 |
| /article/why-every-marketing-team-should-care-about-redirect-data | 30 Sep 2022 | 25 Oct 2026 |
| /article/how-smart-redirects-can-improve-marketing-performance | 30 Sep 2022 | 18 Oct 2026 |
| /article/what-happens-before-a-landing-page-loads-can-be-more-valuable-than-what-happens-after | 30 Sep 2022 | 11 Oct 2026 |
| /article/beyond-link-shortening-turning-every-click-into-intelligence | 30 Sep 2022 | 4 Oct 2026 |
| /article/your-url-shortener-is-sitting-on-valuable-marketing-data | 30 Sep 2022 | 28 Sep 2026 |
| /article/how-to-improve-campaign-performance-without-changing-your-ads | 30 Sep 2022 | 21 Sep 2026 |
| /article/why-conversion-tracking-isn-t-enough-anymore | 30 Sep 2022 | 14 Sep 2026 |
| /article/the-missing-layer-in-modern-marketing-attribution | 30 Sep 2022 | 7 Sep 2026 |
| /article/what-marketing-platforms-miss-between-the-click-and-the-conversion | 30 Sep 2022 | 31 Aug 2026 |
| /article/why-meta-and-google-still-can-t-tell-you-which-clicks-matter-most | 30 Sep 2022 | 24 Aug 2026 |
| /article/meta-pixel-vs-google-analytics-vs-intent-scoring-difference | 30 Sep 2022 | 17 Aug 2026 |
| /article/the-difference-between-traffic-volume-and-traffic-quality | 30 Sep 2022 | 10 Aug 2026 |
| /article/why-more-traffic-often-leads-to-worse-marketing-results | 30 Sep 2022 | 3 Aug 2026 |
| /article/intent-scoring-explained-without-the-buzzwords | 30 Sep 2022 | 26 Jul 2026 |
| /article/predict-conversion-potential-early | 30 Sep 2022 | 19 Jul 2026 |
| /article/the-traffic-quality-problem-nobody-talks-about | 30 Sep 2022 | 12 Jul 2026 |
| /article/why-conversion-rate-alone-is-misleading | 30 Sep 2022 | 4 Jul 2026 |
| /article/not-all-clicks-are-equal-identifying-intent | 30 Sep 2022 | 28 Jun 2026 |
| /article/the-hidden-cost-of-optimizing-for-click-through-rate | 30 Sep 2022 | 21 Jun 2026 |
| /article/why-90-percent-of-your-ad-clicks-will-never-convert | 30 Sep 2022 | 14 Jun 2026 |
| /article/beyond-clicks-intent-scoring-transforms-marketing | 30 Sep 2022 | 7 Jun 2026 |
| /article/how-to-use-short-urls-to-enhance-user-trust | 30 Sep 2022 | 26 May 2026 |
| /article/best-url-shortening-practices-for-nonprofits | 30 Sep 2022 | 19 May 2026 |
| /article/the-psychology-of-clicks-why-short-urls-attract-more-traffic | 30 Sep 2022 | 12 May 2026 |
| /article/top-url-shortening-tools-and-their-features-in-2026 | 30 Sep 2022 | 5 May 2026 |
| /article/how-to-use-short-urls-in-sms-marketing-campaigns | 30 Sep 2022 | 28 Apr 2026 |
| /article/the-environmental-impact-of-efficient-url-shortening | 30 Sep 2022 | 21 Apr 2026 |
| /article/how-to-avoid-broken-links-with-url-shorteners | 30 Sep 2022 | 14 Apr 2026 |
| /article/the-technical-side-how-url-shorteners-work-behind-the-scenes | 30 Sep 2022 | 7 Apr 2026 |
| /article/how-short-urls-can-improve-link-management-for-businesses | 30 Sep 2022 | 31 Mar 2026 |
| /article/the-future-of-url-shortening-trends-to-watch | 30 Sep 2022 | 24 Mar 2026 |
| /article/how-to-track-campaign-performance-using-short-urls | 30 Sep 2022 | 17 Mar 2026 |
| /article/understanding-url-redirection-and-its-benefits | 30 Sep 2022 | 10 Mar 2026 |
| /article/how-short-urls-can-simplify-content-sharing | 30 Sep 2022 | 3 Mar 2026 |
| /article/url-shorteners-and-their-role-in-influencer-marketing | 30 Sep 2022 | 24 Feb 2026 |
| /article/create-branded-short-urls-with-your-own-domain | 30 Sep 2022 | 17 Feb 2026 |
| /article/case-study-brands-that-successfully-used-short-urls | 30 Sep 2022 | 9 Jun 2025 |
| /article/how-url-shorteners-can-help-with-ab-testing | 30 Sep 2022 | 9 Jun 2025 |
| /article/the-science-behind-effective-url-shortening-strategies | 30 Sep 2022 | 9 Jun 2025 |
| /article/using-short-urls-to-boost-brand-recognition | 30 Sep 2022 | 9 Jun 2025 |
| /article/how-short-urls-help-manage-affiliate-marketing-links | 30 Sep 2022 | 9 Jun 2025 |
| /article/security-risks-and-how-to-safeguard-short-urls | 30 Sep 2022 | 9 Jun 2025 |
| /article/the-impact-of-short-urls-on-mobile-user-experience | 30 Sep 2022 | 9 Jun 2025 |
| /article/integrating-short-urls-with-qr-codes-for-offline-marketing | 30 Sep 2022 | 9 Jun 2025 |
| /article/the-history-and-evolution-of-url-shortening-services | 30 Sep 2022 | 9 Jun 2025 |
| /article/how-to-use-short-urls-in-email-campaigns-effectively | 30 Sep 2022 | 9 Jun 2025 |
| /article/short-urls-vs-long-urls-which-is-better-for-seo | 30 Sep 2022 | 5 Jun 2025 |
| /article/best-practices-for-creating-custom-short-urls | 30 Sep 2022 | 5 Jun 2025 |
| /article/tracking-clicks-the-analytics-power-of-short-urls | 30 Sep 2022 | 5 Jun 2025 |
| /article/the-role-of-url-shorteners-in-modern-marketing | 30 Sep 2022 | 5 Jun 2025 |
| /article/how-short-urls-improve-social-media-engagement | 30 Sep 2022 | 5 Jun 2025 |
| /article/power-of-short-urls-enhancing-user-experience | 30 Sep 2022 | 5 Jun 2025 |
For the 24 non-article pages the sitemap date is the nightly generation time, so it is not a real edit date. Use the date the page file last changed.
Sources
- Your pages, fetched 8 Nov 2026 20:55 UTC: every URL in occuz.com/sitemap.xml (77 URLs, each read once).
- occuz.com/about: "2025 14 November, Pixel & Intent Released".
- The Open Graph protocol: article:published_time and article:modified_time definitions.
- Google Search Central: Influence your byline dates.
- Google Search Central: Build and submit a sitemap.